修复「投资(物流园区/客运站场)」市州月报导入的 2 个问题:
1. 多 sheet 选表错误:神农架林区物流投资月报2026.08.xlsx 共 46 个 sheet(前 24 个为历史"潜江传化1月~2021.8"遗留 sheet,后 22 个为神农架真实月报 2024.10…2026.8),旧逻辑只看"8月"字样,误选历史 sheet「潜江传化8月」,读出潜江项目归属神农架 → 被市州一致性校验拒绝(导入失败)。
2. 序号为空的项目行被跳过:真数据 sheet 2026.8 中「神农架物流园」项目行序号列为空,旧解析把空序号行一律当市州小节行跳过,导致真实数据从未入库(库里只有客运「神农架枢纽站」,无「神农架物流园」)。
investSheetMatchesPeriod:支持点号报表期(2026.8/2026.08 → 归一化为连字符再匹配)。2026)时额外 +100000 分,优先选当期真实报表,历史纯月份名 sheet 无此加分。isLikelyInvestProjectName 为真 → 按项目行处理;非空非数字序号 → 跳过。isLikelyInvestProjectName:长度>4、非市州名、非备注/说明/注:/填表/审核/统计/负责开头。countInvestRows 同步支持空序号项目行计数。POST /api/import/batch(type=investmentLogistics,period=2026-08)。D:\桌面\测试数据\八月源数据\物流\神农架林区物流投资月报2026.08.xlsx、潜江2026.08.xlsx。| # | 用例 | 输入 | 预期 | 实际 | 结论 |
|---|---|---|---|---|---|
| 1 | 正向:神农架+潜江两文件批量导入 | 神农架林区物流投资月报2026.08.xlsx + 潜江2026.08.xlsx | total=2, success=2, fail=0 | total=2, success=2, fail=0,神农架林区 1 条、潜江市 1 条 | ✅ 通过 |
| 2 | 入库验证:神农架物流园项目 | — | investment_project 存在「神农架物流园」,city=神农架林区 | id=228,total_investment=7440.35,city=神农架林区,builder=国投集团交投公司 | ✅ 通过 |
| 3 | 入库验证:神农架物流园 8 月月度数据 | — | investment_monthly 2026-08 有记录 | year_plan=31,year_cum=26.1,month_done=0,start_cum=7535.45 | ✅ 通过 |
| 4 | 入库验证:潜江文件不受影响 | — | 潜江传化公路港项目 2026-08 正常 | year_plan=12000,year_cum=5173,month_done=1440 | ✅ 通过 |
| 5 | 反向对照:旧代码该场景 | 同一批文件(修复前 11:32 记录) | — | batch#170:success=1, fail=1,报「潜江传化公路港项目」市州错位 | ✅ 修复生效 |
import_batch #170(11:32:19)与 #168(11:00:56)为修复前旧逻辑的失败记录,属测试对照,不影响数据。全部用例通过。多 sheet 选表优先当期带年份 sheet、空序号项目行可正确解析、市州一致性校验不再误伤神农架文件;潜江文件解析不受影响。