From 1eafc84ff7546fcd51d1f2884c77400b75529e3b Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期三, 02 九月 2026 13:57:57 +0800
Subject: [PATCH] 对齐测试控制台当前有效数据

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestConsoleDataServiceImpl.java |   41 ++++-------------------------------------
 1 files changed, 4 insertions(+), 37 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestConsoleDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestConsoleDataServiceImpl.java
index 4655e0d..d82d7e4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestConsoleDataServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TestConsoleDataServiceImpl.java
@@ -4,7 +4,6 @@
 import java.util.List;
 import java.util.Set;
 import java.util.Map;
-import java.util.ArrayList;
 import java.util.HashSet;
 import com.alibaba.fastjson2.JSON;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -114,42 +113,8 @@
                 mapper.upsertDataOverride(item);
             }
         }
-        if ("DELETE".equals(action.getOperationType()) && overrides != null)
-        {
-            List<Long> resolvedIds = new ArrayList<>();
-            for (TTestDataOverride item : overrides)
-            {
-                Long[] identity = parseDeleteIdentity(item.getStableIdentity(), action.getDataType());
-                if (identity == null) throw new ServiceException("删除数据稳定身份无效");
-                switch (action.getDataType())
-                {
-                    case "REALTIME" -> {
-                        Long sampleId = mapper.selectBtsSampleIdByDeviceChannelSequence(action.getTestId(),
-                                identity[0], identity[1], identity[2]);
-                        if (sampleId != null) resolvedIds.add(sampleId);
-                    }
-                    case "STEP" -> resolvedIds.addAll(mapper.selectBtsSampleIdsByDeviceChannelStep(action.getTestId(),
-                            identity[0], identity[1], identity[2].intValue(), identity[3].intValue()));
-                    case "CYCLE" -> resolvedIds.addAll(mapper.selectBtsSampleIdsByDeviceChannelCycle(action.getTestId(),
-                            identity[0], identity[1], identity[2].intValue()));
-                    default -> throw new ServiceException("控制台数据类型无效");
-                }
-            }
-            if (!resolvedIds.isEmpty())
-            {
-                resolvedIds = new ArrayList<>(new HashSet<>(resolvedIds));
-                // 工步和循环是采样聚合视图,物理删除需在同一事务内清理对应底层采样。
-                mapper.deleteBtsMeasurementsBySampleIds(resolvedIds);
-                mapper.deleteBtsSamplesByIds(action.getTestId(), resolvedIds);
-            }
-        }
-        if (btsSampleIds != null && !btsSampleIds.isEmpty())
-        {
-            // 采样明细受外键保护,必须在主采样物理删除前清理。
-            mapper.deleteBtsMeasurementsBySampleIds(btsSampleIds);
-            mapper.deleteBtsSamplesByIds(action.getTestId(), btsSampleIds);
-        }
-        if (collectorSampleIds != null && !collectorSampleIds.isEmpty()) mapper.deleteCollectorSamplesByIds(action.getTestId(), collectorSampleIds);
+        // 删除仅写入 deleted 覆盖,保留设备原始采样和采集器事实供追溯。
+        // btsSampleIds/collectorSampleIds 保留在接口中兼容旧调用方,但不再执行物理删除。
         return action.getActionId();
     }
 
@@ -196,6 +161,8 @@
 
     private void validateOverride(TTestDataOverride item, String operation, String dataType)
     {
+        if ("DELETE".equals(operation) && parseDeleteIdentity(item.getStableIdentity(), dataType) == null)
+            throw new ServiceException("删除数据稳定身份无效");
         if (!"EDIT".equals(operation) || item.getFieldValues() == null || item.getFieldValues().isBlank()) return;
         try
         {

--
Gitblit v1.7.1