From c1742f5798ee8b0bad260b19760c3c43df4dd9d0 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期三, 09 九月 2026 11:06:11 +0800
Subject: [PATCH] 修正工步中值电压的保存查询与修订
---
ruoyi-admin/src/test/java/com/battery/business/service/impl/TestConsoleDataRevisionQueryServiceTest.java | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/ruoyi-admin/src/test/java/com/battery/business/service/impl/TestConsoleDataRevisionQueryServiceTest.java b/ruoyi-admin/src/test/java/com/battery/business/service/impl/TestConsoleDataRevisionQueryServiceTest.java
index 49098e6..181e2da 100644
--- a/ruoyi-admin/src/test/java/com/battery/business/service/impl/TestConsoleDataRevisionQueryServiceTest.java
+++ b/ruoyi-admin/src/test/java/com/battery/business/service/impl/TestConsoleDataRevisionQueryServiceTest.java
@@ -65,6 +65,26 @@
verify(mapper, never()).insertDataRevisionAction(any());
}
+ @Test void medianEditAuditsPreviousValuesAndPreservesLegacyFacts()
+ {
+ var action = action("EDIT", "step:7"); action.setDataType("STEP");
+ String previous = "{\"chargeMedianVoltage\":0,\"dischargeMedianVoltage\":1.1709,\"chargePeakVoltage\":1.8,\"dischargeValleyVoltage\":0.8}";
+ when(mapper.selectDataRecord(1L, "STEP", 7L)).thenReturn(Map.of("extension_measurements_json", previous));
+ var item = new DataRevisionItem(); item.setStableIdentity("step:7");
+ item.setFieldValues("{\"chargeMedianVoltage\":1.6431,\"dischargeMedianVoltage\":null}");
+ service.submitAction(action, List.of(item));
+ assertEquals(previous, JSON.parseArray(action.getBeforeContentJson()).getJSONObject(0).getString("extension_measurements_json"));
+ var before = JSON.parseArray(action.getChangesSummary()).getJSONObject(0).getJSONObject("before");
+ assertEquals(new BigDecimal("1.1709"), before.getBigDecimal("dischargeMedianVoltage"));
+ var values = org.mockito.ArgumentCaptor.forClass(Map.class);
+ verify(mapper).updateDataRecord(eq(1L), eq("STEP"), eq(7L), values.capture());
+ var extension = JSON.parseObject(values.getValue().get("extension_measurements_json").toString());
+ assertEquals(new BigDecimal("1.6431"), extension.getBigDecimal("chargeMedianVoltage"));
+ assertNull(extension.get("dischargeMedianVoltage"));
+ assertEquals(new BigDecimal("1.8"), extension.getBigDecimal("chargePeakVoltage"));
+ assertEquals(new BigDecimal("0.8"), extension.getBigDecimal("dischargeValleyVoltage"));
+ }
+
@Test void rejectsIdentityEditsAndNonNumericMeasurements()
{
when(mapper.selectDataRecord(1L, "REALTIME", 7L)).thenReturn(Map.of("voltage_v", 3.7));
--
Gitblit v1.7.1