# 所有车辆 2026-09-15~18 日里程重算 已完成全部车辆范围的四天重算,覆盖 GB32960、JT808、YUTONG_MQTT,未设置 VIN 筛选。主回补于 2026-09-18 12:55~13:09 依日期顺序执行,随后完成全量结果重建、旧基线补充修正及验证。18 日为进行中的自然日,实时统计已恢复,后续上报继续更新。 ## 范围和结果 | 日期 | 主回补写入来源统计数 | 有日统计的车辆数 | 协议日统计行数 | |---|---:|---:|---:| | 09-15 | 1,270 | 678 | 1,043 | | 09-16 | 1,270 | 657 | 1,016 | | 09-17 | 1,262 | 667 | 1,032 | | 09-18 | 1,118 | 595 | 927 | 主回补共写入 4,920 条来源统计,随后用正式投影逻辑重建四天全部 4,018 个 VIN/日期/协议结果。表中数量为验证快照,不是所有授权车辆数量;无上报车辆继续按既有规则结转或返回无数据,不伪造行驶里程。没有删除原始报文。 ## 本轮额外发现并修正的回补问题 最终检查发现沪A68019F 的 JT808 09-16 日里程被算成 11642.8 km。回补优先使用原始数据查询中的 07-13 基线 10.4 km,忽略同一终端已经持久化的 09-04 基线 11653.1 km。09-16 最新累计 11653.2,正确差值为 0.1 km。 已修改 stats-backfill:即使内存里找到了历史原始记录,JT808/MQTT 也必须与数据库同来源基线比较,采用较新的记录;保持独立终端隔离。GB32960 继续采用此前修正的车辆里程表衔接规则。 在第二份备份后,事务内修正 105 条来源记录(JT808 101、MQTT 4),重建 96 个车辆日协议结果。真实累计回退的一条来源标记为 INVALID_DELTA,未强行转为正常。再次核查剩余 5 条候选只涉及基线时间更新,旧/新日里程完全一致,均为正在实时更新的 18 日记录。 部署版本:`/opt/lingniu-go-native/releases/mileage-durable-baseline-20260918`,更新 stats-backfill 及受控修复工具。实时 Writer 沿用已验证的 GB32960 基线修正版。 ## 样本与验证 公网单日、区间分页和中台 HTTP 实测: - 粤AGH6240:09-08 GB32960 保留 0.2 km;09-15 GB32960 为 0 km,中台默认选择 JT808 的 0.1 km。 - 粤AGG5043:09-17 GB32960 为 70.7 km。 - 沪A68019F:09-16 JT808 为 0.1 km、NORMAL。 - 09-18 两台样本响应通过当日累计减前一天累计的校验;数值会随新数据变化。 相关回归测试 `go test ./cmd/stats-backfill ./cmd/mileage-baseline-repair ./internal/stats` 通过,包括原始历史较旧时采用持久化较新基线、持久化缺失时保留内存基线的场景。 数据库检查:负日里程/负累计投影 0;15~17 日日统计与选中来源的日里程差异 0。对 1,024 个车辆绑定执行开放接口 Repository 核对,单日/区间一致性结果见 api-final-15-17.json。18 日会实时变化,采用同一响应内的累计差及真实公网样本验证。 Writer readyz 正常;三协议全部 Kafka 分区 lag=0,三个 worker 重试队列均为 0。临时测试应用在验证后停用并清除车辆授权。BI 历史缓存未清理。 ## 备份与恢复 首次备份:`/opt/lingniu-go-native/backups/mileage-all-20260915-18/mileage-tables.sql.gz`,包含四天 4,017 条日统计、5,009 条来源记录;SHA-256:`dd564cef4a72fc7c8658c40dc7aa69c8f185e4c387ab313b6d10708f345b148c`。 补充修复前备份:`/opt/lingniu-go-native/backups/mileage-all-baseline-20260918/mileage-tables.sql.gz`,包含 4,018 条日统计、4,667 条来源记录;SHA-256:`120675f820f83cb7134d6841e5b5ef36f60d762ef701aa719f6f73ceef1498c8`。 两份均为限定四天、两张里程统计表的一致性快照,gzip 校验通过。恢复时先在独立库验证,避免覆盖已恢复实时写入后的新增记录。逐日日志、备份清单、部署哈希、HTTP 响应和数据库核对文件保存在本目录。历史原始累计读数未改动。