yeg
2026-09-05 bd50f1b756c1da2dbf92f6541407ad40f455e24a
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();
    }
}