zhizhijie
2026-09-17 998804b46abc98d72c7e6f62c2f4f891d625d967
docs/¹¤×÷ÈÕ½á/¹¤×÷ÈÕ½á_2026-09-17.md
@@ -89,3 +89,114 @@
- **映射表 xlsx æœªå†™å…¥**:`字段映射表_草案_2026-07.xlsx` è¢« WPS æ‰“开占用(目录下存在 `~$字段映射表_草案_2026-07.xlsx` é”æ–‡ä»¶ï¼‰ï¼Œ`PermissionError`。订正脚本 `_qa_out\patch_map.py` å·²å¤‡å¥½ï¼Œ**关闭该文件后重跑即可**(会补上 Sheet3 çš„「隐藏项核实」列、修正十堰/林区/潜江/黄石等行,Sheet6 æ›´æ–°åå °ã€æ½œæ±Ÿæž—区、襄阳、恩施黄石,并新增「隐藏行不能当过滤条件」一条)。
- å…¬å¸ gitea ä»ä¸é€šã€‚
---
## å…­ã€å‚æ™šè¿½åŠ ï¼ˆ`.et` å¯è¯»æ€§è®¢æ­£ + å¾…确认清单)
### 6.1 æ ¸å®žã€Œä»“库里 4 ä¸ªè¢«æ”¹åŠ¨çš„æ–‡ä»¶ã€
用户确认要我先核实。逐个把 HEAD ç‰ˆæœ¬ä¸Žå·¥ä½œåŒºç‰ˆæœ¬åš**逐单元格比对**:
| æ–‡ä»¶ | ç»“æžœ |
| --- | --- |
| `输入\客运(客运站)\7月\2026å¹´7月站场固投(南山、汉口站).xlsx` | æ•°æ® **0 å¤„差异**(10×15 å…¨åŒï¼‰ |
| `输入\客运(客运站)\7月\襄阳市道路运输服务中心2026å¹´6月投资 (1).et` | 7 å¼ åˆ†æœˆè¡¨**逐张 0 å¤„差异** |
| `模板\模板_全省预安排计划进度情况汇总.xls` | æ•°æ® **0 å¤„差异**(272×28 å…¨åŒï¼‰ |
| `模板\模板_经济强县投资统计报表.xls` | æ•°æ® **0 å¤„差异**(45×17 å…¨åŒï¼‰ |
→ å­—节差异只是 Excel/WPS é‡æ–°ä¿å­˜é€ æˆçš„æ ¼å¼é‡å†™ï¼Œ**没有数据风险**;是否还原等用户拍板。
### 6.2 è®¢æ­£ä¸€ä¸ªé”™è¯¯åˆ¤æ–­ï¼š`.et` å…¶å®žèƒ½è¯»
之前把 `.et` å½“成「xlrd/openpyxl éƒ½è¯»ä¸äº†ï¼Œå¿…é¡» Excel COM」。实测文件头是 `D0CF11E0A1B11AE1`——**OLE2 å¤åˆæ–‡æ¡£ / BIFF8**,`xlrd` ç›´æŽ¥å°±èƒ½è¯»ï¼šè¥„阳客运 `.et` çš„ 7 å¼ åˆ†æœˆè¡¨å…¨éƒ¨è¯»å‡ºï¼ˆ`2026å¹´1月`—`2026å¹´7月 `)。已修两个工具与差异报告/核实清单/映射表,隐藏项探测覆盖由 26 ä¸ªæ–‡ä»¶æ‰©åˆ° **27/27**。
### 6.3 äº§å‡ºã€Šå¾…确认清单_2026-09-17.md》
按用户要求把开工前必须定的口径做成「勾选版」确认表(13 æ¡ï¼‰ï¼Œæ¯æ¡éƒ½ç»™çŽ°çŠ¶ + é€‰é¡¹ + æˆ‘的建议:
- **阻塞 Step1 çš„ 5 æ¡**:明细表更新哪几列、客运缺 7 å¸‚州怎么处理、校验的上月底数从哪来、潜江只有 1 ä¸ªé¡¹ç›®è¡Œã€æ­¦æ±‰ç®€è¡¨æ— å»ºè®¾é˜¶æ®µåˆ—ï¼›
- Step2/3 çš„ 4 æ¡ï¼šæ±‡æ€»è¡¨æ›´æ–°å“ªäº›åˆ—(含 `W=1-7月累计` è¡¨å¤´è¦ä¸è¦è·Ÿç€æœˆä»½æ”¹ï¼‰ã€äº¿å…ƒæŠ•资项目「3 é¡¹ã€æ˜¯å“ªä¸‰é¡¹ã€1 æœˆåŸºæ•°å–哪列、编号 3/4 æ˜¯å¦åŒä¸€ä»½æ–‡ä»¶ï¼›
- æ”¶å°¾ 4 æ¡ï¼šè¾“出目录/命名/备份、4 ä¸ªè¢«æ”¹æ–‡ä»¶æ˜¯å¦è¿˜åŽŸã€`docs\投资\` æœªæäº¤æ”¹åŠ¨æ˜¯å¦æäº¤ã€"每月是否还要做模板"(用户说要请教同事,暂缓)。
### 6.4 å¾…办
- ç­‰ç”¨æˆ·æŠŠç¡®è®¤è¡¨å‹¾å®Œ â†’ å›žå¡«æ˜ å°„表 Sheet6 â†’ ç«‹å³è½åœ° **Step1**。
---
## ä¸ƒã€æ”¶å·¥å‰è¿½åŠ ï¼ˆå£å¾„ç¡®è®¤å›žå¡« + Step1 è§£æžå¼•擎)
### 7.1 ç”¨æˆ·å‹¾å®Œ 13 æ¡ç¡®è®¤è¡¨ï¼Œå·²å›žå¡«æ˜ å°„表
映射表新增 **Sheet8「口径确认_2026-09-17」**,作为 Step1 å®žçŽ°çš„**唯一依据**:
| é¡¹ | ç”¨æˆ·ç­”复 | è½åœ°å£å¾„ |
| --- | --- | --- |
| Q1 æ˜Žç»†è¡¨æ›´æ–°å“ªå‡ åˆ— | **C** | H/I/J/K/L/M å…­åˆ—全写 |
| Q2 å®¢è¿ç¼º 7 å¸‚å·ž | **C** | è·³è¿‡ + æç¤º + ä¿ç•™ä¸Šæœˆæ•°æ® |
| Q3 ä¸Šæœˆåº•数来源 | **A** | ä»Žç³»ç»Ÿç›®æ ‡è¡¨è¯»ä¸Šæœˆå€¼ |
| Q4 æ½œæ±Ÿä»… 1 ä¸ªé¡¹ç›®è¡Œ | **A** | ç…§å¸¸å†™ |
| Q5 æ­¦æ±‰ç®€è¡¨ | ç•™ç©º | L/M ä¸¤åˆ—都留空 |
| Q6 æ±‡æ€»è¡¨ | **A** | åªæ›´ I/W/X;W è¡¨å¤´ã€Œ1-X月」随月份自动改 |
| Q7 äº¿å…ƒæŠ•资项目 | åªæ›´ F åˆ— + æ–°å¢žã€Œ2026å¹´X+1月实际完成投资」列 | Step3 æ‰§è¡Œ |
| Q8 1 æœˆåŸºæ•° | **A** | 1 æœˆ J = K(跨年清零) |
| Q9 ç¼–号 3/4 | åŒä¸€ä»½æ–‡ä»¶ï¼Œæ”¾ä¸€ä»½ | å”¯ä¸€æ–‡ä»¶ï¼š`输入\模板_查询结果(投资系统-客运+物流 2026.7).xls` |
| Q10 è¾“出目录 | è¾“出\Yå¹´Y月 | `输出\2026å¹´7月\` |
| Q11 4 ä¸ªè¢«æ”¹åŠ¨æ–‡ä»¶ | ï¼ˆç”¨æˆ·åé—®ï¼‰å·²è§£é‡Šï¼šæ•°æ® 0 å·®å¼‚,随本次提交 | ä¸åšè¿˜åŽŸ |
| Q12 docs\投资 æ•´ç† | **A** | å·²æäº¤å…¥åº“(17 ä¸ªå˜æ›´ï¼Œå« 3 ä¸ª git è¯†åˆ«å‡ºçš„重命名) |
| Q13 æ¯æœˆæ˜¯å¦è¿˜åšæ¨¡æ¿ | æš‚缓 | ç­‰åŒäº‹ç»“论 |
### 7.2 æäº¤ï¼ˆä¸ªäºº Gitee)
- `2af4d53` â†’ `73a0551`:入库用户整理后的输入/模板/输出文件 + å›žå¡«å£å¾„确认
- é¡ºå¸¦æŠŠ `.gitignore` è¡¥ä¸Š `__pycache__/`、`*.pyc`
### 7.3 å†™å®Œ Step1 çš„解析引擎(本轮最重的产出)
新增 `docs\投资\工具\市州月报解析.py`(只读):27 ä¸ªæºæ–‡ä»¶ â†’ **151 ä¸ªé¡¹ç›®è¡Œ**(客运 48 + ç‰©æµ 103),输出 `解析结果_2026-07.tsv` + `解析报告_2026-07.md`。
- æ¯æ–‡ä»¶åšã€Œé¡¹ç›®è¡Œæ±‚å’Œ â‡„ æºæ–‡ä»¶åˆè®¡/小计/市州行」对账:**13 ä¸ªæœ‰å¯¹è´¦è¡Œçš„æ–‡ä»¶å…¨éƒ¨ âœ… ä¸€è‡´ï¼Œ0 ä¸ä¸€è‡´**;剩 4 ä¸ªï¼ˆåå °å®¢è¿ã€è¥„阳 .et、随州物流、仙桃物流)源文件本身没有小计行。
- ä¿®å¤ 3 ä¸ªè§£æžç¼ºé™·ï¼šæ ¡éªŒè¡ŒæŒ‘选规则(黄冈合计在 B åˆ—;林区有 3 è¡Œå°è®¡ï¼‰ã€æ— å°è®¡è¡Œæ—¶ç”¨ã€Œå¸‚州行值」兜底、无城市信息文件(南山汉口)用 `CITY_OVERRIDE` ç™»è®°ä¸ºæ­¦æ±‰ã€‚
- æµ‹è¯•报告:《功能测试报告_投资月报源文件解析引擎_2026-09-17.md》(P01–P10 å…¨é€šè¿‡ï¼‰ã€‚
### 7.4 é—ç•™ / å¾…确认
1. **上月基数口径仍有冲突**:需求文档写「上月值来源:上月数据表」(= æŠ•资系统查询结果文件),用户 Q3 é€‰ã€Œä»Žç³»ç»Ÿç›®æ ‡è¡¨è¯»ã€ã€‚而手上那份查询结果是 **2026å¹´7月**的(E=自开始建设至本月底、G=自年初累计、H=当月完成),**不含 6 æœˆåº•æ•°**。→ éœ€ç”¨æˆ·äºŒé€‰ä¸€ï¼š(a) æ¯æœˆå¦æ”¾ä¸€ä»½**上月**的查询结果;(b) ç”¨ç›®æ ‡æ˜Žç»†è¡¨çš„ J åˆ—当上月底数。
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 **全部通过**。