From 7100c8a4f7dd3fc7d53ffead4475d7a8abc51c12 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期三, 09 九月 2026 02:32:44 +0800
Subject: [PATCH] 完善循环拼接与首页待办真实数据接口

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

diff --git a/battery-business/src/main/java/com/battery/business/report/CompareReportService.java b/battery-business/src/main/java/com/battery/business/report/CompareReportService.java
index d14ac6e..f3cc618 100644
--- a/battery-business/src/main/java/com/battery/business/report/CompareReportService.java
+++ b/battery-business/src/main/java/com/battery/business/report/CompareReportService.java
@@ -49,7 +49,13 @@
         {
             TTest test = tests.selectTestById(summary.getTestId());
             if (!"COMPLETED".equals(test.getTestStatus())) continue;
-            result.addAll(candidates(test, data.records(test.getTestId())));
+            var available = candidates(test, data.records(test.getTestId()));
+            Set<String> mapped = new HashSet<>();
+            for (var item : available) if (item.selection().logicalNo() != null)
+                mapped.add(item.selection().testBatteryId() + "|" + item.selection().cycleNo());
+            // 与控制台一致:有保存的逻辑工步时,新选入口展示合并结果;旧快照仍保留原选择。
+            result.addAll(available.stream().filter(item -> item.selection().logicalNo() != null
+                    || !mapped.contains(item.selection().testBatteryId() + "|" + item.selection().cycleNo())).toList());
         }
         return result;
     }
@@ -57,7 +63,7 @@
     /** 预览所选当前有效记录;相同电池的不同循环或工步是独立比对项。 */
     public List<Item> preview(List<Selection> selections)
     {
-        if (selections == null || selections.isEmpty() || selections.contains(null)
+        if (selections == null || selections.isEmpty() || selections.stream().anyMatch(Objects::isNull)
                 || new HashSet<>(selections).size() != selections.size())
             throw new ServiceException("请选择不重复的比对项");
         Map<Long, TTest> loadedTests = new HashMap<>();

--
Gitblit v1.7.1