src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/ShuttleMoveServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/WrkMastScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -339,7 +339,7 @@ News.info("{}任务,{}站点,不在自动状态", wrkMast.getWrkNo(), staProtocol.getSiteId()); continue; } if (!staProtocol.isOutEnable()) { if (!isOutEnable(devpThread, wrkMast.getStaNo())) { News.info("{}任务,{}站点,没有可出信号", wrkMast.getWrkNo(), staProtocol.getSiteId()); continue; } @@ -399,22 +399,23 @@ } String sourceLocNo = "1200305"; String locNo = "1100105"; String locNo = "1300105"; if (wrkMast.getStaNo() == 1013) { sourceLocNo = "1200301"; locNo = "1100101"; locNo = "1300101"; if (loc.contains(locNo)) { locNo = "1000101"; locNo = "1100101"; } } else { if (loc.contains(locNo)) { locNo = "1000105"; locNo = "1100105"; } } boolean dispatchShuttle = shuttleDispatchUtils.shuttleMoveGenerate(wrkMast.getWrkNo(), sourceLocNo, locNo, wrkMast.getShuttleNo(), null, false); if (!dispatchShuttle) { News.taskInfo(wrkMast.getWrkNo(), "{}小车,挪车调度至取货点失败", wrkMast.getShuttleNo()); continue; } staProtocol.setWorkNo(Short.parseShort(String.valueOf(wrkMast.getWrkNo()))); @@ -1063,7 +1064,7 @@ return false; } if (!staProtocol.isOutEnable()) { if (!isOutEnable(devpThread, wrkMast.getStaNo())) { News.info("{}任务,{}站点,没有可出信号", wrkMast.getWrkNo(), staProtocol.getSiteId()); return false; } src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
@@ -294,7 +294,8 @@ LiftThread liftThread = null; LiftProtocol liftProtocol = null; if (wrkMast.getLiftNo() == null) { //获取穿梭车最近且空闲的提升机 liftThread = LiftUtils.getRecentLift(shuttleProtocol.getCurrentLocNo()); if (liftThread == null) { @@ -315,41 +316,6 @@ return false; } if (liftProtocol == null) { News.info("{}号提升机对象不存在", wrkMast.getLiftNo()); return false; } //判断提升机是否有其他任务(该任务需要换层必须提前独占提升机) WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(wrkMast.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo()); if (liftWrkMast != null) { News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); return false;//当前提升机存在未完成任务,等待下一次轮询 } wrkMast.setModiTime(now); wrkMast.setLiftNo(1); wrkMast.setSystemMsg("");//清空消息 wrkMastService.updateById(wrkMast); return false; } else { liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, wrkMast.getLiftNo()); if (liftThread == null) { News.info("{}号提升机不存在", wrkMast.getLiftNo()); return false; } liftProtocol = liftThread.getStatus(); if (liftProtocol == null) { News.info("{}号提升机对象不存在", wrkMast.getLiftNo()); return false; } } //判断提升机是否有其他任务 WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(wrkMast.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo()); if (liftWrkMast != null) { News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); return false;//当前提升机存在未完成任务,等待下一次轮询 } if (!liftThread.isIdle()) { News.info("{}任务,{}号提升机,提升机忙碌中,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); @@ -391,10 +357,18 @@ //提交到线程去工作 LiftAssignCommand assignCommand = new LiftAssignCommand(); assignCommand.setCommands(commands); assignCommand.setLiftNo(wrkMast.getLiftNo().shortValue()); assignCommand.setLiftNo((short) 1); assignCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); assignCommand.setTaskMode(LiftCommandModeType.MOVE.id.shortValue()); //判断提升机是否有其他任务 WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(wrkMast.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo()); if (liftWrkMast != null) { News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); return false;//当前提升机存在未完成任务,等待下一次轮询 } wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_4.sts);//小车移动到提升机中 小车移动至站点完成 ==> 提升机至小车层 wrkMast.setLiftNo(liftProtocol.getLiftNo());//提前锁定提升机 wrkMast.setSystemMsg("");//清空消息 src/main/java/com/zy/asrs/service/impl/ShuttleMoveServiceImpl.java
@@ -269,6 +269,13 @@ News.info("{}任务,{}号提升机,提升机内有小车,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); return false;//提升机内无小车 } // TODO //判断提升机内是否有托盘 if (liftProtocol.getHasTray()) { News.info("{}任务,{}号提升机,提升机内有托盘,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); return false;//提升机内无小车 } //判断提升机楼层 if (liftProtocol.getLev() != Utils.getLev(shuttleProtocol.getCurrentLocNo())) { src/main/java/com/zy/asrs/task/WrkMastScheduler.java
@@ -207,6 +207,8 @@ } else if (main.getIoType() == WrkIoType.OUT.id) { main.setShuttleNo(wrkMast.getShuttleNo()); main.setWrkSts(WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts); //那时候托盘在提升机里,则需要锁住 main.setShuttleNo(1); } main.setModiTime(new Date()); if (!wrkMastService.updateById(main)) {