| | |
| | | shuttleThread.setSyncTaskNo(0); |
| | | } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_LIFT.sts) { |
| | | //308.小车迁出提升机中 ==> 309.小车迁出提升机完成 |
| | | if (Utils.getLev(shuttleProtocol.getCurrentLocNo()) != Utils.getLev(wrkMast.getLocNo())) { |
| | | continue;//小车未到达目标层 |
| | | } |
| | | wrkMast.setWrkSts(WrkStsType.MOVE_OUT_LIFT_COMPLETE.sts); |
| | | shuttleThread.setSyncTaskNo(0); |
| | | } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_SHUTTLE.sts) { |
| | |
| | | return false;//找不到站点 |
| | | } |
| | | |
| | | //判断提升机是否有其他任务(该任务需要换层必须提前独占提升机) |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftSta.getLiftNo()); |
| | | if (liftWrkMast != null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftSta.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | if (wrkMast.getLiftNo() == null) { |
| | | //判断提升机是否有其他任务(该任务需要换层必须提前独占提升机) |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftSta.getLiftNo()); |
| | | if (liftWrkMast != null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftSta.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | |
| | | wrkMast.setModiTime(now); |
| | | wrkMast.setLiftNo(liftSta.getLiftNo());//提前锁定提升机 |
| | | wrkMast.setSystemMsg("");//清空消息 |
| | | wrkMastService.updateById(wrkMast); |
| | | return false; |
| | | } |
| | | |
| | | //*************尝试锁定目标站路径*************** |
| | |
| | | |
| | | wrkMast.setWrkSts(WrkStsType.MOVE_SITE.sts);//小车移动到提升机中 301.生成小车移库任务 ==> 302.小车移动至站点 |
| | | wrkMast.setModiTime(now); |
| | | wrkMast.setLiftNo(liftSta.getLiftNo());//提前锁定提升机 |
| | | wrkMast.setSystemMsg("");//清空消息 |
| | | // shuttleProtocol.setToken(wrkMast.getWrkNo());//独占该小车令牌 |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | | //下发任务 |
| | | shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand); |
| | |
| | | List<ShuttleCommand> commands = null; |
| | | //跨楼层移动任务 |
| | | if (Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(wrkMast.getLocNo())) { |
| | | if (Utils.getLev(shuttleProtocol.getCurrentLocNo()) != Utils.getLev(wrkMast.getLocNo())) { |
| | | return false;//小车未到达目标层 |
| | | } |
| | | |
| | | //需要将前两个节点作为白名单节点传入 |
| | | List<NavigateNode> targetNodes = ForkLiftUtils.getLiftStaNodes(wrkMast.getStaNo()); |
| | | if (targetNodes == null) { |