docs/»ã×Ü´ó±íM0°æÊ½Öؽ¨Æ÷¹æ¸ñ_2026-10-06.md
@@ -141,4 +141,99 @@
- 3 ä¸ªéšè—å…¬å¼é¡µä¾èµ–母版现成公式,阶段 1–2 å¿…须原样保留,阶段 4 æ‰è°ˆé‡å»ºã€‚
- æ‰“印区、页眉页脚、条件格式、列宽必须逐页核对,是"肉眼版式"最易漏的点。
- ä¸šåŠ¡æ”¹æŒ‡æ ‡è¡Œ/页签/边框属于需求变更,任何方案都要一次适配;本方案把频率从「每月一次」降到「偶尔一次」。
- æ¯ç‰ˆæ”¹ä¸ºåªè¯»ï¼Œå¯é¡ºå¸¦è§„避 WPS/openpyxl é‡å­˜å¸¦æ¥çš„高压缩与残留 `<is>` éžæ³•格两类历史坑。
- æ¯ç‰ˆæ”¹ä¸ºåªè¯»ï¼Œå¯é¡ºå¸¦è§„避 WPS/openpyxl é‡å­˜å¸¦æ¥çš„高压缩与残留 `<is>` éžæ³•格两类历史坑。
## åäºŒã€å­˜å‚¨å±‚/展示层约定:参照同事「二维表」模式(2026-10-09)
### 12.1 ä¸‰å±‚职责
- **存储层(DB)**:一张张二维表,键与值明确;存三类内容——原始值、配置值、人工调整值。
- **计算层**:导出时按口径计算(累计、同比、环比、占比、排名)。
- **展示层(Excel)**:只把值和公式按版式摆出来,不承担存储职责。
### 12.2 ã€Œä¸€è¡¨ä¸€ç²’度」约定(示例取自同事的专项统计)
| è¡¨ | ä¸»é”®ï¼ˆç²’度) | å€¼ | ç±»åˆ« |
|---|---|---|---|
| holiday_passenger_flow | å¹´ + æ—¥æœŸ + è¿è¾“方式 | å®¢è¿é‡ | åŽŸå§‹å€¼ |
| holiday_vehicle_flow | å¹´ + æ—¥æœŸ + é“路类别 + è½¦åž‹ | è½¦æµé‡ã€çŽ¯æ¯”åŸºæœŸ | åŽŸå§‹å€¼ |
| holiday_calendar | å¹´ + èŠ‚å‡æ—¥ç±»åž‹ + ç¬¬å‡ æ—¥ | æ—¥æœŸ | é…ç½®å€¼ |
| holiday_passenger_coefficient | å¹´ + æ—¥æœŸç±»åˆ« | å®¢è¿ç³»æ•° | é…ç½®å€¼ |
| holiday_vehicle_adjustment | å¹´ + æ—¥æœŸ | è°ƒæ•´åŽå€¼ + åŽŸå›  | äººå·¥è°ƒæ•´å€¼ |
我们现有导入表同样满足该约定:`city_bus_monthly`(报表期 + åœ°åŒº + ä¼ä¸šï¼‰ã€`city_taxi_monthly`(报表期 + åœ°åŒºï¼‰ã€`freight_turnover_import`(报表期 + åœ°åŒºï¼‰ã€`scale_split_transport`(报表期 + åœ°åŒº + æœˆ/累计)、`h2031_enterprise_monthly`(报表期 + ä¼ä¸šï¼‰ã€`h2032_enterprise_monthly`、`wyc_order_monthly` / `wyc_total_monthly`、`passenger_individual_monthly`。存储层形态是对的。
### 12.3 äººå·¥è°ƒæ•´å€¼ä¸€å¾‹å•独建表(覆盖层)
- æ¨¡å¼ï¼š**原始记录不动**,另表存「覆盖值 + åŽŸå›  + æ—¶é—´ã€ï¼Œå”¯ä¸€é”®ä¸Žæ‰€è¦†ç›–对象一致(参照同事的 `holiday_vehicle_adjustment`)。
- æˆ‘们的适用对象:2025 å‚照值修正、异常站剔除、业务临时改数等。
### 12.4 çŽ°çŠ¶æ ¸éªŒï¼ˆ2026-10-09 å®žæµ‹ï¼Œä¿®æ­£æ—©æœŸåˆ¤æ–­ï¼‰
实测库 `127.0.0.1:3308 / traffic_audit`(MySQL 8.0.29):
| è¡¨ | 2025 æœˆä»½æ•° | ç»“论 |
|---|---|---|
| city_bus_monthly | 12/12 | é½å…¨ |
| city_taxi_monthly | 12/12 | é½å…¨ |
| wyc_order_monthly / wyc_total_monthly | 12/12 | é½å…¨ |
| h2031_enterprise_monthly / h2032_enterprise_monthly | 12/12 | é½å…¨ |
| passenger_individual_monthly | 12/12 | é½å…¨ |
| freight_turnover_import | 1/12(仅 2025-12) | **不构成缺口**:表带 `last_freight_m01..m12` / `last_turnover_m01..m12`,2026 å„期文件自带去年同月值 |
| scale_split_transport | 0/12 | **不构成缺口**:表带 `above/below/total_yoy`,同比已随 2026 å„期入库 |
- æ—©æœŸ"库里没有 2025 å¹´åŸŽå¸‚客运数据"的注释与提示文案(`ReportExportService.java:499 / 558 / 561`)**已过期**,触发条件不再成立;同比取数走的是库内去年同期(`aggOf(data, year-1, m, "湖北省")`,约 540 è¡Œï¼‰ã€‚
- **真正遗留的是口径问题,不是缺数据**:中口径排名/明细的 2025 åˆ—仍以**母版静态定稿值**为准(`readMidDetailLastYearCumulative`,`ReportExportService.java:2745` èµ·ï¼‰ï¼Œä»£ç æ³¨é‡Šï¼ˆ2686-2689 è¡Œï¼‰è¯´æ˜ŽåŽŸå› â€”â€”"排名页原先查库现算,两者在 **2025-03/04 ç½‘约车拆分**上不同"。
- å¤„置(**2026-10-09 ä¿®æ­£**):该"待确认"判断有误——同比基准已在 2026-09-07 æ‹æ¿ä¸ºã€Œ**母版缓存优先,库仅作校验**」(`docs/要求与验收基线清单.md` F8、确认回执 Q1);库内 2025 çŽ°ç®—å€¼**不得**直接替代母版静态定稿值,仅当人工核对并重导一致后才切库值。详见第十三节。
### 12.5 ç»“果层(比同事更进一步,可选)
- åŒäº‹åº“里**不存计算结果**:累计、同比、占比、环比均导出时算,Excel å†…表现为公式。
- æˆ‘们可选增加一张结果表,粒度 = æœŸé—´ + é¡µ + æŒ‡æ ‡ + å¸‚å·ž + å½“月/累计;Calc å†™å…¥ã€Filler è¯»å–。
- æ”¶ç›Šï¼šå°è¡¨ä¸Žè·¨é¡µåˆæˆé¡µå…±ç”¨ä¸€å¥—结果;逐格 diff æ—¶èƒ½ç›´æŽ¥åŒºåˆ†ã€Œç®—错」还是「填错」。
- çº¦å®šï¼šæŒ‰æœŸé—´**幂等重算**(先删该期间再插);显示取整不下沉到库,只在展示层舍入。
### 12.6 è‡ªæ£€çºªå¾‹ï¼ˆçº¢çº¿ï¼‰
> **母版里不允许存在「只有它才有的数据」。**
判定方法:把母版所有值清空后,程序能否重新生成一张完全一致的表?能 â†’ æ•°æ®éƒ½åœ¨åº“;不能 â†’ è¿˜æœ‰æ•°æ®è—åœ¨ Excel é‡Œï¼Œç»§ç»­å¾€åº“里搬。
### 12.7 ä¸Ž M0 çš„关系(依赖顺序)
- 12.4 çš„口径核对不阻塞 M0 é˜¶æ®µ 1(版式重建)。
- M0 é˜¶æ®µ 2「停用 `_备份_` donor è¿˜åŽŸã€çš„æ•°æ®å‰æ**已基本满足**(2025 å·²åœ¨åº“);但仍需先关闭 12.4 çš„差异,否则切换取数来源会让数字变动、无法通过 diff=0 å›žå½’。
## åä¸‰ã€æ—¢æœ‰æ‹æ¿æ ¸éªŒï¼ˆ2026-10-09 æŸ¥è¯ï¼‰â€”—本节优先级高于前述各节,冲突以本节为准
### 13.1 åŒæ¯”基准:以母版缓存为准(已确认,不是待定项)
| å‡ºå¤„ | åŽŸæ–‡è¦ç‚¹ | çŠ¶æ€ |
|---|---|---|
| `docs/要求与验收基线清单.md` F8 | 2025 å¹´å‰æ•°æ®ä»¥æ¯ç‰ˆç¼“存为准;**母版缓存优先作同比基准,库只做校验**,人工核对重导一致后才切库值(Q1) | âœ… å£å¾„确认 |
| `docs/确认回执汇总与剩余疑问_汇总大表数据驱动改造_2026-09-07.md` Q1 | ä»¥æ¯ç‰ˆç¼“存为同比基准并仅提示;待人工核对后重导一致再切换为库值("母版缓存优先,库仅作校验参考") | å·²ç¡®è®¤ |
| `docs/汇总大表数据驱动改造方案_2026-09-07.md` ç¬¬ä¹èŠ‚ | 2025 å®šç¨¿æ•°æ®"前台导入校验"另立任务;**本期同比一律以母版缓存为基准** | â€” |
| `docs/待确认_汇总大表数据驱动改造问题清单_2026-09-07.md` A1 | 2025 åŠä»¥å‰åŽ†å²åˆ—ä¸€å¾‹**保留母版缓存、不重算** | â€” |
| `docs/问题汇总/汇总大表问题交接_2026-09-21.md` æ–¹æ¡ˆ A | ä¸­å£å¾„排名取去年同期累计改用母版 2025 é™æ€åˆ—(与中口径明细同源),已实施 | å·²å®žæ–½ |
结论:**库内 2025 çŽ°ç®—å€¼ä¸èƒ½ç›´æŽ¥æ›¿ä»£æ¯ç‰ˆ 2025 é™æ€å®šç¨¿å€¼**;切换的唯一前提是"人工核对并重导一致"。第十二节 12.4 ä¸­"交业务确认以哪边为准"的表述据此修正(见该节 2026-10-09 ä¿®æ­£è¡Œï¼‰ã€‚
### 13.2 æ‰©åˆ—方式:按月按需(已拍板)——与本文档"满版式"建议冲突
| å‡ºå¤„ | åŽŸæ–‡è¦ç‚¹ | çŠ¶æ€ |
|---|---|---|
| `docs/要求与验收基线清单.md` F10 | **扩列按月按需(加月份才扩列,不预做 12 æœˆæ»¡ç‰ˆï¼‰**;新增列"当月/同比"标题为两行合并单元格,扩列须保留 | âœ… M0 v4 |
| `docs/汇总大表数据驱动改造方案_2026-09-07.md` v1.1 ä¿®è®¢ï¼ˆ2026-09-08 ç”¨æˆ·æ‹æ¿ï¼‰ | æ­£æ–‡"12 æœˆæ»¡ç‰ˆåˆ—版式"建议**作废**;扩列按"每月需增月份时再扩列"执行(=D1 åŽŸå£å¾„ï¼‰ | å·²æ‹æ¿ |
→ æœ¬æ–‡æ¡£ç¬¬ä¹èŠ‚ / ç¬¬åä¸€èЂ䏭"一次建成 12 æœˆæ»¡ç‰ˆå¼"的建议与 F10 å†²çªï¼Œ**待用户裁定**。若沿用既有口径,阶段 1 åº”改为"扩列器按月按需"实现,而非满版式。
### 13.3 å·²æœ‰çš„ 09-29 æ‰©åˆ—工作产物(本地未入库;`docs/问题汇总/_*.md` å·²è¢« gitignore å‘½ä¸­ï¼‰
- `docs/问题汇总/_扩列规格表_2026-09-29.md` / `.csv`:19 é¡µé€é¡µè§„格——类型(A æœˆä»½å¯¹+累计 / B éƒ¨åˆ†æœˆä»½å¯¹ / C æœªè¯†åˆ«æœˆä»½å¯¹ï¼‰ã€å„页月份对列位、累计列、建议插入位置、数据行范围、标题写法。
- `docs/问题汇总/_扩列配置初稿_20260929.md` / `.csv`、`_扩列计划_v3..v10.json`:配置与计划迭代(v10 ä»…剩 `轨道、轮渡` ä¸€é¡µï¼‰ã€‚
- `docs/问题汇总/_扩列进度_20260929.md`:8 æœˆâ†’9 æœˆæ‰©åˆ—进度——8 é¡µå·²æ’列;6 é¡¹å¾…修(表头显示/合并区/累计只到 8 æœˆä¸”多写 +Q/累计同比去年基数只到 8 æœˆ/标题月份未 +1/轨道轮渡需按块分别插列);若干页插入位置待确认。
- è¯•做件 `docs/生成汇总大表/2026å¹´9月道路运输量汇总表_试做_20260929.xlsx`(结构可看、数值未修完,勿用于出表)。
→ æœ¬è§„格应与上述产物对齐推进,不再另行设计。
### 13.4 æ¯ç‰ˆç»´æŠ¤ç›®æ ‡ï¼ˆæ—¢æœ‰å£å¾„)
- `docs/待确认_汇总大表数据驱动改造问题清单_2026-09-07.md` A4:**"稳定后母版只当版式模板,月度数据一律程序填"**——与本文档目标一致。