问题来源:用户核对桌面《生成_道路运输量汇总表 (1).xlsx》时,在「中口径排名」页手工加了一列
「人工-周转量」(逐月各分项相加),发现与程序生成的「周转量」列有差异(全省 +0.31978 万人公里,
各市州 ±0.01~0.08),要求定位原因并修复。
根因:同一本汇总大表里两页走了两套取数口径。
ReportExportService.loadMidClassMap() 公交维度:smReadLedgerMetrics()):先按市州按月汇总,再 合计总量 − 合计城市内。源报表里「总量/城市内/城际城乡」三个数各自保留两位小数,个别企业行上城际城乡 ≠ 总量 − 城市内(差 ±0.01)。2026 年 1-8 月这类行共 72 行,
程序采信字段值、人工用差额法,累加后即出现该差异。
修改内容:traffic-audit-server/.../reportexport/service/ReportExportService.java
(公交维度,原 2458/2460 行附近)——城际城乡一律用「总量 − 城市内」现算,与台账页/明细页/四页合成口径一致。
| 项 | 内容 |
|---|---|
| 后端 | Spring Boot,localhost:8090,改后重新编译并重启(start-dev.ps1) |
| 数据库 | MySQL localhost:3308/traffic_audit(city_bus_monthly 等) |
| 报表期 | 2026-08(1-8 月累计 + 8 月单月块) |
| 对照件 | D:\桌面\生成_道路运输量汇总表 (1).xlsx(改前生成 + 用户人工列) |
| 生成件 | 接口 /api/report/export/summaryWorkbook?period=2026-08 → _after_busfix_2026-08.xlsx |
| 辅助脚本 | _qa_busfix.py、_qa_busfix2.py、_qa_busfix3.py、_qa_busfix_diff.py、_qa_busfix_err.py、_qa_busfix_hist.py |
| 编号 | 类型 | 输入 | 预期 | 实际 | 结论 |
|---|---|---|---|---|---|
| T1 | 正向 | 改后生成件「中口径排名」O 列 vs 「中口径明细」S 列,17 市州 | 逐格相等 | 17/17 全部相等(武汉 152330.8912、孝感 64429.9445、随州 59015.4820…) | 通过 |
| T2 | 正向 | 全省累计周转量(排名页 O3) | = 明细/人工 1227147.48902 | 1227147.4888(差 −0.0002 万人公里 = 2 人公里) | 通过(差异见「五、遗留」) |
| T3 | 正向 | 武汉累计周转量 | = 人工列 152330.8912 | 152330.8912 | 通过 |
| T4 | 正向 | 8 月单月块 17 市州合计 | = 明细 8 月合计 | 均为 156017.6956 | 通过 |
| T5 | 正向 | 独立接口 passengerMidAnalysis(城际城乡公交累计周转量) |
= 台账口径 227126.74 | 227126.74(改前 227127.06) | 通过 |
| T6 | 正向 | 独立接口 passengerMidRank 全省累计周转量 |
接近 1227147.489 | 1227147.4888 | 通过 |
| T7 | 回归 | 改前/改后「中口径排名」客运量列(17 市州 + 全省) | 不变 | 完全一致 | 通过 |
| T8 | 回归 | 「中口径分析」页 累计周转量(台账口径) | 不变 | 逐格一致(1227147.48902 / 904146.38902 / 227126.74…) | 通过 |
| T9 | 回归 | 同比列(全省 −2.35%、武汉 +4.15% 等) | 不变 | 显示精度内完全一致 | 通过 |
| T10 | 回归 | 整本工作簿逐格对比改前/改后 | 仅目标格变化 | 除目标列外只出现 1e-10 级浮点噪声 | 通过 |
| T11 | 边界 | 2025 年基期(同比基数) | 不受影响 | city_bus_monthly 2025 年「存储城际城乡 ≠ 总量−城市内」行数 = 0 |
通过 |
| T12 | 边界 | 原「存储值缺失(<=0)才回退」兜底是否仍需要 | 去掉后无副作用 | 2025/2026 均无「未存城际但 总量−内>0」的行(0 行),兜底从未触发 | 通过 |
| T13 | 负向 | 源库 72 行「存储城际城乡 ≠ 总量−城市内」 | 统一按差额法 | 17 市州差值全部归零(改前:武汉 +0.04、孝感 +0.08、随州 −0.02…,全省 +0.3198) | 通过 |
| T14 | 负向 | 「班线包车」页 2020 年历史列 #VALUE! |
非本次引入 | 改前历史生成件同为 236/456 格;Excel 打开会按 fullCalcOnLoad 重算 |
通过(既有现象) |
=SUM(O4:O20),各市州先四舍五入到 4 位再求和,#VALUE!:POI 重算 2020 年同比列的既有现象,与本次改动无关,Excel 打开即自动重算。测试人:Codex(AI) 测试日期:2026-09-19