From d064019d9f569b614b332f3229fe0528410d281b Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期三, 09 九月 2026 19:35:45 +0800
Subject: [PATCH] 更新
---
battery-business/src/main/java/com/battery/business/report/SpliceReportService.java | 18 +++++++++++++++---
1 files changed, 15 insertions(+), 3 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 1506ecc..ecd1a66 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
@@ -157,13 +157,25 @@
return result;
}
- /** 普通编辑只追加展示设置,保留原版本来源、计算原值及字段事实。 */
+ /** 普通编辑重算当前选择的来源段并追加新版本,历史版本保持冻结。 */
@Transactional
public Map<String,Object> edit(long id, SpliceReportRequest.Edit request, long uid, String user) {
var snapshot = current(id, request.baseVersionNo());
var settings = settings(request.settings(), false);
- validateStatistics(settings, segments(snapshot));
- validateSourceDetails(settings, segments(snapshot));
+ var selections = request.selections();
+ Matrix matrix;
+ if (selections == null) {
+ // 兼容既有编辑调用:未提交来源时只修改展示设置,不重新读取来源事实。
+ selections = JSON.parseArray(snapshot.getString("selections"), SpliceReportRequest.Selection.class);
+ matrix = new Matrix(segments(snapshot), snapshot.getJSONArray("cycleNos").toJavaList(Integer.class));
+ } else {
+ matrix = freeze(preview(selections), fields(settings));
+ }
+ validateStatistics(settings, matrix.segments());
+ validateSourceDetails(settings, matrix.segments());
+ snapshot.put("selections", selections);
+ snapshot.put("segments", matrix.segments());
+ snapshot.put("cycleNos", matrix.cycleNos());
snapshot.put("name", request.name().trim()); snapshot.put("description", request.description()); snapshot.put("settings", settings);
reports.append(id, request.baseVersionNo() + 1, request.name().trim(), snapshot.toJSONString(), uid, user, request.changeSummary().trim());
return get(id, null);
--
Gitblit v1.7.1