From a04222c873e5e55f48c8d33b5c0bc46fa524ac8d Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期四, 08 十月 2026 13:20:39 +0800
Subject: [PATCH] 界面显示号改为来源自报,并给出无歧义的来源定位

---
 battery-device-api/src/main/java/com/battery/device/api/discovery/DeviceDiscoveryCandidateStore.java |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/battery-device-api/src/main/java/com/battery/device/api/discovery/DeviceDiscoveryCandidateStore.java b/battery-device-api/src/main/java/com/battery/device/api/discovery/DeviceDiscoveryCandidateStore.java
index 733965b..7bb842c 100644
--- a/battery-device-api/src/main/java/com/battery/device/api/discovery/DeviceDiscoveryCandidateStore.java
+++ b/battery-device-api/src/main/java/com/battery/device/api/discovery/DeviceDiscoveryCandidateStore.java
@@ -64,22 +64,33 @@
         }
     }
 
-    /** 通道候选;{@code lastDataAt} 是该通道来源里最近一次采样行的设备时间。 */
+    /**
+     * 通道候选;{@code lastDataAt} 是该通道来源里最近一次采样行的设备时间。
+     * {@code sourceDisplayNo} 是来源自己的通道叫法(见 {@code DetectedChannel}),
+     * 只用于界面与登记显示,不参与通道身份。
+     */
     record ChannelCandidate(ChannelIdentity identity, boolean online, DeviceWorkStatus workStatus,
-            Instant observedAt, RealtimeSnapshot latestSnapshot, Instant lastDataAt)
+            Instant observedAt, RealtimeSnapshot latestSnapshot, Instant lastDataAt, String sourceDisplayNo)
     {
         /** 兼容仅有状态的旧发现候选。 */
         public ChannelCandidate(ChannelIdentity identity, boolean online, DeviceWorkStatus workStatus,
                 Instant observedAt)
         {
-            this(identity, online, workStatus, observedAt, null, null);
+            this(identity, online, workStatus, observedAt, null, null, null);
         }
 
         /** 兼容不含最近数据时间的既有候选。 */
         public ChannelCandidate(ChannelIdentity identity, boolean online, DeviceWorkStatus workStatus,
                 Instant observedAt, RealtimeSnapshot latestSnapshot)
         {
-            this(identity, online, workStatus, observedAt, latestSnapshot, null);
+            this(identity, online, workStatus, observedAt, latestSnapshot, null, null);
+        }
+
+        /** 兼容不带来源通道叫法的既有候选。 */
+        public ChannelCandidate(ChannelIdentity identity, boolean online, DeviceWorkStatus workStatus,
+                Instant observedAt, RealtimeSnapshot latestSnapshot, Instant lastDataAt)
+        {
+            this(identity, online, workStatus, observedAt, latestSnapshot, lastDataAt, null);
         }
     }
 

--
Gitblit v1.7.1