From 68156d14934ffb7d7b6e0dca63d3dcf3ed43c995 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期六, 05 九月 2026 18:01:40 +0800
Subject: [PATCH] 修复离线设备无法发现和登记的问题
---
ruoyi-admin/src/test/java/com/battery/business/service/impl/TDetectionCabinetServiceImplTest.java | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/ruoyi-admin/src/test/java/com/battery/business/service/impl/TDetectionCabinetServiceImplTest.java b/ruoyi-admin/src/test/java/com/battery/business/service/impl/TDetectionCabinetServiceImplTest.java
index 26d0218..6a464b1 100644
--- a/ruoyi-admin/src/test/java/com/battery/business/service/impl/TDetectionCabinetServiceImplTest.java
+++ b/ruoyi-admin/src/test/java/com/battery/business/service/impl/TDetectionCabinetServiceImplTest.java
@@ -228,6 +228,23 @@
assertEquals(8, devices.get(0).getChannelCount());
}
+ @Test
+ void offlineCabinetRemainsDiscoverableAndCanBeRegistered()
+ {
+ var store = new InMemoryDeviceDiscoveryCandidateStore();
+ store.recordCabinets(List.of(candidate("CABINET-001", false, DeviceWorkStatus.UNOBSERVABLE)));
+ var service = new TDetectionCabinetServiceImpl(detectionCabinetMapper, store);
+ when(detectionCabinetMapper.selectRegisteredCabinetCodes()).thenReturn(List.of());
+ var devices = service.selectDiscoveredCabinetList();
+ assertEquals(1, devices.size());
+ assertEquals("离线", devices.get(0).getOnlineStatus());
+ when(detectionCabinetMapper.insertDetectionCabinet(any(TDetectionCabinet.class))).thenReturn(1);
+ assertEquals(1, service.insertDetectionCabinet(detectionCabinet));
+ assertEquals("OFFLINE", detectionCabinet.getOnlineStatus());
+ when(detectionCabinetMapper.selectRegisteredCabinetCodes()).thenReturn(List.of("CABINET-001"));
+ assertEquals(0, service.selectDiscoveredCabinetList().size());
+ }
+
/**
* 验证重复设备编码会阻止新增且不会执行写库操作。
*/
@@ -255,7 +272,7 @@
ServiceException exception = assertThrows(ServiceException.class,
() -> detectionCabinetService.insertDetectionCabinet(detectionCabinet));
- assertEquals("请先选择在线的发现候选设备", exception.getMessage());
+ assertEquals("请先选择有效的发现候选设备", exception.getMessage());
verify(detectionCabinetMapper, never()).insertDetectionCabinet(any());
}
--
Gitblit v1.7.1