docs/¹¤×÷ÈÕ½á/¹¤×÷ÈÕ½á_2026-09-18.md
@@ -60,6 +60,23 @@
那是控制台中文乱码造成的误读;母版/模板真实公式是正确的 `=[1]出租!C13-[1]出租!C15` / `=[1]网约车!C13-[1]网约车!C15`,
台账页「总量−城市内」Σ17 å¸‚å·ž = 535.83 / 333.39,与母版定稿全省行完全一致。**母版公式不需要修,之前"待修母版"的结论作废。**
### 5. ç½‘约车订单报告:Word 2003 XML(WordML)兼容导入(15:00)
**用户报障**:《湖北网络预约出租汽车2025年09月分析报告.docx》放在桌面导不进去。
**定位**:该文件根本不是 docx â€”— æ˜¯ **Word 2003 XML(WordML å¹³é“º XML)** è¢«æ”¹åæˆ `.docx`(文件头 `<?mso-application progid="Word.Document"?><w:wordDocument xmlns:w=".../word/2003/wordml">`,3.1MB çº¯ XML、不是 zip åŒ…),POI çš„ `XWPFDocument` åªèƒ½è¯» OPC(zip) åŒ… â†’ æŠ› `File is not a zip file`。监管平台/同事间流转的报告常是这种格式,会反复出现。
**改动(`DataImportService.java`)**:
- `importWycOrderReport()` å…¥å£æŒ‰æ–‡ä»¶å¤´å—…探格式分派:zip→docx;`<w:wordDocument`+`wordml`→**新增 WordML DOM è§£æžè·¯å¾„**;`D0CF11E0`→明确提示「.doc è¯·å¦å­˜ä¸º docx」;其它→「无法识别」;
- æ–°å¢ž `isWordPackage()`:zip ä½†æ—  `word/document.xml`(xlsx æ”¹åï¼‰â†’ ä¸­æ–‡æç¤ºï¼Œä¸å†æŠ› XMLBeans è‹±æ–‡å †æ ˆï¼›
- æ–°å¢ž `parseXmlSafely()`:DOM è§£æžå…³é—­å¤–部实体/DTD(防 XXE);
- è¡¨æ ¼åŒ¹é…æŠ½æˆä¸Žæ ¼å¼æ— å…³çš„ `matchWycOrderTable()`,docx ä¸Ž WordML ä¸¤æ¡è·¯å¾„**共用同一套表头识别/17 å¸‚州取值/合计行逻辑**,不会口径分叉;
- æŠ¥è¡¨æœŸè¯†åˆ«æŠ½æˆ `periodOfParagraphs()`,两种格式共用。
**验证**:8 æ¡ç”¨ä¾‹å…¨éƒ¨é€šè¿‡ï¼ˆè§ã€ŠåŠŸèƒ½æµ‹è¯•æŠ¥å‘Š_网约车订单报告WordML兼容导入_2026-09-18》)。2025-09 å…¥åº“:订单合计 17,652,159;武汉 8,076,610 / é»„石 676,644 / åå ° 1,048,593 / æ©æ–½ 804,736 / æž—区 1,424,与报告附件1 é€é¡¹ä¸€è‡´ï¼›pin ä»Ž `wyc_total_monthly` åŒæœŸå¤åˆ¶ã€‚真 docx(2026-08)重导幂等无变化;`.doc`、xlsx æ”¹åã€éžæœ¬æŠ¥å‘Š docx ä¸‰ç§è´Ÿå‘均给出中文可操作提示。
**数据缺口已补齐(重要)**:用户在 14:21~14:49 ä¹‹é—´è‡ªè¡Œå¯¼å…¥ 2026-01~06(6 ä»½ï¼‰ã€2025-01、2025-10~12;2025-09 ç”±æœ¬æ¬¡ä¿®å¤åŽè¡¥å…¥ã€‚现在 **2025-01~12 + 2026-01~08 çš„订单与 pin å…¨éƒ¨é½å…¨**。直接效果:中口径维度 4 çš„ 1~6 æœˆä»Žã€Œæ— æºã€å˜ä¸ºã€Œå¯ç®—」,**中口径排名件与中口径明细件的累计口径自动归一**(两者 1-8 æœˆç´¯è®¡å‡ä¸º 31528.0606,此前差 2063.45)。
## äºŒã€æµ‹è¯•结果摘要
见 `docs/功能测试报告/功能测试报告_汇总表公式扩页与重算_2026-09-18.md`:8 æ¡æ­£å‘ + 4 æ¡è´Ÿå‘/边界 + 4 é¡¹å…¥åº“抽查,全部通过。
@@ -88,15 +105,18 @@
- å›žå½’:汇总大表 17 é¡µ **0 æ ¼å·®å¼‚**、《生成_中口径排名》**0 æ ¼å·®å¼‚**;
  æ˜Žç»†ä»¶å·®å¼‚仅落在 æ€»è¡Œ / å‡ºç§ŸåŸŽä¹¡ / ç½‘约车城乡 è¡Œçš„æœˆä»½åˆ—与 AA ç´¯è®¡åˆ—(属预期)。
### ç½‘约车订单报告 WordML å¯¼å…¥ï¼ˆ15:00)验证
- 8 æ¡ç”¨ä¾‹ï¼ˆ4 æ­£å‘ / 3 è´Ÿå‘ / 1 è¾¹ç•Œï¼‰å…¨éƒ¨é€šè¿‡ï¼šWordML 2025-09 å¯¼å…¥æˆåŠŸã€æŠ¥è¡¨æœŸç•™ç©ºæ—¶é æ ‡é¢˜è‡ªåŠ¨è¯†åˆ«ã€çœŸ docx å¹‚等无变化、`.doc`/xlsx æ”¹å/非本报告 docx å‡ç»™å‡ºä¸­æ–‡æç¤ºã€‚
- æ•°æ®è¡¥é½åŽé‡è·‘ 8 æœˆå¯¼å‡ºå›žå½’:独立《生成_中口径明细》报表期内不一致 0、报表期后仍有值 0;与汇总大表「中口径明细」页 **704 å¯¹æ ¼ 0 å·®å¼‚**;全省 1-8 æœˆæ€»å®¢è¿é‡ 3733.79…4003.57,网约车城乡 333.39…426.56,累计 AA5=31528.0607、AA9=2911.47。
- æŽ’名件与明细件累计口径一致(均 31528.0606),差值 2063.45 æ¶ˆå¤±ã€‚
## ä¸‰ã€é—留问题与待办
1. ~~中口径排名同比仍是写死值~~ â†’ **已按新口径取值**(M3=0.638 / Q3=0.2247),但仍与中口径明细的 0.0581 ä¸è‡ªæ´½ï¼Œå·®å€¼ 2063.45 = ç½‘约车 1-6 æœˆæ— æºï¼›**收口办法见下方"第 3 æ­¥æ”¶å£å»ºè®®"**。
2. ~~`loadMidClassMap()` ç¼ºå·¡æ¸¸å‡ºç§Ÿ + ç½‘约车两维~~ â†’ **已补**(维度 3、4),独立中口径明细四维齐全。
3. ~~**母版缺陷待修**:中口径明细城市级公式引错页~~ â†’ **误判,已作废**:真实公式是正确的跨簿引用,母版无需修改;当时的"引错页"是控制台中文乱码误读。
4. **数据缺口(已核实,属源头就没有)**:2026-01~06 ç½‘约车订单在**源文件**《模板_网约车订单及全省总量.xlsx》里就是空的(只有全省 pin、无订单列),
   ä¸æ˜¯å¯¼å…¥å¤±è´¥â€”—`wyc_order_monthly` è¯¥ 6 æœŸ `order_*` å…¨ NULL ä¸Žä¹‹å»åˆï¼ˆå¯¼å…¥æ‰¹æ¬¡ `WYC_ORDER`,09-04)。
   å½±å“é¢åªæœ‰ä¸€ä¸ªï¼š`WycSplitCalc.calc()` å›  `orderSum<=0` ç®—不出网约车拆分 â†’ ç»´åº¦ 4 è¯¥ 6 ä¸ªæœˆæ— æºï¼ˆçŽ°å·²ç”±ç¬¬ 4 æ¡æ”¹åŠ¨ä¿ç•™æ¯ç‰ˆå®šç¨¿å€¼å…œä½ï¼‰ã€‚
   **建议**:给网约车订单导入加一条「订单列全空」的显式提示(现在会静默成功),并请业务确认这 6 ä¸ªæœˆè®¢å•是否可补。
4. ~~**数据缺口**:2026-01~06 ç½‘约车订单未入库~~ â†’ **已补齐**(用户 14:21~14:49 å¯¼å…¥ 2026-01~06 + 2025-01 + 2025-10~12;2025-09 ç» WordML ä¿®å¤åŽè¡¥å…¥ï¼‰ã€‚现在 2025-01~12 + 2026-01~08 è®¢å•齐全,维度 4 å…¨æœŸå¯ç®—,排名件/明细件口径归一。仍建议补一条「导入时订单列全空」的显式提示(《模板_网约车订单及全省总量.xlsx》那类文件现在会静默成功)。
5. åº“内 h2031「全省」行 â‰  Î£17 å¸‚州(1-8 æœˆ 27524.49 vs 24481.74,差 3042.75):业务口径问题,建议业务侧核对。
6. æŠ•资:模板里没有的新项目不会自动插行;明细表资金渠道分组行未入库(需加 `fund_channel`);同名不同项目未弹窗。
7. æŠ•资两张明细表(`X月客运站投资明细表` / `X月物流站场投资明细`)生成器未做。
@@ -116,6 +136,6 @@
## å››ã€æ˜Žå¤©è®¡åˆ’
1. ç¬¬ 3 æ­¥æ”¶å£ï¼šæŽ’名件与明细件口径归一(差值 2063.45 = 2026 å¹´ 1-6 æœˆç½‘约车城乡)→ æŽ’名件改取汇总表同源值 â†’ å›ºåŒ–"生成件 vs æ¯ç‰ˆé‡ç®—"逐格回归脚本。
2. ç½‘约车订单导入空列提示(页面明确提示"该期订单列为空,未写入订单数")+ å‘用户确认 2026-01~06 æ˜¯å¦è¡¥æ•°ã€‚
2. ç½‘约车订单导入空列提示(页面明确提示"该期订单列为空,未写入订单数")——数据虽已补齐,但静默成功仍是隐患。
3. æŠ•资"新增项目插行 + åˆ†ç»„行入库(`fund_channel`)"方案落地(等用户对"模块"口径的最后确认)。
4. æŠ•资两张明细表生成器(`X月客运站投资明细表` / `X月物流站场投资明细`)。