From bd50f1b756c1da2dbf92f6541407ad40f455e24a Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期六, 05 九月 2026 00:17:52 +0800
Subject: [PATCH] 建立厂商无关设备观测接缝

---
 battery-device-api/src/main/java/com/battery/device/model/RealtimeSnapshot.java |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/battery-device-api/src/main/java/com/battery/device/model/RealtimeSnapshot.java b/battery-device-api/src/main/java/com/battery/device/model/RealtimeSnapshot.java
index f5b971f..ede253e 100644
--- a/battery-device-api/src/main/java/com/battery/device/model/RealtimeSnapshot.java
+++ b/battery-device-api/src/main/java/com/battery/device/model/RealtimeSnapshot.java
@@ -2,6 +2,7 @@
 
 import java.math.BigDecimal;
 import java.time.Instant;
+import java.util.List;
 import java.util.Map;
 
 public record RealtimeSnapshot(
@@ -19,10 +20,28 @@
         Long relativeTimeSeconds,
         String logCode,
         Instant receivedAt,
-        Map<String, Measurement> measurements)
+        Map<String, Measurement> measurements,
+        DeviceConnectionStatus connectionStatus,
+        Instant deviceTime,
+        List<PlannedStep> plannedSteps,
+        String failureReason)
 {
+    /** 兼容已有适配器调用的实时快照构造方式。 */
+    public RealtimeSnapshot(ChannelIdentity channel, DeviceWorkStatus workStatus, Integer cycleNo, Integer stepNo,
+            String stepType, String barcode, BigDecimal currentA, BigDecimal voltageV, BigDecimal capacityAh,
+            BigDecimal energyWh, Long totalTimeSeconds, Long relativeTimeSeconds, String logCode, Instant receivedAt,
+            Map<String, Measurement> measurements)
+    {
+        this(channel, workStatus, cycleNo, stepNo, stepType, barcode, currentA, voltageV, capacityAh, energyWh,
+                totalTimeSeconds, relativeTimeSeconds, logCode, receivedAt, measurements,
+                DeviceConnectionStatus.ONLINE, null, List.of(), null);
+    }
+
     public RealtimeSnapshot
     {
         measurements = measurements == null ? Map.of() : Map.copyOf(measurements);
+        plannedSteps = plannedSteps == null ? List.of() : List.copyOf(plannedSteps);
+        connectionStatus = connectionStatus == null ? DeviceConnectionStatus.ONLINE : connectionStatus;
+        failureReason = failureReason == null || failureReason.isBlank() ? null : failureReason.trim();
     }
 }

--
Gitblit v1.7.1