自动化立体仓库 - WMS系统
#
whycq
2024-06-12 ce4a6c80a379cd46acd59c8aff9212ad8d399825
#
3个文件已修改
89 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OutController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/AgvWorkService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OutController.java
@@ -205,14 +205,8 @@
        generateTaskDto(locDtos,taskDtos,agvTaskDtos);
        //生成AGV出库任务
        agvWorkService.stockOutWrkMast(agvTaskDtos, getUserId());
        agvWorkService.processOut(agvTaskDtos, getUserId());
        // 生成出库任务
        taskDtos.stream().map(TaskDto::getLocNo).distinct().collect(Collectors.toList());
        for (TaskDto taskDto : taskDtos) {
            BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
            workService.stockOut(staNo, taskDto, getUserId());
        }
        return R.ok();
    }
src/main/java/com/zy/asrs/service/AgvWorkService.java
@@ -22,6 +22,11 @@
    void stockOutWrkMast(List<TaskDto> agvTaskDtos, Long userId);
    /*
    生成出库任务
     */
    void processOut(List<TaskDto> agvTaskDtos, Long userId);
    /*
    生成拣料入库任务
     */
    void pickIn(List<AgvWrkMast> agvWrkMastList);
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -186,6 +186,80 @@
        });
    }
    /*
    加工出库
     */
    @Transactional
    public void processOut(List<TaskDto> agvTaskDtos, Long userId) {
        Date now = new Date();
        agvTaskDtos.forEach(taskDto -> {
            List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectByTaskDto(taskDto);
            //AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", taskDto.getLocNo()));
            //工作档所需参数
            long wrkSts = 21L;
            String sourceLocNo = taskDto.getLocNo();
            String targetLocNo = taskDto.getAgvStaNo();
            //String barcode = agvLocDetls.get(0).getSuppCode();
            String containerCode = taskDto.getLocDtos().get(0).getContainerCode();
            //判断是否全板出库
            int ioType = 107;
            //生成工作档
            AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)));
            //生成工作档明细
            taskDto.getLocDtos().forEach(locDto -> {
                if (!BaseController.isJSON(locDto.getOrderNo())) {
                    //明细档所需参数
                    createWrkDetlReWrite(locDto.getMatnr(),
                            wrkMast.getWrkNo(),
                            locDto.getOrderNo(),
                            locDto.getBatch(),
                            locDto.getAnfme(),
                            locDto.getContainerCode(),
                            now,
                            userId,
                            locDto.getCsocode(),
                            locDto.getIsoseq(),
                            locDto.getProcessSts());
                }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(),
                                locDto.getProcessSts());
                    });
                }
                //修改订单信息
                modifyOrderDetl(locDto, userId);
            });
//            //修改订单信息
//            modifyOrderDetl(taskDto.getLocDtos().get(0), userId);
            //更新源站点信息
            String locSts = "R";
            updateAgvLocMast(agvLocMastService.selectById(sourceLocNo),locSts);
            //更新目标站点状态
            //locSts = ioType == 101 ? "S" : "Q";
            updateAgvBasDevp(agvBasDevpService.selectById(targetLocNo),"S");
        });
    }
    //拣料入库
    @Transactional
    public void pickIn(List<AgvWrkMast> agvWrkMastList){
@@ -365,6 +439,8 @@
            locType = 4;
        } else if (containerType == 20 && agvBasDevp.getFloor() == 3) {
            locType = 2;
        } else if (containerType == 30) {
            locType = 3;
        } else {
            locType = agvBasDevp.getLocType1();
        }