自动化立体仓库 - WMS系统
ZY
2024-12-18 184a0722e53f64f40ddb2c88f11f26941f565a8c
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -131,23 +131,23 @@
            AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()).eq("supp_code", pick.getSuppCode()));
            if (Cools.isEmpty(agvWrkDetl)) {
                AgvWrkDetl wrkDetl = new AgvWrkDetl();
                agvWrkDetl = new AgvWrkDetl();
                Mat mat = matService.selectByMatnr(pick.getMatnr());
                if (Cools.isEmpty(mat)) {
                    throw new CoolException(pick.getMatnr() + "商品不存在");
                }
                wrkDetl.sync(mat);
                wrkDetl.setWrkNo(pickParams.getWrkNo());
                wrkDetl.setOrderNo(pick.getOrderNo());
                wrkDetl.setIoTime(agvWrkMast.getIoTime());
                wrkDetl.setAnfme(pick.getCount()); // 数量
                wrkDetl.setSuppCode(pick.getSuppCode()); // 货架条码
                wrkDetl.setAppeUser(userId);
                wrkDetl.setAppeTime(now);
                wrkDetl.setModiUser(userId);
                wrkDetl.setModiTime(now);
                wrkDetl.setThreeCode(pick.getThreeCode());
                agvWrkDetlService.insert(wrkDetl);
                agvWrkDetl.sync(mat);
                agvWrkDetl.setWrkNo(pickParams.getWrkNo());
                agvWrkDetl.setOrderNo(pick.getOrderNo());
                agvWrkDetl.setIoTime(agvWrkMast.getIoTime());
                agvWrkDetl.setAnfme(pick.getCount()); // 数量
                agvWrkDetl.setSuppCode(pick.getSuppCode()); // 货架条码
                agvWrkDetl.setAppeUser(userId);
                agvWrkDetl.setAppeTime(now);
                agvWrkDetl.setModiUser(userId);
                agvWrkDetl.setModiTime(now);
                agvWrkDetl.setThreeCode(pick.getThreeCode());
                agvWrkDetlService.insert(agvWrkDetl);
            } else {
                Double anfme = agvWrkDetl.getAnfme() + pick.getCount();
                agvWrkDetl.setIoTime(agvWrkMast.getIoTime());
@@ -164,6 +164,8 @@
                if (agvLocDetl.getAnfme() < agvWrkDetl.getAnfme()) {
                    throw new CoolException("拣料数量不能大于库存数量");
                }
            } else {
                throw new CoolException("拣料数量不能大于库存数量,存库不存在");
            }
            // 更新订单
@@ -858,9 +860,27 @@
                throw new CoolException("保存工作明细失败");
            }
            // 同步订单数量
            OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", agvWrkDetl.getMatnr()).eq("three_code", agvWrkDetl.getThreeCode()).eq("order_no", agvWrkDetl.getOrderNo()).in("source", 18, 31, 34));
            //OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", agvWrkDetl.getMatnr()).eq("three_code", agvWrkDetl.getThreeCode()).eq("order_no", agvWrkDetl.getOrderNo()).in("source", 18, 31, 34));
            List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("matnr", agvWrkDetl.getMatnr()).eq("three_code", agvWrkDetl.getThreeCode()).eq("order_no", agvWrkDetl.getOrderNo()));
            OrderDetl orderDetl = null;
            if (orderDetls.isEmpty()) {
                throw new CoolException("订单明细不存在");
            } else if (orderDetls.size() > 1) {
                for (OrderDetl detl : orderDetls) {
                    if (Cools.isEmpty(agvWrkDetl.getBatch()) && Cools.isEmpty(detl.getBatch())) {
                        orderDetl = detl;
                    } else if (!Cools.isEmpty(agvWrkDetl.getBatch()) && !Cools.isEmpty(detl.getBatch()) && agvWrkDetl.getBatch().equals(detl.getBatch())) {
                        orderDetl = detl;
                    }
                }
                if (orderDetl == null) {
                    throw new CoolException("订单明细不匹配");
                }
            } else {
                orderDetl = orderDetls.get(0);
            }
            orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
            if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", orderDetl.getOrderNo()).eq("matnr", orderDetl.getMatnr()).eq("three_code", orderDetl.getThreeCode()))) {
            if (!orderDetlService.updateById(orderDetl)) {
                throw new CoolException("修改订单明细失败,请联系管理员" + orderDetl.getOrderNo() + orderDetl.getMatnr());
            }
        }