自动化立体仓库 - WMS系统
zyx
2023-12-25 7842982e37a16836ce06ea0a35c46e5d36642682
合并订单
4个文件已修改
107 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OutController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OutController.java
@@ -238,24 +238,6 @@
            agvTaskDtos.add(taskDto);
        }
//        //寻找空站点位置
//        AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(locDto.getAgvStaNo());
//        if(Cools.isEmpty(agvBasDevp)){
//            //如果没有找到空站点,则生成准备任务
//            //TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getAgvStaNo(), locDto);
//            //agvTaskDtos.add(taskDto);
//            //如果库位存在混载
//
//            return;
//        }
////        agvBasDevp.setLocSts("S");
////        agvBasDevpService.updateById(agvBasDevp);
//        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null);
//        //TaskDto taskDto = new TaskDto(locDto.getLocNo(), agvBasDevp.getDevNo(), locDto);
//        taskDto.setAgvStaNo(agvBasDevp.getDevNo());
        //agvTaskDtos.add(taskDto);
    }
    /*
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -138,6 +138,7 @@
            AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,false);
            //生成工作档明细
            taskDto.getLocDtos().forEach(locDto -> {
                if (!BaseController.isJSON(locDto.getOrderNo())) {
                //明细档所需参数
                createWrkDetlReWrite(locDto.getMatnr(),
                        wrkMast.getWrkNo(),
@@ -149,6 +150,22 @@
                        userId,
                        locDto.getCsocode(),
                        locDto.getIsoseq());
                }else {
                    List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
                    orderDtoList.forEach(orderDto -> {
                        //明细档所需参数
                        createWrkDetlReWrite(locDto.getMatnr(),
                                wrkMast.getWrkNo(),
                                orderDto.getOrderNo(),
                                locDto.getBatch(),
                                orderDto.getAnfme(),
                                locDto.getContainerCode(),
                                now,
                                userId,
                                locDto.getCsocode(),
                                locDto.getIsoseq());
                    });
                }
                //修改订单信息
                modifyOrderDetl(locDto, userId);
@@ -221,13 +238,6 @@
    @Transactional
    public void locCheckOut(StockOutParam param, Long userId) {
        String station = param.getStation();
//        List<AgvBasDevp> agvBasDevpList = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>()
//                .eq("station_code", station)
//                .eq("loc_sts","O"));
//
//        if(param.getLocDetls().size() > agvBasDevpList.size()){
//            throw new CoolException("当前站点可用缓存货架数量为" + agvBasDevpList.size() + ",少于需要盘点出库库位数量,请重新选择盘点库位");
//        }
        List<TaskDto> taskDtos = new ArrayList<>();
        param.getLocDetls().forEach(locDetl -> {
@@ -263,26 +273,6 @@
            //locSts = ioType == 101 ? "S" : "Q";
            updateAgvBasDevp(agvBasDevpService.selectById(wrkMast.getLocNo()),"S");
        });
//        param.getLocDetls().forEach(locDetl -> {
//            AgvLocMast agvLocMast = agvLocMastService.selectById(locDetl.getLocNo());
//            AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", locDetl.getLocNo()));
//            AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>()
//                    .eq("station_code", station)
//                    .eq("loc_sts","O"));
//            Date now = new Date();
//
//            //生成工作党
//            AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getSuppCode(), now, userId,false);
//            //生成工作明细档
//            createWrkDetlReWrite(locDetl.getMatnr(),wrkMast.getWrkNo(),null,locDetl.getBatch(),locDetl.getCount(),wrkMast.getBarcode(),now,userId,agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
//            //修改库位信息
//            updateAgvLocMast(agvLocMast,"P");
//            //修改站点信息
//            updateAgvBasDevp(agvBasDevp,"S");
//
//        });
    }
@@ -751,8 +741,9 @@
                    orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
                }
                if(locAnfme > orderDetl.getAnfme()){
                    orderAnfme = orderDetl.getAnfme();
                orderAnfme = orderDetl.getAnfme() - orderDetl.getQty();
                if(locAnfme > orderAnfme){
                    locAnfme -= orderAnfme;
                }else {
                    orderAnfme = locAnfme;
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -123,7 +123,13 @@
                double anfme = locDetl.getAnfme();
                int ioType = anfme > issued ? 103 : 101;
                anfme = anfme > issued ? issued : anfme;
                LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNo, anfme);
                //用于显示工作明细档的订单号
                String orderNoWrkDtel = Utils.getOrderNo(orderNo,anfme);
                //更新订单数量
                orderNo = Utils.orderMergeUpdate(orderNo,anfme);
                LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNoWrkDtel, anfme);
                List<Integer> outSite = basDevpService.getAvailableOutSite(101);
                List<Integer> pickOutSite = basDevpService.getAvailableOutSite(103);
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -527,6 +527,8 @@
            }
            Mat mat = matService.selectByMatnr(locDto.getMatnr());
            assert mat != null;
            if (!BaseController.isJSON(locDto.getOrderNo())) {
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.sync(mat);
            wrkDetl.setZpallet(wrkMast.getBarcode());
@@ -547,6 +549,31 @@
            }
            //补货单则生成AGV入库通知档
            generateAgvWaitpakin(wrkDetl);
            }else {
                List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
                orderDtoList.forEach(orderDto -> {
                    WrkDetl wrkDetl = new WrkDetl();
                    wrkDetl.sync(mat);
                    wrkDetl.setZpallet(wrkMast.getBarcode());
                    wrkDetl.setIoTime(now);
                    wrkDetl.setWrkNo(workNo);
                    wrkDetl.setBatch(locDto.getBatch());
                    wrkDetl.setOrderNo(orderDto.getOrderNo());
                    wrkDetl.setAnfme(orderDto.getAnfme()); // 数量
                    wrkDetl.setAppeTime(now);
                    wrkDetl.setAppeUser(userId);
                    wrkDetl.setModiTime(now);
                    wrkDetl.setModiUser(userId);
                    wrkDetl.setSuppCode(locDto.getContainerCode());
                    wrkDetl.setThreeCode(locDto.getCsocode());
                    wrkDetl.setDeadTime(locDto.getIsoseq());
                    if (!wrkDetlService.insert(wrkDetl)) {
                        throw new CoolException("保存工作档明细失败");
                    }
                    //补货单则生成AGV入库通知档
                    generateAgvWaitpakin(wrkDetl);
                });
            }
            // 修改订单明细
            if (!BaseController.isJSON(locDto.getOrderNo())) {
@@ -573,8 +600,9 @@
                        orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
                    }
                    if(locAnfme > orderDetl.getAnfme()){
                        orderAnfme = orderDetl.getAnfme();
                    orderAnfme = orderDetl.getAnfme() - orderDetl.getQty();
                    if(locAnfme > orderAnfme){
                        locAnfme -= orderAnfme;
                    }else {
                        orderAnfme = locAnfme;