自动化立体仓库 - WMS系统
zhangchao
2024-11-07 eb6768340c1b382442df9a20fbc3712857184755
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -105,7 +105,7 @@
            //检索库位,选择合适的库位
            AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1(),agvBasDevp.getFloor(),false,false);
            //生成工作档
            AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),agvBasDevp.getBarcode(),now,userId, agvBasDevp.getLocType2());
            AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),agvBasDevp.getBarcode(),now,userId, agvBasDevp.getLocType2(),agvLocMast.getPltType());
            //标记是否为输送线入库
            wrkMast.setMk(isConveyor ? "Y" : "N");
            //生成工作档明细
@@ -144,11 +144,11 @@
            //String barcode = agvLocDetls.get(0).getSuppCode();
            String containerCode = taskDto.getLocDtos().get(0).getContainerCode();
            AgvLocMast agvLocMast = agvLocMastService.selectById(sourceLocNo);
            //判断是否全板出库
            int ioType = isPakOut(sourceLocNo,taskDto) ?  101 : 103;
            //生成工作档
            AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)));
            AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)),agvLocMast.getPltType());
            //生成工作档明细
            long flowId = snowflakeIdWorker.nextId();
            taskDto.getLocDtos().forEach(locDto -> {
@@ -250,11 +250,11 @@
            //String barcode = agvLocDetls.get(0).getSuppCode();
            String containerCode = taskDto.getLocDtos().get(0).getContainerCode();
            AgvLocMast agvLocMast = agvLocMastService.selectById(sourceLocNo);
            //判断是否全板出库
            int ioType = 107;
            //生成工作档
            AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)));
            AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)),agvLocMast.getPltType());
            //生成工作档明细
            long flowId = snowflakeIdWorker.nextId();
            taskDto.getLocDtos().forEach(locDto -> {
@@ -361,7 +361,12 @@
            List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
            for (AgvWrkDetl agvWrkDetl : agvWrkDetlList) {
                agvWrkDetl.setIoTime(now);
                agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
                boolean bl = agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>()
                        .eq("wrk_no", agvWrkDetl.getWrkNo())
                        .eq("matnr",agvWrkDetl.getMatnr())
                        .eq("order_no",agvWrkDetl.getOrderNo())
                        .eq("three_code",agvWrkDetl.getThreeCode()));
//                        .eq("dead_time",agvWrkDetl.getDeadTime()));
            }
            AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo());
            //List<AgvLocDetl> agvLocDetlList = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocMast.getLocNo()));
@@ -419,7 +424,7 @@
            int containerType = getContainerTypeByloc(taskDto.getLocNo());
            //生成工作档
            AgvWrkMast wrkMast = createWrkMast(107, 21L,taskDto.getLocNo(),taskDto.getAgvStaNo(),taskDto.getLocDtos().get(0).getContainerCode(),now,userId,containerType);
            AgvWrkMast wrkMast = createWrkMast(107, 21L,taskDto.getLocNo(),taskDto.getAgvStaNo(),taskDto.getLocDtos().get(0).getContainerCode(),now,userId,containerType,null);
            //生成工作档明细
            taskDto.getLocDtos().forEach(locDto -> {
                //明细档所需参数
@@ -462,7 +467,7 @@
        Date now = new Date();
        //生成移库工作档
        AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId,getContainerTypeByloc(sourceLocNo));
        AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId,getContainerTypeByloc(sourceLocNo),targetLocMast.getPltType());
        //生成工作党明细
        createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime(),sourceLocDetl.getProcessSts());
        //修改目标库位状态
@@ -581,39 +586,11 @@
            String locNo = agvLocMast.getLocNo();
            //生成工作档
            AgvWrkMast wrkMast = createWrkMast(1,201L,devNo,locNo,containerCode,now,userId, containerType);
            AgvWrkMast wrkMast = createWrkMast(1,201L,devNo,locNo,containerCode,now,userId, containerType,agvLocMast.getPltType());
            //生成工作档明细
            long flowId = snowflakeIdWorker.nextId();
            agvWaitPakinList.forEach(wp -> {
                createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime(),wp.getProcessSts());
                // 流水 -- 新增订单明细
                OrderDetl orderDetl = orderDetlService.selectItem(wp.getOrderNo(), wp.getMatnr(), wp.getThreeCode());
//                FlowLog flowLog = new FlowLog();
//                flowLog.setFid(String.valueOf(flowId));
//                flowLog.setSpare2(wrkMast.getWrkNo().toString());
//                flowLog.setLocNo(locNo);
//                flowLog.setSpare1(containerCode);
//                flowLog.setOpType(3L);
//                flowLog.setOrderNo(wp.getOrderNo());
//                flowLog.setThreeCode(wp.getThreeCode());
//                flowLog.setMatnr(wp.getMatnr());
//                flowLog.setMaktx(wp.getMaktx());
//                flowLog.setOrderPrevious(orderDetl.getAnfme());
//                flowLog.setOrderCurrent(orderDetl.getAnfme());
//                flowLog.setOrderChanged(0.0);
//                flowLog.setQtyPrevious(orderDetl.getQty()-wp.getAnfme());
//                flowLog.setQtyCurrent(orderDetl.getQty());
//                flowLog.setQtyChanged(wp.getAnfme());
//
//                flowLog.setLocPrevious(0.0D);
//                flowLog.setLocCurrent(wp.getAnfme());
//                flowLog.setLocChanged(wp.getAnfme());
//
//                flowLog.setUserId(userId);
//                flowLog.setAppeTime(now);
//                if (!flowLogService.insert(flowLog)) {
//                    throw new CoolException("同步半成品调拨单流水记录失败");
//                }
            });
            //修改入库通知档状态
            agvWaitPakinService.updateIoStatus(containerCode,"Y");
@@ -627,7 +604,7 @@
            }
            agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),true,true);
            // 生成工作档 10.空板入库
            createWrkMast(10,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),containerCode,now,userId,containerType);
            createWrkMast(10,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),containerCode,now,userId,containerType,agvLocMast.getPltType());
            //更新源站点状态
            updateAgvBasDevp(agvBasDevp,"R",containerType,containerCode);
        }
@@ -636,6 +613,7 @@
        updateAgvLocMast(agvLocMast,"S");
        return agvLocMast.getLocNo();
    }
    /*
    空板出库
     */
@@ -665,7 +643,7 @@
            throw new CoolException("暂无当前出库站点类型的空货架!");
        }
        //生成工作档
        createWrkMast(110,21L,agvLocMast.getLocNo(),agvBasDevp.getDevNo(),agvLocMast.getBarcode(),now,userId,containerType);
        createWrkMast(110,21L,agvLocMast.getLocNo(),agvBasDevp.getDevNo(),agvLocMast.getBarcode(),now,userId,containerType,agvLocMast.getPltType());
        //修改源库位状态
        updateAgvLocMast(agvLocMast,"R");
@@ -1248,6 +1226,7 @@
        wrkDetl.setAppeTime(now);
        wrkDetl.setModiUser(userId);
        wrkDetl.setModiTime(now);
        wrkDetl.setThreeCode(csocode);
        wrkDetl.setDeadTime(isoseq);
        if (!agvWrkDetlService.insert(wrkDetl)) {
@@ -1287,7 +1266,7 @@
    /*
    生成工作档
     */
    private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode,  Date now, Long userId, int containerType){
    private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode,  Date now, Long userId, int containerType,Integer pltType){
        AgvWrkMast wrkMast = new AgvWrkMast();
        //工作状态
        wrkMast.setWrkSts(wrkSts);
@@ -1309,6 +1288,7 @@
        wrkMast.setAppeTime(now);
        wrkMast.setModiUser(userId);
        wrkMast.setModiTime(now);
        wrkMast.setPltType(pltType);
        wrkMast.setLogErrMemo("createWaitPainWrkMastStart");
        if (!agvWrkMastService.insertByIncrease(wrkMast)) {
@@ -1423,4 +1403,4 @@
    }
}
}