zhizhijie
2026-09-18 8719902780eadfc55d4d159d5a111b433f065137
docs/¹¤×÷ÈÕ½á/¹¤×÷ÈÕ½á_2026-09-18.md
@@ -21,6 +21,23 @@
- å†™äº†ã€Šæ±‡æ€»è¡¨ä¸‰æ¡ä¸»çº¿ä¿®å¤æ–¹æ¡ˆ_2026-09-18》(`docs/问题汇总/`),把根因、证据、4 æ­¥ä¿®æ³•、投资"按项目名称更新/新增插行"现状一并记录。
- æŠ•资侧核实:导入确实按「项目名称 + ç±»åˆ«ã€upsert(库内 å®¢è¿ç«™åœº 49/49、物流园区 135/135 æ— é‡å¤è¡Œï¼‰ï¼›ç¼ºå£æ˜¯"模板里没有的新项目不会插行"、"资金渠道分组行导入时被跳过"、"同名不同项目不弹窗"。
### 3. ç¬¬ 3 æ­¥ï¼šä¸­å£å¾„四维口径统一(下午)
**口径定死**(写进《功能测试报告_中口径四维口径统一_2026-09-18》):1 å…¬è·¯ç­çº¿ï¼ˆh2031+个体)= 2 åŸŽé™…城乡公交(city_bus)= 3 åŸŽé™…城乡巡游出租(city_taxi:总量−城市内)= 4 åŸŽé™…城乡网约车(WycSplitCalc æ‹†åˆ†ï¼‰ï¼›æ€»é‡ = å››ç»´ä¹‹å’Œï¼›**全省行一律 Î£17 å¸‚å·ž**。
**改动**(`ReportExportService.java`):
- `loadMidClassMap()` è¡¥ç»´åº¦ 3、维度 4(新增 `midPeriodKey()`);
- `fillMidCell()` åŽ»æŽ‰ã€Œå‡ºç§Ÿ/网约车写死 0」旁路;`fillMidYoyCell()`/`fillMidCumYoyColumn()` åŒæ¯”改四维齐全;
- `exportPassengerMidDetail()` ç”±ã€ŒåªéåŽ†å…¬å¼æ ¼ã€æ”¹ä¸ºã€ŒæŒ‰åˆ—éåŽ†ã€ï¼ˆæ‰©åˆ—å‡ºçš„ 7~12 æœˆç©ºæ ¼æ‰å¡«å¾—上);
- æ‰©åˆ—月份的总行值列改由库内四维合计直接写入(模板本无此列,克隆后既无公式也无缓存值);
- è¯¥å‡½æ•°é‡ç®—改用逐格容错的 `recalcWorkbookFormulas()`——`evaluateAll()` ä¼šåœ¨è·¨ç°¿å…¬å¼ï¼ˆSheet2 çš„ `[1]xx!A1`)处整本中断,累计列就永远拿不到新缓存值。
**验证**:独立《生成_中口径明细》8 æœˆå…¨çœæ€»è¡Œ 4003.5701、7 æœˆ 4028.3213(原为空),18 ä¸ªåœ°åŒºæ€»è¡Œ = Î£4 ç»´ã€ç´¯è®¡åˆ— = Î£1-8 æœˆï¼›ä¸Žæ±‡æ€»å¤§è¡¨ã€Œä¸­å£å¾„明细」页逐格一致;回归 = æ±‡æ€»è¡¨ 17 é¡µ 0 å·®å¼‚、排名件 0 å·®å¼‚、明细件仅 36 æ ¼ï¼ˆ18 åœ°åŒº Ã— 2 ä¸ªæœˆæ€»è¡Œï¼‰å˜åŒ–。
**顺带查清两个老问题**:
- ã€Šç”Ÿæˆ_中口径排名》全省累计 29464.6108 / åŒæ¯” 0.638,比中口径明细少 2063.45,差值正好是 2026 å¹´ 1-6 æœˆç»´åº¦ 4(网约车)→ æŽ’名件是 Java çŽ°ç®—ã€æ˜Žç»†é¡µèµ°æ¯ç‰ˆå…¬å¼é“¾ï¼Œä¸¤å¥—å£å¾„æ‰“æž¶ï¼ˆç¬¬ 3 æ­¥çš„真正收口点)。
- æ¯ç‰ˆã€Œä¸­å£å¾„明细」城市级「城际城乡巡游出租/网约车」行公式引错页(`=公交!C13-公交!C15`,应指向 `出租!`/`网约车!`),城市级恒 0、全省行靠缓存值 â†’ éœ€ä¿®æ¯ç‰ˆå…¬å¼ä¸€æ¬¡ã€‚
## äºŒã€æµ‹è¯•结果摘要
见 `docs/功能测试报告/功能测试报告_汇总表公式扩页与重算_2026-09-18.md`:8 æ¡æ­£å‘ + 4 æ¡è´Ÿå‘/边界 + 4 é¡¹å…¥åº“抽查,全部通过。
@@ -30,16 +47,38 @@
- ä¸­å£å¾„排名 K3 ç¼“å­˜ 24481.7407 = æ‰‹å·¥ Î£17 å¸‚州。
- å›žå½’:改动前后逐格对比,仅 216 æ ¼å˜åŒ–,全部落在目标两页,其余 17 é¡µ 0 å·®å¼‚。
### ç¬¬ 3 æ­¥ï¼ˆä¸‹åˆï¼‰æµ‹è¯•结果
见 `docs/功能测试报告/功能测试报告_中口径四维口径统一_2026-09-18.md`:6 æ¡æ­£å‘ + 3 æ¡å›žå½’ + 3 æ¡è´Ÿå‘边界,全部通过。
- ç‹¬ç«‹ã€Šç”Ÿæˆ_中口径明细》全省 8 æœˆæ€»å®¢è¿é‡ 4003.5701 = ç­çº¿ 1646.4801 + å…¬äº¤ 1436.63 + å‡ºç§ŸåŸŽä¹¡ 493.90 + ç½‘约车城乡 426.56;
- 18 ä¸ªåœ°åŒº Ã—(7、8 æœˆï¼‰æ€»è¡Œ = Î£ è¯¥å— 4 ç»´è¡Œï¼›ç´¯è®¡åˆ—缓存值 = Î£1-8 æœˆï¼ˆå…¨çœ 31528.0607);
- å›žå½’:汇总大表 17 é¡µ 0 æ ¼å˜åŒ–、《生成_中口径排名》0 æ ¼å˜åŒ–、《生成_中口径明细》仅 36 æ ¼å˜åŒ–(全部是目标格)。
## ä¸‰ã€é—留问题与待办
1. **中口径排名同比仍是写死值**(M3=0.7424 / Q3=0.2317,库内全省口径),需与 Î£17 å¸‚州口径统一 â€”— ç¬¬ 3 æ­¥ã€‚
2. **`loadMidClassMap()` ç¼ºå·¡æ¸¸å‡ºç§Ÿ + ç½‘约车两维**,导致独立《生成_公路旅客中口径明细》少 535.83+333.39(1 æœˆï¼‰â€”— ç¬¬ 3 æ­¥ã€‚
3. **库内 h2031「全省」行 â‰  Î£17 å¸‚å·ž**(1-8 æœˆ 27524.49 vs 24481.74,差 3042.75):业务口径问题,建议业务侧核对。
4. æŠ•资:模板里没有的新项目不会自动插行;明细表资金渠道分组行未入库(需加 `fund_channel`);同名不同项目未弹窗。
5. æŠ•资两张明细表(`X月客运站投资明细表` / `X月物流站场投资明细`)生成器未做。
1. ~~中口径排名同比仍是写死值~~ â†’ **已按新口径取值**(M3=0.638 / Q3=0.2247),但仍与中口径明细的 0.0581 ä¸è‡ªæ´½ï¼Œå·®å€¼ 2063.45 = ç½‘约车 1-6 æœˆæ— æºï¼›**收口办法见下方"第 3 æ­¥æ”¶å£å»ºè®®"**。
2. ~~`loadMidClassMap()` ç¼ºå·¡æ¸¸å‡ºç§Ÿ + ç½‘约车两维~~ â†’ **已补**(维度 3、4),独立中口径明细四维齐全。
3. **母版缺陷待修**:中口径明细城市级「城际城乡巡游出租/网约车」行公式引错页(指向 `公交!`),城市级恒 0、全省行靠缓存值。
4. **数据缺口**:2026-01~06 ç½‘约车订单未入库(`order_*` å…¨ NULL),模板《网约车订单及全省总量.xlsx》只有 2026-07 ä¸€è¡Œ â†’ ç»´åº¦ 4 è¯¥ 6 ä¸ªæœˆæ— æºï¼›éœ€ä¸šåŠ¡è¡¥æ•°æˆ–ç¡®è®¤ä¸é€‚ç”¨ã€‚
5. åº“内 h2031「全省」行 â‰  Î£17 å¸‚州(1-8 æœˆ 27524.49 vs 24481.74,差 3042.75):业务口径问题,建议业务侧核对。
6. æŠ•资:模板里没有的新项目不会自动插行;明细表资金渠道分组行未入库(需加 `fund_channel`);同名不同项目未弹窗。
7. æŠ•资两张明细表(`X月客运站投资明细表` / `X月物流站场投资明细`)生成器未做。
### ç¬¬ 3 æ­¥æ”¶å£å»ºè®®ï¼ˆå¾…用户拍板)
不再让 Java å„算一套,改为**一条链路出数**:母版公式链(全省行 = Î£17 å¸‚州、累计 = Î£å„月、派生页跨页引用)+ å°è´¦é¡µå†™æ•° + ç”Ÿæˆæ”¶å°¾é‡ç®—。
1. å°è´¦é¡µï¼ˆè´§è¿ / ç­çº¿åŒ…车 / å…¬äº¤ / å‡ºç§Ÿ / ç½‘约车 / è½¨é“轮渡)只写当月值;
2. æ´¾ç”Ÿé¡µï¼ˆåŸŽå¸‚客运 / ä¸­å£å¾„明细 / å…¬è·¯æ€»å®¢è¿ / ä¸­å£å¾„客运量 / æŽ’名)**只补公式 + é‡ç®—,不单独写数**;
3. åªæœ‰æ¯ç‰ˆé‡Œæœ¬å°±æ˜¯ç¡¬ç¼–码数值的行(中口径明细的城市级"城际城乡出租/网约车"、全省行)按四维口径回填;
4. ç‹¬ç«‹å¯¼å‡ºä»¶ï¼ˆç”Ÿæˆ_中口径明细 / æŽ’名 / å…¬è·¯æ—…客分市州)改为直接取汇总表对应页的值,或共用同一口径函数;
5. æ¯ç‰ˆé‡Œå¼•错页的城市级公式修一次(第 3 æ¡ï¼‰ï¼›
6. ç”ŸæˆåŽè·‘"生成件 vs æ¯ç‰ˆé‡ç®—"逐格回归比对,差异清单落日志,作为验收基线。
## å››ã€æ˜Žå¤©è®¡åˆ’
1. ç¬¬ 3 æ­¥ï¼šç»Ÿä¸€ä¸­å£å¾„口径(rank å…¨çœåŒæ¯”改为同源 + `loadMidClassMap` è¡¥ä¸¤ç»´ï¼‰ï¼Œæ”¹å®Œå¯¹ç‹¬ç«‹ä¸­å£å¾„明细与汇总表逐项比对。
2. æŠ•资"新增项目插行 + åˆ†ç»„行入库"方案落地(等用户对"模块"口径的最后确认)。
3. å»ºç”Ÿæˆä»¶ vs æ¯ç‰ˆé‡ç®—的回归比对脚本,固化为每次改动的验收基线。
1. ç¬¬ 3 æ­¥æ”¶å£ï¼šæŒ‰ä¸Šé¢ 6 æ¡è½åœ°ï¼ˆå…ˆä¿®æ¯ç‰ˆå¼•错页的城市级公式 â†’ æŽ’名件改取同源 â†’ å»ºå›žå½’比对脚本)。
2. ç½‘约车 2026-01~06 è®¢å•数据缺口:向用户确认是补数还是留空。
3. æŠ•资"新增项目插行 + åˆ†ç»„行入库"方案落地(等用户对"模块"口径的最后确认)。
4. æŠ•资两张明细表生成器。