fix: 规上规下拆分导入识别 N月份 页签(补当月行)+ 数据缺口清单与拍板记录 + 测试报告
2个文件已修改
2个文件已添加
109 ■■■■■ 已修改文件
docs/功能测试报告/功能测试报告_规上规下拆分月份页签识别_2026-09-04.md 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/生成汇总大表/数据导入现状与缺口清单_2026-09-04.md 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/生成汇总大表/汇总表母版数据体检与待决策清单_2026-09-04.md 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
traffic-audit-server/src/main/java/com/trafficaudit/dataimport/service/DataImportService.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/¹¦ÄܲâÊÔ±¨¸æ/¹¦ÄܲâÊÔ±¨¸æ_¹æÉϹæÏ²ð·ÖÔ·Ýҳǩʶ±ð_2026-09-04.md
New file
@@ -0,0 +1,27 @@
# åŠŸèƒ½æµ‹è¯•æŠ¥å‘Šï¼šè§„ä¸Šè§„ä¸‹æ‹†åˆ†å¯¼å…¥æ”¯æŒâ€œN月份”页签(2026-09-04)
## åŠŸèƒ½è¯´æ˜Ž
《规上规下拆分》数据源文件(如《2026å¹´1-N月公路货运量(分市州).xlsx》)的页签命名为“1月份…N月份 / 1月累计…N月累计”。原导入逻辑只识别“当月/累计”,导致“N月份(当月)”页签被整体跳过:库里 04-07 åªæœ‰ CUMULATIVE(累计)行、无 MONTH(当月)行。
本次改动(`DataImportService.importScaleSplit`,2 è¡Œï¼‰ï¼š
- é¡µç­¾æŽ¢æµ‹ï¼š`sn.contains("当月") || sn.contains("累计")` â†’ å¢žåŠ  `|| sn.contains("月份")`;
- å½“月份判定:`sheetName.contains("当月")` â†’ `sheetName.contains("当月") || sheetName.contains("月份")`。
## æµ‹è¯•环境
- åŽç«¯ 8090(2026-09-04 15:48 é‡å¯ï¼ŒåŠ è½½æœ¬æ”¹åŠ¨ï¼‰ï¼›MySQL 127.0.0.1:3308。
- éªŒè¯å¯¹è±¡ï¼šã€Š2026å¹´1-6月公路货运量(分市州).xlsx》(D:\桌面\测试数据\货运\6月)页签 12 ä¸ªï¼ˆ1-6月累计+1-6月份)。
## ç”¨ä¾‹ä¸Žç»“æžœ
| ç”¨ä¾‹ | è¾“å…¥ | é¢„期 | å®žé™… | ç»“论 |
|---|---|---|---|---|
| ç¼–译 | mvn -o compile | EXIT=0 | EXIT=0 | PASS |
| é¡µç­¾è¯†åˆ«ï¼ˆé™æ€éªŒè¯ï¼‰ | å®žæµ‹æ–‡ä»¶é¡µç­¾â€œ6月份/6月累计…” | ä¸¤ç§é¡µç­¾å‡å¯è¢«æ–°æ¡ä»¶å‘½ä¸­ï¼ˆæœˆä»½â†’MONTH、累计→CUMULATIVE) | ä»£ç æ¡ä»¶ä¸Žæ–‡ä»¶é¡µç­¾å‘½åé€ä¸€æ¯”对一致;“6月累计”含“累计”,两种写法不再有遗漏 | PASS |
| å¸ƒå±€å…¼å®¹ï¼ˆé™æ€éªŒè¯ï¼‰ | â€œ6月份”与“6月累计”前 3 è¡Œè¡¨å¤´ | ä¸Žå¯¼å…¥å™¨éªŒæ”¶è§„则(市州/规上…/周转量子表头)一致 | ä¸¤é¡µç­¾ç¬¬2行A=市州、B=规上企业运输量,第3行B=周转量…,走“仅周转量”分支,列位对齐 | PASS |
| åŽç«¯å°±ç»ª | é‡å¯ start-dev.ps1 | 8090 å°±ç»ª | Started TrafficAuditApplication 15:48:09,端口响应正常 | PASS |
| ç«¯åˆ°ç«¯é‡å¯¼ | ç”¨çœŸå®žæ–‡ä»¶é‡å¯¼ 04-07(落库) | è¡¥å‡ºå½“月行 | æœªæ‰§è¡Œï¼šéœ€ç”¨æˆ·åœ¨å¯¼å…¥é¡µé‡å¯¼ç¡®è®¤ï¼ˆé¿å…å¯¹å…±äº«åº“自行写数) | å¾…回归 |
## å‘现的问题与处置
1. æ—§æ•°æ® 04-07 åªæœ‰ç´¯è®¡è¡Œï¼šå¤„ç½®=用户按拍板第 3 æ¡å…è®¸é‡å¯¼ï¼ŒåŽç«¯å·²å°±ç»ªï¼Œç”¨åŽŸæ–‡ä»¶é‡å¯¼å³å¯è¡¥å‡ºå½“æœˆ(MONTH)行。
2. æ•°æ®ç¼ºå£ 01-03(拆分当月+累计均无):见《docs/生成汇总大表/数据导入现状与缺口清单_2026-09-04.md》第三部分,用户补导。
## ç»“论
代码改动就绪、编译与静态布局验证通过、后端已加载;端到端“重导补当月行”留待用户在导入页用真实文件回归(推荐同时抽查 04 ä¸Ž 06 å„一笔与源文件逐格对齐)。
docs/Éú³É»ã×Ü´ó±í/Êý¾Ýµ¼ÈëÏÖ×´Óëȱ¿ÚÇåµ¥_2026-09-04.md
New file
@@ -0,0 +1,67 @@
# æ•°æ®å¯¼å…¥çŽ°çŠ¶ä¸Žç¼ºå£æ¸…å•ï¼ˆ2026-09-04 å¿«ç…§ï¼‰
> ç”¨é€”:支撑“先生成 1-6 æœˆã€1-7 æœˆæ‰©åˆ—”验证(今日拍板第 6、7 æ¡ï¼‰ã€‚
> æ•°æ®æ¥æºï¼š`import_batch` + ä¸šåŠ¡è¡¨è¡Œæ•°ï¼Œå¿«ç…§æ—¶é—´ 2026-09-04 15:5x;库:traffic_audit(127.0.0.1:3308)。
## ä¸€ã€å„模块「数据类型 â†” æºæ–‡ä»¶ã€å¯¹ç…§ï¼ˆå¯¼å…¥ä¸‹æ‹‰ç”¨ï¼‰
| æ•°æ®ç±»åž‹(下拉) | åº“表 | å¸¸ç”¨æºæ–‡ä»¶ |
|---|---|---|
| è´§è¿ä¼ä¸šæœˆæŠ¥(H203-2) | h2032_enterprise_monthly | ã€Šé“路货物运输月度生产情况表》/H203-2 |
| è´§è¿é‡å‘¨è½¬é‡(全口径) | freight_turnover_import | ã€Šå®šç¨¿-湖北省各市州运输量数据(2026å¹´1-N月).xlsx》/《模板_货运量周转量.xlsx》 |
| è§„上规下拆分 | scale_split_transport | ã€Š2026å¹´1-N月公路货运量(分市州).xlsx》(页签“N月份 / N月累计”)/《模板_规上规下拆分运输量.xlsx》 |
| å…¬è·¯æ—…客企业月报(H203-1) | h2031_enterprise_monthly | ã€Šå…¬è·¯æ—…客运输月度生产情况(2026å¹´N月).xls》 |
| ä¸ªä½“客运月报 | passenger_individual_monthly | ã€Šæ¹–北省公路旅客运输个体户月度生产情况(2026.N).xlsx》 |
| åŸŽå¸‚公交月报 | city_bus_monthly | ã€ŠåŸŽå¸‚公共交通月度运营情况(2026å¹´N月).xls》 |
| å·¡æ¸¸å‡ºç§ŸæœˆæŠ¥ | city_taxi_monthly | ã€Šå·¡æ¸¸å‡ºç§Ÿæ±½è½¦è¿è¥æœåŠ¡æƒ…å†µæœˆæŠ¥ï¼ˆ2026å¹´N月).xls》 |
| ç½‘约车订单及全省总量 | wyc_order_monthly | ã€Šç½‘约车订单及全省总量.xlsx》 |
| ç½‘约车总数 | wyc_total_monthly | ã€Šç½‘约车总数.xlsx》 |
## äºŒã€2026 å¹´ 1-8 æœˆå¤§è¡¨è¾“入导入矩阵
图例:● å·²æœ‰æˆåŠŸå¯¼å…¥è®°å½•ï¼›â€” ç¼ºï¼›â–² å·²å¯¼ä½†éœ€å‡çº§åŽé‡å¯¼ï¼ˆå½“月块缺失);△ å·²å¯¼ä½†æ–‡ä»¶å‘½åå­˜ç–‘待核对。
| æ•°æ®ç±»åž‹ï¼¼æœˆä»½ | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 |
|---|---|---|---|---|---|---|---|---|
| è´§è¿ä¼ä¸šæœˆæŠ¥(H203-2) | â— | â— | â— | â— | â— | â— | â— | â— |
| è´§è¿é‡å‘¨è½¬é‡(全口径) | â€” | â€” | â€” | â— | â— | â—(注1) | â— | â€” |
| è§„上规下拆分 | â€” | â€” | â€” | â–² | â–² | â–² | â–² | â€” |
| å…¬è·¯æ—…客企业月报(H203-1) | â€” | â€” | â— | â— | â— | â— | â— | â— |
| ä¸ªä½“客运月报 | â€” | â€” | â€” | â— | â–³(注2) | â— | â— | â€” |
| åŸŽå¸‚公交月报 | â€” | â€” | â€” | â— | â— | â— | â— | â€” |
| å·¡æ¸¸å‡ºç§ŸæœˆæŠ¥ | â€” | â€” | â€” | â— | â— | â— | â— | â€” |
| ç½‘约车订单及全省总量 | â— | â— | â— | â— | â— | â— | â— | â€” |
| ç½‘约车总数 | â— | â— | â— | â— | â— | â— | â— | â€” |
注 1:货运量周转量 2026-06 çš„两笔导入均使用《定稿-…(2026å¹´1-5月)》文件(09-04 09:45/09:46),若 6 æœˆæœ‰ç‹¬ç«‹å®šç¨¿æ–‡ä»¶å»ºè®®é‡å¯¼è¦†ç›–核对。
注 2:个体客运 2026-05 å¯¼å…¥çš„æ–‡ä»¶åæ˜¯ã€Šâ€¦ï¼ˆ2026.3)》,内容是否确为 5 æœˆæ•°æ®éœ€äººå·¥æ ¸å¯¹ï¼Œå¿…要时重导。
注 3:规上规下拆分 04-07 ç›®å‰åªæˆåŠŸå¯¼å…¥â€œç´¯è®¡(1-N月)”行;**“N月份(当月)”行此前被导入逻辑跳过**,需升级后端后按原文件重导补当月行(见第三部分)。
注 4:巡游出租 2026-07 æ›¾åœ¨ 08-26 è¯¯ç”¨å…¬äº¤æ¨¡æ¿å¯¼å…¥ 142 è¡Œï¼ŒéšåŽå·²ç”¨å‡ºç§Ÿæ¨¡æ¿é‡å¯¼è¦†ç›–为 17 è¡Œï¼ˆåº“内正常)。
## ä¸‰ã€1-4 æœˆç¼ºå£æ¸…单(请按此补导/重导)
直接用于“1-6 æœˆç”Ÿæˆâ€éªŒè¯ï¼Œè¶Šæ—©å¯¼é½è¶Šæ—©å¼€è·‘。全部通过现有导入页面即可操作。
| # | æ•°æ®ç±»åž‹ | ç¼ºçš„æœˆä»½ | è¯´æ˜Ž |
|---|---|---|---|
| 1 | è´§è¿é‡å‘¨è½¬é‡(全口径) | 2026-01、02、03 | ç”¨ã€Šå®šç¨¿-湖北省各市州运输量数据(2026å¹´1-3月)…》等对应文件;每期 18 è¡Œï¼ˆå…¨çœ+17 å¸‚州) |
| 2 | è§„上规下拆分 | 2026-01、02、03 | ç”¨ã€Š2026å¹´1-N月公路货运量(分市州).xlsx》;每期应得 å½“月+累计 ä¸¤ç»„行 |
| 3 | è§„上规下拆分(重导) | 2026-04~07 | å…ˆé‡å¯åŽç«¯ï¼ˆå·²åŠ â€œN月份”页签识别),再按原文件重导,补出 04-07 çš„当月(MONTH)行 |
| 4 | å…¬è·¯æ—…客企业月报(H203-1) | 2026-01、02 | ç”¨ã€Šå…¬è·¯æ—…客运输月度生产情况(2026å¹´1/2月).xls》 |
| 5 | ä¸ªä½“客运月报 | 2026-01、02、03 | ç”¨ã€Šâ€¦ä¸ªä½“户月度生产情况(2026.1~3).xlsx》 |
| 6 | åŸŽå¸‚公交月报 | 2026-01、02、03 | ç”¨ã€ŠåŸŽå¸‚公共交通月度运营情况(2026å¹´1-3月).xls》 |
| 7 | å·¡æ¸¸å‡ºç§ŸæœˆæŠ¥ | 2026-01、02、03 | ç”¨ã€Šå·¡æ¸¸å‡ºç§Ÿæ±½è½¦è¿è¥æœåŠ¡æƒ…å†µæœˆæŠ¥ï¼ˆ2026å¹´1-3月).xls》 |
| 8 | ç½‘约车订单/总量 | ï¼ˆå·²é½ï¼‰ | 01-07 å‡å·²å¯¼å…¥ï¼Œæ— éœ€è¡¥ |
| 9 | æŠ•资月报 | 2026-01~05 | åº“内只有 06-09;若投资模块不在本次 1-6 æœˆéªŒè¯èŒƒå›´å¯åŽè¡¥ |
> æ³¨ï¼šæ‹†åˆ†æœˆæŠ¥ 1-6 æœˆæ–‡ä»¶å®žæµ‹é¡µç­¾å³ä¸ºâ€œ1月份…6月份 / 1月累计…6月累计”格式;旧程序只识别“当月/累计”导致当月行全部被跳过,本次已加“月份”识别,重导即可补齐当月行。
## å››ã€2025 å¹´å®šç¨¿æ•°æ®çŽ°çŠ¶ï¼ˆæ‹æ¿ç¬¬ 4 æ¡ï¼‰
- è´§è¿ä¼ä¸šæœˆæŠ¥(H203-2):2025-01~12 å·²å…¨é‡å¯¼å…¥ï¼ˆæ¯æœŸ 664 è¡Œï¼‰ã€‚
- å…¶ä½™æ¨¡å—:库里暂无 2025 å¹´æ•°æ®è¡Œã€‚
  - å…¨å£å¾„《货运量周转量》每月文件的右半本就是“去年 1-12 æœˆâ€åˆ—(last_*,随 2026 å¹´è¡Œå†…嵌),与母版右侧 2025 åˆ—同源;
  - è‹¥è¦æ±‚ 2025 æ‹†åˆ†/城市客运/公路旅客等也按“导入定稿”而非“母版缓存”处理,请告知范围(哪些模块、哪几个月份的文件),我再按模块列出清单。
## äº”、待办(对应今日拍板)
1. é‡å¯åŽç«¯åŠ è½½â€œN月份”识别(代码已改、编译通过,尚未重启)。✅下一步执行
2. æŒ‰ç¬¬ä¸‰éƒ¨åˆ†è¡¥å¯¼/重导后,跑“1-6 æœˆç”Ÿæˆ + 1-7 æœˆæ‰©åˆ—”验证并出产物(拍板第 7 æ¡ï¼‰ã€‚
3. æ¯ç‰ˆæŒ‰â€œæ•°æ®å’Œå…¬å¼æ”¹å¯¹åŽä½œä¸ºæ¯ç‰ˆâ€å¤„理(拍板第 5 æ¡ï¼Œå³ä½“检清单方案 A ä¿®æ­£ï¼‰ã€‚
4. ç‹¬ç«‹å°è¡¨ä¿ç•™ä¸åˆ ï¼ˆæ‹æ¿ç¬¬ 1 æ¡ï¼‰ï¼Œå¾…大表验证通过后再议下线。
5. å…è®¸é‡å¤å¯¼å…¥å·²ç”Ÿæ•ˆï¼ˆæŒ‰æŠ¥è¡¨æœŸå…ˆåˆ åŽæ’,拍板第 3 æ¡ï¼‰ã€‚
docs/Éú³É»ã×Ü´ó±í/»ã×ܱíĸ°æÊý¾ÝÌå¼ìÓë´ý¾ö²ßÇåµ¥_2026-09-04.md
@@ -24,3 +24,14 @@
- æ–¹æ¡ˆ A(短平快,仅本月正确):按上表把母版 5 ä¸ªé¡µç­¾çš„“7月当月块”用 7 æœˆå½“月库值/拆分结果改正确,本次生成即正确;以后每月母版仍需人工保证当月块正确。
- æ–¹æ¡ˆ B(根治,推荐后续 P2 å®žçŽ°ï¼‰ï¼šå¯¼å‡ºæ—¶ä¸å†ä¿¡ä»»æ¯ç‰ˆå½“æœˆå—ï¼Œæ”¹ä¸ºâ€œå°è´¦é¡µï¼ˆä¿ç•™ 1-7 å„月)+当月库值+网约车拆分输入”自动重算成品页当月块;累计块与台账页一致性也可加入生成后自动校验。
- å…ˆåš A é¡¶ä½æœ¬æœˆæµ‹è¯•,再排期做 B。
---
## å››ã€ç”¨æˆ·æ‹æ¿è®°å½•(2026-09-04 ä¸‹åˆï¼Œè¿½åŠ ï¼‰
1. ç‹¬ç«‹å°è¡¨æš‚时保留,等汇总大表跑通后再考虑取消(=体检清单“修复方向”里小表导出不删)。
2. åŒæ„æŒ‰ä¿®æ­£åŽçš„æ¯ç‰ˆæ–¹æ¡ˆæŽ¨è¿›ã€‚
3. å…è®¸é‡æ–°å¯¼å…¥ï¼ˆç¨‹åºæŒ‰æŠ¥è¡¨æœŸå…ˆåˆ åŽæ’,已验证生效;拆分 04-07 éœ€é‡å¯¼è¡¥å½“月行)。
4. 2025 å¹´æ•°æ®æŒ‰â€œå¯¼å…¥å®šç¨¿æ•°æ®â€å¤„理;目前仅 H203-2 æœ‰ 2025-01~12,其余模块范围待用户提供文件后列出清单。
5. æ¯ç‰ˆ = æŠŠæ•°æ®å’Œå…¬å¼æ”¹å¯¹åŽçš„æ–‡ä»¶ä½œä¸ºæ¯ç‰ˆï¼ˆæ–¹æ¡ˆ A:先修正当月块错用累计值、清 #REF!,再作为母版)。
6. å·²æŒ‰è¦æ±‚输出《1-4 æœˆç¼ºæ•°æ¸…单》→ è§ã€Œæ•°æ®å¯¼å…¥çŽ°çŠ¶ä¸Žç¼ºå£æ¸…å•_2026-09-04.md」第三部分。
7. å…ˆç”Ÿæˆ 1-6 æœˆæ•°æ®ï¼Œ1-7 æœˆé€šè¿‡æ‰©åˆ—完成,做一次验证(待数据补导后执行;代码侧“N月份”识别已就绪)。
traffic-audit-server/src/main/java/com/trafficaudit/dataimport/service/DataImportService.java
@@ -927,7 +927,7 @@
            boolean hasPeriodSheet = false;
            for (int i = 0; i < wb.getNumberOfSheets(); i++) {
                String sn = wb.getSheetAt(i).getSheetName();
                if (sn != null && (sn.contains("当月") || sn.contains("累计"))) { hasPeriodSheet = true; break; }
                if (sn != null && (sn.contains("当月") || sn.contains("月份") || sn.contains("累计"))) { hasPeriodSheet = true; break; }
            }
            if (!hasPeriodSheet) {
                throw new RuntimeException("所选数据类型【规上规下拆分】与文件内容不符:未找到含 å½“月/累计 çš„ sheet,请确认是否选错了数据类型");
@@ -936,7 +936,7 @@
                Sheet sheet = wb.getSheetAt(i);
                String sheetName = sheet.getSheetName();
                String periodType = null;
                if (sheetName.contains("当月")) periodType = "MONTH";
                if (sheetName.contains("当月") || sheetName.contains("月份")) periodType = "MONTH";
                else if (sheetName.contains("累计")) periodType = "CUMULATIVE";
                if (periodType == null) continue;