| | |
| | | } |
| | | |
| | | //申请取消管制 |
| | | trafficControlThread.cancelTrafficControl(shuttleNo, shuttleProtocol.getTaskNo()); |
| | | cancelTrafficControl(shuttleNo, shuttleProtocol.getTaskNo()); |
| | | |
| | | //删除redis |
| | | redisUtil.del(RedisKeyType.SHUTTLE_WORK_FLAG.key + redisCommand.getWrkNo()); |
| | | return 0;//禁止再下发命令 |
| | |
| | | |
| | | //查询是否申请管制成功 |
| | | public boolean queryTrafficControl(Integer shuttleNo, Integer taskNo) { |
| | | TrafficControlThread trafficControlThread = (TrafficControlThread) SlaveConnection.get(SlaveType.TrafficControl, 1); |
| | | if (trafficControlThread == null) { |
| | | Object object = redisUtil.get(RedisKeyType.TRAFFIC_CONTROL_SUCCESS_APPLY.key + shuttleNo + "_" + taskNo); |
| | | if (object == null) { |
| | | return false; |
| | | } |
| | | |
| | | TrafficControlDataModel trafficControlDataModel = trafficControlThread.queryTrafficControl(shuttleNo, taskNo); |
| | | if (trafficControlDataModel == null) { |
| | | return false; |
| | | return true; |
| | | } |
| | | |
| | | public boolean cancelTrafficControl(Integer shuttleNo, Integer taskNo) { |
| | | TrafficControlDataModel model = new TrafficControlDataModel(); |
| | | model.setShuttleNo(shuttleNo); |
| | | model.setTaskNo(taskNo); |
| | | redisUtil.set(RedisKeyType.TRAFFIC_CONTROL_CANCEL_LIST.key + shuttleNo + "_" + taskNo, model); |
| | | return true; |
| | | } |
| | | |
| | |
| | | //交管信息 |
| | | TRAFFIC_CONTROL_MAP("traffic_control_map"), |
| | | TRAFFIC_CONTROL_APPLY("traffic_control_apply_"), |
| | | TRAFFIC_CONTROL_SUCCESS_APPLY("traffic_control_success_apply_"), |
| | | TRAFFIC_CONTROL_REPORT_LIST("traffic_control_report_list_"), |
| | | TRAFFIC_CONTROL_CANCEL_LIST("traffic_control_cancel_list_"), |
| | | TRAFFIC_CONTROL_LOCK_APPLY("traffic_control_lock_apply_"), |
| | | TRAFFIC_CONTROL_SHUTTLE_APPLY_COUNT("traffic_control_shuttle_apply_count_"), |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | public void processCancel() { |
| | | TrafficControlThread trafficControlThread = (TrafficControlThread) SlaveConnection.get(SlaveType.TrafficControl, 1); |
| | | if (trafficControlThread == null) { |
| | | return; |
| | | } |
| | | Set<String> keys = redisUtil.searchKeys(RedisKeyType.TRAFFIC_CONTROL_CANCEL_LIST.key); |
| | | |
| | | for (String key : keys) { |
| | | TrafficControlDataModel param = (TrafficControlDataModel) redisUtil.get(key); |
| | | redisUtil.del(key); |
| | | boolean apply = trafficControlThread.cancelTrafficControl(param.getShuttleNo(), param.getTaskNo()); |
| | | } |
| | | } |
| | | |
| | | class ApplyKey{ |
| | | @Getter |
| | | String key; |
| | |
| | | operateTrafficControl(param); |
| | | |
| | | applyRecordsMap.remove(shuttleNo); |
| | | redisUtil.set(RedisKeyType.TRAFFIC_CONTROL_SUCCESS_APPLY.key + shuttleNo + "_" + taskNo, 1, 60 * 60); |
| | | News.info("receipt traffic {},{}", shuttleNo, taskNo); |
| | | return true; |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public synchronized boolean cancelTrafficControl(Integer shuttleNo, Integer taskNo) { |
| | | public boolean cancelTrafficControl(Integer shuttleNo, Integer taskNo) { |
| | | TrafficControlDataModel dataModel = queryTrafficControl(shuttleNo, taskNo); |
| | | if (dataModel == null) { |
| | | return false; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public synchronized boolean forceCancelTrafficControl(Integer shuttleNo) { |
| | | public boolean forceCancelTrafficControl(Integer shuttleNo) { |
| | | TrafficControlDataModel dataModel = queryTrafficControl(shuttleNo); |
| | | if (dataModel == null) { |
| | | return false; |