yeg
5 天以前 99935242ecccd94e76978e2b71cbc46b87d31dc6
refs
用户 yeg <1347747024@qq.com>
星期五, 十月 9, 2026 11:17 +0800
提交者 yeg <1347747024@qq.com>
星期五, 十月 9, 2026 11:17 +0800
提交99935242ecccd94e76978e2b71cbc46b87d31dc6
目录 40cf8a03d90fe528bd30804584fe2ed7bf146180 目录 | zip | gz
parent e38aca8134570513435c003c25dc05f1ae51c9c9 查看 | 对比
推式来源的工步与循环改为从采样段推导

22 所的厂商库里没有工步层、也没有循环汇总表,工步号与循环号只是采样行上的两列,
此前对这类来源返回空,控制台「工步」「循环」两页永远是空的。现按 ADR-0067 从采样段推导:

- 适配器按「来源库 + 循环号 + 工步号」分段落地的采样行,只看该通道最新的来源库(= 一次厂商测试);
只有最新一段算进行中、不交出,其余各段各一条工步记录,取值来自该段末行(容量与能量是工步累计)。
- 方向由该段自己的电流符号判定(正为充电、负为放电、恒零为搁置),依据用真实推送数据核对过;
正负混用或恒零却有容量增长时保持未知,明细照留、不猜方向。
- 循环由该循环各已结束工步按方向求和,效率为放电与充电容量之比,带 source_kind = AGGREGATED;
进行中的循环整体不交。
- 接收层与前端未改:幂等、冲突、删除追溯、接收边界过滤全部复用既有路径。新增接缝方法
aggregateIntervalMillis,使工步/循环的重算按来源写库节奏(60 秒)而不跟实时行的展示节奏(5 秒)。

推导结果已用落地表里该来源的真实推送数据核对:588 个采样段无一例正负混用、组内容量从未下降、
chlid=24 得 18 个循环(充电容量 225.66~225.69、效率 91%~92.8%)、chlid=27 循环 10 充电容量 240.3047
与甲方软件界面一致。

测试:适配器契约(已结束段、进行中段不交、循环求和与跳进行中循环、混用符号段不进聚合)、
H2 上跑新查询;后端全量测试通过。
9个文件已修改
498 ■■■■■ 已修改文件
battery-business/src/main/java/com/battery/business/mapper/TDeviceIngestRecordMapper.java 10 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/service/impl/PushIngestAdapter.java 264 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/service/impl/RoutingTestDataObservationAdapter.java 16 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/service/impl/TestDataReceptionServiceImpl.java 4 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/resources/mapper/battery/TDeviceIngestRecordMapper.xml 9 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/test/java/com/battery/business/service/impl/FakeIngestLanding.java 11 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-business/src/test/java/com/battery/business/service/impl/PushIngestAdapterContractTest.java 136 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-api/src/main/java/com/battery/device/api/TestDataObservationAdapter.java 21 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/battery/business/runtime/PushIngestLandingMigrationContractTest.java 27 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史