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

功能测试报告:M1-网约车 WycSplitCalc 取数/拆分核对与 7 月回归(2026-09-08)

一、功能说明

M1 第三块:新增网约车拆分计算服务 WycSplitCalc(traffic-audit-server/.../reportexport/calc/WycSplitCalc.java),把 exportWycSplit 的拆分算法抽成可复用矩阵:输入=《网约车订单及全省总量.xlsx》(pin B-E + 17 市州订单 G-W)+ 巡游出租月报(DB),输出 17 市州+全省的 客运量/城市内客运量/周转量/城市内周转量。供汇总大表网约车台账页与城市客运各页共用(口径 B5)。

二、测试环境

  • 库:traffic_audit(2026-07 现状);
  • 输入文件:docs/城市客运/模板_网约车订单及全省总量.xlsx(月度输入 sheet,2026-07 行在 openpyxl 第 8 行);
  • 对账母版:docs/生成汇总大表/_备份_2026年7月道路运输量汇总表_清理前_20260904.xlsx 网约车台账页;
  • 工具:openpyxl + mysql CLI + Python 复刻算法比对;后端 mvn -q -DskipTests compile 通过。

三、算法(与 exportWycSplit 一致)

  • C[i]=订单占比×全省网约车客运量 pinK;F[i]=巡游出租城市内客运量/客运量(城市内占比代理);
  • 城市内 H:武汉=C0×F0(保持自身);其余 = (Ci×Fi)/(ΣG−C0F0) × (pinCK−C0F0);
  • 周转量 Gl[i]=Ci×平均运距 / Σ(Ci×平均运距) × pinZ;城市内周转量 Hl 同法(用城市内平均运距、pinCZ);
  • 巡游出租平均运距缺省时按 周转量/客运量 取 2 位小数兜底。

四、用例表

# 用例 输入 预期 实际 结论
1 2026-07 拆分(17 市州×4 指标) 订单+pin+出租 DB 与母版网约车台账 O 列一致 diff=0 通过
2 全省行 pin 输入 客运量 4852.30 / 周转量 28348.02 / 城市内 4430.84 / 城市内周转 22705.61 与母版一致 通过
3 加总自洽 计算数组 ΣC=pinK、ΣH=pinCK、ΣGl=pinZ、ΣHl=pinCZ 全等 通过
4 武汉口径 计算 城市内=总量(无城际城乡),H=1825.1975、Hl=13036.3929 一致 通过
5 Java 编译 mvn -q -DskipTests compile 无错误 exit=0 通过

五、发现的问题与处置

  1. 输入文件现状名称为 模板_网约车订单及全省总量.xlsx,而 ReportExportService.exportWycSplit 仍按精确名 网约车订单及全省总量.xlsx 定位(resolveAnyTemplate 不做前缀匹配)→ 该小表生成路径当前可能报“未找到模板”。WycSplitCalc.findInput 已支持两种命名,先保证大表取数可用;小表入口的模板定位待 M4 统一接线时修正。
  2. 类名与文件名不一致曾导致 javac 失败并牵连无关文件报错(javac 错误恢复级联)→ 已统一为 WycSplitCalc.java,编译通过。

六、结论与下一步

  • 结论:网约车拆分可完整复算 7 月母版(0 差异),WycSplitCalc 已入库并通过编译。
  • 下一步:城市客运台账/城市汇总/城市分市州 7 月整链回归(公交+出租+网约+轨道轮渡组合口径 C7)→ M1-MidCalc → M2 SummaryFiller。