自动化立体仓库 - WMS系统
whycq
2024-06-28 52805a2308f901610e3c2e26ad2212138bca8070
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -55,6 +55,12 @@
        doHandMove2(agvWrkMast);
        return SUCCESS;
    }
    public ReturnT<String> start4(AgvWrkMast agvWrkMast) {
        // locType 1. 自动, 2. 手动
        doAutoMove3(agvWrkMast);
        return SUCCESS;
    }
    //根据库位的loctype值发送任务--弃用
    private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) {
        Date now = new Date();
@@ -87,6 +93,7 @@
        mast.setAppeTime(now);
        mast.setModiUser(9527L);
        mast.setModiTime(now);
        mast.setLogErrMemo("doAutoMove");
        if (!agvWrkMastService.insertByIncrease(mast)) {
            throw new CoolException("保存工作档失败");
        }
@@ -186,14 +193,38 @@
        if (Cools.isEmpty(locMast)) {
            throw new CoolException("暂无库位");
        }
        AgvWrkMast workingMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locMast.getLocNo()));
        if (!Cools.isEmpty(workingMast)) {
            throw new CoolException("当前库位正在进行入库,进行下一次轮询");
        }
        agvWrkMast.setWrkSts(201L);
        agvWrkMast.setLocNo(locMast.getLocNo());
        agvWrkMastService.updateById(agvWrkMast);
        //更新目标库位状态
        updateAgvLocMast(locMast,"S");
        AgvLocMast locMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locMast.getLocNo()));
        log.info("自动调拨任务 ==> 源库位:{},目标库位:{},库位状态{}",agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo(),locMast1.getLocSts());
        return SUCCESS;
    }
    private ReturnT<String> doAutoMove3(AgvWrkMast agvWrkMast) {
        Date now = new Date();
        //检索库位,选择合适的库位
        AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,false);
        if (Cools.isEmpty(locMast)) {
            throw new CoolException("暂无库位");
        }
        agvWrkMast.setWrkSts(201L);
        agvWrkMast.setLocNo(locMast.getLocNo());
        agvWrkMast.setLogErrMemo("start2-doAutoMove2");
        agvWrkMastService.updateById(agvWrkMast);
        //更新目标库位状态
        updateAgvLocMast(locMast,"S");
        return SUCCESS;
    }
    private ReturnT<String> doHandMove2(AgvWrkMast agvWrkMast) {
        Date now = new Date();
        String lev1 = agvWrkMast.getSourceLocNo().substring(agvWrkMast.getSourceLocNo().length() - 4).substring(0, 2);
@@ -201,7 +232,7 @@
        if ("01".equals(lev1)) {
            devpNo = agvCommonService.getDevpNo(3, 1, "Y", "Y");
        } else {
            devpNo = agvCommonService.getDevpNo(3, 5, "Y", "Y");
            devpNo = agvCommonService.getDevpNo(3, 4, "Y", "Y");
        }
        if (Cools.isEmpty(devpNo)) {
@@ -209,6 +240,7 @@
        }
        agvWrkMast.setWrkSts(201L);
        agvWrkMast.setLocNo(devpNo.getDevNo());
        agvWrkMast.setLogErrMemo("start3-doHandMove2");
        agvWrkMastService.updateById(agvWrkMast);
        updateAgvBasDevp(devpNo,"S",null,agvWrkMast.getBarcode());
        return SUCCESS;
@@ -268,6 +300,7 @@
        mast.setAppeTime(now);
        mast.setModiUser(9527L);
        mast.setModiTime(now);
        mast.setLogErrMemo("autoEmptyBack");
        if (!agvWrkMastService.insertByIncrease(mast)) {
            throw new CoolException("保存工作档失败");
        }
@@ -290,6 +323,7 @@
        agvWrkMast.setLocNo(locMast.getLocNo());
        agvWrkMast.setModiUser(9527L);
        agvWrkMast.setModiTime(now);
        agvWrkMast.setLogErrMemo("autoEmptyBack3");
        if (!agvWrkMastService.updateById(agvWrkMast)) {
            throw new CoolException("保存工作档失败");
        }
@@ -329,6 +363,7 @@
        mast.setAppeTime(now);
        mast.setModiUser(9527L);
        mast.setModiTime(now);
        mast.setLogErrMemo("autoEmptyBack2");
        if (!agvWrkMastService.insertByIncrease(mast)) {
            throw new CoolException("保存工作档失败");
        }
@@ -396,6 +431,7 @@
        mast.setAppeTime(now);
        mast.setModiUser(9527L);
        mast.setModiTime(now);
        mast.setLogErrMemo("autoEmptyBack4");
        if (!agvWrkMastService.insertByIncrease(mast)) {
            throw new CoolException("保存工作档失败");
        }
@@ -434,6 +470,7 @@
        mast.setAppeTime(now);
        mast.setModiUser(9527L);
        mast.setModiTime(now);
        mast.setLogErrMemo("autoEmptyBack5");
        // 判断 接驳点是否自动
        if ("Y".equals(agvBasDevp.getAutoing())) {
            //工作状态
@@ -490,6 +527,7 @@
        mast.setAppeTime(now);
        mast.setModiUser(9527L);
        mast.setModiTime(now);
        mast.setLogErrMemo("autoEmptyBack6");
        if (!agvWrkMastService.insertByIncrease(mast)) {
            throw new CoolException("保存工作档失败");
        }