自动化立体仓库 - WMS系统
#
whycq
2024-06-12 93674068e900b95726ef1ab9fd4dd61b50a1cb2f
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -61,11 +61,24 @@
    @Autowired
    private AgvWrkMastService agvWrkMastService;
    public void updateWrkStsByWrkNo(int wrkNo, long wrkSts) {
        AgvWrkMast agvWrkMast = this.selectById(wrkNo);
        //判断要修改的工作档状态是否合理,如果不合理则抛出异常
        checkWrkSts(agvWrkMast,wrkSts);
        agvWrkMast.setWrkSts(wrkSts);
        this.updateById(agvWrkMast);
    }
    public void updateWrkStsByWrkNo(int wrkNo, long wrkSts,String manuType,long userId) {
        Date now = new Date();
        AgvWrkMast agvWrkMast = this.selectById(wrkNo);
        //判断要修改的工作档状态是否合理,如果不合理则抛出异常
        checkWrkSts(agvWrkMast,wrkSts);
        agvWrkMast.setWrkSts(wrkSts);
        agvWrkMast.setManuType(manuType);
        agvWrkMast.setModiTime(now);
        agvWrkMast.setModiUser(userId);
        this.updateById(agvWrkMast);
    }
@@ -92,10 +105,13 @@
    public int startAllcationIn(AgvWrkMast agvWrkMast) throws IOException {
        AgvBasDevp basDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
        //检索库位,选择合适的库位
        AgvLocMast locMast = agvCommonService.getLocNo(basDevp.getLocType1(),basDevp.getFloor());
        AgvLocMast locMast = agvCommonService.getLocNo(basDevp.getLocType1(),basDevp.getFloor(),false,true);
        agvWrkMast.setLocNo(locMast.getLocNo());
        agvWrkMast.setWrkSts(201L);
        agvWrkMastService.updateById(agvWrkMast);
        // 更目标库位
        locMast.setLocSts("S");
        agvLocMastService.updateById(locMast);
        return 0;
    }
@@ -205,10 +221,31 @@
            agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo());
        }
        agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString());
        if (agvWrkMast.getIoType() == 108 || (agvWrkMast.getIoType() == 109 && agvWrkMast.getWrkSts() == 201) || agvWrkMast.getIoType() == 12) {
            agvTaskCreateParam.setTaskTyp("F06");
        } else  {
            agvTaskCreateParam.setTaskTyp("F01");
        switch (agvWrkMast.getIoType()) {
            case 108:
            case 12:
                agvTaskCreateParam.setTaskTyp("F06");
                break;
            case 109:
                if (agvWrkMast.getWrkSts() == 201) {
                    agvTaskCreateParam.setTaskTyp("F06");
                } else {
                    agvTaskCreateParam.setTaskTyp("F01");
                }
                break;
            case 1:
                // 入库任务是只有 接驳位 -- > 库位
                AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo()));
                String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2);
                if ("02".equals(locSub)) {
                    agvTaskCreateParam.setTaskTyp("F06");
                } else {
                    agvTaskCreateParam.setTaskTyp("F01");
                }
                break;
            default:
                agvTaskCreateParam.setTaskTyp("F01");
                break;
        }
        agvTaskCreateParam.setPositionCodePath(agvTaskParamList);