From 78f53edb9542a83d9579714cf4e1e8133fc89ee9 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期六, 05 九月 2026 19:24:13 +0800
Subject: [PATCH] 修复接收中设备离线异常的记录与展示
---
ruoyi-admin/src/test/java/com/battery/business/service/impl/TTestLiveServiceImplTest.java | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/ruoyi-admin/src/test/java/com/battery/business/service/impl/TTestLiveServiceImplTest.java b/ruoyi-admin/src/test/java/com/battery/business/service/impl/TTestLiveServiceImplTest.java
index cfb1d94..1944295 100644
--- a/ruoyi-admin/src/test/java/com/battery/business/service/impl/TTestLiveServiceImplTest.java
+++ b/ruoyi-admin/src/test/java/com/battery/business/service/impl/TTestLiveServiceImplTest.java
@@ -38,6 +38,48 @@
class TTestLiveServiceImplTest
{
@Test
+ void persistedOfflineWarningWithoutMeasurementReplacesLiveHintAndSurvivesRefresh()
+ {
+ TTest test = test("RECEIVING");
+ var mapper = mock(TTestMapper.class);
+ TTestWarningException warning = new TTestWarningException();
+ warning.setExceptionId(21L);
+ warning.setExceptionType("DEVICE_OFFLINE");
+ warning.setSourceType("CABINET_CHANNEL");
+ warning.setSourceIdentity("dev-sim:1:1:0:1");
+ warning.setMetricCode("DEVICE_ONLINE");
+ warning.setExceptionStatus("OPEN");
+ when(mapper.selectWarningExceptions(10L, "OPEN")).thenReturn(List.of(warning));
+ var service = liveService(test, Instant.now(), false, DeviceWorkStatus.WORKING, mapper);
+
+ for (int attempt = 0; attempt < 2; attempt++) {
+ var alarms = service.current(10L).exceptions();
+ assertEquals(1, alarms.size());
+ assertEquals(21L, alarms.get(0).get("exceptionId"));
+ assertEquals("DEVICE_OFFLINE", alarms.get(0).get("exceptionType"));
+ }
+ test.setReceptionStatus("PAUSED");
+ assertTrue(service.current(10L).exceptions().isEmpty());
+ test.setReceptionStatus("ENDED");
+ assertTrue(service.current(10L).exceptions().isEmpty());
+ }
+
+ @Test
+ void receivingOfflineCabinetAndCollectorAreVisibleAsOpenAlarms()
+ {
+ TTest test = test("RECEIVING");
+ test.getBatteries().get(0).setCollectorId(7L);
+ var service = liveService(test, Instant.now(), false);
+
+ var alarms = service.current(10L).exceptions();
+
+ assertEquals(2, alarms.size());
+ assertTrue(alarms.stream().allMatch(item -> "OPEN".equals(item.get("status"))));
+ assertTrue(alarms.stream().anyMatch(item -> "COLLECTOR".equals(item.get("sourceType"))));
+ assertTrue(alarms.stream().anyMatch(item -> "CABINET_CHANNEL".equals(item.get("sourceType"))));
+ }
+
+ @Test
void nonReceivingConsoleReadsCollectorStatusWithoutRequestingMeasurements() throws Exception
{
try (var simulator = new com.battery.device.simulator.BtsDevelopmentSimulator(0))
--
Gitblit v1.7.1