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/model/DetectedChannel.java |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/battery-device-api/src/main/java/com/battery/device/api/model/DetectedChannel.java b/battery-device-api/src/main/java/com/battery/device/api/model/DetectedChannel.java
index d955ad3..62647b1 100644
--- a/battery-device-api/src/main/java/com/battery/device/api/model/DetectedChannel.java
+++ b/battery-device-api/src/main/java/com/battery/device/api/model/DetectedChannel.java
@@ -6,18 +6,31 @@
  * 发现结果中的一个通道。
  * {@code lastDataAt} 是来源里最近一次采样行的设备时间;它是"最近是否有新采样行写入"这一条依据的取值,
  * 与设备结束时间或通道水位线列无关。来源不提供该事实时保持为空。
+ *
+ * <p>{@code sourceDisplayNo} 是**来源自己的叫法**(通常是它自己软件里显示的通道号,也可能是文本):
+ * 各厂商给通道编号的方式不同(新威按「单元-通道」,22 所按它界面上的 01–30),
+ * 由来源在发现结果里报出来,界面与登记就用它显示,操作员才能拿它跟厂商软件对上。
+ * 来源不提供时保持为空,界面回退到身份里的「单元-通道」。
+ * 它只是展示名,**不参与通道身份**(身份始终是设备的存储事实),所以改它不需要迁移任何数据。
  */
 public record DetectedChannel(ChannelIdentity identity, String serverIp, boolean available,
-        DetectedDeviceMetadata deviceMetadata, Instant lastDataAt)
+        DetectedDeviceMetadata deviceMetadata, Instant lastDataAt, String sourceDisplayNo)
 {
     public DetectedChannel(ChannelIdentity identity, String serverIp, boolean available)
     {
-        this(identity, serverIp, available, DetectedDeviceMetadata.empty(), null);
+        this(identity, serverIp, available, DetectedDeviceMetadata.empty(), null, null);
     }
 
     public DetectedChannel(ChannelIdentity identity, String serverIp, boolean available,
             DetectedDeviceMetadata deviceMetadata)
     {
-        this(identity, serverIp, available, deviceMetadata, null);
+        this(identity, serverIp, available, deviceMetadata, null, null);
+    }
+
+    /** 兼容不带来源叫法的既有适配器。 */
+    public DetectedChannel(ChannelIdentity identity, String serverIp, boolean available,
+            DetectedDeviceMetadata deviceMetadata, Instant lastDataAt)
+    {
+        this(identity, serverIp, available, deviceMetadata, lastDataAt, null);
     }
 }

--
Gitblit v1.7.1