| | |
| | | import com.ruoyi.device.discovery.DeviceDiscoveryCandidateStore; |
| | | import com.ruoyi.device.model.ChannelIdentity; |
| | | import com.ruoyi.device.model.DeviceWorkStatus; |
| | | import com.ruoyi.device.model.RealtimeSnapshot; |
| | | |
| | | /** 保存发现候选和实时状态;条目按 expiresAt 逻辑过期,Redis key 本身不设短 TTL。 */ |
| | | @Component |
| | |
| | | ChannelIdentity channelIdentity = new ChannelIdentity(identity.getString("adapterCode"), |
| | | identity.getIntValue("devtype"), identity.getIntValue("devid"), |
| | | 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")); |
| | | DeviceWorkStatus.valueOf(object.getString("workStatus")), requiredInstant(object, "observedAt"), latestSnapshot); |
| | | } |
| | | |
| | | private CollectorCandidate collectorCandidate(Object value) |