From 147428971be43eed90a79f3849f15000d3855390 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期一, 28 九月 2026 15:15:22 +0800
Subject: [PATCH] 实现新威 7.6 直连取数与逐行接收
---
ruoyi-admin/src/main/java/com/battery/business/runtime/RedisDeviceDiscoveryCandidateStore.java | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/battery/business/runtime/RedisDeviceDiscoveryCandidateStore.java b/ruoyi-admin/src/main/java/com/battery/business/runtime/RedisDeviceDiscoveryCandidateStore.java
index 4357819..a21b4b2 100644
--- a/ruoyi-admin/src/main/java/com/battery/business/runtime/RedisDeviceDiscoveryCandidateStore.java
+++ b/ruoyi-admin/src/main/java/com/battery/business/runtime/RedisDeviceDiscoveryCandidateStore.java
@@ -129,7 +129,8 @@
object.getString("deviceCode"), object.getIntValue("devtype"), object.getIntValue("devid"),
object.getString("ip"), object.getString("mac"), object.getString("name"),
object.getString("manufacturer"), object.getString("model"), channels,
- requiredInstant(object, "observedAt"), requiredInstant(object, "expiresAt"));
+ requiredInstant(object, "observedAt"), requiredInstant(object, "expiresAt"),
+ optionalInstant(object, "lastDataAt"));
}
private ChannelCandidate channelCandidate(Object value)
@@ -141,7 +142,8 @@
identity.getIntValue("subdevid"), identity.getIntValue("chlid"));
RealtimeSnapshot latestSnapshot = object.getObject("latestSnapshot", RealtimeSnapshot.class);
return new ChannelCandidate(channelIdentity, object.getBooleanValue("online"),
- DeviceWorkStatus.valueOf(object.getString("workStatus")), requiredInstant(object, "observedAt"), latestSnapshot);
+ DeviceWorkStatus.valueOf(object.getString("workStatus")), requiredInstant(object, "observedAt"),
+ latestSnapshot, optionalInstant(object, "lastDataAt"));
}
private CollectorCandidate collectorCandidate(Object value)
@@ -161,6 +163,12 @@
return value;
}
+ /** 最近数据时间只在厂商存储来源上存在,缺失是正常取值。 */
+ private Instant optionalInstant(JSONObject object, String field)
+ {
+ return object.getObject(field, Instant.class);
+ }
+
private void save(StoredState state)
{
redisTemplate.opsForValue().set(STATE_KEY, JSON.toJSONString(state));
--
Gitblit v1.7.1