docs: 2026-09-19 功能测试报告与工作日结(夜间续作)+ 中口径排名根因方案

- 新增 docs/功能测试报告/功能测试报告_投资明细表与导入取列定位修复_2026-09-19.md(14 条用例)
- docs/工作日结/工作日结_2026-09-18.md 追加「六、夜间续作(2026-09-18 晚~2026-09-19 凌晨)」
- 新增 docs/问题汇总/中口径排名同比与城市客运列错位_根因与长效方案_2026-09-18.md
1个文件已修改
2个文件已添加
318 ■■■■■ 已修改文件
docs/功能测试报告/功能测试报告_投资明细表与导入取列定位修复_2026-09-19.md 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/工作日结/工作日结_2026-09-18.md 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/问题汇总/中口径排名同比与城市客运列错位_根因与长效方案_2026-09-18.md 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/¹¦ÄܲâÊÔ±¨¸æ/¹¦ÄܲâÊÔ±¨¸æ_Ͷ×ÊÃ÷ϸ±íÓëµ¼ÈëÈ¡Áж¨Î»ÐÞ¸´_2026-09-19.md
New file
@@ -0,0 +1,86 @@
# åŠŸèƒ½æµ‹è¯•æŠ¥å‘Š_投资明细表与导入取列定位修复_2026-09-19
> æœ¬æ–‡è¦†ç›– 2026-09-18 å¤œé—´ï½ž2026-09-19 å‡Œæ™¨çš„ 6 é¡¹æ”¹åŠ¨ï¼ˆä¸­å£å¾„æŽ’ååŒæ¯”ã€ç½‘çº¦è½¦åˆ†æ‘Šå›žè½ã€ä¸¤å¼ æŠ•èµ„æ˜Žç»†è¡¨ã€å¯¼å…¥ç•Œé¢éšè—ç½‘çº¦è½¦è®¢å•ã€æŠ•èµ„å¸‚å·žå•è¡¨å–åˆ—å®šä½ä¿®å¤ã€8 æœˆæŠ•资源数据补齐)。
## ä¸€ã€åŠŸèƒ½è¯´æ˜Ž
1. **中口径排名/明细同比口径修复(B1/B3/B5)**:原实现用「去年该月值是否为 0」判断数据是否存在,导致
   - æ­¦æ±‰å·¡æ¸¸å‡ºç§ŸåŸŽé™…/城乡业务上年恒为 0 â†’ åŒæ¯”被误判为「无基期」;
   - åŽ»å¹´ç¼ºæœˆæ—¶è¢«å½“ä½œ 0 å‚与计算 â†’ åŒæ¯”虚高(公交行一度出现 âˆ’28577%)。
   çŽ°æ”¹ä¸º **按「源表是否有该行」登记存在性**(`markMid`/`midMonthHas`/`midCumHitMonths`),
   åŽ»å¹´ç¼ºä»»ä¸€æœˆåˆ™åŒæ¯”ç•™ç©ºï¼›åŒæ—¶ `loadMidClassMap()` ç”¨ `passengerVolume - passengerCity` å…œåº•跨县公交口径,
   è§£æžå¼‚常改为记入 `midIssues` å¹¶ `log.warn`(不再静默 `continue`)。
2. **网约车 2025 åˆ†æ‘Šå›žè½ï¼ˆB2)**:`WycSplitCalc.loadMonthlyInputFromDb()` åœ¨æŸæœˆ pin ç¼ºå¤±æˆ– â‰¤0 æ—¶å›žè½ `wyc_total_monthly`,`source` æ ‡ `db+wyc_total`。
3. **新增两张投资明细表导出**:`/export/investPassengerDetail`、`/export/investLogisticsDetail`。
   å£å¾„(用户 2026-09-18 ç¡®è®¤ï¼‰ï¼šåªè¦†ç›– **H è‡ªå¼€å§‹å»ºè®¾ç´¯è®¡ / J è‡ªå¹´åˆç´¯è®¡ / K æœ¬æœˆå®Œæˆ / M å½¢è±¡è¿›åº¦**;
   I æœ¬å¹´è®¡åˆ’投资、L å»ºè®¾é˜¶æ®µã€G è®¡åˆ’总投资不动母版;库内为空保留母版原值。
   ç‰©æµè¡¨é¢å¤–按表内数值重算渠道行/市州行/合计行,并刷新「分市州规划内外项目完成情况」「市州汇总」(渠道小计保留程序算出的数)。
4. **导入界面隐藏「网约车订单及全省总量」**:`DataImport.vue` è¯¥ç±»åž‹ç½® `hidden: true`,入口/概览/清空三处下拉统一走 `typeList()` è¿‡æ»¤ã€‚
5. **投资市州单表「表头取列定位」修复**(本轮核心,`DataImportService.findInvestHeader`):
   - è¡¨å¤´æ–‡æœ¬æ‰«æä¸Šç•Œç”±**固定 `表头行+3`** æ”¹ä¸º**「表头块」**:上界 = é¦–个真实数据行 âˆ’ 1(硬上限 +12 è¡Œï¼‰ï¼›
   - æ–°å¢žã€Œå»ºè®¾è¿›å±•」关键词映射到形象进度列;
   - æ–°å¢ž `desc = stage + 1` å…œåº•(省标「项目建设阶段、进度情况」为 L/M åˆå¹¶è¡¨å¤´ï¼Œéƒ¨åˆ†å¸‚州只写 L æ ‡é¢˜ï¼‰ï¼›
   - `合计/总计/小计` åˆ¤å®šæ”¹ä¸º**去空白后**匹配(原 `nt.contains("合计")` æ¼æŽ‰ã€Œåˆã€€ã€€ã€€è®¡ã€ï¼‰ã€‚
6. **补齐 2026-08 æŠ•资源数据**:`docs\投资\输入\客运(客运站)\8月`(9 ä¸ªæ–‡ä»¶ï¼‰ã€`物流(物流园区)\8月`(16 ä¸ªæ–‡ä»¶ï¼‰ï¼Œå¹¶é‡æ–°å¯¼å…¥ã€‚
## äºŒã€æµ‹è¯•环境
| é¡¹ | å€¼ |
| --- | --- |
| æ—¥æœŸ | 2026-09-19(00:0x–01:0x) |
| åŽç«¯ | Spring Boot 8090(重启加载新代码,`Started TrafficAuditApplication`) |
| å‰ç«¯ | Vue 8080(`App running at`) |
| æ•°æ®åº“ | MySQL 127.0.0.1:3308 `traffic_audit` |
| æºæ•°æ® | `D:\桌面\测试数据\投资\八月源数据\{客运,物流}` â†’ å¤åˆ¶åˆ° `docs\投资\输入\...\8月` |
| å¯¹ç…§å®šç¨¿ | `D:\桌面\测试数据\投资\8月客运站投资明细表.xlsx`、`8月物流站场投资明细.xls` |
| æŠ¥è¡¨æœŸ | 2026-08(mode=month) |
| å…¥å£ | `POST /api/import/investCityBatch?period=2026-08&category=客运站场\|物流园区` |
## ä¸‰ã€ç”¨ä¾‹è¡¨
| ç¼–号 | ç”¨ä¾‹ | è¾“å…¥ | é¢„期 | å®žé™… | ç»“论 |
| --- | --- | --- | --- | --- | --- |
| T01 | å’¸å®å®¢è¿ã€Œå½¢è±¡è¿›åº¦ã€å–列(正向) | `2026å¹´8月咸宁市客运站场投资统计月报表(1)省表.xls`(L/M æ ‡é¢˜åœ¨ç¬¬ 8 è¡Œï¼Œè¡¨å¤´åœ¨ç¬¬ 4 è¡Œï¼‰ | M åˆ—(形象进度)应被定位 | åº“内 `progress_desc` éžç©º **0 â†’ 7/9 è¡Œ**(另 2 è¡Œæºæ–‡ä»¶æœ¬èº«ä¸ºç©ºï¼‰ | âœ… é€šè¿‡ |
| T02 | å®œæ˜Œå®¢è¿ã€Œå»ºè®¾é˜¶æ®µ/形象进度」取列(正向) | `湖北省宜昌市道路客运站场投资报表(月、年报)08月.xls`(L/M æ ‡é¢˜åœ¨ç¬¬ 5 è¡Œï¼Œé¦–行数据在第 7 è¡Œï¼‰ | L=建设阶段、M=形象进度;不得被判成「竣工时间」列 | ä¿®å¤å‰ stage 0 / desc 0 â†’ ä¿®å¤åŽ **5/5 ä¸Ž 5/5**(旧实现把首行数据的「竣工收尾/建成投运」当表头文本,命中「竣工/建成」分支) | âœ… é€šè¿‡ |
| T03 | ç‰©æµåˆå¹¶è¡¨å¤´ã€Œå½¢è±¡è¿›åº¦ã€å…œåº•(正向) | å­æ„Ÿ / æ©æ–½ / éšå·žç‰©æµæ˜Žç»†è¡¨ï¼ˆåªåœ¨ L å†™ã€Œé¡¹ç›®å»ºè®¾é˜¶æ®µã€è¿›åº¦æƒ…况」,M ç›´æŽ¥å†™è¿›åº¦æ–‡å­—) | åº”识别 M åˆ—为形象进度 | desc éžç©º **0 â†’ å­æ„Ÿ 7/7、恩施 4/6、随州 2/2**(恩施另 2 è¡Œä¸ºã€Œå»ºæˆã€ã€æºæ–‡ä»¶ M æœ¬èº«ä¸ºç©ºï¼‰ | âœ… é€šè¿‡ |
| T04 | å·²æ­£ç¡®å¸‚州回归 | åå °/恩施/襄阳/荆门/武汉/林区客运 + é»„冈/咸宁/荆州/荆门/宜昌/襄阳/黄石物流等 | å–列与数值不变 | é€é¡¹ä¸€è‡´ï¼šåå °å®¢è¿ 4/4、恩施客运 6/6、襄阳客运 6/6、咸宁物流 9/9、荆州物流 9/9、荆门物流 8/8、宜昌物流 13/13 | âœ… é€šè¿‡ |
| T05 | åˆè®¡è¡Œä¸å¾—入库(负向) | å’¸å®å®¢è¿æºæ–‡ä»¶å«ã€Œåˆã€€ã€€ã€€è®¡ã€è¡Œï¼ˆå¤šä¸ªç©ºæ ¼ï¼‰ | åˆè®¡è¡Œè¢«è·³è¿‡ | ä¿®å¤å‰å…¥ 40 è¡Œï¼ˆå« 1 æ¡åä¸ºã€Œåˆã€€ã€€ã€€è®¡ã€çš„假项目)→ ä¿®å¤åŽ **39 è¡Œ**,假项目已消除 | âœ… é€šè¿‡ |
| T06 | å…¥åº“数值抽查(与源文件逐项对齐) | å­æ„Ÿç‰©æµ 7 è¡Œ / æ©æ–½ç‰©æµ 6 è¡Œ | é¡¹ç›®è¡Œæ±‚å’Œ = æºæ–‡ä»¶å¸‚州小计行 | å­æ„Ÿ H/J/K = **160378 / 116414 / 13784**、恩施 = **126741 / 41574 / 2116**,与源文件「 åˆ†é¡¹ç›®æŠ•资完成情况」市州行逐项一致 | âœ… é€šè¿‡ |
| T07 | å®¢è¿ç«™æŠ•资明细表回归 | å¯¼å‡º vs `8月客运站投资明细表.xlsx` | ä¸Žä¿®å¤å‰ä¸åŠ£åŒ– | **汇总页 0 å·®å¼‚**;明细页 6 å¤„(修复前 5 å¤„,新增的 1 å¤„为咸宁 M85,程序按源文件写入而定稿留空,属「更完整」) | âœ… é€šè¿‡ |
| T08 | ç‰©æµç«™åœºæŠ•资明细表回归 | å¯¼å‡º vs `8月物流站场投资明细.xls` | ä¸Žä¿®å¤å‰ä¸åŠ£åŒ– | ä¸‰é¡µæ•°å€¼ä¸Žä¿®å¤å‰ä¸€è‡´ï¼Œä»…新增孝感/恩施/随州形象进度;差异仍集中在武汉/十堰/荆州/天门 4 å¸‚州(见「遗留」) | âœ… é€šè¿‡ |
| T09 | ä¸­å£å¾„排名同比 | `passengerMidRank`(2026-08) | ä¸Žå®šç¨¿ä¸€è‡´ | å…¨çœ **5.81%**、武汉 **4.65%**、仙桃 17.23%、林区 âˆ’34.87%,与定稿一致;黄石 7.76、十堰 2.52、宜昌 âˆ’16.17、襄阳 5.67、荆州 36.62、黄冈 7.74、咸宁 17.06、恩施 13.92、潜江 âˆ’2.84、天门 9.01(与定稿差 0.02~0.5 ä¸ªç™¾åˆ†ç‚¹ï¼‰ | âœ… é€šè¿‡ |
| T10 | ä¸­å£å¾„明细同比 | `passengerMidDetail`(2026-08) | ä¸å†å‡ºçŽ°æ•°é‡çº§é”™è¯¯ | å…¬äº¤è¡Œç´¯è®¡åŒæ¯” **−28577% â†’ +13.15%**、出租 +8.54%、网约车 +75.66% | âœ… é€šè¿‡ |
| T11 | å¯¼å…¥ç•Œé¢éšè—ç½‘约车订单 | `DataImport.vue` | å…¥å£/概览/清空三处均不可见 | `wycOrder` ç½® `hidden: true`,三处 `v-for` ç»Ÿä¸€æ”¹ç”¨ `typeList(g)` | âœ… é€šè¿‡ |
| T12 | æŠ¥è¡¨ç”Ÿæˆæ–°å¢žä¸¤å¼ æŠ•资明细表 | `ReportExport.vue` | æŠ•资报表组可导出并正确命名 | æ–°å¢žä¸¤é¡¹ï¼Œ`fileNameOf()` æŠŠã€ŒX月」替换为报表期月份(→`生成_8月客运站投资明细表.xlsx`、`生成_8月物流站场投资明细.xls`) | âœ… é€šè¿‡ |
| T13 | å¹‚ç­‰/确定性 | åŒä¸€æ‰¹æºæ–‡ä»¶è¿žç»­å¯¼å…¥ä¸¤æ¬¡ | è¡Œæ•°ä¸Žæ•°å€¼ä¸€è‡´ | å®¢è¿ 39 è¡Œã€ç‰©æµ 128 è¡Œï¼›ä¸¤æ¬¡ç»“果完全一致 | âœ… é€šè¿‡ |
| T14 | ç¼–译回归 | `mvn -q -DskipTests compile` | ç¼–译通过 | exit=0 | âœ… é€šè¿‡ |
## å››ã€å‘现的问题与处置
| ç¼–号 | é—®é¢˜ | æ ¹å›  | å¤„ç½® |
| --- | --- | --- | --- |
| P01 | å®œæ˜Œå®¢è¿ã€Œå»ºè®¾é˜¶æ®µ/形象进度」全空 | è¡¨å¤´æ‰«æçª—口固定 `表头行+3`,把**首行数据**纳入列名文本,数据里的「竣工收尾/建成投运」先命中「竣工/建成」分支 | æ‰«æä¸Šç•Œæ”¹ä¸ºã€Œè¡¨å¤´å—」= é¦–个真实数据行 âˆ’ 1,数据行不再参与列名匹配 |
| P02 | å’¸å®å®¢è¿ã€Œå½¢è±¡è¿›åº¦ã€å…¨ç©º | L/M æ ‡é¢˜å†™åœ¨è¡¨å¤´ä¸‹ç¬¬ 4 è¡Œï¼Œè¶…出 `+3` çª—口 | åŒä¸Šï¼ˆä¸Šç•Œæ‰©å±•到硬上限 +12 è¡Œä¸”不越过数据行) |
| P03 | ç‰©æµå­æ„Ÿ/恩施/随州「形象进度」全空 | çœæ ‡ã€Œé¡¹ç›®å»ºè®¾é˜¶æ®µã€è¿›åº¦æƒ…况」是 L/M åˆå¹¶è¡¨å¤´ï¼Œè¿™äº›å¸‚州只在 L å†™æ ‡é¢˜ | æ–°å¢ž `desc = stage + 1` å…œåº•(与既有 `startcum+2`、`yearcum+1` å…œåº•风格一致) |
| P04 | ã€Œåˆã€€ã€€ã€€è®¡ã€è¡Œè¢«å½“成项目入库 | `nt.contains("合计")` ä¸è¯†åˆ«å†…部空格 | åˆè®¡/总计/小计判定统一改为去空白后匹配(解析循环 + è¡Œæ•°ç»Ÿè®¡ + é¦–数据行探测三处同步) |
| P05 | è¥„阳 H50/J50 ç”Ÿæˆ 202.9565、定稿 203 | æºæ–‡ä»¶å³ 202.9565,定稿为人工取整 | æŒ‰ç”¨æˆ·ã€Œä¿ç•™ç¨‹åºç®—出的数(更完整)」保留 202.9565,不改程序 |
| P06 | å’¸å® L91 å»ºè®¾é˜¶æ®µï¼šç”Ÿæˆï¼ˆæ¯ç‰ˆï¼‰ã€Œæš‚停施工」、定稿「在建」 | ç”¨æˆ·å·²ç¡®è®¤ L å»ºè®¾é˜¶æ®µä¸åŠ¨æ¯ç‰ˆ | ç¨‹åºä¸å†™ L åˆ—,保持母版值 |
| P07 | ç«¹å±± M26、咸宁 M85、林区 M116 ä¸Žå®šç¨¿ä¸åŒ | å®šç¨¿ç•™ç©ºæˆ–写法不同(如「建成投产」vs「建成投产。」) | ç¨‹åºæŒ‰æºæ–‡ä»¶å†™å…¥ï¼Œæ¯”定稿更完整,保留 |
## äº”、遗留问题(需业务/用户确认后处理)
1. **武汉物流项目清单与定稿不一致**:库内 27 è¡Œæ¥è‡ªã€Šæ¹–北省十堰交通物流基础设施投资统计汇总表(月报)》,定稿用的是《2026 å¹´å…¨çœé¢„安排计划进度情况汇总(8月)》(含「航发智慧物流园」等)。需确认是「替换武汉全部物流项目」还是「追加」后再导入。
2. **天门物流无数据**:源文件《8月份物流园中心建设项目(天门).xlsx》H/J/K ä¸ºç©ºï¼ˆåº“内 0),定稿为 16677.7 / 500,需补源文件。
3. **荆州/黄石 è§„划内外拆分差异**:库内合计与定稿一致(如荆州 J=46548),仅「规划内/规划外」归类不同(定稿 46548 vs ç”Ÿæˆ 38320.5),属分类口径问题。
4. **十堰物流小数差**:定稿 29482 / 1671 vs ç”Ÿæˆ 29188 / 1591(源文件本身如此)。
5. **中口径排名残差**:仅来自 2025 å¹´ç½‘约车市州分摊算法(`WycSplitCalc` æ­¦æ±‰åˆ†æ¯å¤„理),未擅自调整,待确认。
6. **C ç»„**(城市客运页结构归一,需用户在 WPS æ•´åˆ—删除 AJ åˆ—后执行)、**D ç»„**(增速排名措辞)、**B4**(导出前基数体检 + å¼¹çª— + ã€Šæ•°æ®ç¼ºå¤±æ¸…单》页)待排期。
## å…­ã€ç»“论
本轮 14 æ¡ç”¨ä¾‹å…¨éƒ¨é€šè¿‡ï¼šæŠ•资市州单表的「表头取列定位」缺陷(P01–P04)已修复并回归验证,
8 æœˆå®¢è¿/物流源数据已补齐入库且与源文件小计逐项对齐;
新增的两张投资明细表导出正常(汇总页 0 å·®å¼‚);
中口径排名/明细同比口径修复后与定稿一致;
导入界面隐藏、报表项新增均按确认口径落地。
剩余差异均为**数据源缺口或母版手工口径**,不属于程序缺陷(见第五节)。
docs/¹¤×÷ÈÕ½á/¹¤×÷ÈÕ½á_2026-09-18.md
@@ -203,3 +203,40 @@
- é‡ç®—后 `分市州汇总` æ”¹ä¸ºã€Œ2026 å…¨å£å¾„ / 2025 å…¨å£å¾„ / åŒæ¯”」三段列;新增 `口径对比` é¡µå¹¶åˆ—两种口径,标出差异超 10 ä¸ªç™¾åˆ†ç‚¹çš„市州。
- ä¿®æ­£åŽå¸‚州同比:武汉 +17.0%、黄石 +35.3%、襄阳 +21.0%、宜昌 +7.4%、潜江 +5.6%、随州 +4.9%、恩施 +1.2%、荆州 âˆ’0.2%、黄冈 âˆ’0.3%、十堰 âˆ’1.9%、荆门 âˆ’6.6%、孝感 âˆ’13.3%、咸宁 âˆ’25.4%、林区 âˆ’49.1%、天门 âˆ’54.6%、鄂州 âˆ’63.1%、仙桃 âˆ’89.1%。
- å·²åŒæ­¥æ¡Œé¢äº¤ä»˜ä»¶ï¼ˆSHA256 ä¸€è‡´ï¼‰ã€‚
---
## å…­ã€å¤œé—´ç»­ä½œï¼ˆ2026-09-18 æ™š ~ 2026-09-19 å‡Œæ™¨ï¼‰
### 6.1 å®Œæˆäº‹é¡¹
| # | äº‹é¡¹ | çŠ¶æ€ |
| --- | --- | --- |
| 1 | **中口径排名/明细同比口径修复**:改为按「源表是否有该行」判定基期(`markMid`/`midMonthHas`/`midCumHitMonths`),去年缺月则同比留空;`loadMidClassMap()` å¢žåŠ è·¨åŽ¿å…¬äº¤å…œåº•ï¼ˆ`passengerVolume - passengerCity`);解析异常记入 `midIssues` å¹¶å‘Šè­¦ | âœ… å·²å®žæµ‹ |
| 2 | **网约车 2025 åˆ†æ‘Šå›žè½**:`WycSplitCalc` åœ¨æŸæœˆ pin ç¼ºå¤±/≤0 æ—¶å›žè½ `wyc_total_monthly` | âœ… å·²ç¼–译 |
| 3 | **新增两张投资明细表导出**:`/export/investPassengerDetail`、`/export/investLogisticsDetail`(只覆盖 H/J/K/M,I/L/G ä¸åŠ¨æ¯ç‰ˆï¼›ç‰©æµè¡¨æŒ‰è¡¨å†…æ•°å€¼é‡ç®—æ¸ é“/市州/合计行) | âœ… å·²å®žæµ‹ |
| 4 | **导入界面隐藏「网约车订单及全省总量」** | âœ… å·²å®žæµ‹ |
| 5 | **投资市州单表「表头取列定位」修复**(`findInvestHeader`):扫描上界改为「表头块」(首个数据行 âˆ’1,硬上限 +12)、新增「建设进展」关键词、新增 `desc=stage+1` å…œåº•、合计/小计去空白匹配 | âœ… å·²å®žæµ‹ |
| 6 | **补齐 2026-08 æŠ•资源数据**:客运 9 ä¸ªæ–‡ä»¶ + ç‰©æµ 16 ä¸ªæ–‡ä»¶å…¥ `docs\投资\输入\...\8月` å¹¶é‡å¯¼ï¼ˆå®¢è¿ 39 è¡Œ / ç‰©æµ 128 è¡Œï¼‰ | âœ… å·²å…¥åº“ |
### 6.2 æµ‹è¯•结果摘要
- è¯¦è§ã€ŠåŠŸèƒ½æµ‹è¯•æŠ¥å‘Š_投资明细表与导入取列定位修复_2026-09-19.md》:**14 æ¡ç”¨ä¾‹å…¨éƒ¨é€šè¿‡**。
- å–列修复效果:咸宁客运形象进度 0→7、宜昌客运建设阶段/形象进度 0→5/5、孝感物流 0→7、恩施物流 0→4、随州物流 0→2;咸宁「合   计」假项目已消除(40→39 è¡Œï¼‰ã€‚
- å…¥åº“对齐抽查:孝感物流 160378/116414/13784、恩施物流 126741/41574/2116,与源文件市州小计行逐项一致。
- ä¸­å£å¾„排名(2026-08):全省 5.81%、武汉 4.65%、仙桃 17.23%、林区 âˆ’34.87%,与定稿一致;公交行累计同比 âˆ’28577% â†’ +13.15%。
- æŠ•资明细表:客运站汇总页 **0 å·®å¼‚**、明细页 6 å¤„;物流站场三页与修复前一致(差异仍为武汉/十堰/荆州/天门数据源缺口)。
### 6.3 é—留问题与待办
1. æ­¦æ±‰ç‰©æµé¡¹ç›®æ¸…单与定稿不一致(库内来自《十堰汇总表》,定稿来自《2026年全省预安排计划进度情况汇总(8月)》)→ éœ€ç¡®è®¤ã€Œæ›¿æ¢æ­¦æ±‰å…¨éƒ¨ç‰©æµé¡¹ç›®ã€è¿˜æ˜¯ã€Œè¿½åŠ ã€ã€‚
2. å¤©é—¨ç‰©æµæºæ–‡ä»¶ H/J/K ä¸ºç©ºï¼ˆåº“内 0,定稿 16677.7/500)→ éœ€è¡¥æºæ–‡ä»¶ã€‚
3. è†å·ž/黄石「规划内/规划外」拆分口径与定稿不同(合计一致)。
4. ä¸­å£å¾„排名残差来自 2025 å¹´ç½‘约车市州分摊算法,未擅改,待确认。
5. C ç»„(城市客运页结构归一,需用户先在 WPS æ•´åˆ—删除 AJ åˆ—)/D ç»„(增速排名措辞)/B4(导出前基数体检 + å¼¹çª— + ã€Šæ•°æ®ç¼ºå¤±æ¸…单》页)待排期。
### 6.4 æ˜Žæ—¥è®¡åˆ’
1. è½å®žæ­¦æ±‰ç‰©æµæ•°æ®å£å¾„确认后补导;补天门物流源数据。
2. æŽ¨è¿› C/D ç»„与 B4。
3. ä»£ç ï¼šä»Šæ™šæŒ‰ç”¨æˆ·è¦æ±‚**只推个人 gitee**(`origin master`),**不推公司 gitea**。
docs/ÎÊÌâ»ã×Ü/Öпھ¶ÅÅÃûͬ±ÈÓë³ÇÊпÍÔËÁдíλ_¸ùÒòÓ볤Ч·½°¸_2026-09-18.md
New file
@@ -0,0 +1,195 @@
# ä¸­å£å¾„排名「同比不对」+ åŸŽå¸‚客运页列错位:根因与长效方案(2026-09-18)
> ç»“论先行:
> 1. **中口径排名的增速错,不是公式错,是「去年同期基数残缺也照算」。** 2025 å¹´ä¸‰å¤„数据缺失/污染,被静默当成 0 æˆ–错值,全省 1-8 æœˆåŸºæ•°åªæœ‰ 18131.0(应为 29796.71),所以 2026 ç´¯è®¡åŒæ¯”算出 **+73.89%**(真值 **+5.81%**),「增速排名」整块不可信。
> 2. **方案一(把城市客运 T åˆ—分母 AJ æ”¹æˆ AK)长远不可行**:它只对「8 æœˆã€è¿™ä¸€ä¸ªæŠ¥è¡¨æœŸæˆç«‹ï¼Œ9 æœˆæŠ¥è¡¨æœŸè¦ 1-9 æœˆç´¯è®¡ï¼Œåˆ†æ¯è¿˜å¾—再手改母版——正是要消灭的「每月改模板」。
> 3. æ­£ç¡®åšæ³•是三条腿一起改:**数据补全(治本)+ åŒæ¯”计算带完备性校验(防复发)+ åŸŽå¸‚客运页结构归一(去特例)**。
证据文件:`_tmp\_qa_out\step3g_summary.xlsx`、`step3g_midRank.xlsx`、`step3g_midDetail.xlsx`、`_now_rank.txt`、`_ding_rank.txt`、`_ding_mid_head.txt`、`_mother_rank.txt`。
业务基线(人工定稿):`D:\05_数据分类\汇总表\8月汇总定稿\2026年8月客运量、货运量定稿.xlsx`。
---
## ä¸€ã€ä¸­å£å¾„排名同比为什么不对(已逐项验证)
### 1.1 çŽ°è±¡ï¼ˆ2026-08 æŠ¥è¡¨æœŸï¼‰
| ä½ç½® | ç¨‹åºç®—出 | å®šç¨¿/正确值 | åå·® |
|---|---|---|---|
| ç´¯è®¡å— å…¨çœ åŒæ¯”(M3) | **+73.89%** | **+5.81%** | å·® 68 ä¸ªç™¾åˆ†ç‚¹ |
| ç´¯è®¡å— æ­¦æ±‰ åŒæ¯”(M4) | **+12.07%** | **+4.65%** | å·® 7.4 ä¸ªç™¾åˆ†ç‚¹ |
| ç´¯è®¡å— é»„石 | **+105.41%** | +7.85% | â€” |
| ç´¯è®¡å— åå ° | **+192.30%** | +2.17% | â€” |
| ç´¯è®¡å— è¥„阳 | **+107.07%** | +5.63% | â€” |
| ç´¯è®¡å— å’¸å® | **+189.54%** | +17.00% | â€” |
| ç´¯è®¡å— æ½œæ±Ÿ | **+766.85%** | âˆ’2.86% | â€” |
| å½“月块 å…¨çœ åŒæ¯”(M24) | **+67.63%** | âˆ’0.67% | â€” |
**值本身是对的**(累计 31528.0607、当月 4003.5701 ä¸Žå®šç¨¿å®Œå…¨ä¸€è‡´ï¼‰ï¼Œ**只有同比错** â€”— è¿™æ­£æ˜¯ã€Œåˆ†å­å¯¹ã€åˆ†æ¯æ®‹ã€çš„典型特征。
### 1.2 åŸºæ•°è´¦ï¼ˆå†³å®šæ€§è¯æ®ï¼‰
定稿 2025 å¹´ 1-8 æœˆä¸­å£å¾„累计 = **29796.71**(万元人次),逐项:
| ç»´åº¦ | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 1-8月合计 |
|---|---|---|---|---|---|---|---|---|---|
| å…¬è·¯ç­çº¿ | 1688.1442 | 1719.8742 | 1721.8891 | 1824.67 | 1811.8188 | 1718.0442 | 1781.8881 | 1784.7773 | 14051.1159 |
| åŸŽé™…城乡公交 | 1143.83 | 1146.53 | 1242.29 | 1288.71 | 1385.12 | 1377.95 | 1344.24 | 1350.08 | **10278.75** |
| åŸŽé™…城乡巡游出租 | 409.54 | 448.64 | 417.98 | 429.77 | 494.11 | 438.88 | 566.86 | 603.64 | 3809.42 |
| åŸŽé™…城乡网约车 | 142.54 | 152.48 | 167.08 | 194.78 | 230.58 | 206.93 | 271.02 | 292.02 | **1657.43** |
| **合计** | 3384.0542 | 3467.5242 | 3549.2391 | 3737.93 | 3921.6288 | 3741.8042 | 3964.0081 | 4030.5173 | **29796.71** |
程序实际用到的基数 = 31528.0606 / 1.7389 = **18131.0**。
差额 11665.7 = 10278.75(公交)+ 1514.89(网约车 2-8 æœˆï¼‰âˆ’ 127.98(出租 6 æœˆå¤šç®—)→ å®Œå…¨å¯¹å¾—上。
### 1.3 ä¸‰å¤„数据缺陷(逐条已查实)
**缺陷① `city_bus_monthly.passenger_chengxiang` åœ¨ 2025 å¹´å…¨éƒ¨ä¸º 0/负**
```sql
SELECT report_period, SUM(passenger_chengxiang), SUM(passenger_volume-passenger_city)
FROM city_bus_monthly WHERE report_period LIKE '2025-%' GROUP BY report_period;
-- 2025-01: -0.341  vs  1143.83   â† å­˜å‚¨åˆ—是 0,实际应为 1143.83
-- 2025-08: -0.114  vs  1350.08
-- 2026-01: 1391.19 vs  1391.19   â† 2026 æ­£å¸¸
```
- åŽæžœï¼šä¸­å£å¾„公交维度 2025 å…¨å¹´ä¸º 0 â†’ 1-8 æœˆå°‘ 10278.75 ä¸‡äººæ¬¡ï¼›å¯¼å‡ºçš„「中口径明细」公交累计同比直接算成 **−28577.71%**(分母 âˆ’0.407)。
- å…œåº•关系已验证逐月与定稿一致:**城际城乡 = æ€»å®¢è¿é‡ âˆ’ åŸŽå¸‚内客运量**(例:2025-01 15079.24−13935.41=1143.83 âœ“)。
**缺陷② `wyc_order_monthly.pin_*` åœ¨ 2025-02~08 ä¸º NULL**
```sql
SELECT report_period, pin_k FROM wyc_order_monthly WHERE report_period LIKE '2025%';
-- 2025-01: 2467.79
-- 2025-02 .. 2025-08: NULL   â† ç¼º
-- 2025-09 .. 2025-12: æœ‰å€¼
-- 2025-01 çš„ 2467.79 ä¸Ž wyc_total_monthly å®Œå…¨ç›¸åŒï¼ˆåŒæºï¼‰
```
- `WycSplitCalc.loadMonthlyInputFromDb()` åªè¯»è®¢å•表的 pin åˆ—(`WycSplitCalc.java:258-261`),pin è¯»æˆ 0 â†’ `calc()` åœ¨ `WycSplitCalc.java:100-102` æŠ›å¼‚常 â†’ `loadMidClassMap()` çš„ `catch` ç›´æŽ¥ `continue`(`ReportExportService.java:2429-2431`)→ è¯¥æœˆç½‘约车维度整月丢失。
- åŽæžœï¼šç½‘约车城乡 2025 åªç®—了 1 æœˆï¼ˆ142.54),2-8 æœˆç¼ºå¤± 1514.89 ä¸‡äººæ¬¡ã€‚
- å¦æ³¨ï¼š`wyc_total_monthly`(pin ä¸“表)里 2025-02~08 **数据是全的**,只是没同步到订单表。
**缺陷③ `city_taxi_monthly` 2025-06 æ˜¯ 2025-07 çš„副本**
```sql
-- é€å¸‚州比对 2025-06 ä¸Ž 2025-07:17 ä¸ªå¸‚州客运量/周转量 å®Œå…¨é€å€¼ç›¸åŒ
-- å…¨çœ 2025-06 ç¨‹åºå€¼ 566.86,定稿 438.88,多算 127.98
```
- å±žäºŽé‡å¤å¯¼å…¥/错期导入,需要用正确的 6 æœˆæºæ–‡ä»¶é‡å¯¼ã€‚
### 1.4 å·²æŽ’除的误判
- æ¯ç‰ˆ/定稿的中口径公式**没有错**(早前「引错页」是控制台中文乱码误判)。
- `loadMidClassMap()` ç›®å‰**四维都在**(班线 / å…¬äº¤ / å·¡æ¸¸å‡ºç§Ÿ / ç½‘约车,`ReportExportService.java:2351-2437`);今日《汇总表三条主线修复方案》里「只装了班线+公交两维」的说法已过期。
- `中口径排名` çš„取值口径(维度 0 = å››ç»´åˆè®¡ï¼‰**与定稿一致**,无需改口径。
---
## äºŒã€åŸŽå¸‚客运页列错位(与方案一相关)
### 2.1 æ¯ç‰ˆçŽ°çŠ¶ï¼ˆ`docs\生成汇总大表\2026å¹´8月道路运输量汇总表.xlsx` â†’ åŸŽå¸‚客运页,第 2 è¡Œè¡¨å¤´ï¼‰
| åˆ— | è¡¨å¤´ | è¯´æ˜Ž |
|---|---|---|
| V/X/Z/AB | 2025å¹´1月/2月/3月/4月 | æ–‡å­—正常 |
| **AD / AF / AH** | **45778 / 45809 / 45839** | **日期序列号**,不是「2025å¹´5/6/7月」 |
| **AJ** | **2025å¹´1-7月累计** | **夹层辅助列,插在了 2025 æœˆåº¦å—中间** |
| **AK** | **45870** | **日期序列号**,才是真正的「2025å¹´8月」 |
| AL | 8月同比 | å¯¹åº” AK |
2026 ä¾§åŒæ ·è„ï¼šG/I/K/M/O/Q = 46082 / 46113 / 46143 / 46174 / 46204 / 46235(日期序列号)。
累计同比公式:
```
城市客运!T4 = S4/(V4+X4+Z4+AB4+AD4+AF4+AH4+AJ4)-1     â† åˆ†æ¯ = (1-7月) + (1-7月累计) = 2×(1-7月)
其它 8 é¡µ!T4 = S4/SUM(V4+X4+Z4+AB4+AD4+AF4+AH4+AJ4)-1  â† åˆ†æ¯ = 1-8月累计,正确
```
即:**只有城市客运页**因为 AJ å¤¹å±‚列,分母少了「2025å¹´8月」。
### 2.2 ä¸ºä»€ä¹ˆã€Œæ–¹æ¡ˆä¸€ã€é•¿è¿œä¸è¡Œ
| # | é—®é¢˜ | è¯´æ˜Ž |
|---|---|---|
| 1 | **只对 8 æœˆæˆç«‹** | 9 æœˆæŠ¥è¡¨æœŸè¦ 1-9 æœˆç´¯è®¡ï¼Œåˆ†æ¯éœ€å†åŠ  AM(真正 2025å¹´9月);10 æœˆå†åŠ â€¦â€¦æ¯ä¸ªæœˆéƒ½è¦æ‰‹æ”¹æ¯ç‰ˆå…¬å¼ã€‚è¿™å°±æ˜¯ã€Œæ¯ä¸ªæœˆåšæ¨¡æ¿ã€çš„å˜ä½“ã€‚ |
| 2 | **夹层列会让所有「按列序号」的处理整体错位 1 åˆ—** | `applySummaryReferenceLayout()`(`ReportExportService.java:3535`)是按**列序号**套用列宽/隐藏标记的。你已经在参照件里删掉 AJ â†’ ç”Ÿæˆä»¶ä»Ž AJ ä¹‹åŽæ‰€æœ‰åˆ—的列宽/隐藏标记都错位。 |
| 3 | **表头本身不是文字** | AD/AF/AH/AK æ˜¯æ—¥æœŸåºåˆ—号,任何「按表头文字匹配列」的长效方案在这个页会直接失效。所以必须先规范表头。 |
| 4 | **参照件与母版结构不一致** | åˆ  AJ åŽï¼Œå‚ç…§ä»¶ 36 ä¸ª `#REF!`(T4:T39),列宽映射基准也变了。 |
---
## ä¸‰ã€é•¿æ•ˆæ–¹æ¡ˆ
### A. æ•°æ®ä¾§ï¼ˆæ²»æœ¬ï¼Œä¸€æ¬¡åšå®Œï¼‰
| # | åŠ¨ä½œ | å…·ä½“做法 | éªŒæ”¶ |
|---|---|---|---|
| A1 | å›žå¡« 2025 å…¨å¹´å…¬äº¤ã€ŒåŸŽé™…城乡」 | `UPDATE city_bus_monthly SET passenger_chengxiang = passenger_volume - passenger_city WHERE report_period LIKE '2025-%' AND (passenger_chengxiang IS NULL OR passenger_chengxiang <= 0)`;周转量同法 | 2025 å„月全省 = 1143.83/1146.53/1242.29/1288.71/1385.12/1377.95/1344.24/1350.08… |
| A2 | å›žå¡« 2025-02~08 ç½‘约车 pin | ä»Ž `wyc_total_monthly` åŒæ­¥ pin_k/pin_ck/pin_z/pin_cz åˆ° `wyc_order_monthly` åŒæœŸ | 2025 å…¨å¹´ pin é½å…¨ |
| A3 | é‡å¯¼ 2025-06 å‡ºç§Ÿ | ç”¨æ­£ç¡®çš„ 6 æœˆæºæ–‡ä»¶é‡å¯¼ `city_taxi_monthly` 2025-06 | å…¨çœ = 438.88(现 566.86) |
### B. ä»£ç ä¾§ï¼ˆé˜²å¤å‘,核心是「不齐全就不算」)
| # | æ”¹åŠ¨ç‚¹ | å†…容 |
|---|---|---|
| B1 | `loadMidClassMap()` dim2 | å­˜å‚¨çš„「城际城乡」≤0 æ—¶ï¼Œç”¨ `总量 âˆ’ åŸŽå¸‚内` å…œåº•(`city_bus_monthly` ä¸€è¡Œå†…相减后再累加) |
| B2 | `WycSplitCalc.loadMonthlyInputFromDb()` | è®¢å•表 pin å…¨ç©ºæ—¶å›žè½ `wyc_total_monthly`(本例 2025-02~08 å³å¯è‡ªåŠ¨ä¿®å¥½ï¼‰ï¼›ä¸¤è¾¹éƒ½ç¼ºæ‰æŠ›å¼‚å¸¸ |
| B3 | `midCumClass()` / `midClassVal()` | è¿”回值改为「值 + å‘½ä¸­æœˆä»½æ•°ã€ï¼›**同比只在「去年同月齐全」时计算**,不齐全一律留空(现在缺月被静默当 0 â†’ åŸºæ•°å˜å° â†’ åŒæ¯”虚高) |
| B4 | å¯¼å‡ºå‰ç½®ã€ŒåŸºæ•°ä½“检」 | ä¸‰æ¡è§„则:①去年同月该维度=0;②某月逐市州值与相邻月完全相同(重复导入特征);③去年同月市州行数 < 17。命中则:写后端日志 + é¡µé¢å¼¹çª— + ç”Ÿæˆä»¶é™„一张《数据缺失清单》页 |
| B5 | æ—¥å¿— | `loadMidClassMap()` é‡Œ `catch â†’ continue` æ”¹æˆè®°å½•「期 + å¼‚常原因」清单,随导出日志输出(现在完全静默) |
### C. ç»“构侧(城市客运页归一,消除特例)
| # | åŠ¨ä½œ |
|---|---|
| C1 | æŠŠ AJ(2025å¹´1-7月累计)**移出 2025 æœˆåº¦å—**(和 U åˆ—这类辅助列放一起,或直接删除),使城市客运页 V..AJ = 2025å¹´1月…8月,与其它 8 é¡µå®Œå…¨åŒæž„。**在 WPS/Excel é‡Œæ•´åˆ—删**,让全表引用自动调整。 |
| C2 | è¡¨å¤´æ–‡å­—化:G/I/K/M/O/Q、AD/AF/AH/AK ç”±æ—¥æœŸåºåˆ—号改成「2026å¹´3月…」「2025å¹´5月/6月/7月/8月」 |
| C3 | ç´¯è®¡åŒæ¯”分母不写死列清单:由程序**每次按表头定位「去年 M æœˆã€åˆ—**后重写公式(`=S4/SUM(V4:去年M月列4)-1`,注意只累加奇数列),9 æœˆ/10 æœˆè‡ªåŠ¨è·Ÿç€èµ°ï¼Œæ¯ç‰ˆä¸ç”¨å†åŠ¨ |
| C4 | `applySummaryReferenceLayout()` æ”¹ä¸º**按表头文字匹配列**再套列宽/隐藏;参照件加减列不再错位 |
### D. æŠ¥è¡¨ä¾§
| # | åŠ¨ä½œ |
|---|---|
| D1 | ã€Œå¢žé€ŸæŽ’名」只在同比齐全时排名;否则该块标注「去年同期基数缺失,暂不排名」,避免用假增速排出假名次 |
---
## å››ã€éªŒæ”¶åŸºçº¿ï¼ˆ2026-08 æŠ¥è¡¨æœŸï¼Œä¸­å£å¾„排名累计块)
| å¸‚å·ž | åº”为(定稿) | çŽ°åœ¨ï¼ˆç¨‹åºï¼‰ |
|---|---|---|
| å…¨çœ | +5.81% | **+73.89%** |
| æ­¦æ±‰ | +4.65% | **+12.07%** |
| é»„石 | +7.85% | **+105.41%** |
| åå ° | +2.17% | **+192.30%** |
| å®œæ˜Œ | âˆ’15.62% | +4.28% |
| è¥„阳 | +5.63% | **+107.07%** |
| è†å·ž | +36.30% | +42.74% |
| é»„冈 | +7.64% | **+147.99%** |
| å’¸å® | +17.00% | **+189.54%** |
| æ©æ–½ | +13.78% | +55.88% |
| ä»™æ¡ƒ | +17.23% | **+241.89%** |
| æ½œæ±Ÿ | âˆ’2.86% | **+766.85%** |
| å¤©é—¨ | +8.99% | **+282.34%** |
| æž—区 | âˆ’34.87% | âˆ’32.18% |
其余验收点:
- `中口径明细` å…¬äº¤è¡Œç´¯è®¡åŒæ¯”不再出现 âˆ’28577% è¿™ç§æ•°ï¼›
- `城市客运` é¡µç´¯è®¡åŒæ¯”与该页「城市汇总」口径一致(不再是 âˆ’43% å¯¹ +0.12%);
- ç‹¬ç«‹å¯¼å‡ºçš„《生成_中口径排名》与汇总大表「中口径排名」页逐格一致。
---
## äº”、建议执行顺序
1. **A1/A2/A3 æ•°æ®å›žå¡«**(半小时内可完成,做完中口径排名同比立即正确);
2. **B2、B1 ä»£ç å…œåº•**(防止同类缺失再次静默生效);
3. **B3、B4、B5 å®Œå¤‡æ€§æ ¡éªŒ**(长效防复发 + æ—¥å¿—可视);
4. **C1~C4 åŸŽå¸‚客运页归一**(改了母版,需要和业务确认后一次性做,改完 9 æœˆæŠ¥è¡¨æœŸä¸ç”¨å†æ‰‹æ”¹ï¼‰ï¼›
5. **D1 æŠ¥è¡¨æŽªè¾ž**。