From 99935242ecccd94e76978e2b71cbc46b87d31dc6 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期五, 09 十月 2026 11:17:44 +0800
Subject: [PATCH] 推式来源的工步与循环改为从采样段推导

---
 battery-business/src/main/java/com/battery/business/service/impl/TestDataQueryServiceImpl.java |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/battery-business/src/main/java/com/battery/business/service/impl/TestDataQueryServiceImpl.java b/battery-business/src/main/java/com/battery/business/service/impl/TestDataQueryServiceImpl.java
index 4422bc8..75e70d5 100644
--- a/battery-business/src/main/java/com/battery/business/service/impl/TestDataQueryServiceImpl.java
+++ b/battery-business/src/main/java/com/battery/business/service/impl/TestDataQueryServiceImpl.java
@@ -25,7 +25,14 @@
     @Override public List<Map<String, Object>> records(Long testId)
     {
         tests.selectTestById(testId);
-        return normalizeApiTimes(mapper.selectPersistedFinalRealtimeRecords(testId));
+        List<Map<String, Object>> rows = normalizeApiTimes(mapper.selectPersistedFinalRealtimeRecords(testId));
+        for (Map<String, Object> row : rows)
+        {
+            Object extension = row.get("extensionMeasurementsJson");
+            if (extension != null) row.put("relativeTimeSeconds",
+                    com.alibaba.fastjson2.JSON.parseObject(extension.toString()).get("relativeTimeSeconds"));
+        }
+        return rows;
     }
 
     /** 查询尚存工步记录,包含设备统计与授权历史导入。 */
@@ -38,13 +45,16 @@
             Object extension = row.get("extensionMeasurementsJson");
             if (extension == null) continue;
             Map<String, Object> values = com.alibaba.fastjson2.JSON.parseObject(extension.toString());
-            for (String field : List.of("stepDuration", "startVoltage", "chargePeakVoltage", "dischargeValleyVoltage"))
+            // 中值与历史峰谷值是不同测量,不将旧扩展字段回退映射为中值。
+            // 四组容量能量是设备工步层事实:单项列无法表达未确认方向时,调用方读这四组核对。
+            for (String field : List.of("stepDuration", "startVoltage", "chargeMedianVoltage", "dischargeMedianVoltage",
+                    "chargeCapacity", "dischargeCapacity", "chargeEnergy", "dischargeEnergy"))
                 if (values.containsKey(field)) row.put(field, values.get(field));
         }
         return rows;
     }
 
-    /** 查询尚存循环记录,包含设备统计与授权历史导入。 */
+    /** 查询尚存循环记录,包含设备统计、工步层聚合与授权历史导入;携带来源类别供界面标注聚合来源。 */
     @Override public List<Map<String, Object>> cycles(Long testId)
     {
         tests.selectTestById(testId);

--
Gitblit v1.7.1