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

---
 battery-business/src/main/java/com/battery/business/service/impl/DeviceDiscoveryPersistenceService.java |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/battery-business/src/main/java/com/battery/business/service/impl/DeviceDiscoveryPersistenceService.java b/battery-business/src/main/java/com/battery/business/service/impl/DeviceDiscoveryPersistenceService.java
index 1fe72af..ba05f42 100644
--- a/battery-business/src/main/java/com/battery/business/service/impl/DeviceDiscoveryPersistenceService.java
+++ b/battery-business/src/main/java/com/battery/business/service/impl/DeviceDiscoveryPersistenceService.java
@@ -80,7 +80,8 @@
                 .map(item -> new CabinetCandidate(item.adapterCode(), item.adapterId(), item.deviceCode(),
                         item.devtype(), item.devid(), item.ip(), item.mac(), item.name(), item.manufacturer(), item.model(),
                         item.channels().stream().map(channel -> new ChannelCandidate(channel.identity(), false,
-                                DeviceWorkStatus.UNOBSERVABLE, failedAt, null, channel.lastDataAt())).toList(),
+                                DeviceWorkStatus.UNOBSERVABLE, failedAt, null, channel.lastDataAt(),
+                                channel.sourceDisplayNo())).toList(),
                         failedAt, item.expiresAt(), item.lastDataAt()))
                 .toList());
         detectionCabinetMapper.markRegisteredFactsUnobservable(adapterCode);
@@ -154,7 +155,10 @@
             DeviceWorkStatus workStatus = snapshot == null || snapshot.workStatus() == null
                     ? DeviceWorkStatus.UNKNOWN : snapshot.workStatus();
             detectionCabinetMapper.updateRegisteredChannelObservation(source.adapterCode(), identity.devtype(),
-                    identity.devid(), identity.subdevid(), identity.chlid(), channel.available() ? "ONLINE" : "OFFLINE",
+                    identity.devid(), identity.subdevid(), identity.chlid(),
+                    // 来源自己报了叫法就跟着刷新显示号;没报就保持原样,不去改操作员已登记的显示
+                    channel.sourceDisplayNo(),
+                    channel.available() ? "ONLINE" : "OFFLINE",
                     workStatus.name(), observedAt, successfulObservation);
             if (channel.available() && !successfulObservation)
                 detectionCabinetMapper.touchRegisteredChannelObservation(source.adapterCode(), identity.devtype(),
@@ -193,7 +197,7 @@
             DeviceWorkStatus status = snapshot == null || snapshot.workStatus() == null
                     ? DeviceWorkStatus.UNKNOWN : snapshot.workStatus();
             return new ChannelCandidate(item.identity(), item.available(), status, observedAt,
-                    snapshots.get(item.identity()), item.lastDataAt());
+                    snapshots.get(item.identity()), item.lastDataAt(), item.sourceDisplayNo());
         }).toList();
         Instant lastDataAt = channels.stream().map(DetectedChannel::lastDataAt)
                 .filter(java.util.Objects::nonNull).max(Instant::compareTo).orElse(null);

--
Gitblit v1.7.1