自动化立体仓库 - WMS系统
zyx
2023-11-17 6e24a8fe9a57687842413933ce891bebb5693649
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -90,12 +90,10 @@
            //检索库位,选择合适的库位
            AgvLocMast agvLocMast = agvCommonService.getLocNo(agvWaitPakinList, agvBasDevp.getFloor());
            //生成工作档
            //AgvWrkMast wrkMast = createWrkMast(agvBasDevp, agvLocMast, now, userId);
            AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),agvBasDevp.getBarcode(),now,userId, isConveyor);
            //标记是否为输送线入库
            wrkMast.setMk(isConveyor ? "Y" : "N");
            //生成工作档明细
            //createWrkDetlReWrite(agvWaitPakinList,wrkMast,userId);
            agvWaitPakinList.forEach(wp -> {
                createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime());
            });
@@ -170,6 +168,11 @@
    public void pickIn(List<AgvWrkMast> agvWrkMastList){
        Date now = new Date();
        agvWrkMastList.forEach(agvWrkMast -> {
            //保存拣料出库的工作档和明细
            agvWrkMastLogService.save(agvWrkMast);
            agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
            //修改工作党
            agvWrkMast.setWrkSts(201L);
@@ -504,19 +507,17 @@
            throw new CoolException(workNo+"工作档不存在");
        }
        if(wrkMast.getWrkSts() > 202){
            //修改AGV工作档的工作状态为205.工作完成
            agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205);
        //修改AGV工作档的工作状态为205.工作完成
        agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205);
            //出库任务 101.出库 || 103.拣料出库 || 107.盘点出库
            if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107){
                //修改出库站点状态
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode());
            }
            //出库任务 110.空板出库
            if(wrkMast.getIoType() == 110){
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode());
            }
        //出库任务 101.出库 || 103.拣料出库 || 107.盘点出库
        if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107){
            //修改出库站点状态
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode());
        }
        //出库任务 110.空板出库
        if(wrkMast.getIoType() == 110){
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode());
        }
    }
@@ -532,31 +533,28 @@
            throw new CoolException("当前任务不可取消");
        }
        //AGV机器人未取货前取消
        if(wrkMast.getWrkSts() < 203){
            //入库取消
            if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10){
                //源站点
                String devNo = wrkMast.getSourceLocNo();
                //目标库位
                String locNo = wrkMast.getLocNo();
                agvLocMastService.updateLocStsByLocNo(locNo,"O");
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode());
        //入库取消
        if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10){
            //源站点
            String devNo = wrkMast.getSourceLocNo();
            //目标库位
            String locNo = wrkMast.getLocNo();
            agvLocMastService.updateLocStsByLocNo(locNo,"O","");
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode());
                //出库取消
            }else {
                //源库位
                String locNo = wrkMast.getSourceLocNo();
                //目标站点
                String devNo = wrkMast.getLocNo();
                agvLocMastService.updateLocStsByLocNo(locNo,"F");
                if(devNo.contains("@")){
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","");
                }
            //出库取消
        }else {
            //源库位
            String locNo = wrkMast.getSourceLocNo();
            //目标站点
            String devNo = wrkMast.getLocNo();
            agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode());
            if(devNo.contains("@")){
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","");
            }
        }
        //订单回滚
        //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
        List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));