自动化立体仓库 - WMS系统
whycq
2024-05-14 870eb7cb47e510594d5d0937f14e5a3f7739cd77
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -6,6 +6,7 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.AgvLocDetlService;
import com.zy.asrs.service.AgvLocMastService;
import com.zy.asrs.service.AgvWrkDetlService;
import com.zy.asrs.service.AgvWrkMastService;
import com.zy.asrs.task.AbstractHandler;
@@ -28,6 +29,8 @@
    private AgvWrkMastService agvWrkMastService;
    @Autowired
    private AgvCommonService agvCommonService;
    @Autowired
    private AgvLocMastService agvLocMastService;
    @Autowired
    private AgvLocDetlService agvLocDetlService;
    @Autowired
@@ -85,6 +88,7 @@
            AgvWrkDetl wrkDetl = new AgvWrkDetl();
            wrkDetl.setWrkNo(mast1.getWrkNo());
            wrkDetl.sync(agvLocDetl);
            wrkDetl.setSpecs("1-" + agvLocMast.getLocType3());
            wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
            wrkDetl.setIoTime(now);
            wrkDetl.setAppeUser(9527L);
@@ -95,7 +99,9 @@
                throw new CoolException("保存工作明细失败");
            }
        });
        //更新目标库位状态
        updateAgvLocMast(agvLocMast,"R");
        updateAgvLocMast(LocMast,"S");
        return SUCCESS;
    }
@@ -103,4 +109,53 @@
    private ReturnT<String> doHandMove(AgvLocMast agvLocMast) {
        return SUCCESS;
    }
    /*
    更新目标库位信息
     */
    private void updateAgvLocMast(AgvLocMast locMast, String locSts){
        locMast.setLocSts(locSts);
        agvLocMastService.updateById(locMast);
    }
    public ReturnT<String> autoEmptyBack(AgvLocMast agvLocMast) {
        Date now = new Date();
        //查询工作档
        AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
        if(!Cools.isEmpty(agvWrkMast)){
            throw new CoolException("当前"+agvLocMast.getBarcode()+"货架码已在工作档中");
        }
        //检索库位,选择合适的库位
        AgvLocMast LocMast = agvCommonService.getLocNo(3,1);
        //生成工作档
        AgvWrkMast mast = new AgvWrkMast();
        //工作状态
        mast.setWrkSts(201L);
        //入出库类型
        mast.setIoType(109);
        mast.setIoTime(now);
        //优先级
        mast.setIoPri(300.0);
        //源站点
        mast.setSourceLocNo(agvLocMast.getLocNo());
        //目标站点
        mast.setLocNo(LocMast.getLocNo());
        //容器编码
        mast.setBarcode(agvLocMast.getBarcode());
        //容器类型
        mast.setWhsType(30);
        mast.setAppeUser(9527L);
        mast.setAppeTime(now);
        mast.setModiUser(9527L);
        mast.setModiTime(now);
        if (!agvWrkMastService.insertByIncrease(mast)) {
            throw new CoolException("保存工作档失败");
        }
        //更新目标库位状态
        updateAgvLocMast(agvLocMast,"R");
        updateAgvLocMast(LocMast,"S");
        return SUCCESS;
    }
}