|
|
|
@ -153,6 +153,8 @@ public class F10Service { |
|
|
|
long receivedCurrentTs = parseToTimestamp(f10JournalLog.getReceiveDate(), f10JournalLog.getReceiveTime()); |
|
|
|
f10JournalLog.setReceiveTimestamp(receivedCurrentTs); |
|
|
|
|
|
|
|
long sendTs = parseToTimestamp(f10JournalLog.getSendDate(), f10JournalLog.getSendTime()); |
|
|
|
|
|
|
|
String redisKey = getLatestAlarmKey(f10JournalLog.getDeviceId()); |
|
|
|
// 从 Redis 取值
|
|
|
|
String latestTsStr = redisUtils.get(redisKey); |
|
|
|
@ -169,12 +171,12 @@ public class F10Service { |
|
|
|
// ===== 判断逻辑 =====
|
|
|
|
if (latestTs == null) { |
|
|
|
// 首次
|
|
|
|
redisUtils.add(redisKey, String.valueOf(receivedCurrentTs)); |
|
|
|
redisUtils.add(redisKey, String.valueOf(sendTs)); |
|
|
|
} else { |
|
|
|
if (receivedCurrentTs > latestTs) { |
|
|
|
if (sendTs > latestTs) { |
|
|
|
// 新数据
|
|
|
|
redisUtils.add(redisKey, String.valueOf(receivedCurrentTs)); |
|
|
|
} else if (receivedCurrentTs == latestTs) { |
|
|
|
redisUtils.add(redisKey, String.valueOf(sendTs)); |
|
|
|
} else if (sendTs == latestTs) { |
|
|
|
// 重复数据 → 直接丢弃
|
|
|
|
log.warn("[F10] 重复告警, 丢弃 deviceId={}", f10JournalLog.getDeviceId()); |
|
|
|
return; |
|
|
|
|