编辑 | blame | 历史 | 原始文档

功能测试报告: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 月实弹。