| 功能 | 说明 |
|---|---|
| 市州填报模板 | 新增两份市州月报模板:docs/投资/模板/模板_市州月报_客运站场.xlsx、docs/投资/模板/模板_市州月报_物流园区.xlsx;单页签「月报」17 列单行表头 + 「填报说明」页 |
| 县(市、区)列解析 | 市州单表导入新增对「县(市、区)」列的识别,写入项目主档 county(原先仅投资系统导出会写) |
| 表头行判定收紧 | findInvestHeader 增加统一的关键词判定 investHeaderKey,并要求表头行同时满足「含项目名称」+「至少 2 个短表头字段(≤20 字)」,避免把「填报说明」页的长句当作数据表 |
改动文件:traffic-audit-server/src/main/java/com/trafficaudit/dataimport/service/DataImportService.java
traffic_audit武汉市_2026-09_客运站场月报.xlsx(2 条测试项目)POST /api/import/investCityBatch?period=2026-09&category=客运站场(本地自签 JWT)investment_project / investment_monthly 逐字段与源文件比对| # | 用例 | 输入 | 预期 | 实际 | 结论 |
|---|---|---|---|---|---|
| T01 | 模板结构(客运站场) | 打开模板 | 「月报」页第 4 行 17 列表头;E 列建设性质下拉;第二个页签为填报说明且含 11 条要求 | 与预期一致 | 通过 |
| T02 | 模板结构(物流园区) | 打开模板 | 同 T01,标题为「交通物流(物流园区)」 | 与预期一致 | 通过 |
| T03 | 正向导入(2 条项目) | 按模板填报 2 条项目(含县区、批文号) | total=2、success=2、city=武汉市 | total=2、success=2、fail=0、city=武汉市 | 通过 |
| T04 | 入库抽查-主档 | 同上 | 8 个主档字段逐项等于源值 | 江岸区/测试建设单位A/新建/2026/2027/12345.67/测试工可A/测试初设A;洪山区/测试建设单位B/续建/2024/2026/20000/测试工可B/初设为空 | 通过 |
| T05 | 入库抽查-月度数 | 同上 | 6 个月度字段逐项等于源值、报表期正确 | 报告期 2026-09;1000/5000/1200/300/在建/测试形象进度A;15000/8000/6000/1500/完工/测试形象进度B | 通过 |
| T06 | 负向:说明页被当数据表(修复前) | 模板文件(含填报说明页) | 只解析「月报」页 | 失败:误解析 8 条说明页长句为项目(id 233~240),city 被文件名兜底为「武汉市」 | 已修复(见 T07) |
| T07 | 负向:说明页被当数据表(修复后) | 同 T06 | 说明页不再被识别为数据表 | 同一文件由 8 条降为 2 条正确记录,说明页 0 条 | 通过 |
| T08 | 负向:县区列写法变体 | 表头「县(市、区)」「县(市、区)」「县市区」 | 均识别为县区列 | 归一化匹配后三种写法均命中(修复前写成「县(市,区)」带逗号,均不命中) | 通过 |
| T09 | 回归:8 月真实市州文件重导 | 8 月客运 9 份、物流 16 份原始月报 | 解析条数与历史批次一致、无报错 | 客运 39 条、物流 128 条,均 fail=0(与 09-19 批次 531/532 一致) | 通过 |
| T10 | 回归:8 月月度数逐值比对 | 重导前 136 行 vs 重导后 136 行 | 逐值一致 | 去主键后逐行比对:**IDENTICAL** | 通过 |
| # | 问题 | 处置 |
|---|---|---|
| P1 | 「填报说明」页里含「项目名称」的长句被当作表头行,整页 8 条被误建成项目 | 已修:表头行判定要求「含项目名称」+「至少 2 个短表头字段(≤20 字)」;测试数据已从库中清除 |
| P2 | 县区列关键词写成 县(市,区)(逗号),实际表头是 县(市、区)(顿号),导致 county 取不到 |
已修:先归一化(全/半角括号、顿号、逗号全部去掉)再匹配「县(市区)」「县市区」「区县」 |
| P3 | 回归重导 8 月物流时,《湖北省十堰交通物流基础设施投资统计汇总表(月报)》再次带出非十堰的武汉 27 + 黄石 4 = 31 个项目 | 已再次清除(investment_project 152 / investment_monthly 284 恢复原状);根治需清理 8 月源文件,**待用户确认是否由我代做** |
| P4 | 真实市州月报表头里**没有**「县(市、区)」列(抽查 8 月 25 份文件,0 份含该列) | 属正常:历史数据 county 为空是数据源限制;9 月起按统一模板填报后该列才有值 |
| P5 | 测试用的临时文件与临时数据 | 测试文件 docs/投资/输入/客运(客运站)/9月/武汉市_2026-09_客运站场月报.xlsx、测试项目 A/B、2026-09 导入批次已全部删除 |