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