From 8b7610369a3faf90143ae31b60d5a0058bd8e8d2 Mon Sep 17 00:00:00 2001
From: zhizhijie <zhizhijie@users.noreply.gitee.com>
Date: 星期二, 08 九月 2026 14:51:01 +0800
Subject: [PATCH] feat: 汇总大表版式统一——数值0.00/排名整数/列宽自适应/去底色(7月8月母版+还原源+applyDonorNumberFormat)
---
traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportService.java | 19 +++++++++
docs/工作日结/工作日结_2026-09-08.md | 15 +++++++
docs/生成汇总大表/2026年7月道路运输量汇总表.xlsx | 0
docs/生成汇总大表/2026年8月道路运输量汇总表.xlsx | 0
docs/功能测试报告/功能测试报告_汇总大表版式统一_2026-09-08.md | 42 +++++++++++++++++++++
5 files changed, 75 insertions(+), 1 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_\346\261\207\346\200\273\345\244\247\350\241\250\347\211\210\345\274\217\347\273\237\344\270\200_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_\346\261\207\346\200\273\345\244\247\350\241\250\347\211\210\345\274\217\347\273\237\344\270\200_2026-09-08.md"
new file mode 100644
index 0000000..ce097bd
--- /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_\346\261\207\346\200\273\345\244\247\350\241\250\347\211\210\345\274\217\347\273\237\344\270\200_2026-09-08.md"
@@ -0,0 +1,42 @@
+# 鍔熻兘娴嬭瘯鎶ュ憡_姹囨�诲ぇ琛ㄧ増寮忕粺涓�_2026-09-08
+
+## 涓�銆佸姛鑳借鏄�
+鐢ㄦ埛鎷嶆澘锛�2026-09-08锛夛細姹囨�诲ぇ琛ㄧ増寮忕粺涓�锛屽洓椤硅鍒欌�斺��
+1) 鏁板�间繚鐣欎袱浣嶅皬鏁帮紙鏁板��/鍏紡鏍兼樉绀� 0.00锛屽悓姣旂櫨鍒嗘瘮 0.00% 淇濈暀锛夛紱
+2) 鎺掑悕鍒楁暣鏁帮紙鏍煎紡 0锛夛紱
+3) 琛ㄦ牸鍒楀鎸夊唴瀹硅嚜閫傚簲锛堥暱鍏紡鏂囨湰涓嶅啀鎶婂垪鎾戠垎锛夛紱
+4) 鑳屾櫙鑹插叏閮ㄧ粺涓�鍘婚櫎锛堟棤濉厖锛夈��
+
+娑夊強鏂囦欢锛�
+- 姣嶇増锛歚docs/鐢熸垚姹囨�诲ぇ琛�/2026骞�7鏈堥亾璺繍杈撻噺姹囨�昏〃.xlsx`銆乣2026骞�8鏈堥亾璺繍杈撻噺姹囨�昏〃.xlsx`
+- 杩樺師婧愶紙鍚屽仛褰掍竴锛岄槻鐢熸垚鏃舵棫搴曡壊/鏃ф牸寮忊�滃娲烩�濓級锛歚_澶囦唤_2026骞�7鏈堥亾璺繍杈撻噺姹囨�昏〃_娓呯悊鍓峗20260904.xlsx`
+- 绋嬪簭锛歚ReportExportService`锛堟柊澧� `applyDonorNumberFormat`锛氳繕鍘熷洖濉椂鍚屾 donor 鏁板瓧鏍煎紡锛�
+
+## 浜屻�佹祴璇曠幆澧�
+- 鍚庣 8090锛坄start-dev.ps1` 鍚姩锛夛紝`mvn -q -DskipTests compile` exit=0
+- 鎺ュ彛锛歚GET /api/report/export/summaryWorkbook?period=2026-07|2026-08&mode=month`
+- 鏍¢獙锛歱ython3 + openpyxl锛屽�肩骇/鏍峰紡绾у弻璇伙紙data_only=False锛塪iff
+
+## 涓夈�佺敤渚嬭〃
+| # | 鐢ㄤ緥 | 鎿嶄綔 | 棰勬湡 | 瀹為檯 | 缁撹 |
+|---|---|---|---|---|---|
+| 1 | 姣嶇増鍘诲簳鑹� | 7/8 鏈堟瘝鐗堜笌澶囦唤缁熶竴鑴氭湰澶勭悊 | 鍏ㄧ翱鏃� solid 濉厖 | 7 鏈堟瘝鐗� fills=0锛�8 鏈堟瘝鐗堟竻闄� 57908 鏍煎簳鑹插悗=0锛涘浠芥竻闄� 57886 鏍煎悗=0 | 閫氳繃 |
+| 2 | 鏁板�间袱浣嶅皬鏁� | 鏁板��+鍏紡鏍兼寜鍒楄涔夊綊涓� | 鏁版嵁鏍兼樉绀� 0.00锛屽悓姣�/鐧惧垎姣斾繚鐣� | 7 鏈堟瘝鐗� 38778 鏍煎綊涓�锛涘鍑� 7/8 鏈堟暟鎹牸鍧� 0.00 / 0.00% | 閫氳繃 |
+| 3 | 鎺掑悕鏁存暟 | 鎺掑悕鍒楄〃澶村垪鏁版嵁鏍艰涓� 0 | 鎺掑悕鏄剧ず鏁存暟 | 姣嶇増涓庡鍑烘帓鍚嶅垪鍧囦负 0锛涙娊鏌璐ц繍閲忔帓鍚峘/`涓彛寰勬帓鍚峘姝g‘ | 閫氳繃 |
+| 4 | 鍒楀鑷�傚簲 | 鍏紡涓嶈瀹姐�佹暟鍊煎垪淇濆簳 12 | 闀垮叕寮忓垪鏀剁缉鍒版暟鍊煎 | `璐ц繍` I/V/X鈥︾敱 42 鈫� 12锛涢暱鏂囨湰鍒楋紙濡� Q锛変繚鐣� | 閫氳繃 |
+| 5 | 鍐呭涓嶅彉 | 澶勭悊鍓嶅悗鍏ㄧ翱鍊肩骇 diff | diff=0 | 7 鏈� v1鈫抳2 diff=0锛�8 鏈堟殏瀛� vs 鍘熸瘝鐗堜粎 6 澶勭┖涓瞏''鈫扤one` | 閫氳繃 |
+| 6 | 7 鏈堝鍑虹鍒扮 | 鏂扮増寮忔瘝鐗�+澶囦唤鐢熸垚 2026-07 | 鏃犲簳鑹层�佹牸寮忕粺涓�銆佹牎楠岃搴曡壊涓嶅娲� | fills=0锛涘嚭绉�/鍏氦鏈堝�� 0.00銆佸悓姣� 0.00%銆乣璐ц繍`r117/118 鏍¢獙琛� 0.00 涓旀棤搴曡壊锛涙畫浣欎粎鍘熻〃閬楃暀鏃ユ湡閿氱偣鍒� | 閫氳繃 |
+| 7 | 8 鏈堝鍑虹鍒扮 | 鐢熸垚 2026-08 | 涓� 8 鏈堟瘝鐗� 0 宸紓銆佹棤搴曡壊 | 鍊� diff=0锛沠ills=0锛涙娊鏌ユ牸寮忔纭� | 閫氳繃 |
+| 8 | Java 缂栬瘧 | `mvn -q -DskipTests compile` | exit=0 | exit=0 | 閫氳繃 |
+
+## 鍥涖�佸彂鐜扮殑闂涓庡缃�
+1. **楠ㄦ灦绌哄垪杩樺師鏃舵牸寮忎涪澶�/搴曡壊澶嶆椿**锛氭瘝鐗� 5-7 鏈堝垪宸叉竻绌猴紙鍚悓姣斿叕寮忥級锛屽鍑鸿繕鍘熷彧鍐欏�间笉鍐欐牱寮忥紝瀵艰嚧鏁存暟鍊兼樉绀� `1234`锛堢己 .00锛夈�佸悓姣斿叕寮忎互 General 鏄剧ず灏忔暟姣斾緥銆乣璐ц繍`r117/118 鏍¢獙琛屾妸澶囦唤鏃у簳鑹插甫鍥烇紙30 鏍硷級銆�
+ 澶勭疆锛�(a) 澶囦唤婧愭枃浠跺悓鍋氱増寮忕粺涓�锛堝幓搴曡壊銆�0.00銆佹帓鍚� 0锛夛紱(b) Java 鏂板 `applyDonorNumberFormat`锛岃繕鍘熷洖濉椂鍚屾 donor 鏁板瓧鏍煎紡锛屽悓姣�/鏁存暟鍊�/鏍¢獙琛屾樉绀虹粺涓�銆�
+2. **鍒楀琚暱鍏紡鎾戠垎**锛氶鐗堣嚜閫傚簲鎶婂叕寮忔枃鏈鍏ュ搴︼紝I/V/X鈥﹀垪琚拺鍒� 42銆傚缃細瀹藉害浠呮寜闈欐�佸唴瀹硅绠椼�侀暱鍏紡涓嶈瀹姐�佹暟鍊�/鍏紡鍒椾繚搴� 12銆�
+3. **鍒楄涔夎鍒�**锛氳 3 鏈熸鏃ユ湡搴忓垪锛�46082鈥︼級鏇句娇鏁村垪琚垽鈥滄棩鏈熷垪鈥濇紡褰掍竴銆傚缃細鏃ユ湡鏍兼暟 鈮� 鏁板�兼牸鏁版椂鎸夋暟鍊煎垪褰掍竴锛堟棩鏈熷簭鍒楁墍鍦ㄥ崟鍏冩牸鏍煎紡涓嶅姩锛夈��
+4. **Excel 鍗犵敤 8 鏈堟瘝鐗�**锛歰penpyxl 鏃犳硶钀界洏锛涚瓑寰呯敤鎴峰叧闂獥鍙e悗瑕嗙洊锛岄瑙堝壇鏈厛琛屾彁渚涙闈€��
+5. **鏃ユ湡閿氱偣鍒楋紙鍘熻〃閬楃暀锛�**锛�2019-2026 搴忓垪鍙� General 鏈熸琛岋紙濡俙鍏矾鎬诲杩恅r2 60 鏍笺�乣涓彛寰勮绠楄繃绋媊A 鍒� 192 鏍硷級闈炴暟鎹紝鏈敼鍔紱濡傞渶缁熶竴涓烘棩鏈熸樉绀哄彲鍙﹁鎷嶆澘銆�
+
+## 浜斻�佺粨璁�
+- 鐗堝紡缁熶竴鍥涢」瑙勫垯鍦� 7/8 鏈堟瘝鐗堜笌瀵煎嚭浜х墿绔埌绔敓鏁堬紱鍏ㄧ翱鍐呭闆舵敼鍔ㄣ��
+- 鍚庣画锛�8 鏈堝綋鏈堟暟鎹鍏ュ悗鎸� M2/M3 濉�煎苟澶嶉獙锛涙棩鏈熼敋鐐瑰垪鏄剧ず鏂瑰紡寰呬笟鍔$‘璁ゃ��
\ 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 2e3af2a..e7b68a6 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"
@@ -45,4 +45,17 @@
- 7鈫�8 鏈堟暟鍊兼牸 2387 涓� 0 宸紓锛涚紪璇� exit=0銆�
### 閬楃暀涓庝笅涓�姝�
- M2 SummaryFiller銆丮3 8 鏈堝疄寮癸紙8 鏈堟暟鎹鍏ュ悗濉綋鏈堝�间笌鎺掑悕锛夈�佸皬琛ㄥ墠绔殣钘忥紙M4锛夈��
-- 8 鏈堟柊姣嶇増鐨� 8 鏈堝綋鏈堝�煎垪浠嶄负绌猴紝绛夊緟鏁版嵁瀵煎叆涓庡~鍊奸獙璇併��
\ No newline at end of file
+- 8 鏈堟柊姣嶇増鐨� 8 鏈堝綋鏈堝�煎垪浠嶄负绌猴紝绛夊緟鏁版嵁瀵煎叆涓庡~鍊奸獙璇併��
+---
+
+## 琛ュ厖锛�2026-09-08 涓嬪崍锛屽悓涓�浼氳瘽缁級锛氭眹鎬诲ぇ琛ㄧ増寮忕粺涓�锛堟暟鍊�0.00/鎺掑悕鏁存暟/鍒楀鑷�傚簲/鍘诲簳鑹诧級
+### 浠婃棩鏂板
+1. **姣嶇増鐗堝紡缁熶竴**锛�7 鏈堛��8 鏈堟瘝鐗堝強 7 鏈堟竻鐞嗗墠澶囦唤锛堣繕鍘熸簮锛夌粺涓�澶勭悊鈥斺�斿幓闄ゅ叏閮� solid 搴曡壊锛�8 鏈� 57908 鏍笺�佸浠� 57886 鏍硷級銆佹暟鍊间笌鍏紡鏍兼寜鍒楀綊涓� 0.00銆佹帓鍚嶅垪 0銆佸垪瀹芥寜闈欐�佸唴瀹硅嚜閫傚簲锛堥暱鍏紡涓嶈瀹姐�佹暟鍊煎垪淇濆簳 12锛宍璐ц繍`I/V/X 鐢� 42 鏀剁缉鍒� 12锛夈��
+2. **绋嬪簭鍚屾**锛歚ReportExportService.applyDonorNumberFormat`鈥斺�旇繕鍘熷洖濉� 5-7 鏈堝潡鏃跺悓姝� donor 鏁板瓧鏍煎紡锛屼慨澶嶆暣鏁板�肩己 .00銆佸悓姣斿叕寮� General 鏄剧ず灏忔暟姣斾緥銆佹牎楠岃鏃у簳鑹插娲讳笁绫婚棶棰樸��
+3. **楠岃瘉浜х墿**锛氬鍑� 2026-07/2026-08 绔埌绔楠岋紙fills=0銆佹娊鏌ユ牸寮忔纭��8 鏈堜笌姣嶇増鍊� diff=0锛夛紝璇﹁銆婂姛鑳芥祴璇曟姤鍛奯姹囨�诲ぇ琛ㄧ増寮忕粺涓�_2026-09-08.md銆嬨��
+### 娴嬭瘯缁撴灉鎽樿
+- 7/8 鏈堟瘝鐗堜笌瀵煎嚭鍏ㄧ翱鏃犲簳鑹诧紱鏁板�兼牸 0.00/0.00%锛涙帓鍚嶅垪 0锛涘唴瀹归浂鏀瑰姩銆�
+- `mvn -q -DskipTests compile` exit=0銆�
+### 閬楃暀涓庝笅涓�姝�
+- 8 鏈堝綋鏈堟暟鎹鍏ュ悗鎸� M2/M3 濉�煎楠岋紱鏃ユ湡閿氱偣鍒楋紙鍘熻〃 General 搴忓垪鍙锋湡娆¤锛夋樉绀烘柟寮忓緟涓氬姟纭銆�
+- 涓存椂鑴氭湰 `_unify_all.py` 鍙� `_test_tmp/` 鍓湰涓嶅垹涓嶅叆搴撱��
\ 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 45165e5..f6dbc96 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\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"
index 8c43272..47e58a4 100644
--- "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"
Binary files differ
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 c3301d0..dce943c 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
@@ -3551,6 +3551,7 @@
Cell tc = (bc != null) ? bc : tr.getCell(dc.getColumnIndex());
if (tc == null) tc = tr.createCell(dc.getColumnIndex());
tc.setBlank();
+ applyDonorNumberFormat(wb, tc, dc);
if (t == CellType.FORMULA) {
String f = dc.getCellFormula();
if (f != null) tc.setCellFormula(f);
@@ -3568,6 +3569,24 @@
return restored;
}
+ /** 杩樺師鍥炲~鏃跺悓姝� donor锛堝凡鍋氱増寮忕粺涓�锛夌殑鏁板瓧鏍煎紡锛屼繚璇佸悓姣�/鏁板��/鎺掑悕鏍兼樉绀烘牸寮忎笌姣嶇増涓�鑷� */
+ private void applyDonorNumberFormat(XSSFWorkbook wb, Cell dst, Cell src) {
+ if (wb == null || dst == null || src == null) return;
+ try {
+ String fmt = src.getCellStyle().getDataFormatString();
+ if (fmt == null || fmt.isEmpty() || "General".equalsIgnoreCase(fmt)) return;
+ org.apache.poi.ss.usermodel.DataFormat df = wb.createDataFormat();
+ short idx = df.getFormat(fmt);
+ CellStyle cur = dst.getCellStyle();
+ if (cur != null && idx == cur.getDataFormat()) return;
+ CellStyle ns = wb.createCellStyle();
+ if (cur != null) ns.cloneStyleFrom(cur);
+ ns.setDataFormat(idx);
+ dst.setCellStyle(ns);
+ } catch (Exception ignore) {
+ // 涓埆鏍煎紡寮傚父涓嶉樆濉炶繕鍘�
+ }
+ }
/** 鍗曞厓鏍煎唴瀹规枃鏈寲锛堝叕寮忓甫 = 鍓嶇紑锛夛紝鐢ㄤ簬璺ㄧ翱姣斿 */
private String summaryCellText(Cell c) {
if (c == null) return null;
--
Gitblit v1.9.1