# 功能测试报告:公路旅客报表并入个体客运(2026-09-03) ## 功能说明 按 2026-09-03 业务口径确认(《待业务用户确认清单》#1/#2/#3): - 分市州表《生成_公路旅客分市州》客运量/周转量 总行 = 企业(H2031) + 个体,其中个体行保留、只显示个体; - 中口径 明细/排名/分析 三表的 总量行、公路班线行 客运量/周转量 同样并入个体(同比同口径,无去年数据留空); - 孝感个体库内 2 行,报表层按市州合并为 1 行(不改导入去重)。 代码改动:traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportService.java - passengerMonthVal:metricIdx 0/1(客运量/周转量总行)改为 企业+个体; - loadMidClassMap:个体客运数据并入 dim1(公路班线)/dim0(总量)。 备注:本次代码未提交、未推送。 ## 测试环境 - 后端 8090(spring-boot:run);数据库 MySQL 127.0.0.1:3308/traffic_audit。 - 数据:2026-07 H2031 企业月报 771 行 + 个体客运 7 行(6 市州,其中孝感 2 行);2026-03 企业 778 行;城市公交城乡 2026-06/07 各 142 行。 - 模板:docs/公路旅客/ 下 生成_公路旅客分市州.xlsx、生成_中口径明细.xlsx 等。 - 方法:调用 /api/report/export/*?period=2026-07 生成 4 张表,与库内按市州 SQL 聚合值逐格比对(容差 0.002,格值按 4 位小数)。 ## 用例与结果 1. 分市州表 2026-07(正向):18 区域(全省+17 市州)x 客运量/周转量/其中个体 两两核对,全部一致。示例:黄石总客运量 71.2988=70.8(企业)+0.4988(个体);孝感总客运量 56.9534=54.7732+2.1802(两行合一);全省 1631.2013/113731.3141。结论 PASS。 2. 中口径明细 2026-07 客运量块(正向):班线行=企业+个体、公交行=公交城乡、总量行=班线+公交,1-6 月列逐格一致(武汉 3 月班线 326.996 等);7 月列为既有扩列空白问题,见问题 1。结论 PASS(<=6 月范围)。 3. 中口径排名 2026-07(正向):全省+17 市州 累计(1-7月)/当月 客运量、周转量共 4 列 x 18 行核对一致(如全省累计 6170.906/286093.3504、当月 3097.8613/141613.7241,均含个体)。结论 PASS。 4. 中口径分析 2026-07(正向):全省 累计/当月 总/班线/公交 客运量、周转量及占比公式核对一致(班线累计 3186.726/228737.9404、当月 1631.2013/113731.3141 含个体)。结论 PASS。 5. 回归:passengerSeries 2026-07 打包接口 200;passengerCityDetail 2026-06(无个体月份)正常生成无报错。结论 PASS。 ## 发现的问题与处置 1. 中口径明细 2026-07 至 12 月单元格与累计列不含 >6 月数据:模板扩列后新列无公式,导出逻辑只填充已有公式单元格。属既有问题(与本次个体并入改动无关),已在清单落盘,另立任务修复 extendMonthlyColumns 与明细填充。 2. 分市州模板神农架区域 A 列简写为 林区,比对脚本按别名映射后一致,非数据问题。 ## 结论 个体并入口径按业务确认实现:分市州、中口径明细/排名/分析 4 张报表数值与数据库聚合一致,无静默错位,功能通过。代码未提交未推送,待用户确认后提交。