From 990384591b79897aabf3f1f3d6c2f75005e25273 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期二, 08 九月 2026 16:14:10 +0800
Subject: [PATCH] 化成报表按来源冻结详情并修正字段名称

---
 battery-business/src/main/java/com/battery/business/report/FormationReportRequest.java |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/battery-business/src/main/java/com/battery/business/report/FormationReportRequest.java b/battery-business/src/main/java/com/battery/business/report/FormationReportRequest.java
index 67190e8..361eb51 100644
--- a/battery-business/src/main/java/com/battery/business/report/FormationReportRequest.java
+++ b/battery-business/src/main/java/com/battery/business/report/FormationReportRequest.java
@@ -20,7 +20,8 @@
     public record Settings(@NotNull @Size(min = 1, max = 100) List<@NotNull @Valid FormationField> fields,
             @NotNull Map<String, @NotNull String> values,
             @NotNull Map<String, @NotNull Integer> chargeStepSelections,
-            List<@NotNull String> metrics, Map<String, @NotNull String> seriesColors)
+            List<@NotNull String> metrics, Map<String, @NotNull String> seriesColors,
+            Map<String, @Valid DetailOverride> sourceDetailOverrides)
     {
         /** 旧版缺少显隐设置时显示五类指标,不补造测量快照。 */
         public List<String> metrics() { return metrics == null ? List.of("voltage", "current", "positiveVoltage", "negativeVoltage", "temperature") : metrics; }
@@ -32,6 +33,13 @@
         public void rejectUnknown(String field, Object value) { throw new ServiceException("化成设置不允许提交属性:" + field); }
     }
 
+    /** 人工详情覆盖与来源快照分开保存,空字符串是明确填写值。 */
+    public record DetailOverride(@Size(max = 500) String experimentName, Map<String, @NotNull @Size(max = 500) String> fieldValues)
+    {
+        @JsonAnySetter
+        public void rejectUnknown(String field, Object value) { throw new ServiceException("详情调整不允许提交属性:" + field); }
+    }
+
     /** 编辑保持后端冻结来源范围,不接收替代来源或测量。 */
     public record Edit(@Positive int baseVersionNo, @NotBlank @Size(max = 100) String name,
             @Size(max = 2000) String description, @NotNull @Valid Settings settings,

--
Gitblit v1.7.1