#
Junjie
2025-03-14 84f45fcd6c1221b19bcd2a03bf306f74a223c8c7
src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
@@ -226,11 +226,21 @@
            return false;
        }
        //获取主工作档信息
        WrkMast mainWrkMast = wrkMastService.selectByWorkNo(wrkNo);
        //判断是否有其他任务正在使用穿梭车
        WrkMast wrkMast2 = wrkMastService.selectShuttleWorking(shuttleNo);
        if (wrkMast2 != null) {//小车存在其他工作档任务,等待执行完成后再生成新的任务
            News.info("{}号小车,存在其他工作档任务,等待执行完成再生成新的任务", shuttleNo);
            return false;
            if (mainWrkMast == null) {
                News.info("{}号小车,存在其他工作档任务,等待执行完成再生成新的任务", shuttleNo);
                return false;
            }else {
                if (!mainWrkMast.getShuttleNo().equals(shuttleNo)) {
                    News.info("{}号小车,存在其他工作档任务,等待执行完成再生成新的任务", shuttleNo);
                    return false;
                }
            }
        }
        Integer sourceStaNo = null;//小车换层源站点
@@ -244,12 +254,18 @@
                return false;//没有可用且空闲的输送站点
            }
            sourceStaNo = liftSta.getStaNo();//源站点
            //提升机号*100+目标楼层=目标站点
            staNo = liftSta.getLiftNo() * 100 + Utils.getLev(locNo);//目标站
            ForkLiftStaProtocol targetLiftSta = ForkLiftUtils.getLiftStaByLev(liftSta.getLiftNo(), Utils.getLev(locNo));
            if (targetLiftSta == null) {
                News.info("{}号小车,{}目标库位,没有目标站点", shuttleNo, locNo);
                return false;//没有找到目标站点
            }
            //目标站点
            staNo = targetLiftSta.getStaNo();//目标站
        }
        // 获取工作号
        int workNo = commonService.getWorkNo(0);
        int workNo = commonService.getWorkNo(WrkIoType.SHUTTLE_MOVE.id);
        // 保存工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
@@ -271,10 +287,9 @@
        }
        //给工作档绑定小车号
        WrkMast wrkMast1 = wrkMastService.selectByWorkNo(wrkNo);
        if (wrkMast1 != null) {
            wrkMast1.setShuttleNo(shuttleNo);
            wrkMastService.updateById(wrkMast1);
        if (mainWrkMast != null) {
            mainWrkMast.setShuttleNo(shuttleNo);
            wrkMastService.updateById(mainWrkMast);
        }
        return true;