From 091c09f4ef03d458209bce878451e0a7e667529b Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期日, 06 九月 2026 00:26:28 +0800
Subject: [PATCH] 拒绝与已有扩展测量不同的导入批次
---
battery-business/src/main/java/com/battery/business/service/impl/TestConsoleDataServiceImpl.java | 4 +++-
ruoyi-admin/src/test/java/com/battery/business/web/ConsoleSingleSheetImportDatabaseTest.java | 11 +++++++++++
2 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/battery-business/src/main/java/com/battery/business/service/impl/TestConsoleDataServiceImpl.java b/battery-business/src/main/java/com/battery/business/service/impl/TestConsoleDataServiceImpl.java
index f57eb5f..07c13c3 100644
--- a/battery-business/src/main/java/com/battery/business/service/impl/TestConsoleDataServiceImpl.java
+++ b/battery-business/src/main/java/com/battery/business/service/impl/TestConsoleDataServiceImpl.java
@@ -370,7 +370,9 @@
{
Map<String, Object> expected = JSON.parseObject(String.valueOf(left));
Map<String, Object> actual = right == null ? Map.of() : JSON.parseObject(right.toString());
- for (String field : expected.keySet()) if (!sameValue(expected.get(field), actual.get(field))) return false;
+ // 已有额外非空测量也属于内容差异;缺失与空值仍等价。
+ Set<String> fields = new HashSet<>(expected.keySet()); fields.addAll(actual.keySet());
+ for (String field : fields) if (!sameValue(expected.get(field), actual.get(field))) return false;
}
else if (!sameValue(left, right)) return false;
}
diff --git a/ruoyi-admin/src/test/java/com/battery/business/web/ConsoleSingleSheetImportDatabaseTest.java b/ruoyi-admin/src/test/java/com/battery/business/web/ConsoleSingleSheetImportDatabaseTest.java
index d2b0686..a82596b 100644
--- a/ruoyi-admin/src/test/java/com/battery/business/web/ConsoleSingleSheetImportDatabaseTest.java
+++ b/ruoyi-admin/src/test/java/com/battery/business/web/ConsoleSingleSheetImportDatabaseTest.java
@@ -196,6 +196,17 @@
assertWorkbookEmpty();
}
+ @Test void workbookRejectsExistingExtraStepMeasurementInsteadOfSkippingIt()
+ {
+ submit("STEP", List.of(row()));
+ jdbc.update("update t_test_step_record set extension_measurements_json=?", "{\"stepDuration\":3752,\"auxTemperature\":99}");
+ var sheets = Map.of("REALTIME", List.of(row()), "STEP", List.of(row()), "CYCLE", List.of(row()));
+ assertTrue(assertThrows(RuntimeException.class, () -> submitWorkbook(sheets)).getMessage().contains("冲突拒绝"));
+ assertTrue(mapper.selectImportDataRecords(1L, "REALTIME").isEmpty());
+ assertTrue(mapper.selectImportDataRecords(1L, "CYCLE").isEmpty());
+ assertEquals(1, service.selectActions(new TTestDataRevisionAction()).size());
+ }
+
private void assertWorkbookEmpty()
{
for (String type : List.of("REALTIME", "STEP", "CYCLE")) assertTrue(mapper.selectImportDataRecords(1L, type).isEmpty());
--
Gitblit v1.7.1