推式来源的工步与循环改为从采样段推导
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 上跑新查询;后端全量测试通过。