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

功能测试报告:中口径排名同比基数方案 A(2026-09-21)

1. 需求与方案

用户针对 2026 年 1-8 月汇总大表提出问题:

  • 「中口径排名」黄冈累计同比系统生成 7.744917%
  • 「中口径明细」同一指标为 7.641733%
  • 要求查明并修正。

按用户拍板采用**方案 A**:

  • 「中口径排名」计算去年同期累计时,不再使用库内现算的 2025 网约车拆分结果;
  • 改用母版《中口径明细》页已有的 2025 年逐月静态定稿值;
  • 2026 年当年累计值、排名公式、全省 SUM 公式和当月同比逻辑均不变;
  • 找不到母版静态列时保留原库内现算逻辑,并写 WARN 日志。

2. 实现范围

文件:traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportService.java

  • exportPassengerMidRank() 增加可选工作簿上下文重载。
  • 汇总大表导出时直接复用当前内存工作簿,读取《中口径明细》2025 年静态列。
  • 独立导出《生成_中口径排名.xlsx》时,按报表期打开对应汇总母版读取同一静态列。
  • 静态列按表头文字识别,不写死列字母。
  • 读取 17 市州「总客运量」「总旅客周转量」1..N 月值并累计;全省基数由 17 市州求和。
  • 任一市州、任一指标缺少完整月份时放弃静态基数并回退原逻辑,避免静默使用残缺基数。

3. 验证环境

  • 后端:Spring Boot 8090
  • 数据库:127.0.0.1:3305/traffic_audit
  • 报表期:2026-08
  • 母版:docs/生成汇总大表/2026年8月道路运输量汇总表.xlsx
  • 测试产物:
  • _tmp/qa_plan_a_20260921/生成_道路运输量汇总表_202608_方案A.xlsx
  • _tmp/qa_plan_a_20260921/生成_中口径排名_202608_方案A.xlsx

4. 测试结果

编号 用例 预期 实测 结果
A01 后端编译 编译成功 mvn -DskipTests compile 成功 通过
A02 2026-08 汇总大表生成 成功产出可读 xlsx 生成成功,1325107 bytes 通过
A03 黄冈客运量累计同比 排名=明细=7.641733% 排名 0.07641733462732472,明细 0.07641733462732603 通过
A04 黄冈周转量累计同比 排名=明细 排名 0.01593727813242681,明细 0.015937278132423405 通过
A05 17 市州 × 客运量/周转量累计同比 34 组逐格一致 含累计值在内共 68 个数值对全部一致,最大绝对差 2.91e-11 通过
A06 全省累计同比 排名=明细 客运量:排名 0.0581055773685379,明细 0.058105577368537276;周转量同样一致 通过
A07 全省累计值=Σ17 市州 完全相等 客运量 31528.060699999998;周转量 1227147.4890200002,均相等 通过
A08 2026-08 当月同比回归 排名=明细 34 个市州指标全部一致,最大绝对差 5.48e-15 通过
A09 独立《生成_中口径排名.xlsx》 使用同一静态基数 黄冈客运量 7.641733%、周转量 1.593728%,与明细一致 通过
A10 静态基数缺失兜底 不中断导出,回退现算并记日志 代码级检查:母版/静态列缺失返回 null,沿用原 midCumYoy() 通过

5. 结论

方案 A 已实施并完成回归。

  • 原来的 7.74% 与 7.64% 双轨差异已消除;
  • 2026-08 汇总大表中,黄冈累计同比为 7.641733%;
  • 排名页与中口径明细页的累计同比、累计值、全省汇总均一致;
  • 当月同比未发生回归;
  • 未修改任何数据库表结构或业务数据。

6. 备注

项目根目录 _tmp/qa_plan_a_20260921/ 下的测试产物按项目约定保留,未经用户同意不删除。