# 汇总表问题汇总(2026-09-17) > 覆盖用户当日提出的 5 项:汇总表问题总结 / 8月数据缺失与排名不对 / 投资预安排导出为空 / 报表生成加两张投资明细表 / 数据查看调整。 > 证据文件均可在仓库 `_qa_out/` 下复现(临时目录,已 gitignore)。 --- ## 一、汇总大表(生成_道路运输量汇总表_2026-08.xlsx,19 个页签)的问题 ### 1.1 当月数据「没有 8 月」——确定是生成逻辑问题,不是数据没导 数据库里 8 月源数据是齐的: | 表 | 2026-08 行数 | |---|---| | h2031_enterprise_monthly(公路旅客/中口径源) | 767 | | city_bus_monthly | 142 | | passenger_individual_monthly | 6 | | h2032_enterprise_monthly(货运) | 636 | | investment_monthly | 168 | 但导出件里这些页签的 8 月列是空的: | 页签 | 现象 | 证据 | |---|---|---| | **中口径明细** | 表头有 `Q3=2026年8月`,整列为空;累计 S5=27524.49 = 1~7 月之和 | `_qa_out/cmp_mid_2026.txt` | | **城市客运** | 全部行停在 1~7 月(全省累计 237412.33 = 7 月的值) | `_qa_out/dump_city08.txt` | | 公交 / 出租 / 网约车 | **市州行**有 8 月值,**全省行** 8 月列空白 | 同上 | | 城市分市州 | 市州行更新到 8 月,**全省行**停在 237412.33(7 月值) | `_qa_out/cmp_rank_city.txt` | | 中口径排名 | 市州行更新到 8 月,**全省行**与 7 月导出完全相同 | 同上 | ### 1.2 根因(代码位置) 1. `SummaryWorkbookFiller.fillMonthlyLedger()`(`traffic-audit-server/.../reportexport/calc/SummaryWorkbookFiller.java:50`) 只主动回填 **班线包车 / 公交 / 出租 / 轨道轮渡 / 货运 / 网约车** 六页,而且 `fillCityRows()` 用「A 列市州名」定位行, `cityOf()` 识别不到「全省」行 → **全省行永远不填**。 2. **城市客运页、中口径明细页根本不在回填范围内** → 只能沿用母版。8 月母版是拿 7 月的另存的,8 月列本来就是空的, 所以整页停在 1~7 月;累计列公式也没有按 8 月扩列。 3. 中口径排名独立生成器 `ReportExportService.exportPassengerMidRank()`(同文件 :2485): - 全省行 `B3/F3/L3/P3` 在模板里是 `=SUM(B4:B20)`,而 `setValOrBlank()` 遇到公式单元格直接 `return`,且该方法**不调用 `recalc(wb)`** → 全省行一直显示模板里的旧缓存值(27524.4906 / 4028.3213)。 - 全省行同比列写的却是「库内全省」口径(`midClassVal(湖北省)`),与 `SUM(17市州)` 口径不一致 → 排名页「数据不对」。 4. 独立导出件 `passengerMidDetail`(生成_公路旅客中口径明细.xlsx)另有口径错误: 1 月全省总客运量 2864.57(= 班线+公交,**少了出租+网约车**),7/8 月为 0,累计 18300.77; 而汇总大表中口径明细 1 月是 3733.79(含出租+网约车)。 原因:`loadMidClassMap()`(:2313)只装了「公路班线」「城际城乡公交」两维,**没有装巡游出租、网约车**。 ### 1.3 修复方向(待确认后实施) - `loadMidClassMap()` 补 `city_taxi_monthly`(城际城乡巡游出租)与网约车城际城乡口径,两处口径统一。 - `fillMonthlyLedger()` 增加「城市客运」「中口径明细」两页回填;`fillCityRows()`/全省行补齐(全省 = 17 市州之和,或改用客运口径的全省值)。 - `exportPassengerMidRank()` 全省行改为写数值(或写入后调用 `recalc`),并统一同比口径。 --- ## 二、投资《全省预安排计划进度情况汇总》导出为空 ### 2.1 第一层原因:导出的是 **7 月**,不是 8 月 用户桌面文件 `D:\桌面\生成数据\生成_全省预安排计划进度情况汇总 (1).xls`(今天 15:16)与本地用 `period=2026-07` 调 `/api/report/export/investPlan` 导出的文件 **字节完全相同**: ``` SHA256 桌面件 = B38F90F35FEF7CF6C667D7EE68C79D6BC160E3706C70DEBDDB993914D4AD88E6 SHA256 7月导出 = B38F90F35FEF7CF6C667D7EE68C79D6BC160E3706C70DEBDDB993914D4AD88E6 ``` 佐证:该文件表头写的是 `1-7月累计完成投资`,合计行 `H6=2106760.05 / I6=1188542.01 / J6=310523.2 / W6=123170.96` 正好等于库内 2026-07 的合计 (2026-07:start_cum 1188542.01、year_plan 310523.2、year_cum 123170.96)。 用 2026-08 重新导出的文件(164,864 B)表头为 `1-8月累计完成投资`,合计 `H6=11108628.86 / I6=3218801.57 / J6=1273968.2 / W6=744262.86`,与库一致 → **月份选对就正常**。 ### 2.2 第二层原因:即使月份对了,这些列也只能是空的 `模板_全省预安排计划进度情况汇总.xls` 有 28 列,导出只能填 16 列。逐列对比(`_qa_out/cmp_8月_vs_母版.txt`): | 空列 | 表头 | 原因 | |---|---|---| | C | 县(市、区) | `investment_project.county` **184 个项目全为 NULL** → 导入没抓这一列(源表里是有的,可修) | | K / L / M | 部资金 / 省资金 / 企业及地方自筹 | 数据库**无此字段**,`DataImportService.findInvestHeader()` 未映射 | | O / P / Q | 2026年建议计划(合计/部省投资/主要建设内容) | 同上,无字段 | | R / S / T | 2027年建议计划(合计/部省投资/主要建设内容) | 同上,无字段 | | Y / Z | 省补资金 / 项目备注 | 同上,无字段 | 另有 2 处**语义错位**(不是空,是填错了格): - N 列(模板=「2026年计划-计划进度」)被写成了 `progress_desc`(形象进度长文本); - X 列(模板=「实际进度」,母版是"在建/完工")项目行写 `progress_stage`、**合计行却写完成率比例**(0.3967 / 0.5842)。 见 `ReportExportService.fillInvestPlanProjectRow()` :5059 与 `writeInvestAggHssf()` :5263。 ### 2.3 结论 预安排汇总「很多指标空白」= 三件事叠加: 1. 导出时月份选成了 7 月(文件里能直接看出来); 2. 导入没抓 C 列(县市区)——可修; 3. 资金来源、建议计划、省补资金、备注这 4 类字段**数据库从建表起就没有**,不补表结构/导入映射永远填不上。 --- ## 三、投资《X月物流站场投资明细》《X月客运站投资明细表》(报表生成界面新增) 模板已存在: - `docs/投资/模板/模板_X月客运站投资明细表.xlsx`(明细 + 汇总两页,按市州分「一、使用交通部车购税资金建设项目/二、使用省燃油税返还资金建设项目/三、农村综合运输服务站/四、候车亭」四块) - `docs/投资/模板/模板_X月物流站场投资明细.xls`(月2 省表 + 分项目投资完成情况 + 分市州规划内外项目完成情况 + 第 4 页) **阻断点:导入把「分组行」丢掉了。** `DataImportService` :2465 明确跳过 `^[一二三四五六七八九十]+、.*` 的行,而这两张表恰恰要靠这行决定项目落在哪个资金渠道/规划内外块。 `docs/投资/输出/格式探测_2026-07.tsv` 显示源文件里这些分组行是存在的(如 `R12 | 一、使用交通部车购税资金建设项目`)。 要落地必须先做 3 步: 1. `investment_project` 增列 `fund_channel`(资金渠道/分组标签),实体加字段; 2. 导入时不再跳过分组行,改为记录「当前分组」并写到其后的项目上; 3. 重新导入 7 月、8 月数据后,再写这两张表的生成器(按市州 + 分组动态插行、重连汇总页公式)。 > 说明:在没有 `fund_channel` 之前强行生成,只能把所有项目塞进某个块里,与母版口径不符,故先不做。 --- ## 四、数据查看页调整(已改代码) - `traffic-audit-web/src/views/DataView.vue`:把**报表期**从「数据类型」后面移到**前面**;新增「投资」「能耗」两个分组 (投资:投资项目基础表 / 市州月报项目进度 / 投资系统每月导入项目表;能耗:车辆能耗季度数据 / 能耗运政车辆数)。 - `traffic-audit-server/.../dataimport/controller/DataViewController.java`:新增 `investmentMonthly`、`investmentProject`、 `investmentSystem`、`energyVehicle`、`energyAuth` 五类查询与列定义;`mvn -o compile` 通过。 - **状态**:代码已改并编译通过,但**尚未重启后端**,所以 8090 上还是旧逻辑;重启后生效。 --- ## 五、其他注意点 - 汇总大表母版:`docs/生成汇总大表/2026年8月道路运输量汇总表.xlsx` 存在;但 `_备份_2026年8月…` 同期备份母版**不存在**, 日志会打 `WARN 汇总工作簿未找到同期备份母版`,这也是这些页签 8 月不齐的一个背景因素。 - 中口径排名的「全省 ≠ 17 市州之和」(1~8 月:27524.49 vs 24481.74),属于**口径问题**,需要业务确认全省到底按哪个口径取。