自动化立体仓库 - WMS系统
#
whycq
2024-05-31 a48548b110cc1c80e5ee5e5eedeca8bb31e3f295
#
2个文件已修改
104 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java 103 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -603,7 +603,6 @@
        }
        if (wrkMast.getIoType() == 10) {
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"O",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
            agvLocMastService.updateLocStsByLocNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(wrkMast.getLocNo()));
        }
    }
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -80,9 +80,55 @@
            }
            switch (agvWrkMast.getIoType()){
                case 1:
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    //更新目标库位明细
                    log.info("更新目标库位明细 agvWrkMast.getLocNo(): " + agvWrkMast.getLocNo() + ", wrkNo: " + wrkNo);
                    agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(),wrkNo);
                    //生成入库通知历史档
                    boolean save = agvWaitPakinLogService.save(barcode);
                    //删除入库通知档
                    log.info("删除入库通知档 supp_code: " + barcode);
                    agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",barcode));
                    break;
                case 10:
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
                    break;
                case 11:
                case 12:
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    //更新库存明细
                    agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
                    //修改源库位状态为O
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
                    break;
                case 53:
                    //修改工作党明细
                    //修改库存信息
                    List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
                    agvWrkDetlList.forEach(agvWrkDetl -> {
                        AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
                        if (!Cools.isEmpty(agvLocDetl)) {
                            double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
                            agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
                        }
                        //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
                    });
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                    break;
                case 58:
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                    break;
                case 108:
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    //更新库存明细
                    agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
                    //修改源库位状态为O
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
                    break;
                case 109:
                    // 库位 -- 接驳位 / 库位
@@ -165,26 +211,19 @@
                        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
                    }
                    break;
                case 58:
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                    break;
                case 53:
                    //修改工作党明细
                    //修改库存信息
                    List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
                    agvWrkDetlList.forEach(agvWrkDetl -> {
                        AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
                        if (!Cools.isEmpty(agvLocDetl)) {
                            double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
                            agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
                case 113:
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    // 接驳位 -- 库位
                    if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
                        }
                        //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
                    });
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                    break;
                default:
                    return null;
            }
@@ -230,7 +269,33 @@
                //生成空板入库任务
                Short containerType = Short.valueOf(agvWrkMast.getBarcode().substring(0, 2));
                try {
                    agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true);
                    //agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true);
                    AgvWrkMast wrkMast = new AgvWrkMast();
                    //工作状态
                    wrkMast.setWrkSts(201L);
                    //入出库类型
                    wrkMast.setIoType(10);
                    wrkMast.setIoTime(new Date());
                    //优先级
                    wrkMast.setIoPri(300.0);
                    //源站点
                    wrkMast.setSourceLocNo(agvWrkMast.getLocNo());
                    //目标站点
                    wrkMast.setLocNo(agvWrkMast.getSourceLocNo());
                    //货架编码
                    wrkMast.setBarcode(agvWrkMast.getBarcode());
                    //货架类型
                    wrkMast.setWhsType(Integer.valueOf(agvWrkMast.getBarcode().substring(0, 2)));
                    wrkMast.setAppeUser(9527L);
                    wrkMast.setAppeTime(new Date());
                    wrkMast.setModiUser(9527L);
                    wrkMast.setModiTime(new Date());
                    if (!agvWrkMastService.insertByIncrease(wrkMast)) {
                        throw new CoolException("保存工作档失败");
                    }
                }catch (Exception e){
                    e.printStackTrace();
                    log.error(e.getMessage());