yeg
6 天以前 a04222c873e5e55f48c8d33b5c0bc46fa524ac8d
refs
用户 yeg <1347747024@qq.com>
星期四, 十月 8, 2026 13:20 +0800
提交者 yeg <1347747024@qq.com>
星期四, 十月 8, 2026 13:20 +0800
提交a04222c873e5e55f48c8d33b5c0bc46fa524ac8d
目录 8aa9b5bd78f2a5bc0c05a6790d1e8e85c9d5639d 目录 | zip | gz
parent 47aece756f670dd80cf3d62be918f62a9ececf85 查看 | 对比
界面显示号改为来源自报,并给出无歧义的来源定位

现场对照发现:甲方软件按 01–30 编号,而它库里的表名 Ws<N>_IV_0 比它小 1,
所以我们的通道号比甲方软件小 1;四组记录互证(软件通道号 ↔ 它库名 ↔ 我们表名
+ 电流/容量):02↔Ws1、03↔Ws2、25↔Ws24、28↔Ws27。按 ADR-0065 补记实现
"来源自己报它的叫法",身份键不动、不迁移任何数据:

- 观测契约的发现结果新增可选 sourceDisplayNo(来源没报就为空,界面回退到
「单元-通道」,既有来源零改动);候选与 Redis 序列化宽容读取;
- 候选、登记与适配器通道列表都用它写 display_no;
- 已登记的通道会跟着刷新:发现路径同步已登记事实时只在来源报了叫法时覆盖
display_no,所以不用重新登记、不用补数据;
- 落地表新增 vendor_channel_no(迁移 V25,只加可空列);接收端点解析拓扑行里
可选的 channelNo;
- 拓扑行是声明不是设备事实,改为按来源通道 upsert(刷新叫法/载荷/接收时间,
不追加新行)——否则"来源后来才补上的叫法"永远写不进已声明过的通道;
设备数据行仍然只追加、不改写;
- 取数程序在拓扑上报里带 channelNo(表名号 + -ChannelNoOffset,默认 1,可现场
改值而不改代码),注释里写明依据。

实测:重拷脚本跑一轮后,我们通道 23 显示为 24、25 显示为 26,与甲方软件一致。

后端全量测试 373 项通过(新增 2 项:显示号规则、V25 迁移契约)。
1个文件已添加
20个文件已修改
246 ■■■■■ 已修改文件
battery-business/src/main/java/com/battery/business/domain/TDeviceIngestRecord.java 4 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/domain/vo/TDeviceIngestChannel.java 5 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/mapper/TDetectionCabinetMapper.java 7 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/mapper/TDeviceIngestRecordMapper.java 7 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/service/impl/DeviceAdapterServiceImpl.java 2 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/service/impl/DeviceDiscoveryPersistenceService.java 10 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/service/impl/DeviceIngestServiceImpl.java 9 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/service/impl/PushIngestAdapter.java 6 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/service/impl/TDetectionCabinetServiceImpl.java 17 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/resources/mapper/battery/TDetectionCabinetMapper.xml 1 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/resources/mapper/battery/TDeviceIngestRecordMapper.xml 37 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/test/java/com/battery/business/service/impl/FakeIngestLanding.java 17 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/test/java/com/battery/business/service/impl/PushIngestAdapterContractTest.java 9 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-api/src/main/java/com/battery/device/api/discovery/DeviceDiscoveryCandidateStore.java 19 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-api/src/main/java/com/battery/device/api/model/DetectedChannel.java 19 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/battery/business/runtime/RedisDeviceDiscoveryCandidateStore.java 3 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/db/migration-final/V25__ingest_vendor_channel_no.sql 5 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/battery/business/runtime/PushIngestLandingMigrationContractTest.java 30 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/battery/business/service/impl/DeviceAdapterServiceImplTest.java 7 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/battery/business/service/impl/TDetectionCabinetServiceImplTest.java 20 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
scripts/j22-collector.ps1 12 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史