王佳豪
2021-05-31 bc666cce4e7905e99174195df033bcff1ed799d6
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -95,7 +95,7 @@
            // 关联通知单组托
            for (CombParam.CombMat combMat : param.getCombMats()) {
                WaitPakin one = waitPakinService.selectOne(new EntityWrapper<WaitPakin>()
                        .eq("supplier", param.getBillNo())
                        .eq("supplier", combMat.getSupplier())
                        .eq("matnr", combMat.getMatNo())
                        .isNull("zpallet"));
                if (one == null) {
@@ -115,34 +115,32 @@
                waitPakin.setAppeTime(new Date());
                waitPakin.setModiUser(userId);
                waitPakin.setModiTime(new Date());
                waitPakin.setSupplier(combMat.getSupplier());
                if (!waitPakinService.insert(waitPakin)) {
                    throw new CoolException("保存数据失败");
                }
                // 减少通知单上该物料组托数量
                if (waitPakin.getAnfme() >= one.getAnfme()) {
                    waitPakinService.delete(new EntityWrapper<WaitPakin>()
                            .eq("supplier", param.getBillNo())
                            .eq("supplier", combMat.getSupplier())
                            .eq("matnr", combMat.getMatNo())
                            .eq("warehouse", param.getWarehouse())
                            .eq("mnemonic", param.getMnemonic())
                            .isNull("zpallet"));
                } else {
                    Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>();
                    if ("".equals(param.getWarehouse())) {
                        wrapper.eq("supplier", param.getBillNo())
                    if ("".equals(param.getMnemonic())) {
                        wrapper.eq("supplier", combMat.getSupplier())
                                .eq("matnr", combMat.getMatNo())
                                .isNull("zpallet");
                    } else {
                        wrapper.eq("supplier", param.getBillNo())
                        wrapper.eq("supplier", combMat.getSupplier())
                                .eq("matnr", combMat.getMatNo())
                                .eq("warehouse", param.getWarehouse())
                                .eq("mnemonic", param.getMnemonic())
                                .isNull("zpallet");
                    }
                    WaitPakin pakin = new WaitPakin();
                    pakin.setAnfme(one.getAnfme() - waitPakin.getAnfme());
                    if (!waitPakinService.update(pakin, wrapper.eq("supplier", param.getBillNo())
                            .eq("matnr", combMat.getMatNo())
                            .eq("warehouse", param.getWarehouse())
                            .isNull("zpallet"))) {
                    if (!waitPakinService.update(pakin, wrapper)) {
                        throw new CoolException("更新数据失败");
                    }
@@ -156,4 +154,79 @@
    }
    @Override
    @Transactional
    public void combBatch(CombParam param, Long userId) {
        if (Cools.isEmpty(param.getBarcode())) {
            throw new CoolException(BaseRes.PARAM);
        }
        if (Cools.isEmpty(param.getCombMats()) && Cools.isEmpty(param.getProductCode())) {
            throw new CoolException(BaseRes.PARAM);
        }
        int count = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                eq("zpallet", param.getBarcode()).eq("io_status", "N"));
        if (count > 0) {
            throw new CoolException("条码数据已存在");
        }
        // 关联通知单组托
        for (CombParam.CombMat combMat : param.getCombMats()) {
            WaitPakin one = waitPakinService.selectOne(new EntityWrapper<WaitPakin>()
                    .eq("supplier", combMat.getSupplier())
                    .eq("matnr", combMat.getMatNo())
                    .isNull("zpallet"));
            if (one == null) {
                throw new CoolException("通知单不存在" + combMat.getMatNo() + "数据!");
            }
            if (combMat.getCount() > one.getAnfme()) {
                throw new CoolException(combMat.getMatNo() + "物料数量不足!");
            }
            MatCode matCode = matCodeService.selectById(combMat.getMatNo());
            if (Cools.isEmpty(matCode)) {
                throw new CoolException("物料数据错误");
            }
            WaitPakin waitPakin = one.clone();
            waitPakin.setZpallet(param.getBarcode());   // 托盘码
            waitPakin.setAnfme(combMat.getCount());  // 数量
            waitPakin.setAppeUser(userId);
            waitPakin.setAppeTime(new Date());
            waitPakin.setModiUser(userId);
            waitPakin.setModiTime(new Date());
            waitPakin.setSupplier(combMat.getSupplier());
            if (!waitPakinService.insert(waitPakin)) {
                throw new CoolException("保存数据失败");
            }
            // 减少通知单上该物料组托数量
            if (waitPakin.getAnfme() >= one.getAnfme()) {
                waitPakinService.delete(new EntityWrapper<WaitPakin>()
                        .eq("supplier", combMat.getSupplier())
                        .eq("matnr", combMat.getMatNo())
                        .eq("mnemonic", combMat.getMnemonic())
                        .isNull("zpallet"));
            } else {
                Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>();
                if ("".equals(param.getMnemonic())) {
                    wrapper.eq("supplier", combMat.getSupplier())
                            .eq("matnr", combMat.getMatNo())
                            .isNull("zpallet");
                } else {
                    wrapper.eq("supplier", combMat.getSupplier())
                            .eq("matnr", combMat.getMatNo())
                            .eq("mnemonic", combMat.getMnemonic())
                            .isNull("zpallet");
                }
                WaitPakin pakin = new WaitPakin();
                pakin.setAnfme(one.getAnfme() - waitPakin.getAnfme());
                pakin.setSupplier(combMat.getSupplier());
                pakin.setMatnr(combMat.getMatNo());
                pakin.setMnemonic(combMat.getMnemonic());
                if (!waitPakinService.update(pakin, wrapper)) {
                    throw new CoolException("更新数据失败");
                }
            }
        }
    }
}