From a08c70db67e49bf6cd125df04ebaf68c26f0d8dd Mon Sep 17 00:00:00 2001
From: zhizhijie <zhizhijie@users.noreply.gitee.com>
Date: 星期日, 20 九月 2026 16:19:16 +0800
Subject: [PATCH] feat(投资): 市州月报统一填报模板 + 县(市、区)列解析 + 表头行判定收紧

---
 docs/投资/模板/模板_市州月报_物流园区.xlsx                                                                  |    0 
 docs/工作日结/工作日结_2026-09-20.md                                                                  |   30 +++++++
 traffic-audit-server/src/main/java/com/trafficaudit/dataimport/service/DataImportService.java |   60 ++++++++++-----
 docs/投资/模板/模板_市州月报_客运站场.xlsx                                                                  |    0 
 docs/功能测试报告/功能测试报告_市州统一填报模板与县市区解析_2026-09-20.md                                               |   50 ++++++++++++
 docs/投资/填报口径与统一模板_2026-09-20.md                                                               |   78 +++++++++++++++++++
 6 files changed, 198 insertions(+), 20 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_\345\270\202\345\267\236\347\273\237\344\270\200\345\241\253\346\212\245\346\250\241\346\235\277\344\270\216\345\216\277\345\270\202\345\214\272\350\247\243\346\236\220_2026-09-20.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_\345\270\202\345\267\236\347\273\237\344\270\200\345\241\253\346\212\245\346\250\241\346\235\277\344\270\216\345\216\277\345\270\202\345\214\272\350\247\243\346\236\220_2026-09-20.md"
new file mode 100644
index 0000000..d3d5f76
--- /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_\345\270\202\345\267\236\347\273\237\344\270\200\345\241\253\346\212\245\346\250\241\346\235\277\344\270\216\345\216\277\345\270\202\345\214\272\350\247\243\346\236\220_2026-09-20.md"
@@ -0,0 +1,50 @@
+# 鍔熻兘娴嬭瘯鎶ュ憡_甯傚窞缁熶竴濉姤妯℃澘涓庡幙锛堝競銆佸尯锛夎В鏋恄2026-09-20
+
+## 涓�銆佸姛鑳借鏄�
+
+| 鍔熻兘 | 璇存槑 |
+| --- | --- |
+| 甯傚窞濉姤妯℃澘 | 鏂板涓や唤甯傚窞鏈堟姤妯℃澘锛歚docs/鎶曡祫/妯℃澘/妯℃澘_甯傚窞鏈堟姤_瀹㈣繍绔欏満.xlsx`銆乣docs/鎶曡祫/妯℃澘/妯℃澘_甯傚窞鏈堟姤_鐗╂祦鍥尯.xlsx`锛涘崟椤电銆屾湀鎶ャ��17 鍒楀崟琛岃〃澶� + 銆屽~鎶ヨ鏄庛�嶉〉 |
+| 鍘匡紙甯傘�佸尯锛夊垪瑙f瀽 | 甯傚窞鍗曡〃瀵煎叆鏂板瀵广�屽幙锛堝競銆佸尯锛夈�嶅垪鐨勮瘑鍒紝鍐欏叆椤圭洰涓绘。 `county`锛堝師鍏堜粎鎶曡祫绯荤粺瀵煎嚭浼氬啓锛� |
+| 琛ㄥご琛屽垽瀹氭敹绱� | `findInvestHeader` 澧炲姞缁熶竴鐨勫叧閿瘝鍒ゅ畾 `investHeaderKey`锛屽苟瑕佹眰琛ㄥご琛屽悓鏃舵弧瓒炽�屽惈椤圭洰鍚嶇О銆�+銆岃嚦灏� 2 涓煭琛ㄥご瀛楁锛堚墹20 瀛楋級銆嶏紝閬垮厤鎶娿�屽~鎶ヨ鏄庛�嶉〉鐨勯暱鍙ュ綋浣滄暟鎹〃 |
+
+鏀瑰姩鏂囦欢锛歚traffic-audit-server/src/main/java/com/trafficaudit/dataimport/service/DataImportService.java`
+
+## 浜屻�佹祴璇曠幆澧�
+
+- 鍚庣 Spring Boot 8090锛堥噸鍚悗鍚姩鏃堕棿 2026-09-20 16:06:48锛夛紝鍓嶇 8080锛孧ySQL 3308 / 搴� `traffic_audit`
+- 娴嬭瘯鏁版嵁锛氫互銆屾ā鏉縚甯傚窞鏈堟姤_瀹㈣繍绔欏満.xlsx銆嶄负搴曠鐢熸垚 `姝︽眽甯俖2026-09_瀹㈣繍绔欏満鏈堟姤.xlsx`锛�2 鏉℃祴璇曢」鐩級
+- 璋冪敤鏂瑰紡锛歚POST /api/import/investCityBatch?period=2026-09&category=瀹㈣繍绔欏満`锛堟湰鍦拌嚜绛� JWT锛�
+- 鍏ュ簱鎶芥煡锛歚investment_project` / `investment_monthly` 閫愬瓧娈典笌婧愭枃浠舵瘮瀵�
+
+## 涓夈�佺敤渚嬭〃
+
+| # | 鐢ㄤ緥 | 杈撳叆 | 棰勬湡 | 瀹為檯 | 缁撹 |
+| --- | --- | --- | --- | --- | --- |
+| T01 | 妯℃澘缁撴瀯锛堝杩愮珯鍦猴級 | 鎵撳紑妯℃澘 | 銆屾湀鎶ャ�嶉〉绗� 4 琛� 17 鍒楄〃澶达紱E 鍒楀缓璁炬�ц川涓嬫媺锛涚浜屼釜椤电涓哄~鎶ヨ鏄庝笖鍚� 11 鏉¤姹� | 涓庨鏈熶竴鑷� | 閫氳繃 |
+| T02 | 妯℃澘缁撴瀯锛堢墿娴佸洯鍖猴級 | 鎵撳紑妯℃澘 | 鍚� T01锛屾爣棰樹负銆屼氦閫氱墿娴侊紙鐗╂祦鍥尯锛夈�� | 涓庨鏈熶竴鑷� | 閫氳繃 |
+| T03 | 姝e悜瀵煎叆锛�2 鏉¢」鐩級 | 鎸夋ā鏉垮~鎶� 2 鏉¢」鐩紙鍚幙鍖恒�佹壒鏂囧彿锛� | total=2銆乻uccess=2銆乧ity=姝︽眽甯� | total=2銆乻uccess=2銆乫ail=0銆乧ity=姝︽眽甯� | 閫氳繃 |
+| T04 | 鍏ュ簱鎶芥煡-涓绘。 | 鍚屼笂 | 8 涓富妗e瓧娈甸�愰」绛変簬婧愬�� | 姹熷哺鍖�/娴嬭瘯寤鸿鍗曚綅A/鏂板缓/2026/2027/12345.67/娴嬭瘯宸ュ彲A/娴嬭瘯鍒濊A锛涙椽灞卞尯/娴嬭瘯寤鸿鍗曚綅B/缁缓/2024/2026/20000/娴嬭瘯宸ュ彲B/鍒濊涓虹┖ | 閫氳繃 |
+| T05 | 鍏ュ簱鎶芥煡-鏈堝害鏁� | 鍚屼笂 | 6 涓湀搴﹀瓧娈甸�愰」绛変簬婧愬�笺�佹姤琛ㄦ湡姝g‘ | 鎶ュ憡鏈� 2026-09锛�1000/5000/1200/300/鍦ㄥ缓/娴嬭瘯褰㈣薄杩涘害A锛�15000/8000/6000/1500/瀹屽伐/娴嬭瘯褰㈣薄杩涘害B | 閫氳繃 |
+| T06 | 璐熷悜锛氳鏄庨〉琚綋鏁版嵁琛紙淇鍓嶏級 | 妯℃澘鏂囦欢锛堝惈濉姤璇存槑椤碉級 | 鍙В鏋愩�屾湀鎶ャ�嶉〉 | **澶辫触**锛氳瑙f瀽 8 鏉¤鏄庨〉闀垮彞涓洪」鐩紙id 233~240锛夛紝city 琚枃浠跺悕鍏滃簳涓恒�屾姹夊競銆� | 宸蹭慨澶嶏紙瑙� T07锛� |
+| T07 | 璐熷悜锛氳鏄庨〉琚綋鏁版嵁琛紙淇鍚庯級 | 鍚� T06 | 璇存槑椤典笉鍐嶈璇嗗埆涓烘暟鎹〃 | 鍚屼竴鏂囦欢鐢� 8 鏉¢檷涓� 2 鏉℃纭褰曪紝璇存槑椤� 0 鏉� | 閫氳繃 |
+| T08 | 璐熷悜锛氬幙鍖哄垪鍐欐硶鍙樹綋 | 琛ㄥご銆屽幙(甯傘�佸尯)銆嶃�屽幙锛堝競銆佸尯锛夈�嶃�屽幙甯傚尯銆� | 鍧囪瘑鍒负鍘垮尯鍒� | 褰掍竴鍖栧尮閰嶅悗涓夌鍐欐硶鍧囧懡涓紙淇鍓嶅啓鎴愩�屽幙锛堝競,鍖猴級銆嶅甫閫楀彿锛屽潎涓嶅懡涓級 | 閫氳繃 |
+| T09 | 鍥炲綊锛�8 鏈堢湡瀹炲競宸炴枃浠堕噸瀵� | 8 鏈堝杩� 9 浠姐�佺墿娴� 16 浠藉師濮嬫湀鎶� | 瑙f瀽鏉℃暟涓庡巻鍙叉壒娆′竴鑷淬�佹棤鎶ラ敊 | 瀹㈣繍 39 鏉°�佺墿娴� 128 鏉★紝鍧� fail=0锛堜笌 09-19 鎵规 531/532 涓�鑷达級 | 閫氳繃 |
+| T10 | 鍥炲綊锛�8 鏈堟湀搴︽暟閫愬�兼瘮瀵� | 閲嶅鍓� 136 琛� vs 閲嶅鍚� 136 琛� | 閫愬�间竴鑷� | 鍘讳富閿悗閫愯姣斿锛�**IDENTICAL** | 閫氳繃 |
+
+## 鍥涖�佸彂鐜扮殑闂涓庡缃�
+
+| # | 闂 | 澶勭疆 |
+| --- | --- | --- |
+| P1 | 銆屽~鎶ヨ鏄庛�嶉〉閲屽惈銆岄」鐩悕绉般�嶇殑闀垮彞琚綋浣滆〃澶磋锛屾暣椤� 8 鏉¤璇缓鎴愰」鐩� | 宸蹭慨锛氳〃澶磋鍒ゅ畾瑕佹眰銆屽惈椤圭洰鍚嶇О銆�+銆岃嚦灏� 2 涓煭琛ㄥご瀛楁锛堚墹20 瀛楋級銆嶏紱娴嬭瘯鏁版嵁宸蹭粠搴撲腑娓呴櫎 |
+| P2 | 鍘垮尯鍒楀叧閿瘝鍐欐垚 `鍘匡紙甯�,鍖猴級`锛堥�楀彿锛夛紝瀹為檯琛ㄥご鏄� `鍘匡紙甯傘�佸尯锛塦锛堥】鍙凤級锛屽鑷� county 鍙栦笉鍒� | 宸蹭慨锛氬厛褰掍竴鍖栵紙鍏�/鍗婅鎷彿銆侀】鍙枫�侀�楀彿鍏ㄩ儴鍘绘帀锛夊啀鍖归厤銆屽幙(甯傚尯)銆嶃�屽幙甯傚尯銆嶃�屽尯鍘裤�� |
+| P3 | **鍥炲綊閲嶅 8 鏈堢墿娴佹椂锛屻�婃箹鍖楃渷鍗佸牥浜ら�氱墿娴佸熀纭�璁炬柦鎶曡祫缁熻姹囨�昏〃锛堟湀鎶ワ級銆嬪啀娆″甫鍑洪潪鍗佸牥鐨勬姹� 27 + 榛勭煶 4 = 31 涓」鐩�** | 宸插啀娆℃竻闄わ紙`investment_project` 152 / `investment_monthly` 284 鎭㈠鍘熺姸锛夛紱鏍规不闇�娓呯悊 8 鏈堟簮鏂囦欢锛�**寰呯敤鎴风‘璁ゆ槸鍚︾敱鎴戜唬鍋�** |
+| P4 | 鐪熷疄甯傚窞鏈堟姤琛ㄥご閲�**娌℃湁**銆屽幙锛堝競銆佸尯锛夈�嶅垪锛堟娊鏌� 8 鏈� 25 浠芥枃浠讹紝0 浠藉惈璇ュ垪锛� | 灞炴甯革細鍘嗗彶鏁版嵁 county 涓虹┖鏄暟鎹簮闄愬埗锛�9 鏈堣捣鎸夌粺涓�妯℃澘濉姤鍚庤鍒楁墠鏈夊�� |
+| P5 | 娴嬭瘯鐢ㄧ殑涓存椂鏂囦欢涓庝复鏃舵暟鎹� | 娴嬭瘯鏂囦欢 `docs/鎶曡祫/杈撳叆/瀹㈣繍锛堝杩愮珯锛�/9鏈�/姝︽眽甯俖2026-09_瀹㈣繍绔欏満鏈堟姤.xlsx`銆佹祴璇曢」鐩� A/B銆�2026-09 瀵煎叆鎵规宸插叏閮ㄥ垹闄� |
+
+## 浜斻�佺粨璁�
+
+- 涓や唤甯傚窞濉姤妯℃澘鍙敤锛屾鍚戦摼璺紙妯℃澘 鈫� 瑙f瀽 鈫� 涓绘。 + 鏈堝害鏁帮級閫愬瓧娈靛榻愶紱
+- 琛ㄥご鍒ゅ畾鏀剁揣鍚庯紝妯℃澘鑷甫鐨勩�屽~鎶ヨ鏄庛�嶉〉涓嶅啀琚褰撴暟鎹〃锛堣礋鍚戠敤渚� T06/T07锛夛紱
+- 8 鏈堢湡瀹炲競宸炴暟鎹噸瀵煎洖褰掓棤鍙嶄緥锛氭潯鏁颁笌鍘嗗彶涓�鑷达紝鏈堝害鏁伴�愬�间竴鑷达紱
+- 閬楃暀锛�8 鏈堝崄鍫版眹鎬昏〃婧愭枃浠剁殑闈炲崄鍫版鏈竻鐞嗭紙P3锛夛紝闇�鐢ㄦ埛纭娓呯悊鏂瑰紡銆�
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-20.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-20.md"
index 14124c7..37afff5 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-20.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-20.md"
@@ -82,6 +82,19 @@
 - **鍚屾椂淇帀涓�涓弗閲嶅洖褰�**锛氭湰娆℃柊澧炵殑 `computed` 涓庢枃浠朵腑宸叉湁 `computed` **鍚屽悕閲嶅**锛孞S 瀵硅薄鍚庤�呰鐩栧墠鑰� 鈫� `username/myModules/visibleModules` 鍏ㄩ儴涓㈠け锛�
   銆屾姤琛ㄧ敓鎴愩�嶉〉 `created()` 鐩存帴鎶涢敊銆�**鏁撮〉鐧藉睆**銆傛帴鍙f祴璇曞彂鐜颁笉浜嗭紝鏄祻瑙堝櫒瀹炴祴鎵嶆毚闇茬殑锛堣瑙佹祴璇曟姤鍛婄鍥涜妭锛夈��
 
+### 1.8 甯傚窞缁熶竴濉姤妯℃澘锛堢敤鎴锋彁闂�屾寜鍝釜鏍煎紡鏉ユ渶濂斤紵瑕佷笉瑕佺敓鎴愪袱涓ā鏉裤�嶏級
+
+- **鑳屾櫙**锛氱敤鎴锋彁鍑恒�岃繖鍑犱釜琛ㄧ殑鏇存柊鍏跺疄寰堢畝鍗曗�斺�旀寜椤圭洰鍚嶇О鏇存柊姹囨�昏〃鎸囨爣銆佹柊澧為」鐩氨鏂板鍒版槑缁嗚〃锛�
+  棰勫畨鎺掓眹鎬昏〃鍜屾槑缁嗚〃鏂瑰紡涓�鏍凤紝鍓╀笅涓夊紶琛ㄩ」鐩浐瀹氬彧鏇存柊鎸囨爣鈥斺�斾负浠�涔堢幇鍦ㄥ紕寰楁湁鐐瑰鏉傘�嶃��
+- **鏍稿**锛氶渶姹傛枃妗c�婃姇璧勬湀鎶ユ暟鎹鐞嗕笌澶氳〃鏇存柊闇�姹傝鏄庛�婼tep1/2/3 涓庣敤鎴锋弿杩板畬鍏ㄤ竴鑷达紝绋嬪簭閫昏緫涔熸槸杩欎箞瀹炵幇鐨勩��
+- **缁撹**锛氬鏉備笉鍦ㄣ�岃〃銆嶏紝鍦ㄣ�屾簮銆嶁�斺�旂増寮忎笉缁熶竴锛�27 浠介噷 7 浠芥湁宸紓锛夈�佷竴涓枃浠舵贩澶氫釜甯傚窞銆佹病鏈夊幙鍖哄垪銆佸垪浣嶇疆闈犲厹搴曘��
+- **浜у嚭**锛�
+  1. 鏂板涓や唤甯傚窞濉姤妯℃澘 `妯℃澘_甯傚窞鏈堟姤_瀹㈣繍绔欏満.xlsx` / `妯℃澘_甯傚窞鏈堟姤_鐗╂祦鍥尯.xlsx`
+     锛堛�屾湀鎶ャ�嶉〉 17 鍒楀崟琛岃〃澶� + 寤鸿鎬ц川涓嬫媺 + 銆屽~鎶ヨ鏄庛�嶉〉 11 鏉¤姹傦級锛�
+  2. 鍙e緞璇存槑鏂囨。 `docs/鎶曡祫/濉姤鍙e緞涓庣粺涓�妯℃澘_2026-09-20.md`锛堟ā鏉垮瓧娈靛幓鍚戙�佸鏉傚害鏉ユ簮銆佸緟瀹氭鐨� 3 浠朵簨銆佽繃娓″畨鎺掞級銆�
+- **閰嶅瑙f瀽鏀瑰姩**锛氭柊澧炪�屽幙锛堝競銆佸尯锛夈�嶅垪瑙f瀽锛堝啓鍏ヤ富妗� `county`锛夛紱琛ㄥご琛屽垽瀹氭敹绱т负
+  銆屽惈椤圭洰鍚嶇О + 鑷冲皯 2 涓煭琛ㄥご瀛楁銆嶏紝閬垮厤鎶婃ā鏉胯嚜甯︾殑銆屽~鎶ヨ鏄庛�嶉〉褰撴暟鎹〃銆�
+
 ## 浜屻�佹祴璇曠粨鏋滄憳瑕�
 
 銆婂姛鑳芥祴璇曟姤鍛奯鎶曡祫鏄庣粏琛ㄥ氨缁笌棰勮绫诲瀷琛ラ綈_2026-09-20.md銆嬶細**7 鏉$敤渚嬮�氳繃锛�1 鏉℃湭瀹炴祴**锛堢己姣嶇増鎻愮ず锛屾湭涓存椂绉诲姩鐢ㄦ埛姣嶇増鏂囦欢锛夈��
@@ -139,6 +152,20 @@
 | 闄勫甫淇 | `computed` 閲嶅閿鑷存姤琛ㄧ敓鎴愰〉鏁撮〉鐧藉睆锛堝凡淇骞舵祻瑙堝櫒澶嶉獙锛� |
 | 澶嶉獙锛堢敤鎴烽棶棰� 2锛� | 棰勮鍚屾瘮 12 琛岄綈鍏紱銆岀疮璁¤揣鐗╁懆杞噺 0%銆嶇粡鏌ュ簱涓哄彇鏁版簮鏈韩 `total_yoy=0.00000346`锛岄潪缂洪櫡 |
 
+銆婂姛鑳芥祴璇曟姤鍛奯甯傚窞缁熶竴濉姤妯℃澘涓庡幙甯傚尯瑙f瀽_2026-09-20.md銆嬶細**10 鏉$敤渚嬮�氳繃锛堟鍚� 5 + 璐熷悜 3 + 鍥炲綊 2锛�**銆�
+
+| 鏍¢獙椤� | 缁撴灉 |
+| --- | --- |
+| 妯℃澘缁撴瀯 | 涓や唤妯℃澘鍧囦负銆屾湀鎶ャ��17 鍒楄〃澶� + 寤鸿鎬ц川涓嬫媺 + 濉姤璇存槑 11 鏉� |
+| 姝e悜瀵煎叆锛堟ā鏉垮~鎶ワ級 | total=2銆乻uccess=2銆乧ity=姝︽眽甯� |
+| 涓绘。閫愬瓧娈� | 鍘垮尯锛堟睙宀稿尯/娲北鍖猴級銆佸缓璁惧崟浣嶃�佹�ц川銆佸紑宸�/绔e伐骞淬�佹�绘姇璧勩�佸伐鍙�/鍒濊鍏ㄩ儴瀵归綈 |
+| 鏈堝害鏁伴�愬瓧娈� | 鑷紑濮嬬疮璁�/鏈勾璁″垝/鑷勾鍒濈疮璁�/鏈湀瀹屾垚/寤鸿闃舵/褰㈣薄杩涘害鍏ㄩ儴瀵归綈锛屾姤琛ㄦ湡 2026-09 |
+| 璐熷悜锛氳鏄庨〉琚綋鏁版嵁琛� | 淇鍓� 8 鏉¤瑙f瀽锛坕d 233~240锛夆啋 淇鍚� 0 鏉� |
+| 璐熷悜锛氬幙鍖哄垪鍐欐硶鍙樹綋 | 銆屽幙锛堝競銆佸尯锛�/鍘�(甯傘�佸尯)/鍘垮競鍖恒�嶅綊涓�鍖栧悗鍧囧懡涓� |
+| 鍥炲綊锛�8 鏈堢湡瀹炲競宸為噸瀵� | 瀹㈣繍 39銆佺墿娴� 128锛屼笌 09-19 鎵规涓�鑷达紝fail=0 |
+| 鍥炲綊锛�8 鏈堟湀搴︽暟姣斿 | 閲嶅鍓嶅悗 136 琛岄�愬�� **IDENTICAL** |
+| 鏁版嵁娓呯悊 | 娴嬭瘯椤圭洰 A/B銆�2026-09 鎵规銆佹祴璇曟枃浠跺潎宸插垹闄� |
+
 ## 涓夈�侀仐鐣欓棶棰樹笌寰呭姙
 
 1. 姝︽眽鐗╂祦椤圭洰娓呭崟鍙e緞锛堝凡纭蹇界暐锛夈��
@@ -161,5 +188,8 @@
 
 9. **8 鏈堢増鍗佸牥姹囨�昏〃鏈竻鐞�**锛氱敤鎴峰彧娓呬簡 7 鏈堢増锛�108032鈫�90112 瀛楄妭锛夛紝8 鏈堢増锛坢time 2026-08-20锛変粛鍚姹� 27 + 榛勭煶 4 娈碉紱
    鑻ラ噸瀵� 8 鏈堢墿娴侊紝宸插垹闄ょ殑 31 涓」鐩細閲嶆柊寤烘。 鈫� 閲嶅鍓嶉渶鍚屾牱娓呯悊锛堟垨鐢辨垜浠e仛锛屽緟鐢ㄦ埛纭锛夈��
+    **2026-09-20 涓嬪崍鍋氬洖褰掗噸瀵兼椂宸插疄娴嬪鐜�**锛�8 鏈堢墿娴侀噸瀵煎悗 +31 涓」鐩� / +31 鏉℃湀搴︽暟锛夛紝宸插啀娆℃竻闄わ紝搴撳洖鍒� 152 涓」鐩� / 284 鏉℃湀搴︽暟锛�2026-08 鏈堝害鏁伴�愬�间笌閲嶅鍓嶄竴鑷淬��
 10. 甯傚窞鍗曡〃瀵煎叆鐨�**澶氬競宸炲潡鍏滃簳鎻愮ず**锛堣瘑鍒竴浠芥枃浠跺惈澶氫釜甯傚窞鍧楀苟鎻愮ず/璺宠繃锛夊緟鐢ㄦ埛纭鏄惁瑕佸仛銆�
 11. 鐢熸垚琛ㄦ姹夌墿娴佸皬璁$幇鍦ㄥ彧鏈夈�屾�绘姇璧勩�嶏紝缂� 8 鏈堢殑鑷紑濮嬬疮璁�/鏈勾璁″垝/鏈堝畬鎴� 鈫� 闇�姝︽眽 8 鏈堢墿娴佸崟琛紙鎴栫渷鍘呭彛寰勶級鎵嶈兘琛ラ綈銆�
+12. 涓や唤甯傚窞濉姤妯℃澘寰呯敤鎴疯繃鐩悗涓嬪彂甯傚窞锛堝缓璁� 9 鏈堣捣鎵ц锛夛紱濡傞渶銆屾ā鏉夸綋妫� + 琛ㄥご涓嶇寮圭獥銆嶏紝寰呯敤鎴风‘璁ゅ悗鎺掓湡銆�
+13. 8 鏈堝崄鍫扮墿娴佹眹鎬昏〃婧愭枃浠讹紙鍚姹� 27 + 榛勭煶 4锛夋槸鍚︾敱鎴戜唬鍋氭竻鐞嗭紝寰呯敤鎴风‘璁わ紙瑙� 1.8 / 娴嬭瘯鎶ュ憡 P3锛夈��
diff --git "a/docs/\346\212\225\350\265\204/\345\241\253\346\212\245\345\217\243\345\276\204\344\270\216\347\273\237\344\270\200\346\250\241\346\235\277_2026-09-20.md" "b/docs/\346\212\225\350\265\204/\345\241\253\346\212\245\345\217\243\345\276\204\344\270\216\347\273\237\344\270\200\346\250\241\346\235\277_2026-09-20.md"
new file mode 100644
index 0000000..219eaea
--- /dev/null
+++ "b/docs/\346\212\225\350\265\204/\345\241\253\346\212\245\345\217\243\345\276\204\344\270\216\347\273\237\344\270\200\346\250\241\346\235\277_2026-09-20.md"
@@ -0,0 +1,78 @@
+# 甯傚窞鏈堟姤濉姤鍙e緞涓庣粺涓�妯℃澘锛�2026-09-20锛�
+
+> 璧峰洜锛氱敤鎴锋彁闂�屼粬浠鍏ョ殑鏁版嵁鎸夊摢涓牸寮忔潵鏈�濂斤紵瑕佷笉瑕佺敓鎴愪袱涓ā鏉匡紙瀹㈣繍绔欎竴涓�佺墿娴佸洯涓�涓級锛�
+> 杩欏嚑涓〃鐨勬洿鏂板叾瀹炲緢绠�鍗曗�斺�旀寜椤圭洰鍚嶇О鏇存柊姹囨�昏〃鎸囧畾鎸囨爣銆佹柊澧為」鐩氨鏂板鍒版槑缁嗚〃锛�
+> 棰勫畨鎺掓眹鎬昏〃鍜屾槑缁嗚〃鏂瑰紡涓�鏍凤紝鍓╀笅涓夊紶琛ㄩ」鐩浐瀹氬彧鏇存柊鎸囨爣鈥斺�斾负浠�涔堢幇鍦ㄥ紕寰楁湁鐐瑰鏉備簡锛熴��
+
+## 涓�銆佺粨璁哄厛璇�
+
+1. **浣犵殑蹇冩櫤妯″瀷鏄鐨�**锛岃�屼笖灏辨槸闇�姹傛枃妗c�婃姇璧勬湀鎶ユ暟鎹鐞嗕笌澶氳〃鏇存柊闇�姹傝鏄庛�嬮噷鍐欑殑涓夋锛�
+   - Step1 鏈堟姤 鈫� 涓ゅ紶鏄庣粏琛細浠�**椤圭洰鍚嶇О**涓洪敭锛屽凡鏈夆啋鏇存柊 5 鍒楋紝娌℃湁鈫掓柊澧炴暣琛岋紱
+   - Step2 鏄庣粏琛� 鈫� 鍏ㄧ渷棰勫畨鎺掕鍒掕繘搴︽儏鍐垫眹鎬伙細鍚屽悕鏇存柊 4 椤癸紝娌℃湁鐨勬柊澧烇紝姣嶇増鏈夎�屾湀鎶ユ病鏈夌殑淇濇寔鍘熷�硷紱
+   - Step3 鏄庣粏琛� 鈫� 涓夊紶鍥哄畾椤圭洰琛紙鍗佷簲浜旇鍒掔墿娴� / 浜垮厓鎶曡祫椤圭洰 / 缁忔祹寮哄幙锛夛細椤圭洰娓呭崟涓嶅姩锛屽彧鏇存柊 3 椤规寚鏍囥��
+2. **澶嶆潅涓嶅湪銆岃〃銆嶏紝鍦ㄣ�屾簮銆�**銆傜▼搴忎晶瑕佸鐞嗙殑楹荤儲鍏ㄩ儴鏉ヨ嚜甯傚窞鎶ヤ笂鏉ョ殑鍘熷琛ㄦ牸鏍煎紡涓嶇粺涓�锛屼笉鏉ヨ嚜姹囨�昏鍒欐湰韬��
+3. **寤鸿浠� 9 鏈堣捣缁熶竴鐢ㄤ袱浠芥ā鏉�**锛堝杩愮珯鍦恒�佺墿娴佸洯鍖哄悇涓�浠斤級銆傛ā鏉垮凡缁忓仛濂斤細
+   - `docs/鎶曡祫/妯℃澘/妯℃澘_甯傚窞鏈堟姤_瀹㈣繍绔欏満.xlsx`
+   - `docs/鎶曡祫/妯℃澘/妯℃澘_甯傚窞鏈堟姤_鐗╂祦鍥尯.xlsx`
+
+## 浜屻�佷袱浠芥ā鏉块暱浠�涔堟牱
+
+鍙湁涓�涓暟鎹〉銆屾湀鎶ャ��+ 涓�涓�屽~鎶ヨ鏄庛�嶉〉銆傜 4 琛屾槸琛ㄥご锛屼竴琛屼竴鏉¢」鐩紝鍏� 17 鍒楋細
+
+| 鍒� | 琛ㄥご | 绋嬪簭閲岀殑鍘诲悜 |
+| --- | --- | --- |
+| A | 搴忓彿 | 浠呯敤浜庤瘑鍒競宸炲皬鑺傝/鍚堣琛岋紝涓嶅弬涓庡尮閰� |
+| B | 鍘匡紙甯傘�佸尯锛� | 椤圭洰涓绘。 `county`锛堝叏鐪佹眹鎬昏〃瑕佹樉绀鸿繖涓�鍒楋級 |
+| C | **椤圭洰鍚嶇О鍙婄珯绾�** | **鍖归厤閿�**锛堝競宸� + 绫诲埆 + 椤圭洰鍚嶇О锛� |
+| D | 鎶曡祫寤鸿鍗曚綅鍚嶇О | 涓绘。 `builder_name` |
+| E | 寤鸿鎬ц川 | 涓绘。 `construct_nature`锛堜笅鎷夛細鏂板缓/缁缓/鏀规墿寤�/鏀瑰缓锛� |
+| F | 寮�宸ュ勾 | 涓绘。 `start_time` |
+| G | 绔e伐骞� | 涓绘。 `end_time` |
+| H | 璁″垝鎬绘姇璧勶紙涓囧厓锛� | 涓绘。 `total_investment` |
+| I | 鑷紑濮嬪缓璁剧疮璁″畬鎴愭姇璧勶紙涓囧厓锛� | **褰撴湡鏈堝害鏁�** |
+| J | 鏈勾璁″垝鎶曡祫锛堜竾鍏冿級 | **褰撴湡鏈堝害鏁�** |
+| K | 鑷勾鍒濈疮璁″畬鎴愭姇璧勶紙涓囧厓锛� | **褰撴湡鏈堝害鏁�** |
+| L | 鍏朵腑锛氭湰鏈堝畬鎴愭姇璧勶紙涓囧厓锛� | **褰撴湡鏈堝害鏁�** |
+| M | 寤鸿闃舵 | **褰撴湡鏈堝害鏁�** |
+| N | 褰㈣薄杩涘害 | **褰撴湡鏈堝害鏁�** |
+| O | 宸ュ彲鎵瑰鏂囧彿 | 涓绘。 `approval_gk` |
+| P | 鍒濊/鏂藉伐鍥炬壒澶嶆枃鍙� | 涓绘。 `approval_cs` |
+| Q | 澶囨敞 | 涓嶅彇鏁� |
+
+- **涓绘。鍒楋紙A銆丅銆丏銆丒銆丗銆丟銆丠銆丱銆丳锛�**锛氱涓�娆″缓妗f椂鍐欏叆锛屼箣鍚庡彧瑕侀」鐩悕涓嶅彉灏变笉鍔紱
+- **鏈堝害鏁帮紙I銆丣銆並銆丩銆丮銆丯锛�**锛氭瘡涓湀鎶ュ灏戝啓澶氬皯锛屽悓涓�锛堥」鐩紝鎶ヨ〃鏈燂級瑕嗙洊寮忛噸寤猴紱
+- **銆岄」鐩悕绉板強绔欑骇銆嶆槸鍞竴鍖归厤閿�**锛氭敼涓�涓瓧 = 鏂板缓涓�涓」鐩紝鎵�浠ヨ姹備笌鎵瑰鍚嶇О涓�瀛椾笉宸紱
+- 銆屽~鎶ヨ鏄庛�嶉〉鍐欎簡 11 鏉¤姹傦紙涓�浠芥枃浠跺彧鏀炬湰甯傚窞銆佹枃浠跺悕甯﹀競宸炲悕銆佹暟鍊间笉甯﹀瓧绗︺��
+  鍘匡紙甯傘�佸尯锛夊繀濉�佸缓璁炬�ц川鍙兘鍥涢�変竴銆佹柊澧為」鐩洿鎺ュ姞琛屻�侀殣钘忚涓嶆斁鏁版嵁銆佸悎璁¤鍙笉濉瓑锛夈��
+
+## 涓夈�佷负浠�涔堢幇鍦ㄦ劅瑙夊鏉傦紙4 涓湡瀹炲師鍥狅紝閮藉湪杈撳叆渚э級
+
+1. **鐗堝紡涓嶇粺涓�**锛�27 浠藉競宸炴湀鎶ラ噷锛�20 浠戒笌鐪佺粺涓�妯℃澘涓�鑷达紝7 浠芥湁宸紓鈥斺��
+   闅忓窞澶氫竴涓� Sheet2銆佺鍐滄灦/娼滄睙/瑗勯槼鎷嗘垚澶氫釜鍒嗘湀椤电銆佽闃虫暣浣撳彸绉� 1 鍒椼��
+   鎭╂柦/榛勭煶鍚堝苟琛ㄥご銆佹姹夛紙鍗楀北/姹夊彛锛夊彧鎶ヤ袱涓」鐩殑绠�琛ㄣ�傝瑙�
+   `docs/鎶曡祫/杈撳嚭/甯傚窞鏈堟姤鏍煎紡宸紓鎶ュ憡_2026-07.md`銆傜▼搴忎负浜嗚鍏紝鍙兘涓�涓増寮忎竴涓厹搴曞垎鏀��
+2. **涓�涓枃浠堕噷娣峰涓競宸�**锛氥�婃箹鍖楃渷鍗佸牥浜ら�氱墿娴佸熀纭�璁炬柦鎶曡祫缁熻姹囨�昏〃锛堟湀鎶ワ級銆嬩竴涓〉绛炬敹浜嗗叏鐪侊紝
+   2026 骞� 8 鏈堣繖浠� 38 琛岄噷鍙湁 **7 琛屾槸鍗佸牥**锛屽彟澶� **27 琛屾姹� + 4 琛岄粍鐭�**銆�
+   绋嬪簭鏀寔鎸夈�屽皬鑺傝銆嶅垏鎹㈠競宸烇紙杩欐槸鏈夋剰鍋氱殑鍔熻兘锛夛紝鎵�浠ヨ兘璇昏繘鏉ワ紝浣嗕唬浠锋槸锛�
+   **鍙閲嶅 8 鏈堢墿娴侊紝杩� 31 涓」鐩氨浼氶噸鏂板缓鍒版姹�/榛勭煶鍚嶄笅**锛堜粖澶╁仛鍥炲綊閲嶅鏃跺鐜帮紝宸插啀娆℃竻闄わ紝瑙佹祴璇曟姤鍛� P3锛夈��
+3. **椤圭洰娓呭崟鏈変袱涓潵婧�**锛氫竴鏄競宸炲綋鏈堟姤涓婃潵鐨勶紝浜屾槸姣嶇増/搴撻噷宸茬粡鏈夌殑锛堝棰勫畨鎺掓瘝鐗堥噷鐨勬姹夌墿娴佽锛夈��
+   浜庢槸浜х敓銆屾湁鎬绘姇璧勩�佹病鏈夋湰鏈熸湀搴︽暟銆嶇殑椤圭洰锛岃涓嶈琛ヨ繘灏忚/鍚堣灏辨垚浜嗚鍗曠嫭鍐崇瓥鐨勪簨銆�
+4. **鍒椾綅缃潬鍏滃簳**锛氭棭鏈熷疄鐜版寜銆岃嚜骞村垵绱 = 鑷紑濮嬪缓璁剧疮璁� + 2 鍒椼�嶈繖绫诲垪搴忔帹绠楋紝
+   甯傚窞涓�鎸垪灏卞緱鍐嶅姞涓�鏉″厹搴曗�斺�旇繖鏄�岀寽銆嶅嚭鏉ョ殑澶嶆潅搴︼紝涓嶆槸涓氬姟澶嶆潅搴︺��
+
+## 鍥涖�佹崲鎴愮粺涓�妯℃澘鍚庯紝杩樿瀹氭 3 浠朵簨
+
+妯℃澘瑙e喅鐨勬槸銆屾�庝箞璇汇�嶃�備笅闈� 3 浠朵簨瀹氫笅鏉ワ紝鏁存潯閾惧氨娌℃湁姝т箟浜嗭細
+
+| # | 寰呭畾浜嬮」 | 寤鸿 |
+| --- | --- | --- |
+| 1 | 骞村害椤圭洰娓呭崟浠ヨ皝涓哄噯锛熷簱閲屾湁浠�涔堝氨鍑轰粈涔堬紝杩樻槸浠ャ�屽勾搴﹂瀹夋帓璁″垝琛ㄣ�嶄负鍑嗭紵 | 浠ュ勾搴﹂瀹夋帓璁″垝琛ㄤ负鍑嗭紙闅忔瘝鐗堜笅鍙戞垨鍗曠嫭寤轰竴寮犮�婂勾搴﹂瀹夋帓璁″垝銆嬭〃锛夛紝姣忔湀鍙洿鏂版寚鏍� |
+| 2 | 鏌愬競宸炲綋鏈�**娌℃姤**鎬庝箞鍔烇紵 | 璇ュ競宸炴寚鏍囩暀绌� + 瀵煎嚭鍓嶅脊绐楀垪鍑恒�屾湭鎶ラ�佸競宸炪�嶏紝涓嶉樆鏂鍑� |
+| 3 | 甯傚窞**鏂板**鐨勯」鐩彃鍒板摢锛� | 鎻掑埌璇ュ競宸炪�岄瀹夋帓璁″垝鍐呫�嶅皬鑺傛湯灏撅紱璁″垝澶栫殑鍗曠嫭鏍囨敞锛屽鍚戜笂浠嶅嚭浣嗘槑鏄惧尯鍒簬璁″垝鍐� |
+
+## 浜斻�佽繃娓″畨鎺掍笌涓嬩竴姝�
+
+- **8 鏈堝強浠ュ墠**锛氬凡鎸夋棫鏍煎紡瀵煎叆瀹屾瘯锛岀▼搴忕户缁吋瀹规棫鐗堝紡锛�**涓嶆敼銆佷笉閲嶅**锛�8 鏈堝崄鍫版簮鏂囦欢娓呯悊鍙﹁纭锛夈��
+- **9 鏈堣捣**锛氬競宸炴寜缁熶竴妯℃澘濉姤锛涘缓璁啀鍔犱竴涓�屾ā鏉夸綋妫�銆嶁�斺�斿鍏ユ椂鏍¢獙琛ㄥご鏄惁涓烘湰妯℃澘 17 鍒楋紝
+  鏄垯璧般�屾寜琛ㄥご鍙栨暟銆嶇殑鐩磋矾锛屼笉鏄垯**寮圭獥鎻愮ず**锛堝摢涓�鍒楀涓嶄笂锛夛紝鑰屼笉鏄户缁寽鍒椾綅缃��
+- 杩欐牱瑙f瀽閫昏緫鍙互閫�鍖栨垚銆屾寜琛ㄥご鍚嶅彇鍊笺�嶏紝鐜版湁閭d簺瀹归敊鍏滃簳鍒嗘敮鍙互閫愭涓嬬嚎锛屽鏉傚害鑷劧灏遍檷涓嬫潵浜嗐��
diff --git "a/docs/\346\212\225\350\265\204/\346\250\241\346\235\277/\346\250\241\346\235\277_\345\270\202\345\267\236\346\234\210\346\212\245_\345\256\242\350\277\220\347\253\231\345\234\272.xlsx" "b/docs/\346\212\225\350\265\204/\346\250\241\346\235\277/\346\250\241\346\235\277_\345\270\202\345\267\236\346\234\210\346\212\245_\345\256\242\350\277\220\347\253\231\345\234\272.xlsx"
new file mode 100644
index 0000000..4507a12
--- /dev/null
+++ "b/docs/\346\212\225\350\265\204/\346\250\241\346\235\277/\346\250\241\346\235\277_\345\270\202\345\267\236\346\234\210\346\212\245_\345\256\242\350\277\220\347\253\231\345\234\272.xlsx"
Binary files differ
diff --git "a/docs/\346\212\225\350\265\204/\346\250\241\346\235\277/\346\250\241\346\235\277_\345\270\202\345\267\236\346\234\210\346\212\245_\347\211\251\346\265\201\345\233\255\345\214\272.xlsx" "b/docs/\346\212\225\350\265\204/\346\250\241\346\235\277/\346\250\241\346\235\277_\345\270\202\345\267\236\346\234\210\346\212\245_\347\211\251\346\265\201\345\233\255\345\214\272.xlsx"
new file mode 100644
index 0000000..d17d119
--- /dev/null
+++ "b/docs/\346\212\225\350\265\204/\346\250\241\346\235\277/\346\250\241\346\235\277_\345\270\202\345\267\236\346\234\210\346\212\245_\347\211\251\346\265\201\345\233\255\345\214\272.xlsx"
Binary files differ
diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/service/DataImportService.java b/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/service/DataImportService.java
index 049d707..c694e75 100644
--- a/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/service/DataImportService.java
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/service/DataImportService.java
@@ -2489,6 +2489,8 @@
             project.setProjectName(nt);
             project.setCategory(category);
             project.setCity(currentCity);
+            String countyCell = cellStr(row, col.get("county"));
+            if (countyCell != null && !countyCell.trim().isEmpty()) project.setCounty(countyCell.trim());
             project.setBuilderName(cellStr(row, col.get("builder")));
             project.setConstructNature(cellStr(row, col.get("nature")));
             project.setStartTime(investTime(cellStr(row, col.get("start"))));
@@ -2524,11 +2526,19 @@
             Row row = sh.getRow(r);
             if (row == null) continue;
             boolean hasName = false;
+            int headerCells = 0;
             for (int c = 0; c <= row.getLastCellNum(); c++) {
                 String v = cellStr(row, c);
-                if (v != null && v.contains("椤圭洰鍚嶇О")) { hasName = true; break; }
+                if (v == null) continue;
+                String t = v.trim();
+                if (t.isEmpty() || t.length() > 20) continue;   // 璇存槑鎬ч暱鍙ヤ笉绠楄〃澶村瓧娈�
+                String k = investHeaderKey(t);
+                if (k == null) continue;
+                headerCells++;
+                if ("name".equals(k)) hasName = true;
             }
-            if (!hasName) continue;
+            // 鐪熻〃澶磋鑷冲皯鏈� 2 涓煭琛ㄥご瀛楁锛涘彧鏈変竴鏍奸暱鍙ュ惈銆岄」鐩悕绉般�嶇殑璇存槑椤典細琚帓闄�
+            if (!hasName || headerCells < 2) continue;
             Map<Integer, String> colTexts = new HashMap<>();
             int scanEnd = investHeaderScanEnd(sh, r, row);
             for (int rr = r; rr <= scanEnd; rr++) {
@@ -2542,23 +2552,8 @@
             }
             Map<String, Integer> col = new HashMap<>();
             for (Map.Entry<Integer, String> e : colTexts.entrySet()) {
-                int c = e.getKey();
-                String v = e.getValue();
-                if (v.contains("椤圭洰鍚嶇О")) col.putIfAbsent("name", c);
-                else if (v.contains("鎶曡祫寤鸿") || v.contains("寤鸿鍗曚綅") || v.contains("椤圭洰涓氫富")) col.putIfAbsent("builder", c);
-                else if (v.contains("寤鸿鎬ц川")) col.putIfAbsent("nature", c);
-                else if (v.contains("寮�宸�")) col.putIfAbsent("start", c);
-                else if (v.contains("绔e伐") || v.contains("寤烘垚")) col.putIfAbsent("end", c);
-                else if ((v.contains("璁″垝鎬绘姇璧�") || v.contains("鎬绘姇璧�")) && !v.contains("绱")) col.putIfAbsent("total", c);
-                else if (v.contains("鑷紑濮嬪缓璁�")) col.putIfAbsent("startcum", c);
-                else if (v.contains("鏈勾璁″垝")) col.putIfAbsent("yearplan", c);
-                else if (v.contains("鑷勾鍒濈疮璁�")) col.putIfAbsent("yearcum", c);
-                else if (v.contains("鏈湀瀹屾垚")) col.putIfAbsent("monthdone", c);
-                else if (v.contains("寤鸿闃舵")) col.putIfAbsent("stage", c);
-                else if (v.contains("褰㈣薄杩涘害") || v.contains("寤鸿杩涘睍")) col.putIfAbsent("desc", c);
-                else if (v.contains("宸ュ彲") && !v.contains("椤圭洰鍚嶇О")) col.putIfAbsent("gk", c);
-                else if (v.contains("鍒濊") && !v.contains("椤圭洰鍚嶇О")) col.putIfAbsent("cs", c);
-                else if (v.contains("寤虹瓚闈㈢Н") && !v.contains("鏂板")) col.putIfAbsent("area", c);
+                String k = investHeaderKey(e.getValue());
+                if (k != null) col.putIfAbsent(k, e.getKey());
             }
             if (!col.containsKey("name")) continue;
             for (int c = 0; c <= row.getLastCellNum(); c++) {
@@ -2582,7 +2577,7 @@
                 if (dc <= row.getLastCellNum()) col.put("desc", dc);
             }
             for (String k : new String[]{"builder", "nature", "start", "end", "total", "startcum",
-                "yearplan", "yearcum", "monthdone", "stage", "desc", "gk", "cs", "area"}) {
+                "yearplan", "yearcum", "monthdone", "stage", "desc", "gk", "cs", "area", "county"}) {
                 col.putIfAbsent(k, -1);
             }
             col.put("headerRow", r);
@@ -2591,6 +2586,31 @@
         return null;
     }
 
+    /** 鍗曚釜琛ㄥご鍗曞厓鏍� -> 瀛楁閿紙null 琛ㄧず涓嶆槸琛ㄥご瀛楁锛夛紱渚涜〃澶磋鍒ゅ畾涓庡垪鏄犲皠鍏辩敤 */
+    private String investHeaderKey(String v) {
+        if (v == null) return null;
+        String flat = v.replace(" ", "");
+        if (v.contains("椤圭洰鍚嶇О")) return "name";
+        // 銆屽幙锛堝競銆佸尯锛夈�嶇殑鍚勭鍐欐硶锛氬崐/鍏ㄨ鎷彿銆侀】鍙�/閫楀彿銆佹湁鏃犳嫭鍙凤紝缁熶竴褰掍竴鍖栧悗鍐嶅垽瀹�
+        String flatCounty = flat.replace("锛�", "(").replace("锛�", ")").replace("銆�", "").replace("锛�", "").replace(",", "");
+        if (flatCounty.contains("鍘�(甯傚尯)") || flatCounty.contains("鍘垮競鍖�") || flatCounty.contains("鍖哄幙")) return "county";
+        if (v.contains("鎶曡祫寤鸿") || v.contains("寤鸿鍗曚綅") || v.contains("椤圭洰涓氫富")) return "builder";
+        if (v.contains("寤鸿鎬ц川")) return "nature";
+        if (v.contains("寮�宸�")) return "start";
+        if (v.contains("绔e伐") || v.contains("寤烘垚")) return "end";
+        if ((v.contains("璁″垝鎬绘姇璧�") || v.contains("鎬绘姇璧�")) && !v.contains("绱")) return "total";
+        if (v.contains("鑷紑濮嬪缓璁�")) return "startcum";
+        if (v.contains("鏈勾璁″垝")) return "yearplan";
+        if (v.contains("鑷勾鍒濈疮璁�")) return "yearcum";
+        if (v.contains("鏈湀瀹屾垚")) return "monthdone";
+        if (v.contains("寤鸿闃舵")) return "stage";
+        if (v.contains("褰㈣薄杩涘害") || v.contains("寤鸿杩涘睍")) return "desc";
+        if (v.contains("宸ュ彲") && !v.contains("椤圭洰鍚嶇О")) return "gk";
+        if (v.contains("鍒濊") && !v.contains("椤圭洰鍚嶇О")) return "cs";
+        if (v.contains("寤虹瓚闈㈢Н") && !v.contains("鏂板")) return "area";
+        return null;
+    }
+
     /** 琛ㄥご鏂囨湰鎵弿涓嬬晫锛氶粯璁よ〃澶磋 +3锛涜嫢銆岄」鐩悕绉般�嶅垪棣栦釜鏁版嵁琛屾洿闈犱笅锛屽垯鎵╁睍鍒版暟鎹鍓嶄竴琛岋紙涓婇檺 +12锛夈��
      *  鑳屾櫙锛氬捀瀹�/鍗佸牥绛夊競宸炴妸銆屽缓璁鹃樁娈�/褰㈣薄杩涘害銆嶆爣绛惧啓鍦ㄨ〃澶翠笅绗� 4~8 琛岋紝鍥哄畾 +3 浼氭紡鍒楋紙褰㈣薄杩涘害璇讳笉鍒帮級銆� */
     private int investHeaderScanEnd(Sheet sh, int headerRow, Row headerRowObj) {

--
Gitblit v1.9.1