From 09e7ea0d2270acdedc37ab4338834a0c35da0611 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期日, 11 十月 2026 02:15:48 +0800
Subject: [PATCH] 搁置步的容量能量不再当该步自身值交出(与厂商库逐项核对后修)

---
 battery-device-bts/src/test/java/com/battery/device/bts/NewareBtsXmlCodecTest.java |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/battery-device-bts/src/test/java/com/battery/device/bts/NewareBtsXmlCodecTest.java b/battery-device-bts/src/test/java/com/battery/device/bts/NewareBtsXmlCodecTest.java
index 5e30636..0e4dda8 100644
--- a/battery-device-bts/src/test/java/com/battery/device/bts/NewareBtsXmlCodecTest.java
+++ b/battery-device-bts/src/test/java/com/battery/device/bts/NewareBtsXmlCodecTest.java
@@ -238,6 +238,28 @@
     }
 
     @Test
+    void leavesTheRestStepCarryOverValueOutOfTheSingleValuedColumns()
+    {
+        // 现场实测(C 那台):接口对搁置步给的是**跨步过渡值**,不是该步自身累计——
+        // 这一步给 +0.290039804444444(等于上一步充电的容量),另一处还给过 −0.178807573333333。
+        // 写成"搁置步容量 0.29 Ah"就是不成立的事实,所以搁置步的单项容量能量留空。
+        String xml = "<bts><cmd>downloadStepLayer_resp</cmd>"
+                + "<downloadStepLayer devtype=\"24\" devid=\"98\" subdevid=\"1\" chlid=\"1\" testid=\"2818576812\" />"
+                + "<list count=\"1\"><data startseqid=\"1624\" endseqid=\"1624\" stepindex=\"9\" stepid=\"7\" cycleid=\"1\""
+                + " steptype=\"rest\" steptime=\"59007400\" endatime=\"2026-08-29 08:43:06\" startvolt=\"1.2977\""
+                + " endvolt=\"1.2977\" startcurr=\"0\" endcurr=\"0\" cap=\"0.290039804444444\""
+                + " eng=\"0.468939271111111\" dcir=\"0\" /></list></bts>";
+
+        StepRecord step = codec.parseStepLayer(xml, Instant.EPOCH).get(0);
+
+        assertEquals("搁置", step.stepName());
+        assertNull(step.capacityAh());
+        assertNull(step.energyWh());
+        // 原文仍留在明细里供核对,只是不当"该步自身累计"用。
+        assertEquals(0.290039804444444, step.measurements().get("capacity").doubleValue(), 1e-15);
+    }
+
+    @Test
     void buildsTheStepLayerRequestWithoutTheOptionalElements()
     {
         String request = codec.downloadStepLayerRequest(CHANNEL);

--
Gitblit v1.7.1