Commit 24284475 authored by duanruiming's avatar duanruiming

[update] 优化过滤重复数据问题

parent 05b41154
...@@ -23,4 +23,5 @@ public class SignalDataCache { ...@@ -23,4 +23,5 @@ public class SignalDataCache {
// 海信推送灯态数据 // 海信推送灯态数据
public static final Map<String, RunningLightsStatusPojo> runningStateInfoCache = new HashMap<>(); public static final Map<String, RunningLightsStatusPojo> runningStateInfoCache = new HashMap<>();
public static final Map<String, LightsStatusVO> runningStateInfoCache4DataBrain = new HashMap<>(); public static final Map<String, LightsStatusVO> runningStateInfoCache4DataBrain = new HashMap<>();
public static final Map<String, Long> runningStatusStampMap = new HashMap<>();
} }
...@@ -54,13 +54,20 @@ public class SignalStatusServiceImpl implements SignalStatusService { ...@@ -54,13 +54,20 @@ public class SignalStatusServiceImpl implements SignalStatusService {
String hiCrossId = content.getCrossId(); String hiCrossId = content.getCrossId();
CrossInfoPO crossInfo = CrossInfoCache.getCrossInfoBySignalCode(hiCrossId); CrossInfoPO crossInfo = CrossInfoCache.getCrossInfoBySignalCode(hiCrossId);
Long signalMachineStamp = content.getSignalMachineStamp(); Long signalMachineStamp = content.getSignalMachineStamp();
Date date = new Date(); if (Objects.isNull(crossInfo)) {
long currentTime = date.getTime();
if (Objects.isNull(crossInfo) || currentTime - signalMachineStamp > 20000) {
continue; continue;
} }
log.error("推送数据演示时间:{}ms,当前系统时间:{}, 海信推送数据时间戳:{}", currentTime - signalMachineStamp, currentTime, signalMachineStamp);
String crossId = crossInfo.getId(); String crossId = crossInfo.getId();
Long lastSignalMachineStamp = SignalDataCache.runningStatusStampMap.get(crossId);
if (Objects.isNull(lastSignalMachineStamp)) {
SignalDataCache.runningStatusStampMap.put(crossId, signalMachineStamp);
} else {
if (lastSignalMachineStamp >= signalMachineStamp) {
continue;
}
SignalDataCache.runningStatusStampMap.put(crossId, signalMachineStamp);
}
log.error("推送数据时间差:{}ms, 海信推送数据时间戳:{}, 上一条数据时间戳:{}", signalMachineStamp - lastSignalMachineStamp, signalMachineStamp, lastSignalMachineStamp);
int cycleCountDown = content.getCycleCountDown(); int cycleCountDown = content.getCycleCountDown();
int hiControlMode = content.getControlMode(); int hiControlMode = content.getControlMode();
int period = content.getPeriod(); int period = content.getPeriod();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment