自动化立体仓库 - WMS系统
zhangchao
2024-11-08 940cab832331ab054d2a4c74f13aacc6847dd79d
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -150,8 +150,9 @@
                agvWrkDetlService.insert(wrkDetl);
            } else {
                Double anfme = agvWrkDetl.getAnfme() + pick.getCount();
                agvWrkDetl.setIoTime(agvWrkMast.getIoTime());
                agvWrkDetl.setAnfme(anfme);
                agvWrkDetl.setModiTime(new Date());
                agvWrkDetl.setModiTime(now);
                agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("matnr",agvWrkDetl.getMatnr()).eq("three_code",agvWrkDetl.getThreeCode()).eq("supp_code",pick.getSuppCode()));
            }
@@ -162,6 +163,12 @@
            orderDetl.setQty(orderDetl.getQty() + pick.getCount());
            if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()))){
                throw new CoolException("修改订单明细失败,请联系管理员"+pick.getOrderNo()+pick.getMatnr());
            }
            Order order = orderService.selectByNo(orderDetl.getOrderNo());
            if (order.getSettle() == 1) {
                if (!orderService.updateSettle(order.getId(), 2L, userId)) {
                    throw new CoolException("再次拣料:更新订单状态失败!");
                }
            }
        }
        //  确认是否全部出库
@@ -176,14 +183,13 @@
        }
        if (totleWrkdetl >= totleLocdetl) {
            agvWrkMast.setIoType(101);
            agvWrkMast.setModiTime(new Date());
            agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
        }
//        agvLocDetls.size() == 1
        return "组托成功,绑定站点成功";
        return "拣料成功";
    }
    /*
@@ -422,6 +428,8 @@
            if (agvLocMast.getFloor() != floor) {
                if (agvLocMast.getFloor() == 1 && (floor == 2 || floor == 3)) {
                    throw new CoolException("当前库位请选择调拨单调拨!");
                } else if  ((agvLocMast.getFloor() == 2 || agvLocMast.getFloor() == 3) && (floor == 1 || floor == 4)) {
                    throw new CoolException("当前库位请选择调拨回流单回退!");
                } else {
                    ioType = 12;
                }
@@ -512,20 +520,29 @@
            });
        }
        // 如果当前任务是箱壳二三楼回退一楼的 回滚调拨单
        if (ioType == 12 && locMast.getFloor() == 1 && floor != 4 && agvLocMast.getFloor() != 1) {
            List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
            for (AgvLocDetl agvLocDetl : agvLocDetls) {
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("source", 33));
                if (Cools.isEmpty(orderDetl)) {
                    throw new CoolException("当前物料的调拨单不存在!");
                }
                orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
                if (!orderDetlService.updateById(orderDetl)) {
                    throw new CoolException("保存工作明细失败");
                }
            }
        }
//        // 如果当前任务是箱壳二三楼回退一楼的 回滚调拨单
//        if (ioType == 12 && locMast.getFloor() == 1 && floor != 4 && agvLocMast.getFloor() != 1) {
//            List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
//            for (AgvLocDetl agvLocDetl : agvLocDetls) {
//                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("source", 33));
//                if (Cools.isEmpty(orderDetl)) {
//                    throw new CoolException("当前物料的调拨单不存在!");
//                }
//                Order order = orderService.selectByNo(orderDetl.getOrderNo());
//                if (Cools.isEmpty(order)) {
//                    throw new CoolException("当前物料的调拨单不存在!");
//                }
//                if (order.getSettle() == 4L) {
//                    if (!orderService.updateSettle(order.getId(),2L,userId)) {
//                        throw new CoolException("调拨单回滚异常!");
//                    }
//                }
//                orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
//                if (!orderDetlService.updateById(orderDetl)) {
//                    throw new CoolException("保存工作明细失败");
//                }
//            }
//        }
        //更新目标库位状态
        updateAgvLocMast(agvLocMast,"P");
        updateAgvLocMast(locMast,"Q");
@@ -590,6 +607,7 @@
            agvWrkDetl.setWrkNo(wrkMast.getWrkNo());
            agvWrkDetl.setModiUser(userId);
            agvWrkDetl.setModiTime(now);
            agvWrkDetl.setIoTime(now);
            if (!agvWrkDetlService.insert(agvWrkDetl)) {
                throw new CoolException("保存工作明细失败");
            }
@@ -744,6 +762,7 @@
        agvWrkMast.setWrkSts(201L);
        agvWrkMast.setModiUser(userId);
        agvWrkMast.setModiTime(now);
        agvWrkMast.setIoTime(now);
@@ -769,6 +788,7 @@
            agvWrkDetl.setOrderNo(agvWrkDetl.getOrderNo().substring(2));
            agvWrkDetl.setModiUser(userId);
            agvWrkDetl.setModiTime(now);
            agvWrkDetl.setIoTime(now);
            if (!agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>()
                    .eq("matnr",agvWrkDetl.getMatnr())
                    .eq("three_code",agvWrkDetl.getThreeCode())
@@ -817,6 +837,7 @@
            agvWrkDetl.setWrkNo(wrkMast.getWrkNo());
            // 保持工作档明细
            agvWrkDetl.setWrkNo(wrkMast.getWrkNo());
            agvWrkDetl.setIoTime(now);
            agvWrkDetl.setModiUser(userId);
            agvWrkDetl.setModiTime(now);
            if (!agvWrkDetlService.insert(agvWrkDetl)) {