From 59a93bdc51766da1387b71df7ba0342e97b068e2 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期二, 08 九月 2026 23:07:08 +0800
Subject: [PATCH] 修复三类报表测试详情的独立字段持久化

---
 battery-business/src/main/java/com/battery/business/report/SpliceReportService.java |   11 +++--------
 1 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/battery-business/src/main/java/com/battery/business/report/SpliceReportService.java b/battery-business/src/main/java/com/battery/business/report/SpliceReportService.java
index 6791ab7..841f84d 100644
--- a/battery-business/src/main/java/com/battery/business/report/SpliceReportService.java
+++ b/battery-business/src/main/java/com/battery/business/report/SpliceReportService.java
@@ -256,14 +256,9 @@
   // 详情按测试电池归属;名称与分类不解释为共享字段身份、单位或设备事实。
   if (!sources.containsAll(overrides.keySet())) throw new ServiceException("详情调整不属于所选测试电池");
   for (Object value : overrides.values()) {
-   if (!(value instanceof Map<?,?> override) || !Set.of("experimentName", "fieldValues").containsAll(override.keySet())) throw new ServiceException("详情调整无效");
-   if (override.containsKey("experimentName") && (!(override.get("experimentName") instanceof String name) || name.length() > 500)) throw new ServiceException("实验名称无效");
-   if (!override.containsKey("fieldValues")) continue;
-   if (!(override.get("fieldValues") instanceof Map<?,?> values)) throw new ServiceException("详情字段格式无效");
-   for (var entry : values.entrySet()) {
-    if (!(entry.getKey() instanceof String key) || !key.matches("(?:battery|special)\\|.{1,100}")
-        || !(entry.getValue() instanceof String text) || text.length() > 500) throw new ServiceException("详情字段名称或值无效");
-   }
+   if (!(value instanceof Map<?,?> override) || !Set.of("batteryFields", "specialFields", "fieldValues").containsAll(override.keySet()))
+    throw new ServiceException("详情调整无效");
+   JSON.parseObject(JSON.toJSONString(override), ReportSourceDetail.class).validate();
   }
  }
 

--
Gitblit v1.7.1