| | |
| | | //小车处于运行中,将标记置为true |
| | | if (shuttleProtocol.getFree() == 0) { |
| | | shuttleProtocol.setPakMk(true); |
| | | }else { |
| | | //小车处于等待确认且空闲状态,如有工作号则清空路径 |
| | | if (shuttleProtocol.getTaskNo() != 0 && shuttleProtocol.getProtocolStatusType() == ShuttleProtocolStatusType.WAITING) { |
| | | Object o = redisUtil.get("shuttle_wrk_no_" + shuttleProtocol.getTaskNo()); |
| | | if (o != null) { |
| | | ShuttleRedisCommand redisCommand = JSON.parseObject(o.toString(), ShuttleRedisCommand.class); |
| | | ShuttleAssignCommand assignCommand = redisCommand.getAssignCommand(); |
| | | NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(shuttleProtocol.getCurrentLocNo())); |
| | | navigateMapData.writeNavigateNodeToRedisMap(assignCommand.getNodes(), false);//解锁路径 |
| | | |
| | | //删除redis |
| | | redisUtil.del("shuttle_wrk_no_" + redisCommand.getWrkNo()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //将四向穿梭车状态保存至数据库 |
| | |
| | | //上一条任务未完成,禁止下发命令 |
| | | return false; |
| | | } |
| | | |
| | | //判断是否为最后一条命令且命令执行完成,抛出等待确认状态 |
| | | NyShuttleHttpCommand endCommand = commands.get(commands.size() - 1); |
| | | if (endCommand.getComplete()) { |
| | | //删除redis |
| | | redisUtil.del("shuttle_wrk_no_" + redisCommand.getWrkNo()); |
| | | |
| | | if (!assignCommand.getCharge()) { |
| | | //对主线程抛出等待确认状态waiting |
| | | shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING); |
| | | }else { |
| | | shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING_WAITING); |
| | | } |
| | | News.info("四向穿梭车任务执行下发完成等待执行结束,穿梭车号={},任务数据={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(command)); |
| | | |
| | | return false;//禁止再下发命令 |
| | | } |
| | | } |
| | | |
| | | List<NavigateNode> nextNodes = null;//下一步命令行走路径 |
| | |
| | | }else { |
| | | //已执行完成 |
| | | |
| | | //最后一段命令为移动命令,则暂缓删除redis等待清除路径时一次性删除 |
| | | //最后一段命令为不是移动命令,则删除redis |
| | | if (!command.getRequest().getBody().get("requestType").equals("move")) { |
| | | //删除redis |
| | | redisUtil.del("shuttle_wrk_no_" + redisCommand.getWrkNo()); |
| | | } |
| | | |
| | | if (!assignCommand.getCharge()) { |
| | | //对主线程抛出等待确认状态waiting |
| | | shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING); |
| | | }else { |
| | | shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING_WAITING); |
| | | } |
| | | News.info("四向穿梭车任务执行下发完成等待执行结束,穿梭车号={},任务数据={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(command)); |
| | | commandStep++; |
| | | // //最后一段命令为移动命令,则暂缓删除redis等待清除路径时一次性删除 |
| | | // //最后一段命令为不是移动命令,则删除redis |
| | | // if (!command.getRequest().getBody().get("requestType").equals("move")) { |
| | | // //删除redis |
| | | // redisUtil.del("shuttle_wrk_no_" + redisCommand.getWrkNo()); |
| | | // } |
| | | // |
| | | // if (!assignCommand.getCharge()) { |
| | | // //对主线程抛出等待确认状态waiting |
| | | // shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING); |
| | | // }else { |
| | | // shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING_WAITING); |
| | | // } |
| | | // News.info("四向穿梭车任务执行下发完成等待执行结束,穿梭车号={},任务数据={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(command)); |
| | | } |
| | | |
| | | return true; |
| | |
| | | if (checkPathIsAvailable) { |
| | | return true;//可行走 |
| | | } |
| | | return false; |
| | | }else { |
| | | boolean checkPathIsAvailable2 = NavigateUtils.checkPathIsAvailable(nextNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo())); |
| | | if (checkPathIsAvailable && checkPathIsAvailable2) { |