功能测试报告:M1-城市客运 公交/出租/轨道轮渡 取数核对与 7 月回归(2026-09-08)
一、功能说明
M1 第二块:新增城市客运计算服务 PaxCalc(traffic-audit-server/.../reportexport/calc/PaxCalc.java),对 公交/巡游出租/轨道/轮渡 提供“月 → 市州 → [客运量,周转量,城市内客运量,城市内周转量](轨道轮渡=轨道客运量,轨道周转量,轮渡客运量,轮渡周转量)”矩阵,与既有 exportCityBusDetail / exportCityTaxiDetail / exportCityRailFerryDetail 的取数逻辑同构,供汇总大表与小表共用。
二、测试环境
- 库:
traffic_audit(127.0.0.1:3308),数据 = 2026-07 现状;
- 对账母版:
docs/生成汇总大表/_备份_2026年7月道路运输量汇总表_清理前_20260904.xlsx(含 5-7 月数据的已修正母版;2026年7月道路运输量汇总表.xlsx 为 1-4 月空骨架,不含 7 月台账列);
- 工具:mysql CLI + Python 重算 vs 母版 O 列(2026-07);后端
mvn -q -DskipTests compile 通过。
三、取数口径(与既有导出一致)
| 台账页 |
来源 |
行结构(O 列 2026-07) |
| 公交 |
city_bus_monthly 按 city 汇总 [passenger_volume,turnover,passenger_city,turnover_city] |
全省 r5-8;市州 r(9+4i)..r(12+4i)(客运量/周转量/城市内客运量/城市内周转量) |
| 出租 |
city_taxi_monthly 同字段 |
同 公交 |
| 轨道、轮渡 |
city_bus_monthly 的 rail_*/ferry_*(轨道=武汉/黄石,轮渡=武汉) |
轨道 r6/7=武汉、r8/9=黄石;轮渡 r15/16=武汉;全省=合计公式 |
| 全省 |
17 市州之和(含跨区县多行累加) |
母版全省行公式 |
四、用例表
| # |
用例 |
输入 |
预期 |
实际 |
结论 |
| 1 |
公交台账页 2026-07 |
DB 2026-07 按 city 汇总 |
与母版 O 列 18 行块(全省+17 市州×4 指标)一致 |
diff=0 |
通过 |
| 2 |
出租台账页 2026-07 |
DB 2026-07 按 city 汇总 |
同上 |
diff=0 |
通过 |
| 3 |
轨道台账页 2026-07 |
city_bus rail 字段(武汉/黄石) |
武汉 11701.74/96240.86、黄石 30.09/404.37、全省 11731.83 |
一致(0 diff) |
通过 |
| 4 |
轮渡台账页 2026-07 |
city_bus ferry 字段(武汉) |
全省=武汉=46.05(客运量) |
一致(0 diff) |
通过 |
| 5 |
Java 编译 |
mvn -q -DskipTests compile |
无错误 |
exit=0 |
通过 |
五、发现的问题与处置
- 注释内出现
rail_*/ferry_*,其中 */ 提前终止 Javadoc 块注释导致编译失败 → 改为“rail 与 ferry 字段”,编译通过(本问题仅影响注释写法,与口径无关)。
- 对账母版选择:
2026年7月…汇总表.xlsx 是 1-4 月空骨架(台账页无 5-7 月列),7 月台账数值须以 _备份_…_清理前_20260904.xlsx 为基线——已在测试环境注明,M2 回归时统一用该备份文件。
- 数据侧口径复核(无需改动):市州存在多个区县代码行,须按 city 汇总累加(与 Java 既有实现一致)。
六、结论与下一步
- 结论:公交/出租/轨道/轮渡 7 月台账可从库完整复算(0 差异),
PaxCalc 已入库并通过编译。
- 下一步:M1-网约车(WyCSplitCalc:订单×全省 pin×巡游出租拆分)→ 城市客运台账/城市汇总/城市分市州 7 月回归 → M1-MidCalc → M2 SummaryFiller 写回与逐格 diff。