From 0684c539d87caa67cb797d4c6b09f189a83e6754 Mon Sep 17 00:00:00 2001
From: zhizhijie <zhizhijie@users.noreply.gitee.com>
Date: 星期二, 08 九月 2026 12:53:35 +0800
Subject: [PATCH] feat: 中口径排名左块删除(母版+程序防复活)→7月回归收口→8月扩列母版(M0 v4)
---
/dev/null | 0
traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportService.java | 8 ++++++++
docs/工作日结/工作日结_2026-09-08.md | 17 +++++++++++++++++
docs/功能测试报告/功能测试报告_中口径排名左块删除与7月回归收口及8月扩列_2026-09-08.md | 32 ++++++++++++++++++++++++++++++++
docs/生成汇总大表/2026年7月道路运输量汇总表.xlsx | 0
docs/生成汇总大表/2026年8月道路运输量汇总表.xlsx | 0
docs/确认回执汇总与剩余疑问_汇总大表数据驱动改造_2026-09-07.md | 3 +++
7 files changed, 60 insertions(+), 0 deletions(-)
diff --git "a/docs/\345\212\237\350\203\275\346\265\213\350\257\225\346\212\245\345\221\212/\345\212\237\350\203\275\346\265\213\350\257\225\346\212\245\345\221\212_\344\270\255\345\217\243\345\276\204\346\216\222\345\220\215\345\267\246\345\235\227\345\210\240\351\231\244\344\270\2167\346\234\210\345\233\236\345\275\222\346\224\266\345\217\243\345\217\2128\346\234\210\346\211\251\345\210\227_2026-09-08.md" "b/docs/\345\212\237\350\203\275\346\265\213\350\257\225\346\212\245\345\221\212/\345\212\237\350\203\275\346\265\213\350\257\225\346\212\245\345\221\212_\344\270\255\345\217\243\345\276\204\346\216\222\345\220\215\345\267\246\345\235\227\345\210\240\351\231\244\344\270\2167\346\234\210\345\233\236\345\275\222\346\224\266\345\217\243\345\217\2128\346\234\210\346\211\251\345\210\227_2026-09-08.md"
new file mode 100644
index 0000000..36458d3
--- /dev/null
+++ "b/docs/\345\212\237\350\203\275\346\265\213\350\257\225\346\212\245\345\221\212/\345\212\237\350\203\275\346\265\213\350\257\225\346\212\245\345\221\212_\344\270\255\345\217\243\345\276\204\346\216\222\345\220\215\345\267\246\345\235\227\345\210\240\351\231\244\344\270\2167\346\234\210\345\233\236\345\275\222\346\224\266\345\217\243\345\217\2128\346\234\210\346\211\251\345\210\227_2026-09-08.md"
@@ -0,0 +1,32 @@
+# 鍔熻兘娴嬭瘯鎶ュ憡_涓彛寰勬帓鍚嶅乏鍧楀垹闄や笌7鏈堝洖褰掓敹鍙e強8鏈堟墿鍒梍2026-09-08
+
+## 涓�銆佸姛鑳借鏄�
+1. 鎸� 2026-09-08 涓氬姟鎷嶆澘锛堛�婄‘璁ゅ洖鎵ф眹鎬烩�︺�嬬鍏妭绗� 6 鏉★級锛氬垹闄ゆ眹鎬诲ぇ琛� `涓彛寰勬帓鍚峘 椤� r1-20 **宸﹀潡**锛圓..H锛岄檲鏃у綋鏈堟暟鎹細A=2026-01 瀹㈣繍閲忋�丒=2026-02 鍛ㄨ浆閲忥紝鏃犳湡娆℃爣棰橈級锛岄〉鍐呬粎淇濈暀涓ゅ紶鍙琛細r1-20銆�1-7 鏈堢疮璁°�嶄笌 r22-41銆�7 鏈堝綋鏈堛�嶏紙鍧囧湪 J..R锛夈��
+2. 绋嬪簭渚у悓姝ワ細`ReportExportService.restoreSummaryMonthlyBlocks` 瀵� `涓彛寰勬帓鍚峘 椤� A..H锛�0-based 0-7 鍒楋級**姘镐笉浠庡浠芥瘝鐗堝洖濉�**锛屾潨缁濃�滄瘝鐗堝垹浜嗐�佷竴鐢熸垚鍙堝娲烩�濄��
+3. 7 鏈堝洖褰掓敹鍙o紙鍚帓鍚嶉〉宸﹀潡鍒犻櫎涓�璧烽獙锛夛紱閫氳繃鍚庡啀鎵� 8 鏈堟瘝鐗堬紙M0 鐗堝紡閲嶅缓鍣� v4锛夈��
+
+## 浜屻�佹祴璇曠幆澧�
+- 姣嶇増锛歚docs/鐢熸垚姹囨�诲ぇ琛�/2026骞�7鏈堥亾璺繍杈撻噺姹囨�昏〃.xlsx`锛堟竻鐞嗗悗楠ㄦ灦锛変笌 `_澶囦唤_2026骞�7鏈堥亾璺繍杈撻噺姹囨�昏〃_娓呯悊鍓峗20260904.xlsx`锛堝畬鏁� 7 鏈堬紝杩樺師婧愶級銆�
+- 鐢熸垚閾捐矾锛氬悗绔� `mvn spring-boot:run`锛�8090锛夛紝鎺ュ彛 `GET /api/report/export/summaryWorkbook?period=2026-07|2026-08&mode=month`銆�
+- 鏍¢獙宸ュ叿锛歰penpyxl 鍐呭绾� diff锛坉ata_only=False 鍙岃锛夈�乣mvn -DskipTests compile`銆�
+
+## 涓夈�佺敤渚嬭〃
+| # | 鐢ㄤ緥 | 杈撳叆/鎿嶄綔 | 棰勬湡 | 瀹為檯 | 缁撹 |
+|---|---|---|---|---|---|
+| 1 | 姣嶇増鍒犻櫎宸﹀潡 | 7 鏈堟瘝鐗� `涓彛寰勬帓鍚峘 A1:H20 娓呯┖ + 绉婚櫎 A1:H1/A22:H22 鍚堝苟 | 浠� J1:R1銆丣22:R22 淇濈暀鍚堝苟锛汚..H r1-20 鏃犲唴瀹� | 娓� 148 鏍硷紱鍚堝苟浠呭墿 J1:R1/J22:R22锛涙暣绨� diff 浠呮鍖� | 閫氳繃 |
+| 2 | 绋嬪簭涓嶅洖濉乏鍧� | 鍚庣鐢熸垚 2026-07 姹囨�昏〃锛堣蛋杩樺師閫昏緫锛� | 鐢熸垚鐗╂帓鍚嶉〉鏃� A..H 闄堟棫鍧� | 鐢熸垚鐗� vs 澶囦唤姣嶇増 diff=179锛屽叾涓� 148=宸﹀潡鍒犻櫎锛堥鏈燂級銆�31=鏃ユ湡鍒� int/float 鍐欐硶锛堟樉绀虹浉鍚岋級 | 閫氳繃 |
+| 3 | 7 鏈� M1 鏁板�煎洖褰� | 璐ц繍/鍏氦鍑虹杞ㄩ亾/缃戠害/鍩庡競姹囨��/鐝嚎鍖呰溅鑴氭湰澶嶈窇锛堝簱 2026-01~07锛� | 鍚勯〉涓庢瘝鐗堢紦瀛� 0 宸紓 | freight/pax/wyc/urban/mid 鍏� diffs=0 | 閫氳繃 |
+| 4 | Java 缂栬瘧 | `mvn -q -DskipTests compile` | 鏃犻敊璇� | exit=0 | 閫氳繃 |
+| 5 | 8 鏈堟墿鍒楋紙v4锛� | 淇鍚� 7 鏈堟暣鏈� 鈫� 8 鏈堟瘝鐗� `2026骞�8鏈堥亾璺繍杈撻噺姹囨�昏〃.xlsx` | 8 涓彴璐�/鍚堟垚椤� +2 鍒楋紙2026骞�8鏈�/8鏈堝悓姣旓級锛岀疮璁℃粴鍔紝2025 鍙傜収鍙崇Щ | 8 椤� maxCol +2锛涚疮璁� +Q銆佸悓姣斿垎姣� +AJ锛�7鈫�8 鏈堟暟鍊兼牸 2387 涓� 0 宸紓 | 閫氳繃 |
+| 6 | 鎵╁垪鐗堝紡缁嗚妭 | 鏂� 8 鏈堜袱鍒楄〃澶淬�侀殣钘忓垪銆佹帓鍚嶉〉 | 涓よ绾靛悜鍚堝苟琛ㄥご锛涢殣钘忓垪骞崇Щ淇濈暀锛涙帓鍚嶉〉鏃犲乏鍧� | Q/R 琛ㄥご涓� 15/16 鍒楀悓娆惧悎骞讹紙鍚勯〉琛屼綅姝g‘锛夛紱闅愯棌鍒楁寜 >=17 +2 淇濈暀锛涙帓鍚嶉〉浠� J 绯诲悎骞� | 閫氳繃 |
+| 7 | 绋嬪簭璇绘柊 8 鏈堟瘝鐗� | 鍚庣鐢熸垚 2026-08锛圥OI 璇绘瘝鐗堬級 | 涓嶆姤 Zip-bomb銆佽緭鍑�=姣嶇増 | styles.xml 姣斿�� 0.0099 瑙﹀彂 POI 璇姤鈫抈ZipSecureFile.setMinInflateRatio(0.0001)` 鍚庝慨澶嶏紱鐢熸垚鐗╀笌 8 鏈堟瘝鐗堝唴瀹� diff=0 | 閫氳繃 |
+
+## 鍥涖�佸彂鐜扮殑闂涓庡缃�
+1. POI Zip-bomb 璇姤锛歰penpyxl 閲嶅啓鍚� styles.xml 鍘嬬缉姣� 0.009988 < 0.01锛孭OI 鎷掕鏂扮増 8 鏈堟瘝鐗堛�傚缃細`exportSummaryWorkbook` 璇绘瘝鐗堝墠涓存椂璋冧綆闃堝�硷紙0.0001锛夊苟鍦� finally 杩樺師锛屼粎褰卞搷鏈柟娉曡鍙栧唴閮ㄦā鏉裤��
+2. 鍘嗗彶閬楃暀锛�8 鏈堢増寮忓師鍨嬶紙v3 浜у嚭锛夌殑鏂� 8 鏈堝垪鏃犱袱琛屽悎骞躲�侀殣钘忓垪鏍囪涓㈠け銆佷互鈥滄竻鐞嗗墠澶囦唤鈥濅负婧愪細甯﹀洖鎺掑悕宸﹀潡锛泇4 淇婧愪负鈥滃凡鍒犲乏鍧楃殑 7 鏈堢敓鎴愮墿鈥濆苟琛ヤ袱琛屽悎骞朵笌闅愯棌鍒楀钩绉汇��
+3. 鏈増 8 鏈堟瘝鐗� 2026 缁勭疮璁″叕寮忓凡婊氬姩鑷� 1-8 鏈堬紙+Q/+AJ锛夛紝浣� 8 鏈堝綋鏈堝�间粛涓虹┖锛屽緟 8 鏈堟暟鎹鍏ュ悗鐢� M2/M3 濉�笺��
+
+## 浜斻�佺粨璁�
+- 涓彛寰勬帓鍚嶅乏鍧楀垹闄ゅ湪姣嶇増涓庣▼搴忕敓鎴愰摼璺潎鐢熸晥锛�7 鏈堝洖褰掓敹鍙i�氳繃锛堟帓鍚嶉〉闅忓悓楠岃瘉鏃犲乏鍧椼�佸叾浣欓〉涓庡簱 0 宸紓锛夈��
+- 8 鏈堟墿鍒楁瘝鐗堝凡鐢熸垚骞堕�氳繃绋嬪簭绔埌绔鍙栭獙璇侊紝鍙綔涓哄悗缁� 8 鏈堟暟鎹~鍏呯殑姣嶇増銆�
+- 閬楃暀锛歁2 SummaryFiller / M3 8 鏈堝疄寮癸紙瀵兼暟鍚庡~ 2026-08 褰撴湀鍊硷級銆佹瘝鐗堢紦瀛樻牎楠岃蛋 Q1 鍙e緞銆�
\ No newline at end of file
diff --git "a/docs/\345\267\245\344\275\234\346\227\245\347\273\223/\345\267\245\344\275\234\346\227\245\347\273\223_2026-09-08.md" "b/docs/\345\267\245\344\275\234\346\227\245\347\273\223/\345\267\245\344\275\234\346\227\245\347\273\223_2026-09-08.md"
index a81ba43..2e3af2a 100644
--- "a/docs/\345\267\245\344\275\234\346\227\245\347\273\223/\345\267\245\344\275\234\346\227\245\347\273\223_2026-09-08.md"
+++ "b/docs/\345\267\245\344\275\234\346\227\245\347\273\223/\345\267\245\344\275\234\346\227\245\347\273\223_2026-09-08.md"
@@ -29,3 +29,20 @@
- M2锛歋ummaryFiller 鍐欏洖鍙拌处椤�+鎴愬搧椤碉紝閫愭牸 diff锛堝惈鎺掑悕椤靛乏鍧楁敼鈥滃綋鏈� 2026-07鈥濈殑淇楠岃瘉锛夛紱
- M3锛�8 鏈堝疄寮癸紙鍏堟墿鍒� 2026-08锛屽啀瀵煎叆 8 鏈堟暟鎹敓鎴愶級锛�
- M4锛氬皬琛ㄥ墠绔殣钘� + 澶囦唤杩樺師/娓呯悊銆�
+
+
+---
+
+## 琛ュ厖锛�2026-09-08 涓崍锛屽悓涓�浼氳瘽缁級锛氫腑鍙e緞鎺掑悕宸﹀潡鍒犻櫎 鈫� 7 鏈堝洖褰掓敹鍙� 鈫� 8 鏈堟墿鍒�
+### 浠婃棩鏂板
+1. **鎷嶆澘鐧昏**锛氥�婄‘璁ゅ洖鎵ф眹鎬烩�︺�嬬鍏妭绗� 6 鏉♀�斺�斾腑鍙e緞鎺掑悕椤� r1-20 A..H 闄堟棫宸﹀潡鏁村潡鍒犻櫎锛岀▼搴忔案涓嶅洖濉紱闅� 7 鏈堟敹鍙i獙璇佸悗鎵� 8 鏈堛��
+2. **姣嶇増鍒犻櫎**锛歚docs/鐢熸垚姹囨�诲ぇ琛�/2026骞�7鏈堥亾璺繍杈撻噺姹囨�昏〃.xlsx` 鐨� `涓彛寰勬帓鍚峘 A1:H20 娓呯┖ 148 鏍硷紝绉婚櫎 A1:H1/A22:H22 绌哄悎骞跺尯锛堟暣绨� diff 浠呮鍖猴紝鏀瑰姩鍓嶅壇鏈� `_test_tmp/rankleft_before_202607_mother.xlsx`锛夈��
+3. **绋嬪簭闃插娲�**锛歚ReportExportService.restoreSummaryMonthlyBlocks` 瀵� `涓彛寰勬帓鍚峘 椤� A..H锛堝垪 0-7锛夋案涓嶄粠澶囦唤姣嶇増鍥炲~锛涘彟淇 POI Zip-bomb 璇锛堣姣嶇増鍓嶄复鏃舵斁浣庡帇缂╂瘮闃堝�煎苟 finally 杩樺師锛夈��
+4. **7 鏈堝洖褰掓敹鍙�**锛歁1 浜斿潡鑴氭湰澶嶈窇 diffs=0锛涚▼搴忕敓鎴� 2026-07 涓庡畬鏁� 7 鏈堝熀鍑� diff 浠呭墿宸﹀潡鍒犻櫎 148 鏍� + 31 澶勬棩鏈� int/float 鍐欐硶锛堟樉绀虹浉鍚岋級銆�
+5. **8 鏈堟墿鍒楋紙M0 v4锛�**锛氫骇鍑烘柊姣嶇増 `docs/鐢熸垚姹囨�诲ぇ琛�/2026骞�8鏈堥亾璺繍杈撻噺姹囨�昏〃.xlsx`锛�8 涓彴璐�/鍚堟垚椤� +2 鍒椼�佺疮璁℃粴鍔� +Q銆佸悓姣斿垎姣� +AJ銆�2025 鍙傜収鍙崇Щ銆佷袱琛屽悎骞惰〃澶淬�侀殣钘忓垪骞崇Щ淇濈暀銆佹帓鍚嶉〉鏃犲乏鍧楋級锛涚▼搴忕敓鎴� 2026-08 = 鏂版瘝鐗� 0 宸紓銆�
+### 娴嬭瘯缁撴灉鎽樿
+- 鍏ㄩ儴鐢ㄤ緥瑙併�婂姛鑳芥祴璇曟姤鍛奯涓彛寰勬帓鍚嶅乏鍧楀垹闄や笌7鏈堝洖褰掓敹鍙e強8鏈堟墿鍒梍2026-09-08.md銆嬨��
+- 7鈫�8 鏈堟暟鍊兼牸 2387 涓� 0 宸紓锛涚紪璇� exit=0銆�
+### 閬楃暀涓庝笅涓�姝�
+- M2 SummaryFiller銆丮3 8 鏈堝疄寮癸紙8 鏈堟暟鎹鍏ュ悗濉綋鏈堝�间笌鎺掑悕锛夈�佸皬琛ㄥ墠绔殣钘忥紙M4锛夈��
+- 8 鏈堟柊姣嶇増鐨� 8 鏈堝綋鏈堝�煎垪浠嶄负绌猴紝绛夊緟鏁版嵁瀵煎叆涓庡~鍊奸獙璇併��
\ No newline at end of file
diff --git "a/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2647\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250.xlsx" "b/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2647\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250.xlsx"
index 1b73f6e..45165e5 100644
--- "a/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2647\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250.xlsx"
+++ "b/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2647\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250.xlsx"
Binary files differ
diff --git "a/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2647\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250_7\346\234\210\346\270\205\347\251\272\346\265\213\350\257\225\347\211\210.xlsx" "b/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2647\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250_7\346\234\210\346\270\205\347\251\272\346\265\213\350\257\225\347\211\210.xlsx"
deleted file mode 100644
index 911d1c9..0000000
--- "a/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2647\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250_7\346\234\210\346\270\205\347\251\272\346\265\213\350\257\225\347\211\210.xlsx"
+++ /dev/null
Binary files differ
diff --git "a/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2647\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250_7\346\234\210\346\270\205\347\251\272\346\265\213\350\257\225\347\211\210v2.xlsx" "b/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2647\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250_7\346\234\210\346\270\205\347\251\272\346\265\213\350\257\225\347\211\210v2.xlsx"
deleted file mode 100644
index da8b97c..0000000
--- "a/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2647\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250_7\346\234\210\346\270\205\347\251\272\346\265\213\350\257\225\347\211\210v2.xlsx"
+++ /dev/null
Binary files differ
diff --git "a/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2648\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250.xlsx" "b/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2648\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250.xlsx"
new file mode 100644
index 0000000..8c43272
--- /dev/null
+++ "b/docs/\347\224\237\346\210\220\346\261\207\346\200\273\345\244\247\350\241\250/2026\345\271\2648\346\234\210\351\201\223\350\267\257\350\277\220\350\276\223\351\207\217\346\261\207\346\200\273\350\241\250.xlsx"
Binary files differ
diff --git "a/docs/\347\241\256\350\256\244\345\233\236\346\211\247\346\261\207\346\200\273\344\270\216\345\211\251\344\275\231\347\226\221\351\227\256_\346\261\207\346\200\273\345\244\247\350\241\250\346\225\260\346\215\256\351\251\261\345\212\250\346\224\271\351\200\240_2026-09-07.md" "b/docs/\347\241\256\350\256\244\345\233\236\346\211\247\346\261\207\346\200\273\344\270\216\345\211\251\344\275\231\347\226\221\351\227\256_\346\261\207\346\200\273\345\244\247\350\241\250\346\225\260\346\215\256\351\251\261\345\212\250\346\224\271\351\200\240_2026-09-07.md"
index a1033e1..92e6221 100644
--- "a/docs/\347\241\256\350\256\244\345\233\236\346\211\247\346\261\207\346\200\273\344\270\216\345\211\251\344\275\231\347\226\221\351\227\256_\346\261\207\346\200\273\345\244\247\350\241\250\346\225\260\346\215\256\351\251\261\345\212\250\346\224\271\351\200\240_2026-09-07.md"
+++ "b/docs/\347\241\256\350\256\244\345\233\236\346\211\247\346\261\207\346\200\273\344\270\216\345\211\251\344\275\231\347\226\221\351\227\256_\346\261\207\346\200\273\345\244\247\350\241\250\346\225\260\346\215\256\351\251\261\345\212\250\346\224\271\351\200\240_2026-09-07.md"
@@ -67,6 +67,9 @@
4. **8 鏈堟墿鍒楁爣棰樻牸寮�**锛氭柊澧炩�滃綋鏈堝�尖�濃�滃悓姣斺�濅袱缁勬爣棰樻槸**涓よ绾靛悜鍚堝苟鐨勫崟鍏冩牸**锛堝鈥�2026骞�8鏈堚�濅笌鈥�8鏈堜笌鍘诲勾鍚屾瘮鈥濓級锛屾湀搴︾増寮忛噸寤哄櫒/鎵╁垪瀹炵幇椤讳繚鐣欒涓よ鍚堝苟鏍囬鏍峰紡锛屼粎鎻掑叆鏁版嵁鍒椾笌鍚屾瘮鍒椼�佹爣棰橀殢鍒楀钩绉汇��
5. **瀹炵幇娉ㄦ剰浜嬮」锛�9/8 瀹炴祴锛�**锛氭瘝鐗堝彴璐﹂〉閮ㄥ垎鏈堜唤鍗曞厓鏍间互**鏂囨湰鏁板瓧**瀛樺偍锛堝鍏氦椤� 2026-06 M 鍒� '4970.63'锛夛紝绋嬪簭璇绘瘝鐗堢紦瀛樻椂椤荤粺涓�鍋氣�滄枃鏈啋鏁板�尖�濆綊涓�锛屽惁鍒欎細婕忕畻/婕忔瘮瀵广��
+6. **涓彛寰勬帓鍚嶉〉鈥滃乏鍧椻�濆垹闄わ紙9/9 鎷嶆澘锛�**锛歚涓彛寰勬帓鍚峘 椤� r1-20 鐨� A..H 闄堟棫褰撴湀鍧楋紙A=2026-01 瀹㈣繍閲忋�丒=2026-02 鍛ㄨ浆閲忥紝鏃犳湡娆℃爣棰橈級**鏁村潡鍒犻櫎**锛屼笉鍐嶆寜 M2鈥滄敼褰撴湀 2026-07 閲嶇畻淇鈥濆鐞嗭紱椤靛唴浠呬繚鐣欎袱寮犲彲瑙佽〃锛歳1-20銆�1-7 鏈堢疮璁°�嶄笌 r22-41銆�7 鏈堝綋鏈堛�嶏紙鍧囧湪 J..R锛屽惈甯傚窞鍒楋級銆傚悓鏃剁Щ闄� A1:H1銆丄22:H22 涓や釜绌烘爣棰樻畫鐣欏悎骞跺尯锛汚..I 浠嶄负闅愯棌绌哄垪銆傜▼搴忎晶锛歚restoreSummaryMonthlyBlocks` 瀵� `涓彛寰勬帓鍚峘 椤� **A..H锛�0-based 0-7 鍒楋級姘镐笉浠庡浠芥瘝鐗堝洖濉�**锛岄伩鍏嶁�滄瘝鐗堝垹浜嗐�佷竴鐢熸垚鍙堝娲烩�濄�傝鍒犻櫎闅� **7 鏈堝洖褰掓敹鍙d竴骞堕獙璇�**锛堝惈鎺掑悕椤�/鍒嗘瀽椤�/鍙拌处椤典笌搴� 0 宸紓锛夛紝閫氳繃鍚庡啀鎵� 8 鏈堛��
+ 锛�2026-09-08 宸叉墽琛屽苟楠岃瘉锛氭瘝鐗堝垹闄�+绋嬪簭鎺掗櫎+7 鏈堟敹鍙�+8 鏈堟墿鍒楁瘝鐗堬紝璇﹁銆婂姛鑳芥祴璇曟姤鍛奯涓彛寰勬帓鍚嶅乏鍧楀垹闄や笌7鏈堝洖褰掓敹鍙e強8鏈堟墿鍒梍2026-09-08.md銆嬶級
+
## 涓冦�佸伐浣滅邯寰嬶紙鑷� 2026-09-08 璧凤級
- 浠ユ湰銆婄‘璁ゅ洖鎵ф眹鎬烩�︺�嬫枃妗d负鍞竴鍐崇瓥鍩虹嚎锛涘嚒宸插湪 A1-E3 / Q1-Q3 / 鏈〃纭杩囩殑鍙e緞锛岀洿鎺ユ墽琛岋紝涓嶅啀閲嶅鎻愰棶銆�
- 鍙氨鏂囨。鏈鐩栫殑鏂板喅绛栧悜鐢ㄦ埛鎻愰棶銆�
diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportService.java b/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportService.java
index 9fdb6f2..c3301d0 100644
--- a/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportService.java
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportService.java
@@ -44,6 +44,7 @@
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.openxml4j.util.ZipSecureFile;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellType;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -3213,6 +3214,8 @@
if (template == null) {
throw new RuntimeException("鏈壘鍒版眹鎬昏〃姣嶇増銆�" + year + "骞�" + month + "鏈堥亾璺繍杈撻噺姹囨�昏〃.xlsx銆嬶紙docs/鐢熸垚姹囨�诲ぇ琛級");
}
+ double savedZipRatio = ZipSecureFile.getMinInflateRatio();
+ ZipSecureFile.setMinInflateRatio(0.0001); // 鏂扮増姣嶇増 styles.xml 鐢� openpyxl 楂樺帇缂╋紙0.0099<0.01锛夎Е鍙� POI Zip-bomb 璇姤锛岃鍙栧悗杩樺師
try (InputStream in = new FileInputStream(template);
XSSFWorkbook wb = new XSSFWorkbook(in)) {
File donor = resolveSummaryDonor(year, month);
@@ -3233,6 +3236,8 @@
if (!wb.getCTWorkbook().isSetCalcPr()) wb.getCTWorkbook().addNewCalcPr();
wb.getCTWorkbook().getCalcPr().setFullCalcOnLoad(true); // 杩樺師/鏀瑰啓鍏紡鍚庢墦寮�鍗抽噸绠�
return toBytes(wb);
+ } finally {
+ ZipSecureFile.setMinInflateRatio(savedZipRatio);
}
}
@@ -3526,12 +3531,15 @@
if (ds == null) continue;
Sheet bs = wb.getSheet(ds.getSheetName());
if (bs == null) continue;
+ // 涓彛寰勬帓鍚嶉〉 A..H 闄堟棫宸﹀潡宸蹭簬 2026-09-09 鎷嶆澘鏁村潡鍒犻櫎锛氳鍖哄煙姘镐笉浠庡浠芥瘝鐗堝洖濉紝閬垮厤鈥滅敓鎴愬張澶嶆椿鈥�
+ boolean skipMidRankLeftBlock = "涓彛寰勬帓鍚�".equals(ds.getSheetName());
for (int r = ds.getFirstRowNum(); r <= ds.getLastRowNum(); r++) {
Row dr = ds.getRow(r);
if (dr == null) continue;
Row br = bs.getRow(r);
for (Cell dc : dr) {
if (dc == null) continue;
+ if (skipMidRankLeftBlock && dc.getColumnIndex() < 8) continue;
CellType t = dc.getCellType();
if (t == CellType.BLANK) continue;
String dtx = summaryCellText(dc);
--
Gitblit v1.9.1