# 功能测试报告:M1-班线包车(MidCalc 企业+个体取数)与 7 月回归(2026-09-08) ## 一、功能说明 汇总大表数据驱动改造 M1 第五块:把“班线包车页”的数据库取数固化为可复用 Java 计算服务 `MidCalc`(`traffic-audit-server/.../reportexport/calc/MidCalc.java`),输出 “月 → 市州/全省 → [客运量(含个体), 周转量(含个体), 个体客运量, 个体周转量](万人/万人公里)”。 它是中口径明细/排名/分析/道路运输周转量等派生页在数据库中唯一的公路班线数据源。 ## 二、测试环境 - 库:`traffic_audit`(127.0.0.1:3308),数据 = 2026-01~07 已导入现状; - 母版基线:`docs/生成汇总大表/_备份_2026年7月道路运输量汇总表_清理前_20260904.xlsx`(班线包车页,2026 月度数值列 C/E/G/I/K/M/O 均已缓存); - 工具:mysql CLI 取数 + Python 逐格比对(`_m1_mid_regress.py`,结果 `_m1_mid_regress.txt`);后端 `mvn -q -DskipTests compile` 通过(exit=0)。 ## 三、取数口径(经母版逐格反推确认,2026-07 与 1-7 月全部命中) | 母版行 | 口径 | 来源 | |---|---|---| | 客运量 / 旅客周转量(万人 / 万人公里) | **企业总计 + 个体并入** | `h2031_enterprise_monthly.passenger_total / turnover_total`(人/人公里)÷10000,叠加 `passenger_individual_monthly.passenger_count / turnover` ÷10000 | | 其中:个体客运量 / 个体旅客周转量 | 个体数 ÷10000 | 仅黄石/襄阳/荆门/孝感/黄冈/随州 6 市有数 | | 湖北省(全省)行 | 17 市州之和 | 与母版“全省行=Σ城市行”公式一致 | | 同比 | 不计算 | Q1:以母版缓存 2025 参照组为基准,由写回层填表时计算 | ## 四、用例表 | # | 用例 | 输入 | 预期 | 实际 | 结论 | |---|---|---|---|---|---| | 1 | 企业客运量/周转量(含个体并入) | 库 2026-01~07 | 与母版班线包车城市行“客运量/周转量”列逐格一致 | 350 格 diff=0 | 通过 | | 2 | 其中个体客运量/周转量 | 库 2026-01~07 | 与母版“其中个体”行逐格一致(6 市) | 含于上述 350 格,diff=0 | 通过 | | 3 | 湖北省行 = Σ 17 市州 | 库汇总 | 与母版公式口径一致 | 一致 | 通过 | | 4 | 中口径分析“公路班线”锚点 | 库 2026-07 / 1-7 累计 | 当月 1631.2013、累计 11204.5406(母版缓存值) | 1612.2015+18.9998=1631.2013;11062.7993+141.7413=11204.5406 | 通过 | | 5 | 中口径分析页锚点(当月/累计) | 库 2026-01~07 重算 | 当月 4028.3213、累计 27524.4906 及四类细分 | 当月 1631.2013/1466.66/509/421.46、累计 11204.5406/10194.09/3640.95/2484.91,全部一致 | 通过 | | 6 | Java 编译 | `mvn -q -DskipTests compile` | 无错误 | exit=0 | 通过 | ## 五、发现的问题与处置 1. 初版回归误把“客运量”行当作纯企业数,比对发现黄石等 6 市母版值 = 企业+个体(差量恰为该市个体值); 经逐格反推确认**班线包车“客运量/周转量”口径含个体**,“其中个体”行为其子集 → 已按含个体口径实现并复跑 0 差异。 2. 比对脚本初期把母版**文本数字**当作空值跳过(公交台账页 2026-06 M 列以文本存储,如 `'4970.63'`), 导致“累计城际城乡公交”一度误算为 8676.57、与中口径分析页 10194.09 不符(差量恰为 6 月 1517.52)。 已改为“文本→数值”归一后复算:**中口径分析页当月/累计与库重算逐项 0 差异,并非旧残值**。 实现注意:读母版缓存一律兼容文本数字。 3. 中口径排名页**左块**(A..H,无期次标题)数值经比对为陈旧错位:A 列客运量=2026-01 当月值、 E 列周转量=2026-02 当月值(17 市州逐格吻合);**右块(J..R,1-7 月累计)与库重算 0 差异**。 处置:M2 生成时左块应改为“当月 2026-07”重算修正,右块沿用现有口径即可。 ## 六、结论与下一步 - 结论:班线包车页可从库完整复算(350 格 0 差异),口径锁定;`MidCalc` 已入库并通过编译。 - 下一步:① M1 剩余派生页口径核对(排名/分析/道路运输周转量,建议随 M2 重算实现);② M2 SummaryFiller 写回台账+成品页并逐格 diff(含排名页左块“当月 2026-07”错位修正的验证);③ 8 月实弹。