From 3d781111a5289987fdda13ce45bcfcabad207644 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期二, 01 九月 2026 00:48:33 +0800
Subject: [PATCH] 实现控制台数据修订导入删除

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TTestController.java |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TTestController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TTestController.java
index 5146d8a..e111730 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TTestController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TTestController.java
@@ -21,7 +21,10 @@
 import com.ruoyi.system.domain.TTest;
 import com.ruoyi.system.domain.TTestResult;
 import com.ruoyi.system.domain.TTestLogicStepMapping;
+import com.ruoyi.system.domain.TTestDataRevisionAction;
+import com.ruoyi.system.domain.TTestDataOverride;
 import com.ruoyi.system.service.ITTestService;
+import com.ruoyi.system.service.ITestConsoleDataService;
 
 /** 测试管理 Controller。 */
 @RestController
@@ -30,6 +33,9 @@
 {
     @Autowired
     private ITTestService testService;
+
+    @Autowired
+    private ITestConsoleDataService consoleDataService;
 
     @PreAuthorize("@ss.hasAnyPermi('system:test:add,system:test:edit')")
     @GetMapping("/options")
@@ -147,6 +153,36 @@
         return success(testService.selectTestById(testId));
     }
 
+    /** 返回当前测试某类数据的人工覆盖和删除状态,供刷新后恢复展示。 */
+    @PreAuthorize("@ss.hasPermi('system:test:query')")
+    @GetMapping("/{testId}/console-data/{dataType}/overrides")
+    public AjaxResult dataOverrides(@PathVariable Long testId, @PathVariable String dataType)
+    {
+        return success(consoleDataService.selectOverrides(testId, dataType));
+    }
+
+    /** 一次提交编辑、导入或删除;服务端只追加一条修订行为。 */
+    @PreAuthorize("@ss.hasPermi('system:test:edit')")
+    @Log(title = "测试控制台数据修订", businessType = BusinessType.UPDATE)
+    @PostMapping("/{testId}/console-data/actions")
+    public AjaxResult dataAction(@PathVariable Long testId, @RequestBody ConsoleDataActionRequest request)
+    {
+        if (request == null) return error("数据操作不能为空");
+        TTestDataRevisionAction action = new TTestDataRevisionAction();
+        action.setTestId(testId); action.setDataType(request.dataType()); action.setOperationType(request.operationType());
+        action.setScopeSummary(request.scopeSummary()); action.setIdentitySummary(request.identitySummary());
+        action.setChangesSummary(request.changesSummary()); action.setReason(request.reason());
+        action.setOperatorId(getUserId()); action.setOperatorName(getUsername());
+        Long actionId = consoleDataService.submitAction(action,
+                request.overrides() == null ? java.util.Collections.emptyList() : request.overrides(),
+                request.btsSampleIds(), request.collectorSampleIds());
+        return success().put("actionId", actionId);
+    }
+
+    public record ConsoleDataActionRequest(String dataType, String operationType, String scopeSummary,
+            String identitySummary, String changesSummary, String reason, List<TTestDataOverride> overrides,
+            List<Long> btsSampleIds, List<Long> collectorSampleIds) { }
+
     @PreAuthorize("@ss.hasPermi('system:test:remove')")
     @Log(title = "测试管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{testIds}")

--
Gitblit v1.7.1