docs/¹¤×÷ÈÕ½á/¹¤×÷ÈÕ½á_2026-09-17.md
@@ -164,3 +164,82 @@
2. å®¢è¿ç¼º 7 å¸‚州的缺失原因(真没项目 / æ¼æŠ¥ï¼‰ä»æœªç¡®è®¤ã€‚
3. Step1 çš„**写入侧**(按名称匹配写 6 åˆ— + æ–°å¢žé¡¹ç›®è¡Œ + æ ¡éªŒçº æ­£ + å¼¹çª— + æ—¥å¿—)尚未实现。
---
## å…«ã€æ”¶å·¥ï¼ˆStep1 å†™å…¥å‰çš„æœ€åŽä¸€çŽ¯ï¼šåŒ¹é… + æ ¡éªŒï¼‰
### 8.1 ç”¨æˆ·ç¡®è®¤ã€Œä¸ŠæœˆåŸºæ•°ã€å£å¾„:(a)
用户选定:**每月另放一份「上月」的投资系统查询结果文件**,校验等式 `本月自年初累计 = ä¸Šæœˆè‡ªå¹´åˆç´¯è®¡ + æœ¬æœˆå®Œæˆ` ç”¨å®ƒçš„ G åˆ—。程序已按此实现识别(按文件名/「时期」列自动区分本期与上月,本期缺失不影响运行、只跳过校验并提示)。
### 8.2 æ–°å¢ž `匹配与校验.py`,把 Step1 çš„三个判断全部算出
| å“ç±» | ç›®æ ‡è¡¨é¡¹ç›®è¡Œ | æºæ–‡ä»¶è¡Œ | ç²¾ç¡®åŒ¹é…ï¼ˆâ†’更新) | éœ€æ–°å¢ž | ç–‘似同一项目(→弹窗) | ç›®æ ‡è¡¨ç‹¬æœ‰ï¼ˆä¿æŒåŽŸå€¼ï¼‰ | æ•°å€¼ä¸ä¸€è‡´ |
| --- | --- | --- | --- | --- | --- | --- | --- |
| å®¢è¿ | 49 | 48 | **45** | 3 | 0 | 4 | **0** |
| ç‰©æµ | 99 | 103 | **94** | 6 | 3 | 5 | **2** |
- å˜æ›´æ¸…单:`变更清单_2026-07.tsv` å…± **148** æ¡ï¼ˆæ›´æ–° 139 + æ–°å¢ž 9)。
- **名称匹配做了三层**:精确 â†’ å®½æ¾ç­‰ä»·/≥0.90(疑似同一项目,不合并也不重复新增)→ 0.80–0.90(仍新增但提示确认)。这条规则直接来自用户口径「不能动项目名称,按市州报上来的名称比对,出现不一致就弹窗提示」。
- **物流疑似同一项目 3 ä¸ª**:`鄂湘赣商贸物流中心一期`⇄`(一期)`、`荆门北站顺洋物流基地`⇄`…基地项目`、`荆门智慧冷链物流园`⇄`…园项目` â†’ ä¸é‡å¤æ–°å¢žï¼Œç­‰äººå·¥ç¡®è®¤ã€‚
### 8.3 ä¸¤ä¸ªçœŸå®žæ•°æ®é—®é¢˜ï¼ˆéœ€ä¸šåŠ¡ç¡®è®¤ï¼‰
1. `九州通沃田国际供应链中心项目` çš„**自年初累计**:市州月报 **8000** / æŠ•资系统 **4200**,差 **−3800** â€”— è¿™æ˜¯æœ¬æœŸå”¯ä¸€çš„实质数值不一致。
2. `神农架物流园` è‡ªå¼€å§‹å»ºè®¾ç´¯è®¡ 7535.45 vs 7535.5(差 0.05,应为舍入)。
3. å¦æœ‰ 4 å¤„名称相似但**实为不同项目**(如 `郑万高铁南漳` vs `郑万高铁巴东`),已按新增处理并提示,避免误合并。
### 8.4 å¾…办(下一步)
1. **Step1 å†™å…¥ä¾§**:用 **Excel COM**(本机 Python æ—  win32com)把 `变更清单_2026-07.tsv` å†™è¿›ä¸¤å¼ æ˜Žç»†è¡¨ â€”— æ›´æ–° 6 åˆ—(H/I/J/K/L/M)、新增项目整行插入(复制相邻行格式)、校验不符按等式纠正并弹窗+记日志、输出到 `输出\2026å¹´7月\`、运行前 `_bak_` å¤‡ä»½ã€‚
2. ç¼ºã€Œä¸ŠæœˆæŠ•资系统数据表」——请每月把上月的查询结果一并放进 `docs\投资\输入\`(本期只放了 2026.7 é‚£ä»½ï¼‰ã€‚
3. å®¢è¿ç¼º 7 å¸‚州的原因(真没项目 / æ¼æŠ¥ï¼‰ä»æœªç¡®è®¤ã€‚
4. å…¬å¸ gitea ä»ä¸é€šï¼Œæœ¬åœ°é¢†å…ˆ gitea çš„æäº¤å¾…补推。
### 8.5 æµ‹è¯•报告
《功能测试报告_投资月报匹配与校验引擎_2026-09-17.md》—— M01–M09 **全部通过**。
## ä¹ã€è¿½åŠ ï¼ˆç”¨æˆ·æ ¸å®žã€Œä¹å·žé€šæ²ƒç”°ã€+ ä¸Šçº¿ã€Šå¼¹çª—提示》机制)
### 9.1 ç”¨æˆ·æ ¸å®ž â†’ å®šä½å‡ºä¸€ä¸ªçœŸ bug
- ç”¨æˆ·ï¼šã€Œ`九州通沃田国际供应链中心项目` çš„æœ¬å¹´è®¡åˆ’投资也是 8000,这个是对的」。
- å¤æ ¸åŽç¡®è®¤ï¼š**用户是对的,我错了**。源文件 `2026å¹´7月企业月报汇总(鄂州).xls` R15:
  `G=36000(总投资) H=23504(自开始建设累计) I=8000(本年计划投资) J=4200(自年初累计) K=200(本月完成)`;
  æŠ•资系统 R97 åŒæ ·æ˜¯ `F=8000 / G=4200`。原报告里「8000 vs 4200」是**取列错位**造成的假异常。
- **根因**:该表是**两级表头**——R5 ç»„表头「自年初累计完成投资(万元)」是**合并单元格 I5:K5**,
  R6 å­è¡¨å¤´ I=本年计划投资、J=合计、K=其中:本月完成投资。原解析规则「命中最靠上、命中词最短」→ æŠŠã€Œè‡ªå¹´åˆç´¯è®¡ã€å®šåˆ°äº† I åˆ—。
- åŒä¸€æ¨¡æ¿è¿˜å½±å“ï¼šå¤©é—¨ç‰©æµï¼ˆI=36835 æ˜¯æœ¬å¹´è®¡åˆ’投资,J=16177.7 æ‰æ˜¯è‡ªå¹´åˆç´¯è®¡ï¼‰ã€‚
### 9.2 ä¿®å¤ï¼šåˆå¹¶åŒºæ„ŸçŸ¥å–列
- `格式探测.py` æ–°å¢ž `sheet_merges(path)` / `merge_span(merges, row, col)`;
- `市州月报解析.py` çš„ `pick_columns` æ”¹ä¸ºï¼šå‘½ä¸­è½åœ¨è·¨å¤šåˆ—合并区时,在该区内**排除其它字段更深的子表头所占列**,只剩唯一一列才采用。
- **影响面收敛**:全量复跑 2026-07,`解析结果` ä¸Ž `变更清单` **各只有 4 è¡Œå˜åŒ–**(鄂州 3 + å¤©é—¨ 1),其余逐字不变;项目行仍是 151 è¡Œ / 27 ä¸ªæ–‡ä»¶ã€‚
### 9.3 æ–°å¢žã€Šå¼¹çª—提示》机制(用户要求:只要有不对的地方就弹窗提示)
- æ–°å¢ž `解析校验_<月>.tsv`(源文件自洽性:项目行求和 vs åˆè®¡/小计/市州行、解析状态)。
- `匹配与校验.py` å†…ç½® **14 æ¡æ£€æŸ¥è§„则**,产出 **`弹窗提示_<月>.tsv`**(级别/类型/品类/市州/项目名称/来源/详情/建议动作),并把清单置顶到《匹配校验报告》。
- çº§åˆ«ï¼š**阻断**(不能写表)/**警告**(人工确认后再写)/**提示**(仅告知)。
- è§„则文档:`docs\投资\弹窗提示规则_2026-09-17.md`(将来搬进 Java åŽç«¯æŒ‰æ­¤é€æ¡å¼¹çª—,规则不改)。
- é¡ºå¸¦ä¿®å¥½ 3 ä¸ªæ£€æŸ¥é¡¹ç¼ºé™·ï¼šã€ŒæŠ•资系统名称写法不同」漏报、「疑似同一项目」漏报(中国供销.公安)、0.05 èˆå…¥è¢«è¯¯æŠ¥ä¸ºä¸ä¸€è‡´ã€‚
### 9.4 æœ¬æœŸï¼ˆ2026-07)弹窗结果
| çº§åˆ« | æ¡æ•° | ä¸»è¦å†…容 |
| --- | --- | --- |
| é˜»æ–­ | 0 | â€” |
| è­¦å‘Š | 9 | æºæ–‡ä»¶ vs æŠ•资系统不一致 4、疑似同一项目 4、缺上月投资系统表 1 |
| æç¤º | 36 | å°†æ–°å¢žé¡¹ç›® 5、名称写法不同 5、投资系统查无此项目 15、无该市州数据 2、源文件没报的项目 2 ç­‰ |
- **回归验证(负向)**:把修复前的解析结果喂给程序,会自动弹出 **5 æ¡ã€Œç–‘似取列错位」**,命中的正是 4 ä¸ªå—影响项目 â†’ è¿™ç±» bug ä»¥åŽä¸ä¼šå†ã€Œé™é»˜é€šè¿‡ã€ã€‚
- **确定性**:连跑两次,5 ä¸ªäº§å‡ºæ–‡ä»¶ SHA256 å®Œå…¨ä¸€è‡´ã€‚
### 9.5 å¾…办
1. éœ€ä¸šåŠ¡ç¡®è®¤çš„ 9 æ¡è­¦å‘Šï¼ˆå°¤å…¶æ˜¯ `宜都供销商贸物流园` æœ¬å¹´è®¡åˆ’投资 12000 vs 1013、`麻城市农产品综合物流园` æ€»æŠ•资 35000 vs 33000)。
2. è¯·æ¯æœˆæŠŠ**上月**的投资系统查询结果也放进 `docs\投资\输入\`,否则月度等式校验一直跳过。
3. ä»å¾…确认:客运缺 8 ä¸ªå¸‚州(真没项目 / æ¼æŠ¥ï¼‰ï¼›3 å¤„名称写法不同是否同一项目。
4. Step1 å†™å…¥ä¾§ï¼ˆExcel COM å†™ä¸¤å¼ æ˜Žç»†è¡¨ï¼‰å°šæœªå¼€è·‘。