From 12962e1c1c3b51123b39b40154823b0585e8a6dd Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期三, 02 九月 2026 20:48:22 +0800
Subject: [PATCH] 修正实时数据有效视图与工步归属

---
 ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TestDataQueryServiceEffectiveDataTest.java |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TestDataQueryServiceEffectiveDataTest.java b/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TestDataQueryServiceEffectiveDataTest.java
index 3755377..bc9aefa 100644
--- a/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TestDataQueryServiceEffectiveDataTest.java
+++ b/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TestDataQueryServiceEffectiveDataTest.java
@@ -88,6 +88,27 @@
         assertEquals("恒流充电", assigned.get("stepName"));
     }
 
+    @Test
+    void doesNotAssignCollectorObservationToDeletedCabinetStep()
+    {
+        when(tests.selectTestById(10L)).thenReturn(new TTest());
+        Map<String, Object> cabinet = row("sourceType", "CABINET", "batteryNo", "B-01", "cycleNo", 1,
+                "stepNo", 2, "stepName", "恒流充电", "deviceTime", Instant.parse("2026-09-02T00:00:00Z"),
+                "adapterId", 1L, "devtype", 22, "deviceId", 22L, "subdevid", 0, "channelId", 8L, "sequenceId", 1L);
+        Map<String, Object> collector = row("sourceType", "COLLECTOR", "batteryNo", "B-01", "metricCode", "temperature",
+                "deviceTime", Instant.parse("2026-09-02T00:00:01Z"), "collectorId", 3L, "channelCode", "S-01", "sequenceId", 2L);
+        when(mapper.selectPersistedRecords(10L)).thenReturn(List.of(cabinet));
+        when(mapper.selectPersistedCollectorRecords(10L)).thenReturn(List.of(collector));
+        when(mapper.selectDataOverrides(10L, "REALTIME")).thenReturn(List.of(
+                override("1:22:22:0:8:1", null, true)));
+
+        List<Map<String, Object>> result = new TestDataQueryServiceImpl(mapper, tests).records(10L);
+
+        Map<String, Object> assigned = result.stream().filter(item -> "COLLECTOR".equals(item.get("sourceType"))).findFirst().orElseThrow();
+        assertTrue(!assigned.containsKey("stepNo"));
+        assertTrue(!assigned.containsKey("cycleNo"));
+    }
+
     private static TTestDataOverride override(String identity, String values, boolean deleted)
     {
         TTestDataOverride result = new TTestDataOverride();

--
Gitblit v1.7.1