自动化立体仓库 - WMS系统
zhangchao
2024-11-05 fa4c9019c5ef6264fe68e35138e36b9c7a608713
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -422,6 +422,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 +514,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");