999
zhangc
2025-04-18 23a2e30f0f70c1f526a04bffda38fd124ed47630
src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
@@ -144,12 +144,13 @@
            }
            int lev = Utils.getLev(wrkMast.getLocNo());
            StaProtocol staProtocol2 = devpThread.getStation().get(lev == 1 ? 1014 : 1025);
            //TODO
//            if (!staProtocol2.isOutEnable()) {
//                log.error("{}任务,{}号输送线不可出", wrkMast.getWrkNo(), lev == 1 ? 1014 : 1025);
//                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线不可出", wrkMast.getWrkNo(), lev == 1 ? 1014 : 1025);
//                return false;
//            }
            if (!staProtocol2.isOutEnable()) {
                log.error("{}任务,{}号输送线不可出", wrkMast.getWrkNo(), lev == 1 ? 1014 : 1025);
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线不可出", wrkMast.getWrkNo(), lev == 1 ? 1014 : 1025);
                return false;
            }
            StaProtocol staProtocol = devpThread.getStation().get(lev == 1 ? 1015 : 1026);
            if (staProtocol.isLoading()) {
                log.error("{}任务,{}号输送线有物", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
@@ -216,7 +217,7 @@
            //获取穿梭车最近且空闲的提升机
            LiftThread liftThread = LiftUtils.getRecentLift(shuttleProtocol.getCurrentLocNo());
            if (liftThread == null) {
                News.info("{}号小车,{}目标库位,没有可用空闲提升机", shuttleProtocol.getShuttleNo(), shuttleProtocol.getCurrentLocNo());
                News.info("{}号小车,{}小车库位,没有可用空闲提升机", shuttleProtocol.getShuttleNo(), shuttleProtocol.getCurrentLocNo());
                return false;//没有可用且空闲的提升机
            }
@@ -302,22 +303,30 @@
                }
                liftProtocol = liftThread.getStatus();
                //判断提升机内是否有小车
                if (liftProtocol.getHasCar()) {
                    News.info("{}任务,{}号提升机,提升机内有小车,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                    return false;
                }
                //判断提升机内是否有托盘
                if (liftProtocol.getHasTray()) {
                    News.info("{}任务,{}号提升机,提升机内有托盘,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                    return false;
                }
                if (liftProtocol == null) {
                    News.info("{}号提升机对象不存在", wrkMast.getLiftNo());
                    return false;
                }
                //判断提升机是否有其他任务(该任务需要换层必须提前独占提升机)
                WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftProtocol.getLiftNo());
                WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(wrkMast.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
                if (liftWrkMast != null) {
                    if (liftWrkMast != null && !wrkMast.getMainWrkNo().equals(liftWrkMast.getWrkNo())) {
                        News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                        return false;//当前提升机存在未完成任务,等待下一次轮询
                    }
                    News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                    return false;//当前提升机存在未完成任务,等待下一次轮询
                }
                wrkMast.setModiTime(now);
                wrkMast.setLiftNo(liftProtocol.getLiftNo());//提前锁定提升机
                wrkMast.setLiftNo(1);
                wrkMast.setSystemMsg("");//清空消息
                wrkMastService.updateById(wrkMast);
                return false;
@@ -849,12 +858,12 @@
            }
            int lev = Utils.getLev(wrkMast.getLocNo());
            StaProtocol staProtocol2 = devpThread.getStation().get(lev == 1 ? 1014 : 1025);
            //TODO
//            if (!staProtocol2.isOutEnable()) {
//                log.error("{}任务,{}号输送线不可出", wrkMast.getWrkNo(), lev == 1 ? 1014 : 1025);
//                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线不可出", wrkMast.getWrkNo(), lev == 1 ? 1014 : 1025);
//                return false;
//            }
            if (!staProtocol2.isOutEnable()) {
                log.error("{}任务,{}号输送线不可出", wrkMast.getWrkNo(), lev == 1 ? 1014 : 1025);
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线不可出", wrkMast.getWrkNo(), lev == 1 ? 1014 : 1025);
                return false;
            }
            StaProtocol staProtocol = devpThread.getStation().get(lev == 1 ? 1015 : 1026);
            if (staProtocol.isLoading()) {
                log.error("{}任务,{}号输送线有物", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());