| | |
| | | continue; |
| | | } |
| | | |
| | | // this.shuttleMoveExecuteStepClearWrkMast(wrkMast);//清理111.小车移动完成 |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand)); |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 小车迁移-清理111.小车移动完成 |
| | | */ |
| | | private boolean shuttleMoveExecuteStepClearWrkMast(WrkMast wrkMast) { |
| | | if (wrkMast.getWrkSts() == 111) { |
| | | //获取四向穿梭车线程 |
| | | NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo()); |
| | | if (shuttleThread == null) { |
| | | return false; |
| | | } |
| | | NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol(); |
| | | if (shuttleProtocol == null) { |
| | | return false; |
| | | } |
| | | |
| | | //小车处于空闲状态 |
| | | if (!shuttleProtocol.isIdleNoCharge(wrkMast.getWrkNo())) { |
| | | return false; |
| | | } |
| | | |
| | | Object o = redisUtil.get("shuttle_wrk_no_" + shuttleProtocol.getTaskNo()); |
| | | if (o != null) { |
| | | ShuttleRedisCommand redisCommand = JSON.parseObject(o.toString(), ShuttleRedisCommand.class); |
| | | ShuttleAssignCommand assignCommand = redisCommand.getAssignCommand(); |
| | | int size = assignCommand.getCommands().size(); |
| | | NyShuttleHttpCommand command = assignCommand.getCommands().get(size - 1);//获取最后一段命令 |
| | | if (!command.getComplete()) { |
| | | return false;//最后一段命令还未完成,不做操作 |
| | | } |
| | | NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(shuttleProtocol.getCurrentLocNo())); |
| | | navigateMapData.writeNavigateNodeToRedisMap(assignCommand.getNodes(), false);//解锁路径 |
| | | |
| | | //删除redis |
| | | redisUtil.del("shuttle_wrk_no_" + redisCommand.getWrkNo()); |
| | | } |
| | | |
| | | // 保存工作主档历史档 |
| | | if (wrkMastLocMapper.save(wrkMast.getWrkNo()) <= 0) { |
| | | log.info("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } |
| | | // 删除工作主档 |
| | | if (!wrkMastService.deleteById(wrkMast)) { |
| | | log.info("删除工作主档[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } |
| | | |
| | | //设置四向穿梭车为空闲状态 |
| | | shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE); |
| | | //源库位清零 |
| | | shuttleProtocol.setSourceLocNo(null); |
| | | //目标库位清零 |
| | | shuttleProtocol.setLocNo(null); |
| | | //任务指令清零 |
| | | shuttleProtocol.setAssignCommand(null); |
| | | //工作号清零 |
| | | shuttleProtocol.setTaskNo(0); |
| | | //清除令牌 |
| | | shuttleProtocol.setToken(0); |
| | | News.info("四向穿梭车已确认且移动任务完成状态,复位。四向穿梭车号={}", shuttleProtocol.getShuttleNo()); |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |