自动化立体仓库 - WMS系统
#
whycq
2024-06-13 2f328c198aa83fa274c91fa70cf955abbe336c07
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",Short.valueOf(containerCode.substring(0,2)),containerCode);
        });
    }
    //拣料入库
    @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();
        }
@@ -805,6 +881,7 @@
                        }
                    }else {
                        agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
                    }
                } else if (wrkMast.getIoType() == 113) {