编辑 | 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 城际城乡公交/出租/网约派生页锚点 母版源页 O 列/累计列 与中口径分析缓存一致 公交当月 1466.66、出租 509、网约 421.46 全中(累计公交见问题 2) 部分命中
6 Java 编译 mvn -q -DskipTests compile 无错误 exit=0 通过

五、发现的问题与处置

  1. 初版回归误把“客运量”行当作纯企业数,比对发现黄石等 6 市母版值 = 企业+个体(差量恰为该市个体值);
    经逐格反推确认**班线包车“客运量/周转量”口径含个体**,“其中个体”行为其子集 → 已按含个体口径实现并复跑 0 差异。
  2. 母版内部不一致(非本次代码问题,记入待办):中口径分析页“累计城际城乡公交=10194.09”,
    与母版公交台账页 1-7 月城际城乡逐月求和 8676.57 不符(差 1517.52),疑为该页旧计算残值;
    当月各派生页锚点与源页一致。处置:M2 以源页(本服务+已验收的 Pax/Wyc 服务)数值重算成品页后复验。
  3. 中口径排名页当月/累计数值无法用母版源页当前数值解释(部分市州差量恒定),判定同为旧计算残值,
    随 M2 成品页重算一并核对,不在 M1 取数层处理。

六、结论与下一步

  • 结论:班线包车页可从库完整复算(350 格 0 差异),口径锁定;MidCalc 已入库并通过编译。
  • 下一步:① M1 剩余派生页口径核对(排名/分析/道路运输周转量,建议随 M2 重算实现);② M2 SummaryFiller
    写回台账+成品页并逐格 diff(含本报告问题 2/3 的修复验证);③ 8 月实弹。