| | |
| | | if (lock != null) { |
| | | return; |
| | | } |
| | | int taskBufferCommandCount = countTaskBufferCommands(stationProtocol.getTaskBufferItems()); |
| | | if (taskBufferCommandCount > 0) { |
| | | News.info("输送站点任务停留超时,但缓存区仍有命令,已跳过重算。站点号={},工作号={},缓存命令数={}", |
| | | int currentTaskBufferCommandCount = countCurrentTaskBufferCommands( |
| | | stationProtocol.getTaskBufferItems(), |
| | | stationProtocol.getTaskNo() |
| | | ); |
| | | if (currentTaskBufferCommandCount > 0) { |
| | | News.info("输送站点任务停留超时,但缓存区仍存在当前任务命令,已跳过重算。站点号={},工作号={},当前任务命令数={}", |
| | | stationProtocol.getStationId(), |
| | | stationProtocol.getTaskNo(), |
| | | taskBufferCommandCount); |
| | | currentTaskBufferCommandCount); |
| | | return; |
| | | } |
| | | |
| | |
| | | redisUtil.del(key); |
| | | } |
| | | |
| | | private int countTaskBufferCommands(List<StationTaskBufferItem> taskBufferItems) { |
| | | if (taskBufferItems == null || taskBufferItems.isEmpty()) { |
| | | private int countCurrentTaskBufferCommands(List<StationTaskBufferItem> taskBufferItems, Integer currentTaskNo) { |
| | | if (taskBufferItems == null || taskBufferItems.isEmpty() || currentTaskNo == null || currentTaskNo <= 0) { |
| | | return 0; |
| | | } |
| | | int count = 0; |
| | | for (StationTaskBufferItem item : taskBufferItems) { |
| | | if (item == null) { |
| | | if (item == null || item.getTaskNo() == null) { |
| | | continue; |
| | | } |
| | | Integer taskNo = item.getTaskNo(); |
| | | Integer targetStaNo = item.getTargetStaNo(); |
| | | if ((taskNo != null && taskNo != 0) || (targetStaNo != null && targetStaNo != 0)) { |
| | | if (currentTaskNo.equals(item.getTaskNo())) { |
| | | count++; |
| | | } |
| | | } |