| | |
| | | return false; |
| | | } |
| | | |
| | | // //检测障碍物车 |
| | | // boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ |
| | | // add(shuttleProtocol.getShuttleNo()); |
| | | // }}); |
| | | // if (checkObstacle) { |
| | | // News.info("{}任务,避障范围有小车,等待障碍小车调离中", wrkMast.getWrkNo()); |
| | | // return false; |
| | | // } |
| | | |
| | | ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); |
| | | assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 四向穿梭车编号 |
| | | assignCommand.setTaskMode(ShuttleTaskModeType.TRANSPORT.id);//小车移库任务 |
| | |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,未找到匹配的提升机", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | |
| | | //判断提升机是否有其他任务 |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftNo); |
| | | if (liftWrkMast != null) { |
| | | if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftNo); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | wrkMast.setLiftNo(liftNo); |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | | } |
| | | |
| | | ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo); |
| | |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}小车,未到达输送站点,系统等待中", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); |
| | | return false; |
| | | } |
| | | |
| | | // //检测障碍物车 |
| | | // boolean checkObstacle = shuttleOperaUtils.checkObstacle(liftSta.getLocNo(), new ArrayList<Integer>() {{ |
| | | // add(shuttleProtocol.getShuttleNo()); |
| | | // }}); |
| | | // if (checkObstacle) { |
| | | // News.info("{}任务,避障范围有小车,等待障碍小车调离中", wrkMast.getWrkNo()); |
| | | // return false; |
| | | // } |
| | | |
| | | ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); |
| | | assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 四向穿梭车编号 |
| | |
| | | //--------------------------------------提升机出库-----------------------------------------// |
| | | //103.小车搬运完成 ==> 104.提升机搬运中 |
| | | if (wrkMast.getWrkSts() == WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts) { |
| | | ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo()); |
| | | if (shuttleThread == null) { |
| | | return false; |
| | | } |
| | | ShuttleProtocol shuttleProtocol = shuttleThread.getStatus(); |
| | | if(shuttleProtocol == null) { |
| | | return false; |
| | | } |
| | | |
| | | //获取源站 |
| | | ForkLiftStaProtocol liftSta = ForkLiftUtils.getLiftStaByStaNo(wrkMast.getSourceStaNo()); |
| | | if (liftSta == null) { |
| | |
| | | return false;//找不到站点 |
| | | } |
| | | |
| | | if (shuttleProtocol.getCurrentLocNo().equals(liftSta.getLocNo())) { |
| | | //小车还在输送站点 |
| | | //获取小车待机位 |
| | | String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo()); |
| | | if(standbyLocNo == null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,获取小车待机位失败", wrkMast.getWrkNo()); |
| | | if(wrkMast.getShuttleNo() != null) { |
| | | ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo()); |
| | | if (shuttleThread == null) { |
| | | return false; |
| | | } |
| | | //调度小车去待机位 |
| | | boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo, wrkMast.getShuttleNo()); |
| | | if (!dispatchShuttle) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,小车在输送站点调度小车避让失败", wrkMast.getWrkNo()); |
| | | ShuttleProtocol shuttleProtocol = shuttleThread.getStatus(); |
| | | if(shuttleProtocol == null) { |
| | | return false; |
| | | } |
| | | |
| | | if (shuttleProtocol.getCurrentLocNo().equals(liftSta.getLocNo())) { |
| | | //小车还在输送站点 |
| | | //获取小车待机位 |
| | | String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo()); |
| | | if (standbyLocNo == null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,获取小车待机位失败", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | //调度小车去待机位 |
| | | boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo, wrkMast.getShuttleNo()); |
| | | if (!dispatchShuttle) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,小车在输送站点调度小车避让失败", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | } else { |
| | | //小车已不在输送站点位置,释放小车 |
| | | wrkMast.setShuttleNo(null);//释放小车 |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | | return false; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | if (liftSta.getHasCar()) { |
| | |
| | | return false; |
| | | } |
| | | |
| | | // //检测障碍物车 |
| | | // boolean checkObstacle = shuttleOperaUtils.checkObstacle(basShuttleCharge.getWaitLocNo(), new ArrayList<Integer>() {{ |
| | | // add(shuttleProtocol.getShuttleNo()); |
| | | // }}); |
| | | // if (checkObstacle) { |
| | | // News.info("{}任务,避障范围有小车,等待障碍小车调离中", wrkMast.getWrkNo()); |
| | | // return false; |
| | | // } |
| | | |
| | | //调度小车去待机位 |
| | | boolean dispatched = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), basShuttleCharge.getWaitLocNo(), wrkMast.getShuttleNo()); |
| | | if (!dispatched) { |
| | |
| | | return false;//路径计算失败 |
| | | } |
| | | |
| | | // //检测障碍物车 |
| | | // boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ |
| | | // add(shuttleProtocol.getShuttleNo()); |
| | | // }}); |
| | | // if (checkObstacle) { |
| | | // News.info("{}任务,避障范围有小车,等待障碍小车调离中", wrkMast.getWrkNo()); |
| | | // return false; |
| | | // } |
| | | |
| | | assignCommand.setCommands(commands); |
| | | |
| | | wrkMast.setWrkSts(WrkStsType.MOVE_SHUTTLE.sts);//小车移动到目标库位中 309.小车迁出提升机完成 ==> 310.小车移动中 |
| | |
| | | continue; |
| | | } |
| | | |
| | | List<Integer> conveyorBindLiftAllStaNo = ForkLiftUtils.getConveyorBindLiftAllStaNo(liftNo); |
| | | if (conveyorBindLiftAllStaNo.isEmpty()) { |
| | | continue; |
| | | } |
| | | |
| | | //获取入库任务 |
| | | List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .in("sta_no", liftAllStaNo) |
| | |
| | | |
| | | //获取出库任务 |
| | | List<WrkMast> outWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .in("source_sta_no", liftAllStaNo) |
| | | .eq("sta_no", conveyorBindLiftAllStaNo) |
| | | .in("wrk_sts" |
| | | , WrkStsType.NEW_OUTBOUND.sts |
| | | , WrkStsType.OUTBOUND_SHUTTLE_RUN.sts |