#
Junjie
2023-11-15 06dcb0ea144ae13689545ada3496d01cf686d181
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -67,6 +67,8 @@
    @Autowired
    private WrkMastMapper wrkMastMapper;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private WaitPakinMapper waitPakinMapper;
@@ -736,6 +738,15 @@
                continue;
            }
            //判断堆垛机和当前任务是否处于一个巷道
            if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) {
                //判断堆垛机所在巷道是否存在其他任务,如存在则优先执行
                List<WrkMast> wrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), true);
                if (!wrkMasts.isEmpty()) {
                    continue;//当前堆垛机所在巷道存在任务
                }
            }
            // 双深库位且浅库位有货,则需先对浅库位进行库位移转
            if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
                String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
@@ -930,6 +941,15 @@
//                        return;
                    }
                    //判断堆垛机和当前任务是否处于一个巷道
                    if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) {
                        //判断堆垛机所在巷道是否存在其他任务,如存在则优先执行
                        List<WrkMast> laneWrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), false);
                        if (!laneWrkMasts.isEmpty()) {
                            continue;//当前堆垛机所在巷道存在任务
                        }
                    }
                    // 1.堆垛机开始移动
                    CrnCommand crnCommand = new CrnCommand();
                    crnCommand.setCrnNo(slave.getId()); // 堆垛机编号