# 功能测试报告:生成模板新版式改造(2026-09-02) > 功能:按用户手工改好的“新版式”模板(上半块「1-N月累计」+ 下半块「N月当月/单月」)调整货运、公路旅客、城市客运三类《生成_*.xlsx》报表的填充逻辑。 > 范围:只改报表生成代码与底稿引用,不涉及数据导入;代码未提交、未推送。 ## 一、功能说明(代码改动) ### 1. 公路旅客 - `生成_中口径分析.xlsx`:下半块标题(A9)动态化为「YYYY年M月中口径客运量及周转量」;数据行 R11-R15 填当月客运量/周转量(当月=N月累计−N-1月累计)与当月同比;占比公式 D/H 由指向 B$3/F$3 改为指向 B$11/F$11(当月块自身)。 - `生成_中口径排名.xlsx`:右侧当月块 K1 标题动态化「YYYY年M月全省分市州完成道路客运生产情况」;L/P 填当月值、N/R 填当月同比;左侧仍为 1-N 月累计块。 ### 2. 城市客运 - `生成_城市客运汇总.xlsx`:底部新增单月块(标题 A11,数据行 R13-R19:总客运量/总周转量、公交、出租、巡游出租、网约车=0、轨道、轮渡),填当月完成量,同比留空。 - `生成_城市客运客运量分市州累计.xlsx`、`生成_城市客运各市州明细表.xlsx`:当月块(客运量 R49-R66、周转量 R71-R88)改填当月值(当月累计差);当月块 RANK/占比/增速排名公式由复制累计块而来,改指当月块自身行;当月标题 A45/A67 动态化。 - 底稿引用修复:城市客运 6 处已删除的《导入模板_城市公交/巡游出租/轨道轮渡/城市汇总/城市分市州/各市州明细表》全部改回同名《生成_*.xlsx》(ReportExportService/Controller、一键系列包内同步);前端 DataImport.vue 城市公交/巡游出租“下载模板”链接同步改指《生成_*》。 ### 3. 货运 - `生成_货运量排名.xlsx`、`生成_周转量排名.xlsx`:R23 标题去掉“累计”字样 →「YYYY年M月全省分市州完成公路货运量/货物运输周转量情况」。 - **第二页数据改填“当月”值(2026-09-02 16:40 确认并实现)**:货运量第二页合计=模板_货运量周转量当月列(freight_mN)、规上=H2032 当月吨/1e4、规下=差值,同比取去年同月;周转量第二页直接用拆分表 MONTH 行(含当月同比字段)。 - 第二页列头“累计完成 (万吨/万吨公里)”在导出时内存替换为“当月完成”(`renameRankMonthHeader`,不改模板源文件)。 ## 二、测试环境 - 后端 8090 本地运行;数据库 mysql localhost:3308 traffic_audit。 - 数据现状:h2031(公路旅客企业月报)2026-03/07;city_bus/city_taxi 2026-06/07;h2032 2026-01~08 完整。 - 测试报表期:2026-07,mode=month。产物留档:outputs/report_check/regression_newtpl_2026-07/ ## 三、用例表 | # | 类型 | 输入 | 预期 | 实际 | 结论 | |---|---|---|---|---|---| | 1 | 正向 | passengerMidAnalysis 2026-07 | 上半块=1-7月累计,下半块=7月当月 | A1=「2026年1-7月中口径…」B3=6151.91 万人、F3=285634.95;A9=「2026年7月中口径…」B11=3078.86 万人、F11=141155.32;D12-H15 占比公式分母=B$11/F$11 | 通过 | | 2 | 正向 | passengerMidRank 2026-07 | 左块累计标题、右块当月标题与当月值 | A1=1-7月累计标题;K1=「2026年7月全省分市州完成…」;L3=3078.86(当月)与左块 B 列累计数值明显区分 | 通过 | | 3 | 正向 | cityPassengerSummary 2026-07 | 底部单月块=库内 2026-07 合计 | A11=「2026年7月全省完成城市客运量情况」;B13=30612.85、D13=218186.08;B14=12974.73(公交)、B15=5860.24(出租)、B18=11731.83(轨道)、B19=46.05(轮渡),与库内 city_bus/city_taxi 2026-07 分项合计逐位一致 | 通过 | | 4 | 正向 | cityPassengerCitySum 2026-07 | 当月块=7月当月、公式指当月行 | 当月客运量块武汉 R50:G=4218.74(公交)、L=1093.91(出租)、V=11701.74(轨道)、X=46.05(轮渡)、B=17060.44,与 DB 2026-07 一致;C/H/M/R 排名公式范围=B$50:B$66 等当月行;累计块与当月块数值区分明显 | 通过 | | 5 | 正向 | freightRank / turnoverRank 2026-07 | R23 标题无“累计”;第二页=当月值 | R23=「2026年7月…完成…」;上半块 1-7 累计不变;第二页 2026-07 当月值与库内逐项一致(见用例 11) | 通过 | | 11 | 正向 | freightRank/turnoverRank 2026-07 当月版(产出 freightRank_当月版_2026-07.xlsx / turnoverRank_当月版_2026-07.xlsx) | 第二页当月值与 DB 一致、列头=当月完成 | 货运量第二页:全省 R26 B/G/L=3754.7823/12530.9282/16285.7105、武汉 R27 B=1227.5499(DB H2032 2026-07 武汉合计 1227.5499 ✓)、L=4940.9715;周转量第二页:全省 R26=597278.64/1584647.07/2181925.71、武汉 R27=204809.5633/462751.8106/667561.3739,与 DB scale_split MONTH 行一致;B25/G25/L25 列头=“当月完成”;无错误公式 | 通过 | | 6 | 正向 | 10 个导出接口(含未动表的公交/出租/轨道轮渡明细)2026-07 | 全部可出数 | 全部 HTTP 200;全文件错误公式扫描 #REF!/#DIV/0!/#N/A = 0 残留 | 通过 | | 7 | 负向 | 无数据月份 period=2026-05(citySummary/freightRank) | 不报错、当月块留空 | HTTP 200,空表正常生成(产物 neg_citySummary_2026-05_nodata.xlsx) | 通过 | | 8 | 负向 | 年初单月 period=2026-01(freightRank) | 当月块=1月数据 | HTTP 200(产物 neg_freightRank_2026-01.xlsx) | 通过 | | 9 | 边界 | 超范围月份 period=2026-13 | 不崩、软处理 | HTTP 200 正常出文件 | 通过(宽松处理) | | 10 | 负向 | 非法报表期 period=bad-period | 友好报错或 400 | HTTP 500(无入参校验;前端为固定下拉,正常路径不可达) | 发现缺陷(低优先) | ## 四、入库抽查(与源库逐项对齐) - 城市客运汇总底部单月块:B14/D14(公交 12974.73 / 87147.68)、B15/D15(出租 5860.24 / 34236.60)、B18/D18(轨道 11731.83 / 96645.23)、B19/D19(轮渡 46.05 / 156.57)= SELECT SUM 2026-07 city_bus/city_taxi 逐项一致。 - 城市客运当月块分市州:武汉 R50 公交 4218.74、出租 1093.91 = DB 2026-07 武汉市合计;其余 16 市州公交值与 DB 逐市州一致(抽查 G 列 R50-R66)。 - 公路旅客中口径下半块 3078.86 万人 / 141155.32 万人公里 = 2026-07 当月源值(累计差口径,与既有回归口径一致)。 ## 五、发现的问题与处置 1. **货运两张排名表第二页“当月”填充(已实现并验证,2026-09-02 16:40)**:业务确认第二页要当月值后,已实现当月填充(货运量:规上=H2032 当月/合计=模板当月列/规下=差值;周转量:拆分表 MONTH 行),并把第二页列头内存替换为“当月完成”。2026-07 回归与 DB 逐项一致、无错误公式。模板源文件(docs/货运/生成_*.xlsx)本身仍写“累计完成”字样,如需源文件一并改可在 Excel 中另存(程序导出已自动显示为“当月完成”)。 2. **城市客运当月块 Q 块表头歧义(待业务确认)**:当月客运量块表头行 48 Q 列写“其中:出租”、当月周转量块表头行 70 Q 列写“其中:网约车”,程序按“网约车=0 留空”填充;需确认业务口径(已记入待确认清单)。 3. **增速/增速排名列**:E/J/O/T/W/Y 无去年同期数据时留空,其排名公式(F/K/P/U 等)保留;无去年数据时排名无业务意义,待模板口径确认后决定是否整列清空。 4. **非法 period 返回 500**:报表参数未做格式校验,前端固定下拉不可达,低优先级,建议后续统一补。 ## 六、结论 - 公路旅客、城市客运新版式改造已落地:上半“累计”+下半“当月”双块结构正确、公式范围正确、数值与库内 2026-07 数据逐项对齐,无错误公式残留 → 可用。 - 货运两张排名表第二页“当月”填充已实现并通过 2026-07 回归(与库内 H2032 / freight_turnover_import / scale_split MONTH 行逐项一致)。