From 977f2092a0c6154ae40926511603b3d11afb86d7 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期三, 02 九月 2026 14:13:57 +0800
Subject: [PATCH] 保留导入记录并统一有效数据身份

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestDataQueryServiceImpl.java |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestDataQueryServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestDataQueryServiceImpl.java
index 51fcfb8..1c8fffb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestDataQueryServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestDataQueryServiceImpl.java
@@ -47,17 +47,32 @@
     private List<Map<String, Object>> applyEffectiveData(Long testId, String dataType,
             List<Map<String, Object>> source)
     {
+        List<Map<String, Object>> effective = new java.util.ArrayList<>(
+                source == null ? List.<Map<String, Object>>of() : source);
+        List<Map<String, Object>> imports = mapper.selectConsoleImportRecords(testId, dataType);
+        for (Map<String, Object> imported : imports == null ? List.<Map<String, Object>>of() : imports)
+        {
+            try
+            {
+                @SuppressWarnings("unchecked")
+                Map<String, Object> row = (Map<String, Object>) (Map<?, ?>) JSON.parseObject(
+                        String.valueOf(imported.get("rowValues")), Map.class);
+                row.put("stableIdentity", imported.get("stableIdentity"));
+                effective.add(row);
+            }
+            catch (RuntimeException ignored) { }
+        }
         List<TTestDataOverride> overrides = mapper.selectDataOverrides(testId, dataType);
-        if (source == null || source.isEmpty() || overrides == null || overrides.isEmpty())
-            return source == null ? List.of() : source;
+        if (effective.isEmpty() || overrides == null || overrides.isEmpty()) return effective;
         Map<String, TTestDataOverride> byIdentity = new HashMap<>();
         for (TTestDataOverride override : overrides)
             if (override != null && override.getStableIdentity() != null)
                 byIdentity.put(override.getStableIdentity(), override);
-        List<Map<String, Object>> effective = new java.util.ArrayList<>(source.size());
-        for (Map<String, Object> row : source)
+        List<Map<String, Object>> filtered = new java.util.ArrayList<>(effective.size());
+        for (Map<String, Object> row : effective)
         {
-            String identity = stableIdentity(dataType, row);
+            String identity = row.get("stableIdentity") == null ? stableIdentity(dataType, row)
+                    : String.valueOf(row.get("stableIdentity"));
             TTestDataOverride override = byIdentity.get(identity);
             if (override != null && Boolean.TRUE.equals(override.getDeleted())) continue;
             Map<String, Object> copy = new LinkedHashMap<>(row);
@@ -74,9 +89,9 @@
                     // 覆盖已由修订服务校验;解析异常时保留原始事实,避免查询整体失败。
                 }
             }
-            effective.add(copy);
+            filtered.add(copy);
         }
-        return effective;
+        return filtered;
     }
 
     private String stableIdentity(String dataType, Map<String, Object> row)

--
Gitblit v1.7.1