From 71a77e721619e956cab116be691cc3ab58e18093 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期二, 22 九月 2026 15:35:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/main'
---
HANDOFF.md | 20 +
traffic-audit-web/src/views/ReportExport.vue | 1
docs/功能测试报告/功能测试报告_导出缓存改用数据指纹_2026-09-22.md | 61 +++++
traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportTaskService.java | 177 +++++++++++---
.gitignore | 1
docs/功能测试报告/数据比对报告_投资明细表软件生成与人工版_2026-09-22.md | 342 ++++++++++++++++++++++++++++
docs/交接文档_2026-09-21.md | 24 +
docs/工作日结/工作日结_2026-09-22.md | 51 ++++
8 files changed, 629 insertions(+), 48 deletions(-)
diff --git a/.gitignore b/.gitignore
index 46be7cc..2c47c02 100644
--- a/.gitignore
+++ b/.gitignore
@@ -100,5 +100,6 @@
# 姹囨�诲ぇ琛ㄥ鍑虹粨鏋滆惤鐩樼紦瀛橈紙澶嶇敤涓婁竴娆$敓鎴愮粨鏋滅敤锛屼笉鍏ュ簱锛�
docs/鐢熸垚姹囨�诲ぇ琛�/_cache/
+_tmp_codexhome/
# Codex 搴旂敤鍦ㄦ湰浠撳簱鏍圭洰褰曚骇鐢熺殑浜х墿鐩綍锛堜繚鐣欏湪鏈湴锛屼笉鍏ュ簱锛�
outputs/
diff --git a/HANDOFF.md b/HANDOFF.md
index 02fc1ec..759e7e1 100644
--- a/HANDOFF.md
+++ b/HANDOFF.md
@@ -12,6 +12,26 @@
- **姹囨�诲ぇ琛ㄥ樊寮傚鏍革紙2026-09-22锛�**锛氳蒋浠惰緭鍑轰笌鎵嬪伐瀹氱缁� Excel 鍏ㄩ噺閲嶇畻鍚庨�愭牸姣斿锛�930 鏉″樊寮備腑瀹炶川鏁板�煎樊寮� 314 鏉★紱鍏朵腑 304 鏉′负 2025 绱鍒楀皯鍔� 7銆�8 鏈堬紙涓氬姟宸茬‘璁ゅ彲娓呯┖锛夛紝10 鏉� ` 璐ц繍` 鍘嗗彶鍚屾瘮涓氬姟宸茬‘璁よ蒋浠舵纭�傛姤鍛婅 `docs/闂姹囨��/姹囨�诲ぇ琛╛杞欢杈撳嚭涓庢墜宸ュ畾绋垮樊寮傛竻鍗昣2026-08_20260922.md`锛屾槑缁嗚鍚屽悕鐩綍 CSV銆�
- **鏈畬鎴愰噸鐐逛笉鍙�**锛歅0-2銆婁嚎鍏冩姇璧勯」鐩�嬫寜 Q7 杩藉垪銆丳0-3 瀵煎嚭鍓嶅熀鏁颁綋妫�銆丳0-4 2026-09 姣嶇増锛涘叾浣欒 `docs/浜ゆ帴鏂囨。_2026-09-21.md` 绗� 4 绔犮��
+### 琛ュ厖锛�2026-09-22 涓嬪崍锛屾姇璧勬槑缁嗚〃姣斿锛�
+
+- **宸插畬鎴�**锛氳蒋浠躲�婂杩愮珯鎶曡祫鏄庣粏琛ㄣ�嬨�婄墿娴佺珯鍦烘姇璧勬槑缁嗐�嬩笌浜哄伐鐗堥�愭牸姣斿锛�156 鏍煎樊寮傦級锛屾姤鍛� `docs/鍔熻兘娴嬭瘯鎶ュ憡/鏁版嵁姣斿鎶ュ憡_鎶曡祫鏄庣粏琛ㄨ蒋浠剁敓鎴愪笌浜哄伐鐗坃2026-09-22.md`銆�
+- **鎹炲嚭 3 绫汇�屼細闈欓粯鍑烘暟銆嶇殑闂**锛堥兘鎸囧悜鍙栨暟鑰岄潪绠楁湳锛夛細
+ 1. 瀵煎嚭鐢ㄥ簳绋挎ā鏉� + **鎸夐」鐩悕鍖归厤**搴撳唴褰撴湀鏁帮紝鍖归厤涓嶄笂/搴撳唴鏃犲綋鏈堟暟灏辨部鐢ㄤ笂鏈熷�� 鈥斺�� 姝︽眽鐗╂祦锛堝簱鍐� 0 鏉℃湀搴﹁褰曪級鏁存淇濈暀 7 鏈堝�硷紱鑽嗗窞銆屼腑鍥戒緵閿�鍏畨鍟嗚锤鐗╂祦鍥�嶅洜搴撳唴鍚嶅涓�涓偣鏈鐩栥��
+ 2. 搴撳唴**鍚屽悕鍙屾。**锛氬崄鍫般�屽揩閫掔墿娴佷骇涓氬洯浜屾湡銆峘id=154`(绔e伐2026)/`id=181`(绔e伐2029) 骞跺瓨锛屽鍑哄彇鍒版棫妗c��
+ 3. **瀵煎叆涓㈡暟**锛氬ぉ闂ㄣ�屽ぉ闂ㄥ競鐗╂祦涓績寤鸿椤圭洰銆嶅簱鍐� 2026-08 绱/鑷勾鍒�/鏈湀鍏ㄤ负 0锛屾簮鏂囦欢鏄� 16677.7/16677.7/500锛�**P1-5 鍘熻褰曘�屾簮鏂囦欢 H/J/K 鍒椾负绌恒�嶄笌鐜版枃浠朵笉绗︼紝闇�鏇存**锛夈��
+- **鍙�**锛氬鍑轰笉瑕嗙洊 L锛堝缓璁鹃樁娈碉級鍒椼�佸崟娓犻亾甯傚窞鐨勫垎缁勫皬璁¤濉硶銆�0/绌虹櫧鍐欐硶宸紓锛屽潎宸插湪鎶ュ憡绗簲鑺傜粰鍑哄缃缓璁��
+
+### 琛ュ厖锛�2026-09-22 涓嬪崍锛屽彟涓�浼氳瘽鏀跺熬锛�
+
+- **鏈細璇濆凡瀹屾垚**锛堝凡鎺ㄩ�侊級锛氭眹鎬诲ぇ琛ㄨ繘搴﹀脊绐椾紭鍖栵紙瀹屾垚鍚庝笉鍐嶅嚭鐜伴噸澶嶄笅杞芥寜閽級锛涘鍑虹粨鏋�**钀界洏缂撳瓨**锛坄docs/鐢熸垚姹囨�诲ぇ琛�/_cache/`锛屽凡 gitignore锛夛紱
+ 缂撳瓨瀹堝崼鍗囩骇涓�**鏁版嵁鎸囩汗**锛堜緷璧栨簮琛� `CHECKSUM TABLE` + 姣嶇増绛夋枃浠惰韩浠斤紝鎺掗櫎鎶曡祫/鑳借��/瀹℃牳/绯荤粺/瀵煎叆鏃ュ織锛夆�斺�旀棤鍏冲鍏ヤ笉鍐嶅け鏁堛��**鎹㈡瘝鐗堝繀瀹氬け鏁�**锛屽け鏁堟椂杩涘害寮圭獥缁欏嚭璇存槑銆�
+- **褰撳墠鐜**锛氬悗绔� 8090銆佸墠绔� 8080 杩愯涓紱瀵煎嚭缂撳瓨瀵� 2026-08 鏈夋晥锛堟枃浠跺悕甯︽寚绾癸級锛涙渶鏂版彁浜� `06b1cb7`銆�
+- **鍓╀綑寰呭姙锛堝凡閫愭潯鏍告煡锛屽悓浜嬫湭瑙︾锛�**锛歅0-2 浜垮厓琛ㄦ寜 Q7 杩藉垪锛坄ReportExportService.java:6251` 浠嶅啓鍚屼竴鏍硷級銆丳0-3 鍩烘暟浣撴锛坄getLastMidIssues()` 鏃犺皟鐢ㄦ柟锛夈��
+ P0-4 2026-06/09 姣嶇増缂哄け銆丳1-7 鎶曡祫璧勯噾娓犻亾瀛楁銆丳1-9 鎶曡祫瀵煎嚭鎸夋湀鍒嗙洰褰� + 杩愯鏃ュ織銆丳2-1 D 缁勫閫熸帓鍚嶆帾杈炪��
+- **寰呮牳瀹�**锛歚docs/浜ゆ帴鏂囨。_2026-09-21.md` 鐨� P2-2銆屽煄甯傚杩愰〉琛ㄥご浠嶆槸鏃ユ湡搴忓垪鍙枫�嶅彲鑳借繃鏃垛�斺�斾唬鐮佸凡鏈� `fixCityMonthHeaderText()`锛�09-03 鍔犲叆锛夛紝
+ 寤鸿璺戜竴娆� 2026-08 瀵煎嚭鏍稿鍚庡啀鏀规枃妗c��
+- **鍏ュ彛**锛歚HANDOFF.md`锛堟湰鏂囦欢锛夆啋 `AGENTS.md` 鈫� `docs/浜ゆ帴鏂囨。_2026-09-21.md` 绗� 4 绔狅紙P0/P1/P2 鍏ㄩ噺閬楃暀锛夈��
+
## 鏈�鏂帮紙2026-09-21锛�
- **鏈�鏂版�诲叆鍙�**锛歚docs/浜ゆ帴鏂囨。_2026-09-21.md`锛堢郴缁熺幇鐘躲�丳0/P1/P2 閬楃暀銆佹搷浣滄墜鍐岋級锛涙眹鎬诲ぇ琛ㄤ笓椤硅 `docs/闂姹囨��/姹囨�诲ぇ琛ㄩ棶棰樹氦鎺2026-09-21.md`銆�
diff --git "a/docs/\344\272\244\346\216\245\346\226\207\346\241\243_2026-09-21.md" "b/docs/\344\272\244\346\216\245\346\226\207\346\241\243_2026-09-21.md"
index 4dedf8b..cf93cac 100644
--- "a/docs/\344\272\244\346\216\245\346\226\207\346\241\243_2026-09-21.md"
+++ "b/docs/\344\272\244\346\216\245\346\226\207\346\241\243_2026-09-21.md"
@@ -11,12 +11,13 @@
## 0. 鍏堣杩欎竴椤碉紙鎺ユ墜鐨勭 1 灏忔椂锛�
1. **鍏堟妸绯荤粺璺戣捣鏉�**锛屽啀璋堟敼浠g爜銆傝 搂7.1锛堜竴閿剼鏈紝蹇呴』鍦ㄦ矙绠卞鎵ц锛夈��
-2. **褰撳墠鏈�绱ф�ョ殑 4 浠朵簨**锛堣瑙� 搂4 P0锛夛細鈶� 銆婁嚎鍏冩姇璧勯」鐩�嬫湀浠藉垪姣忔湀瑕嗙洊涓婃湀锛堢敤鎴� Q7 瑕佺殑銆屽姞涓�鍒椼�嶆湭鍋氾級锛�
- 鈶� 瀵煎嚭鍓嶃�屽熀鏁颁綋妫� + 寮圭獥 +銆婃暟鎹己澶辨竻鍗曘�嬮〉銆嶅彧鍋氫簡涓�鍗婏紱鈶� 缂� 2026-06 / 2026-09 姣嶇増锛岄偅涓ゆ湡鍑轰笉浜嗚〃锛�
- 鈶� 姹囨�诲ぇ琛ㄣ�屼腑鍙e緞鎺掑悕 vs 涓彛寰勬槑缁嗐�嶅巻鍙插悓姣斿熀鏁板弻杞ㄥ埗锛�16 涓競宸炴湁宸級銆�
- > 鍘熴��8 鏈堝崄鍫扮墿娴佹簮鏂囦欢鍚潪鍗佸牥娈点�嶅凡浜� 2026-09-21 闂幆锛岃 搂4 P0-1銆�
+2. **褰撳墠鏈�绱ф�ョ殑 3 浠朵簨**锛堣瑙� 搂4 P0锛夛細鈶� 銆婁嚎鍏冩姇璧勯」鐩�嬫湀浠藉垪姣忔湀瑕嗙洊涓婃湀锛堢敤鎴� Q7 瑕佺殑銆屽姞涓�鍒椼�嶆湭鍋氾級锛�
+ 鈶� 瀵煎嚭鍓嶃�屽熀鏁颁綋妫� + 寮圭獥 +銆婃暟鎹己澶辨竻鍗曘�嬮〉銆嶅彧鍋氫簡涓�鍗婏紱鈶� 缂� 2026-06 / 2026-09 姣嶇増锛岄偅涓ゆ湡鍑轰笉浜嗚〃銆�
+ > 宸查棴鐜紙涓嶅繀鍐嶆煡锛夛細**8 鏈堝崄鍫扮墿娴佹簮鏂囦欢鍚潪鍗佸牥娈�**锛�2026-09-21锛岃 搂4 P0-1锛夛紱
+ > **涓彛寰勬帓鍚嶅巻鍙插悓姣斿熀鏁板弻杞ㄥ埗**锛�2026-09-21 鍚屼簨鎸夋柟妗� A 瀹炵幇锛宑ommit `abf468c`锛岃 搂4 P1-1锛夛紱
+ > **瀵煎嚭缂撳瓨**锛�2026-09-22 钀界洏 + 鏁版嵁鎸囩汗 + 澶辨晥鎻愮ず锛岃 搂4 P2-6锛夈��
3. **鍒嚜宸辨媿鏉夸笟鍔″彛寰�**锛岀 5 绔犲垪鐨勬槸蹇呴』涓氬姟纭鐨勪簨銆�
-4. 鏀瑰畬蹇呴』锛氬啓銆婂姛鑳芥祴璇曟姤鍛娿�嬧啋 鏇存柊銆婂伐浣滄棩缁撱�嬧啋 鍙屼粨搴撴帹閫侊紙搂7.4锛夈�傝繖鏄湰椤圭洰鐨勭‖瑙勭煩銆�
+4. 鏀瑰畬蹇呴』锛氬啓銆婂姛鑳芥祴璇曟姤鍛娿�嬧啋 鏇存柊銆婂伐浣滄棩缁撱�嬧啋 鎺ㄩ�佸埌鍏徃 gitea锛坄origin`锛屄�7.4锛夈�傝繖鏄湰椤圭洰鐨勭‖瑙勭煩銆�
---
@@ -56,7 +57,7 @@
| --- | --- |
| 宸ヤ綔鍖� | `D:\鏂囨。\ChatGPT\traffic-audit`锛屽垎鏀� `main` |
| HEAD | `a08c70d feat(鎶曡祫): 甯傚窞鏈堟姤缁熶竴濉姤妯℃澘 + 鍘�(甯傘�佸尯)鍒楄В鏋� + 琛ㄥご琛屽垽瀹氭敹绱 |
-| 涓汉杩滅 | `origin` 鈫� `https://gitee.com/zhizhijie/traffic-audit.git`锛堝垎鏀� `master`锛� |
+| 杩滅锛堝敮涓�锛� | `origin` 鈫� `http://61.183.254.94:3000/r/trafficAudit.git`锛堝垎鏀� `main`锛岃处鍙� zyj锛夆�斺��2026-09-21 璧�**鍙敤鍏徃 gitea 鍗曚粨搴�**锛屼釜浜� gitee 宸插純鐢紱鏃х殑 `gitea` 鍒悕鎸囧悜鍚屼竴鍦板潃锛屽彲鐢ㄥ彲鍒� |
| 鍏徃杩滅 | `gitea` 鈫� `http://61.183.254.94:3000/r/trafficAudit.git`锛堝垎鏀� `main`锛岃处鍙� zyj锛� |
| 宸ヤ綔鍖虹姸鎬� | 骞插噣锛堜氦鎺ユ枃妗c�佹眹鎬诲ぇ琛ㄩ棶棰樹氦鎺ャ�佹棩缁撱�佹姇璧勭郴缁熸柊妯℃澘鏀寔鍧囧凡鎻愪氦骞舵帹閫佷袱绔級 |
@@ -194,7 +195,7 @@
| # | 浜嬮」 | 璇存槑 | 鐘舵�� |
| --- | --- | --- | --- |
-| P1-1 | 涓彛寰勬帓鍚� vs 涓彛寰勬槑缁嗐�屽巻鍙插悓鏈熷熀鏁板弻杞ㄥ埗銆� | 闄ゆ姹夊 16 涓競宸炵疮璁″悓姣旈兘鏈夊樊锛堥粍鍐� 7.74% vs 7.64%锛夛紱鏍瑰洜鏄瘝鐗� 2025 骞� 3銆�4 鏈堢綉绾﹁溅鎷嗗垎鐢ㄤ簡涓�濂椾笌鍑虹鍒楄嚜鐩哥煕鐩剧殑鏃ц緭鍏ャ��**鏂规 A 宸插疄鏂藉苟鍥炲綊锛氭帓鍚嶉〉鏀圭敤姣嶇増 2025 闈欐�佸垪**锛涢粍鍐� 1-8 鏈堢疮璁″悓姣斾慨姝d负 `7.641733%`锛�17 甯傚窞 脳 涓ゆ寚鏍囧叡 68 涓悓姣�/绱鏍煎叏閮ㄤ竴鑷达紙鏈�澶у樊 `2.91e-11`锛夛紝褰撴湀鍚屾瘮鏃犲洖褰� | 鉁咃紙2026-09-21锛岃瑙佹眹鎬诲ぇ琛ㄤ氦鎺ョ 4 绔狅級 |
+| P1-1 | 涓彛寰勬帓鍚� vs 涓彛寰勬槑缁嗐�屽巻鍙插悓鏈熷熀鏁板弻杞ㄥ埗銆� | 闄ゆ姹夊 16 涓競宸炵疮璁″悓姣旈兘鏈夊樊锛堥粍鍐� 7.74% vs 7.64%锛夛紱鏍瑰洜鏄瘝鐗� 2025 骞� 3銆�4 鏈堢綉绾﹁溅鎷嗗垎鐢ㄤ簡涓�濂椾笌鍑虹鍒楄嚜鐩哥煕鐩剧殑鏃ц緭鍏ャ��**鏂规 A 宸插疄鏂藉苟鍥炲綊锛氭帓鍚嶉〉鏀圭敤姣嶇増 2025 闈欐�佸垪**锛涢粍鍐� 1-8 鏈堢疮璁″悓姣斾慨姝d负 `7.641733%`锛�17 甯傚窞 脳 涓ゆ寚鏍囧叡 68 涓悓姣�/绱鏍煎叏閮ㄤ竴鑷达紙鏈�澶у樊 `2.91e-11`锛夛紝褰撴湀鍚屾瘮鏃犲洖褰� | 鉁咃紙2026-09-21 鐢卞悓浜� xyc 鎸夋柟妗� A 瀹炵幇锛宑ommit `abf468c`锛涙姤鍛娿�婂姛鑳芥祴璇曟姤鍛奯涓彛寰勬帓鍚嶅悓姣斿熀鏁版柟妗圓_2026-09-21.md銆嬶紱璇﹁姹囨�诲ぇ琛ㄤ氦鎺ョ 4 绔狅級 |
| P1-2 | 涓彛寰勬帓鍚嶅叏鐪佽宸� 0.0002 涓囦汉鍏噷 | 姣嶇増鍏紡 `=SUM(O4:O20)` 鍏堝洓鑸嶄簲鍏ュ啀姹傚拰鐨勭粨鏋勬�у樊寮傦紝鏄惁鏀瑰叏绮惧害鍐欏�奸渶鎷嶆澘 | 鈴� |
| P1-3 | 涓彛寰勬槑缁� 4 鏍� `#DIV/0!` | 2025 骞� 8 鏈堝熀鏁颁负 0锛堜笉鍙瘮锛夛紝鏄惁鏀圭┖鐧介渶涓氬姟纭 | 鈴� |
| P1-4 | 鍏ㄧ渷 h2031 1-8 鏈� 27524.49 vs 危17 甯傚窞 24481.74 | 宸� **3042.75**锛堜紒涓氫笂鎶ョ殑銆屽叏鐪併�嶅惈甯傚窞鏄庣粏澶栫殑鏁版嵁锛屾垨鏌愬競宸炴紡鎶ワ級銆傜▼搴忎竴寰嬫寜姣嶇増鍙e緞锛埼e競宸烇級璧� 鈫� 寤鸿涓氬姟渚ф牳涓�娆� | 鈴� |
@@ -217,7 +218,7 @@
| P2-3 | `applySummaryReferenceLayout()` 鎸�**鍒楀簭鍙�**濂楀垪瀹�/闅愯棌 | 鍙傜収浠朵竴鍔犲噺鍒楀氨鏁翠綋閿欎綅锛屽簲鏀逛负鎸夎〃澶存枃瀛楀尮閰� | 鉂� |
| P2-4 | 缂烘瘝鐗堟彁绀猴紙T08锛夋湭瀹炴祴 | 鏈夋祴璇曞壇鏈椂琛ユ祴 | 鉂� |
| P2-5 | 閮ㄧ讲鍖呭唴鏄�**甯� AJ 鍒楃殑鏃ф瘝鐗�** | `deploy/traffic-audit-deploy-20260913/backend/docs/鐢熸垚姹囨�诲ぇ琛�/`銆乣_deploytest/`锛涚敤鎴� 09-20 鏄庣‘銆岄儴缃插寘鍏堜笉绠°�嶏紝鍙戝寘鍓嶅繀椤诲悓姝� | 鈴� |
-| P2-6 | ~~瀵煎嚭缂撳瓨鏄唴瀛樻�亊~ | **宸茶В鍐筹紙2026-09-22锛�**锛氱粨鏋滆惤鐩樺埌 `docs/鐢熸垚姹囨�诲ぇ琛�/_cache/`锛堟枃浠跺悕甯︽暟鎹増鏈� `MAX(import_batch.id)`锛夛紝鍐呭瓨 鈫� 钀界洏 鈫� 鐪熺畻閫愮骇鍛戒腑锛岄噸鍚悗绔悗浠嶅彲绉掑洖澶嶇敤锛涙湁鏂板鍏ュ嵆澶辨晥锛�7 澶╀笂闄愬苟鑷姩娓呯悊銆傞仐鐣欙細鏁版嵁鐗堟湰鏄叏灞�鐨勶紙涓庢眹鎬绘棤鍏崇殑瀵煎叆涔熶細璁╃紦瀛樺け鏁堬級锛屽闇�鎸夊鍏ョ被鍨嬬粏鍒嗗緟鎺掓湡 | 鉁咃紙鍙紭鍖栭」瑙佸彸锛墊
+| P2-6 | ~~瀵煎嚭缂撳瓨鏄唴瀛樻�亊~ | **宸茶В鍐筹紙2026-09-22锛�**锛氱粨鏋滆惤鐩樺埌 `docs/鐢熸垚姹囨�诲ぇ琛�/_cache/`锛堟枃浠跺悕甯︽暟鎹増鏈� `MAX(import_batch.id)`锛夛紝鍐呭瓨 鈫� 钀界洏 鈫� 鐪熺畻閫愮骇鍛戒腑锛岄噸鍚悗绔悗浠嶅彲绉掑洖澶嶇敤锛涙湁鏂板鍏ュ嵆澶辨晥锛�7 澶╀笂闄愬苟鑷姩娓呯悊銆傞仐鐣欓」宸查棴鐜紙2026-09-22 涓嬪崍锛夛細鐗堟湰鍙峰崌绾т负**鏁版嵁鎸囩汗**锛堜緷璧栨簮琛� `CHECKSUM TABLE` + 姣嶇増绛夋枃浠惰韩浠斤紝鎺掗櫎鎶曡祫/鑳借��/瀹℃牳/绯荤粺/瀵煎叆鏃ュ織锛夛紝鏃犲叧瀵煎叆涓嶅啀澶辨晥銆佹崲姣嶇増蹇呭畾澶辨晥锛涘け鏁堟椂杩涘害寮圭獥浼氳鏄庡師鍥� | 鉁� |
| P2-7 | 甯傚窞鍗曡〃銆屽甯傚窞鍧椼�嶅厹搴曟彁绀� | 鏄惁鍦ㄨ瘑鍒埌涓�浠芥枃浠跺惈澶氫釜甯傚窞鍧楁椂寮圭獥鎻愮ず/璺宠繃锛屽緟纭锛堜笌 P0-1 鍚屼竴鏍瑰洜锛� | 鈴� |
| P2-8 | 浠撳簱鏍圭洰褰� `_*.*` 涓存椂鏂囦欢澧炲 | `_chk_*`锛堟湰娆℃眹鎬诲ぇ琛ㄦ帓鏌ヤ骇鐢燂紝瑙佹眹鎬诲ぇ琛ㄤ氦鎺ョ 10 鑺傦級銆乣_hyb_*`銆乣_loo_*` 绛夛紝**缁忕敤鎴峰悓鎰忓悗鍐嶆竻** | 鈴� |
| P2-9 | `2026骞�8鏈堥亾璺繍杈撻噺姹囨�昏〃_鐗堝紡鍘熷瀷.xlsx` 鍘荤暀 | 杩愯鏃舵湭琚紩鐢� | 鈴� |
@@ -250,6 +251,8 @@
| `docs/闂姹囨��/姹囨�昏〃涓夋潯涓荤嚎淇鏂规_2026-09-18.md` | 銆屽叕寮忎笉閲嶇畻銆嶇粺涓�鏍瑰洜 + 椤佃寖鍥存紡椤� + 鍙e緞缂哄彛 |
| `docs/闂姹囨��/涓彛寰勬帓鍚嶅悓姣斾笌鍩庡競瀹㈣繍鍒楅敊浣峗鏍瑰洜涓庨暱鏁堟柟妗坃2026-09-18.md` | 2025 鍩烘暟涓夊缂洪櫡锛堝叕浜ゅ煄闄呭煄涔�=0銆佺綉绾﹁溅 pin 缂哄け銆佸嚭绉� 6 鏈堥噸澶嶏級涓� A/B/C/D 鍥涚粍鏂规 |
| `docs/闂姹囨��/姹囨�诲ぇ琛ㄩ棶棰樹氦鎺2026-09-21.md` | 姹囨�诲ぇ琛�**閫愯浠g爜鍦板浘**涓� P0-1/P0-2 璇︾粏璁鸿瘉锛堟帴鎵嬪繀璇伙級 |
+| `docs/鍔熻兘娴嬭瘯鎶ュ憡/鍔熻兘娴嬭瘯鎶ュ憡_涓彛寰勬帓鍚嶅悓姣斿熀鏁版柟妗圓_2026-09-21.md` | 鍚屼簨瀹炵幇鏂规 A 鐨勫洖褰掓姤鍛婏紙榛勫唸 7.744917%鈫�7.641733%锛�68 涓暟鍊煎涓�鑷达級 |
+| `docs/鍔熻兘娴嬭瘯鎶ュ憡/鍔熻兘娴嬭瘯鎶ュ憡_姹囨�诲ぇ琛ㄨ蒋浠惰緭鍑轰笌鎵嬪伐瀹氱宸紓_2026-09-21.md`銆乣docs/闂姹囨��/姹囨�诲ぇ琛ㄥ樊寮傛牳瀵瑰洖鎵2026-09-21.md` | 杞欢杈撳嚭 vs 鎵嬪伐瀹氱鐨勯�愭牸宸紓娓呭崟涓庡洖鎵� |
**鏈�瀹规槗琚敼鍥炲幓鐨� 6 涓偣**锛堝彇鑷眹鎬诲ぇ琛ㄤ氦鎺ョ 6 鑺傦級锛�
@@ -298,7 +301,7 @@
### 7.4 浜や粯瑙勭煩锛堢‖鎬э級
1. 姣忓仛瀹屼竴涓姛鑳斤細**鍏堟祴璇� 鈫� 鍐欍�婂姛鑳芥祴璇曟姤鍛娿��**锛坄docs/鍔熻兘娴嬭瘯鎶ュ憡/鍔熻兘娴嬭瘯鎶ュ憡_<鍔熻兘鍚�>_<鏃ユ湡>.md`锛屽惈姝e悜/璐熷悜/鍏ュ簱鎶芥煡锛夆啋 **鏇存柊銆婂伐浣滄棩缁撱��**锛坄docs/宸ヤ綔鏃ョ粨/宸ヤ綔鏃ョ粨_<鏃ユ湡>.md`锛夈��
-2. 鐒跺悗 `git fetch origin`锛堜釜浜� gitee锛屽垎鏀� `master`锛変笌 `git fetch gitea`锛堝叕鍙革紝鍒嗘敮 `main`锛夋瘮瀵瑰悎骞讹紝**绂佹寮烘帹**锛屽啀 commit + push銆�
+2. 鐒跺悗 `git fetch origin`锛堝叕鍙� gitea锛屽垎鏀� `main`锛変笌杩滅姣斿鍚堝苟锛�**绂佹寮烘帹**锛屽啀 commit + push銆�
3. 鍏徃璐﹀彿瀵嗙爜鍙蛋鏈満 git 鍑嵁锛�**绂佹鍐欒繘浠撳簱浠讳綍鏂囦欢**銆�
---
@@ -311,7 +314,7 @@
- [ ] 鐢熸垚涓�娆� 2026-08 姹囨�诲ぇ琛紙鎶ヨ〃鐢熸垚椤垫垨 搂2.4 鎺ュ彛锛夛紝纭鑳戒骇鍑恒�佽兘鎵撳紑銆�
- [ ] 璇� `docs/闂姹囨��/姹囨�诲ぇ琛ㄩ棶棰樹氦鎺2026-09-21.md`锛堥噸鐐圭 3銆�4銆�5 绔狅級銆�
- [ ] 璇绘湰鏂� 搂4锛屾寜 P0 椤哄簭鍜岀敤鎴风‘璁ゅ墠 4 浠朵簨鎬庝箞鎺ㄨ繘銆�
-- [ ] 纭鑷繁鐭ラ亾銆屾敼瀹岃鍐欐祴璇曟姤鍛� + 宸ヤ綔鏃ョ粨 + 鍙屼粨搴撴帹閫併�嶃��
+- [ ] 纭鑷繁鐭ラ亾銆屾敼瀹岃鍐欐祴璇曟姤鍛� + 宸ヤ綔鏃ョ粨 + 鎺ㄩ�佸叕鍙� gitea锛坥rigin/main锛夈�嶃��
---
@@ -321,4 +324,5 @@
| --- | --- |
| 2026-09-21 | 棣栨鎴愭枃锛氭暣鍚堟眹鎬诲ぇ琛ㄤ氦鎺ワ紙`docs/闂姹囨��/姹囨�诲ぇ琛ㄩ棶棰樹氦鎺2026-09-21.md`锛変笌鎶曡祫/璐ц繍/瀹㈣繍鍚勭嚎閬楃暀 |
| 2026-09-21锛堜笅鍗堬級 | P0-1 闂幆锛堝崄鍫版簮鏂囦欢宸插垹娈� + 閲嶅楠岃瘉锛夛紱鏂板 P1-13锛堟姇璧勭郴缁熸柊妯℃澘鏀寔锛夛紱鏁版嵁蹇収琛� `investment_system` 琛� |
+| 2026-09-22锛堜笅鍗堬級 | 瀵煎嚭缂撳瓨锛氱粨鏋滆惤鐩� + 鏁版嵁鎸囩汗瀹堝崼 + 澶辨晥鎻愮ず锛圥2-6 闂幆锛夛紱/ 鍚屾鍚屼簨杩涘睍锛坄abf468c` P1-1 鏂规 A銆乣47a8734` 宸紓鎶ュ憡銆乣a5a9545` 09-22 璁板綍锛夛紱/ 浠撳簱绾﹀畾鏀逛负鍏徃 gitea 鍗曚粨搴撱�伮�0 娓呭崟鏇存柊 |
| 2026-09-21锛堜笅鍗堬級 | P1-1 闂幆锛氱敤鎴烽噰鐢ㄦ柟妗� A锛屼腑鍙e緞鎺掑悕鐨� 2025 绱鍩烘暟鏀硅姣嶇増銆婁腑鍙e緞鏄庣粏銆嬮潤鎬佸垪锛涢粍鍐堢疮璁″悓姣旂敱 7.74% 淇涓� 7.641733%锛屽弻椤典竴鑷存�у洖褰掗�氳繃 |
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\257\274\345\207\272\347\274\223\345\255\230\346\224\271\347\224\250\346\225\260\346\215\256\346\214\207\347\272\271_2026-09-22.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\257\274\345\207\272\347\274\223\345\255\230\346\224\271\347\224\250\346\225\260\346\215\256\346\214\207\347\272\271_2026-09-22.md"
new file mode 100644
index 0000000..6cc4bc0
--- /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\257\274\345\207\272\347\274\223\345\255\230\346\224\271\347\224\250\346\225\260\346\215\256\346\214\207\347\272\271_2026-09-22.md"
@@ -0,0 +1,61 @@
+# 鍔熻兘娴嬭瘯鎶ュ憡_瀵煎嚭缂撳瓨鏀圭敤鏁版嵁鎸囩汗_2026-09-22
+
+## 涓�銆佸姛鑳借鏄�
+
+鐢ㄦ埛璇夋眰锛氫笅杞借繃涓�娆°�佹湡闂存病鏈夋柊瀵煎叆鏁版嵁灏卞簲鐩存帴娌跨敤涓婃缁撴灉锛堝凡瀹炵幇钀界洏缂撳瓨锛夛紱闅忓悗鐢ㄦ埛璁ゅ彲銆屾寜鎴戣鐨勫仛銆嶏紝瑕佹眰缁х画瑙e喅缂撳瓨瀹堝崼鐨勪袱涓棶棰橈細
+
+1. **璇け鏁�**锛氬師鏉ョ敤鍏ㄥ眬 `MAX(import_batch.id)` 褰撶増鏈彿锛屽鍏ユ姇璧�/鑳借�楄繖绫讳笌姹囨�诲ぇ琛ㄦ棤鍏崇殑鏁版嵁涔熶細璁╃紦瀛樺け鏁堬紝鐧界瓑鍗佸嚑绉掞紱
+2. **婕忓け鏁堬紙姝g‘鎬ф紡娲烇級**锛氱増鏈彿鍙弽鏄犳暟鎹簱瀵煎叆璁板綍锛�**涓嶅惈姣嶇増鏂囦欢**鈥斺�旀崲姣嶇増/鏀瑰弬鐓т欢鏃剁増鏈彿涓嶅彉锛屼細鎶婃棫缁撴灉褰撴柊琛ㄥ彂鍑恒��
+
+**鏀瑰姩**锛�
+
+| # | 鏀瑰姩 | 璇存槑 |
+| --- | --- | --- |
+| 1 | 鐢�**鏁版嵁鎸囩汗**鏇夸唬鍏ㄥ眬鐗堟湰 | 鎸囩汗 = 銆屼緷璧栨簮琛ㄧ殑鍐呭鏍¢獙鍜屻��+銆屾瘝鐗堢瓑鏂囦欢韬唤銆嶏紝SHA-256 鍙栧墠 8 瀛楄妭锛�16 浣嶅崄鍏繘鍒讹級锛屽啓杩涚紦瀛樻枃浠跺悕 |
+| 2 | 婧愯〃鑼冨洿锛�**鎺掗櫎娉�** | 搴撳唴鎵�鏈夊熀琛紝**鎺掗櫎**鎶曡祫(3)/鑳借��(2)/瀹℃牳(4)/绯荤粺(6)/`import_batch`(1) 鍏� 16 寮狅紱鍏朵綑涓�寰嬬撼鍏ワ紙瀹佸彲澶氱畻涓嶅彲鍑洪敊锛� |
+| 3 | 鐢� `CHECKSUM TABLE` 鍙栨牎楠屽拰 | 鑳芥崟鎹�**鍘熷湴 UPDATE**锛堣鏁般�乵ax(id) 閮戒笉鍙樼殑鎯呭喌锛夛紝姣� `count+max(id)` 鏇翠弗鏍� |
+| 4 | 鏂囦欢韬唤 | 姣嶇増鐩綍涓嬪叏閮ㄦ枃浠讹紙姣嶇増 / 鍙傜収浠� / `_澶囦唤_` 鍥炲~浠讹級+銆婄綉绾﹁溅璁㈠崟鍙婂叏鐪佹�婚噺.xlsx銆嬶紝鍙栥�屽悕绉�+澶у皬+淇敼鏃堕棿銆� |
+| 5 | 鏂板**澶辨晥鎻愮ず**锛堢 3 姝ョ殑鎻愮ず鐗堬級 | 娌″懡涓笖瀛樺湪鏃х粨鏋滄椂锛岃繘搴﹀脊绐楁樉绀恒�屼笂娆$敓鎴愮殑缁撴灉宸插洜鏁版嵁鎴栨瘝鐗堝彉鍖栧け鏁堬紝鏈鎸夋渶鏂版暟鎹噸绠椼�傘�� |
+
+> 鎻愮ず鏀惧湪**瀵煎嚭鏃剁殑杩涘害寮圭獥**锛堣�屼笉鏄鍏ョ粨鏋滃脊绐楋級锛氣憼 姝eソ鍑虹幇鍦ㄧ敤鎴风瓑寰呯殑鏃跺�欙紱鈶� 鍏嶅幓銆屾瘡娆″鍏ラ兘璺戜竴閬嶅叏琛ㄦ牎楠屽拰銆嶇殑寮�閿�銆�
+
+## 浜屻�佹祴璇曠幆澧�
+
+- 鍚庣 Spring Boot 8090锛堥噸鍚姞杞芥柊浠g爜锛夛紱鍓嶇 8080锛汳ySQL 3308 / `traffic_audit`
+- 鎶ヨ〃鏈� 2026-08锛堟湀鎶ワ級锛涚紦瀛樼洰褰� `docs/鐢熸垚姹囨�诲ぇ琛�/_cache/`
+- 楠岃瘉鏈熼棿鍙︿竴涓細璇濋噸鍚繃鍚庣涓ゆ锛屼釜鍒楠や腑鏂悗閲嶈窇锛堜笉褰卞搷缁撹锛�
+
+## 涓夈�佺敤渚嬭〃
+
+| # | 鐢ㄤ緥 | 鎿嶄綔 | 棰勬湡 | 瀹為檯 | 缁撹 |
+| --- | --- | --- | --- | --- | --- |
+| T01 | 棣栨鐢熸垚锛堟柊鎸囩汗锛� | 鎻愪氦瀵煎嚭 | 鐪熺畻骞惰惤鐩橈紝鏃х増鏈枃浠惰娓呯悊 | `DONE` 21 s锛涚敓鎴� `鈥v227060ce99767ced.xlsx`锛屽師 `鈥v541.xlsx` 宸插垹 | 閫氳繃 |
+| T02 | 鍐嶆鎻愪氦 | 鍚屼笂鎶� | 鍐呭瓨鍛戒腑 | **241 ms**锛宍fromCache=true` | 閫氳繃 |
+| T03 | **鏃犲叧瀵煎叆涓嶅奖鍝嶇紦瀛橈紙鏍稿績锛�** | 寰� `investment_project`銆乣import_batch` 鍚勬彃 1 琛屽悗鎻愪氦 | 浠嶅懡涓� | `fromCache=true`锛堟敼閫犲墠蹇呯劧澶辨晥锛� | 閫氳繃 |
+| T04 | 鍒犻櫎涓婅堪涓よ鍚庢彁浜� | 鍚屼笂 | 浠嶅懡涓� | `fromCache=true` | 閫氳繃 |
+| T05 | **鐩稿叧婧愯〃鍘熷湴 UPDATE** | `wyc_order_monthly.pin_k +0.001`锛堣鏁�/`max(id)` 涓嶅彉锛夊悗鎻愪氦 | 蹇呴』澶辨晥 | `fromCache=false`銆乣RUNNING`锛涚紦瀛樻枃浠跺悕鎹㈡垚鏂版寚绾� `鈥v68b6bc0c鈥 | 閫氳繃 |
+| T06 | 杩樺師璇ュ�煎悗鎻愪氦 | 鍚屼笂 | 浠嶄笉鍛戒腑锛堢紦瀛樻槸鏀瑰悗鎸囩汗锛� | `fromCache=false` 鈫� 閲嶇畻锛涙寚绾瑰洖鍒� `227060ce99767ced` | 閫氳繃 |
+| T07 | **鎹㈡瘝鐗堝繀椤诲け鏁堬紙鍘熸紡娲烇級** | 鏀规瘝鐗堟枃浠朵慨鏀规椂闂达紙鍐呭涓嶅彉锛夊悗鎻愪氦 | 蹇呴』澶辨晥 | `fromCache=false`銆乣RUNNING`锛涙寚绾瑰彉 `鈥v7d65cbb6鈥 | 閫氳繃 |
+| T08 | 鎭㈠姣嶇増鏃堕棿鍚庢彁浜� | 鍚屼笂 | 澶辨晥鈫掗噸绠椻啋鍐嶆彁浜ゅ懡涓� | 閲嶇畻鍚� `fromCache=true` | 閫氳繃 |
+| T09 | 澶辨晥鎻愮ず锛堟帴鍙o級 | 瀛樺湪鏃х粨鏋滀笖鎸囩汗涓嶇鏃舵彁浜� | `staleCache=true` | `status=RUNNING fromCache=false staleCache=true` | 閫氳繃 |
+| T10 | 鍛戒腑缂撳瓨鏃犳彁绀猴紙鍥炲綊淇锛� | 鍛戒腑鏃舵彁浜� | `staleCache=false` | 淇鍓嶅懡涓粛甯� `staleCache=true` 鈫� 宸蹭慨涓哄懡涓嵆娓呴浂 | 閫氳繃 |
+| T11 | **娴忚鍣ㄥ疄娴嬫彁绀鸿** | admin/123456 鈫� 鎶ヨ〃鐢熸垚 鈫� 姹囨�诲ぇ琛� 鈫� 2026-08 鈫� 瀵煎嚭锛堝厛鏀规瘝鐗� mtime 鍒堕�犲け鏁堬級 | 寮圭獥鍑虹幇澶辨晥鎻愮ず | 寮圭獥鏄剧ず銆屼笂娆$敓鎴愮殑缁撴灉宸插洜鏁版嵁鎴栨瘝鐗堝彉鍖栧け鏁堬紝鏈鎸夋渶鏂版暟鎹噸绠椼�傘�嶏紱鐢熸垚 13.2 s銆佽嚜鍔ㄤ笅杞� 1.15 MB銆佹寜閽�岄噸鏂扮敓鎴�/鍏抽棴銆嶃�佹帶鍒跺彴 0 鎶ラ敊 | 閫氳繃 |
+| T12 | 鏁版嵁杩樺師鏍稿 | 鏌ュ簱 | 鏃犳祴璇曟畫鐣� | `import_batch` 419銆乣investment_project` 152銆乣wyc_order_monthly.2025-12 pin_k=3492.63`銆佹棤銆宊鎸囩汗娴嬭瘯椤圭洰銆� | 閫氳繃 |
+
+## 鍥涖�佸彂鐜扮殑闂涓庡缃�
+
+| # | 闂 | 澶勭疆 |
+| --- | --- | --- |
+| P1 | 鍛戒腑缂撳瓨鏃舵畫鐣欎笂涓�娆$殑銆屽凡澶辨晥銆嶆彁绀烘爣璁� | 宸蹭慨锛氬懡涓垎鏀竻闆� `staleCache` |
+| P2 | 鏂囦欢韬唤鐢ㄦ绉掔骇 mtime锛氭妸姣嶇増 mtime銆屾仮澶嶆垚鍚屼竴绉掋�嶆椂锛屼簹绉掑樊寮備粛浼氫骇鐢熸柊鎸囩汗锛堥獙璇佷腑瀹為檯閬囧埌锛� | 灞�**棰勬湡琛屼负**锛堜繚瀹堜紭鍏堬細瀹佸彲澶氱畻涓�娆★級銆傝嫢灏嗘潵瑙夊緱澶晱鎰燂紝鍙敼涓恒�岀绾� mtime銆嶆垨瀵规瘝鐗堝仛鍐呭鍝堝笇 |
+| P3 | 娴嬭瘯鐢ㄧ殑涓存椂鏁版嵁锛�1 涓姇璧勯」鐩��1 鏉″鍏ヨ褰曘�乣wyc pin 卤0.001`锛� | 宸插叏閮ㄨ繕鍘�/鍒犻櫎锛孴12 宸叉牳瀵� |
+| P4 | 鏁版嵁鎸囩汗璁$畻鎴愭湰 | 绾� 11 寮犺〃 CHECKSUM + 13 涓枃浠� stat锛屽疄娴嬪彲涓烘绉掔骇锛�3 寮犺〃 48 ms锛夛紱浠呭湪鎻愪氦瀵煎嚭鏃剁畻涓�娆� |
+
+## 浜斻�佺粨璁�
+
+- 缂撳瓨瀹堝崼浠庛�屽叏灞�瀵煎叆鐗堟湰銆嶅崌绾т负銆�**鏁版嵁鎸囩汗**銆嶅悗锛�**鏃犲叧瀵煎叆涓嶅啀璁╃紦瀛樺け鏁�**锛圱03/T04锛夛紝**鎹㈡瘝鐗堛�佹敼婧愯〃锛堝惈鍘熷湴 UPDATE锛夊繀瀹氬け鏁�**锛圱05/T07锛夛紝涓や釜鏂瑰悜閮藉疄娴嬮�氳繃锛�
+- 鐢熸垚涓�娆$殑鎴愭湰鍙姳鍦ㄧ湡姝i渶瑕侀噸绠楃殑鏃跺�欙紱姝e父銆屼笅杞借繃鍐嶇湅涓�娆°�嶄粛鏄绉掔骇鍛戒腑锛�
+- 澶辨晥鏃朵細鍦ㄨ繘搴﹀脊绐楁槑纭鏄庡師鍥狅紝鐢ㄦ埛涓嶄細璇互涓虹紦瀛樺潖浜嗭紱
+- 娴嬭瘯鏁版嵁宸插叏閮ㄨ繕鍘燂紝搴撳唴鐘舵�佷笌楠岃瘉鍓嶄竴鑷淬��
+
+娴嬭瘯浜猴細Codex锛圓I锛夈��娴嬭瘯鏃ユ湡锛�2026-09-22
diff --git "a/docs/\345\212\237\350\203\275\346\265\213\350\257\225\346\212\245\345\221\212/\346\225\260\346\215\256\346\257\224\345\257\271\346\212\245\345\221\212_\346\212\225\350\265\204\346\230\216\347\273\206\350\241\250\350\275\257\344\273\266\347\224\237\346\210\220\344\270\216\344\272\272\345\267\245\347\211\210_2026-09-22.md" "b/docs/\345\212\237\350\203\275\346\265\213\350\257\225\346\212\245\345\221\212/\346\225\260\346\215\256\346\257\224\345\257\271\346\212\245\345\221\212_\346\212\225\350\265\204\346\230\216\347\273\206\350\241\250\350\275\257\344\273\266\347\224\237\346\210\220\344\270\216\344\272\272\345\267\245\347\211\210_2026-09-22.md"
new file mode 100644
index 0000000..19f8a37
--- /dev/null
+++ "b/docs/\345\212\237\350\203\275\346\265\213\350\257\225\346\212\245\345\221\212/\346\225\260\346\215\256\346\257\224\345\257\271\346\212\245\345\221\212_\346\212\225\350\265\204\346\230\216\347\273\206\350\241\250\350\275\257\344\273\266\347\224\237\346\210\220\344\270\216\344\272\272\345\267\245\347\211\210_2026-09-22.md"
@@ -0,0 +1,342 @@
+# 鏁版嵁姣斿鎶ュ憡 鈥� 鎶曡祫鏄庣粏琛ㄣ�婅蒋浠剁敓鎴愩�媣s銆婁汉宸ョ増銆嬶紙2026-08锛�
+
+> 姣斿鏃ユ湡锛�2026-09-22
+> 鑼冨洿锛氭姤琛ㄧ敓鎴� 鈫� 鎶曡祫 鈫掋�婂杩愮珯鎶曡祫鏄庣粏琛ㄣ�嬨�婄墿娴佺珯鍦烘姇璧勬槑缁嗐��
+> 鏂规硶锛氶�愰〉绛俱�侀�愯銆侀�愭牸鏁板�兼瘮瀵癸紙鑴氭湰 `_tmp_diff_invest_0922.py`锛夛紝骞跺洖婧埌銆屾簮鏂囦欢 / 鏁版嵁搴� / 搴曠妯℃澘銆嶄笁鏂瑰畾浣嶆牴鍥�
+> 鍘熷垯锛氭寜銆岄〉绛� + 琛� + 鍒椼�嶄弗鏍煎榻愶紱鍙垪鐪熷疄宸紓锛屾诞鐐硅〃绀哄樊寮傦紙濡� `783078.1665` 涓� `783078.1664999999`锛変笉璁�
+
+## 涓�銆佹瘮瀵规簮鏂囦欢
+
+| 绫诲瀷 | 鏂囦欢 | 瀛楄妭 | SHA256(鍓�16) | 淇敼鏃堕棿 |
+| --- | --- | --- | --- | --- |
+| 浜哄伐鐗�-瀹㈣繍 | `D:\05_鏁版嵁鍒嗙被\鎶曡祫\8鏈圽8鏈堝杩愮珯鎶曡祫鏄庣粏琛�.xlsx` | 34226 | `0C2150B97B87F860` | 2026-09-01 10:53:39 |
+| 浜哄伐鐗�-鐗╂祦 | `D:\05_鏁版嵁鍒嗙被\鎶曡祫\8鏈圽8鏈堢墿娴佺珯鍦烘姇璧勬槑缁�.xls` | 122368 | `1B768D2341CADC41` | 2026-09-01 10:53:38 |
+| 杞欢鐗�-瀹㈣繍 | `D:\妗岄潰\鐢熸垚鏁版嵁\鐢熸垚_鎵�閫夋姤琛╛2026-08 (1)\鐢熸垚_瀹㈣繍绔欐姇璧勬槑缁嗚〃.xlsx` | 29462 | `4A2EA9C915E5D107` | 2026-09-22 14:16:28 |
+| 杞欢鐗�-鐗╂祦 | `D:\妗岄潰\鐢熸垚鏁版嵁\鐢熸垚_鎵�閫夋姤琛╛2026-08 (1)\鐢熸垚_鐗╂祦绔欏満鎶曡祫鏄庣粏.xls` | 134144 | `F21481D62F680366` | 2026-09-22 14:16:28 |
+| 搴曠锛堝杩愶級 | `docs\鎶曡祫\妯℃澘\妯℃澘_X鏈堝杩愮珯鎶曡祫鏄庣粏琛�.xlsx` | 34311 | `1926A91E7C416529` | 2026-08-10 15:44:18 |
+| 搴曠锛堢墿娴侊級 | `docs\鎶曡祫\妯℃澘\妯℃澘_X鏈堢墿娴佺珯鍦烘姇璧勬槑缁�.xls` | 121856 | `12A61A27B9438E19` | 2026-08-10 15:44:10 |
+
+缁撴瀯瀹屽叏涓�鑷达細瀹㈣繍銆婃槑缁嗐��121脳20 +銆婃眹鎬汇��24脳5锛涚墿娴併�婃湀2銆�32脳24銆併�� 鍒嗛」鐩姇璧勫畬鎴愭儏鍐点��192脳20銆併�婂垎甯傚窞瑙勫垝鍐呭椤圭洰瀹屾垚鎯呭喌銆�21脳8銆併�婂競宸炴眹鎬汇��24脳5銆�
+**閫愯鏍稿 B 鍒楋紙椤圭洰鍚嶇О锛夛細涓や唤鏂囦欢 192/121 琛屽叏閮ㄤ竴涓�瀵瑰簲锛屾棤澧炶銆佹棤鍒犺銆佹棤閿欎綅**锛屽洜姝ら�愭牸姣斿缁撴灉鍙洿鎺ヤ娇鐢ㄣ��
+
+## 浜屻�佺粨璁烘憳瑕�
+
+| 鏂囦欢 | 椤电 | 宸紓鏍兼暟 |
+| --- | --- | --- |
+| 瀹㈣繍绔欐姇璧勬槑缁嗚〃 | 鏄庣粏 | 12 |
+| 瀹㈣繍绔欐姇璧勬槑缁嗚〃 | 姹囨�� | 4 |
+| 鐗╂祦绔欏満鎶曡祫鏄庣粏 | 鏈�2 | 0 |
+| 鐗╂祦绔欏満鎶曡祫鏄庣粏 | 鍒嗛」鐩姇璧勫畬鎴愭儏鍐� | 108 |
+| 鐗╂祦绔欏満鎶曡祫鏄庣粏 | 鍒嗗競宸炶鍒掑唴澶栭」鐩畬鎴愭儏鍐� | 15 |
+| 鐗╂祦绔欏満鎶曡祫鏄庣粏 | 甯傚窞姹囨�� | 17 |
+| **鍚堣** | | **156** |
+
+### 鏍瑰洜锛堝凡鐢ㄦ簮鏂囦欢 / 鏁版嵁搴� / 搴曠涓夋柟璇佹嵁閿佸畾锛�
+
+**A. 杞欢瀵煎嚭 = 鍦ㄥ簳绋裤�婃ā鏉縚X鏈堚�︽姇璧勬槑缁嗐�嬩笂锛屾妸搴撳唴褰撴湀鏁版嵁鎸夈�岄」鐩悕绉般�嶅尮閰嶈鐩� H/J/K锛堢疮璁�/鑷勾鍒�/鏈湀锛変笌 M锛堝舰璞¤繘搴︼級銆傚嚒鍖归厤涓嶄笂銆佹垨搴撳唴娌℃湁褰撴湀鏁扮殑琛岋紝涓�寰嬫部鐢ㄥ簳绋匡紙涓婁竴鏈燂級鏃у�笺��**
+
+鐢辨浜х敓 4 绫荤墿娴佸樊寮傦細
+
+1. **搴撳唴娌℃湁褰撴湀鏁版嵁 鈫� 鏁存淇濈暀涓婃湡鍊�**锛氭姹夊競 6 涓墿娴侀」鐩湪搴撳唴**涓�鏉℃湀搴﹁褰曢兘娌℃湁**锛坄investment_monthly` 姝︽眽鐗╂祦鍥尯 0 琛岋紝鍥犱负 8 鏈堟姹夋棤鍗曡〃锛夛紝鎵�浠ヨ蒋浠剁増姝︽眽 8 琛屽叏鏄簳绋跨殑 7 鏈堟暟锛堝悎璁� 146313.9/72166/10116锛夛紝浜哄伐鐗堟槸 155513.9/81366/9200銆�
+2. **椤圭洰鍚嶇О涓嶄竴鑷� 鈫� 璇ヨ涓嶈鐩�**锛氬簱鍐呴」鐩悕鏄�屼腑鍥戒緵閿�**.**鍏畨鍟嗚锤鐗╂祦鍥�嶏紙涓棿澶氫竴涓偣锛夛紝鏄庣粏琛ㄨ鍚嶆槸銆屼腑鍥戒緵閿�鍏畨鍟嗚锤鐗╂祦鍥紙鍏畨鍘垮煙闆嗛噰闆嗛厤涓績锛夈�嶁啋 鍖归厤澶辫触锛岃蒋浠剁増淇濈暀搴曠鏃у�� 7758.5/7758.5/1600.1锛涘簱鍐� 2026-08 瀹為檯鏄� **15986/15986/8227.5**锛�= 婧愭枃浠躲�婅崋宸炵墿娴佹姇璧勶紙2026骞�8鏈堟姤鐪侊級銆婻21 鍘熷�硷級锛屼汉宸ョ増姝g‘銆�
+3. **搴撳唴鍚屽悕鍙屾。 鈫� 鍙栧埌鏃ф。**锛氬崄鍫般�屽揩閫掔墿娴佷骇涓氬洯浜屾湡銆嶅湪搴撳唴鏈変袱妗� 鈥斺�� `id=154`銆屽崄鍫板競蹇�掔墿娴佷骇涓氬洯**浜屾湡**锛堚�︼級銆嶇宸� 2026锛宍id=181`銆屽崄鍫板競蹇�掔墿娴佷骇涓氬洯锛�**浜屾湡**鈥︼級銆嶇宸� 2029銆傛槑缁嗚〃琛屽悕瀵瑰簲 `id=154`锛屽叾鏈�鏂版湀搴﹀彧鍒� **2026-07**锛�20081/2900/214锛夛紝浜庢槸杞欢鐗堝啓浜� 7 鏈堝�� + 绔e伐 2026锛涗汉宸ョ増鐢ㄧ殑鏄� `id=181` 鐨� 2026-08锛�20377/3196/296锛岀宸� 2029锛�= 婧愭枃浠� R71 鍘熷�笺��
+4. **搴撳唴褰撴湀鏁颁负 0 鈫� 鍐欏嚭 0**锛氬ぉ闂ㄣ�屽ぉ闂ㄥ競鐗╂祦涓績寤鸿椤圭洰銆嶅簱鍐� 2026-08 鐨� `start_cum/year_cum/month_done` **閮芥槸 0**锛岃�屾簮鏂囦欢銆�8鏈堜唤鐗╂祦鍥腑蹇冨缓璁鹃」鐩�(澶╅棬).xlsx銆婻13 鏄庢槑鏄� **16677.7 / 16677.7 / 500**锛岃鏄庢槸**瀵煎叆鐜妭鎶婅繖 3 涓暟涓簡**锛堜汉宸ョ増姝g‘锛夈��
+
+**B. 杞欢浼氬啓銆屽垎缁勫皬璁¤銆嶃�佷汉宸ョ増涓嶅啓**锛氶剛宸�/鎭╂柦/浠欐/娼滄睙/鏋楀尯/澶╅棬杩欎簺銆屽彧鏈変竴涓祫閲戞笭閬撱�嶇殑甯傚窞锛岃蒋浠舵寜娓犻亾鎶婂競宸炲悎璁℃妱杩涜娓犻亾琛岋紱浜哄伐鐗堟部鐢ㄥ簳绋跨殑绌虹櫧銆傞噾棰濅笌甯傚窞鍚堣涓�鑷达紝涓嶅奖鍝嶆�绘暟锛屽彧鏄~琛ㄤ範鎯樊寮傘��
+
+**C. 杞欢瀵煎嚭涓嶈鐩� L锛堝缓璁鹃樁娈碉級绛夐潪閲戦鍒�**锛歚D/E/F/I/L` 淇濈暀搴曠鍊笺�傛墍浠ラ粍鐭冲ぇ鍐舵箹鍐烽摼 L=鏆傚仠銆佸崄鍫版灑绾� L=鍓嶆湡銆佽闃冲喎閾句腑蹇� L=鍦ㄥ缓銆侀殢宸炴皯鐢熺墿璧� M 鐨勩��2026骞�07鏈堚�︺�嶇瓑閮芥槸**涓婁竴鏈熷簳绋跨殑娈嬬暀**锛堜汉宸ョ増杩欏嚑澶勫弽鑰屾槸瀵圭殑锛夈��
+
+**D. 瀹㈣繍閮ㄥ垎鐨勫樊寮備富瑕佹槸銆屼汉宸ョ増鎵嬪啓鍥涜垗浜斿叆銆�**锛氬簳绋块噷 203 / 203 杩欑被鎵嬪啓鏁存暟锛屼汉宸ョ増娌跨敤浜嗭紱杞欢鎸夋簮琛ㄥ師鍊煎啓 202.9565銆�
+
+## 涓夈�佸杩愮珯鎶曡祫鏄庣粏琛ㄥ樊寮傦紙16 鏍硷級
+
+### 3.1 閲戦宸紓 12 鏍硷紙鏄庣粏 8 鏍� + 姹囨�� 4 鏍硷紱瀹炶川鍚屽�硷紝浜哄伐鐗堝彇鏁达級
+
+| 琛� | 鍒� | 浣嶇疆 | 浜哄伐鐗� | 杞欢鐗� | 璇存槑 |
+| --- | --- | --- | --- | --- | --- |
+| R9 | H9 | 鍚� 璁★紙鑷紑濮嬪缓璁剧疮璁★級 | 622591.3 | 622591.2565 | 浜哄伐鐗堝洓鑸嶄簲鍏ュ埌 1 浣� |
+| R9 | J9 | 鍚� 璁★紙鑷勾鍒濈疮璁★級 | 43225.9 | 43225.8565 | 鍚屼笂 |
+| R42 | H42 | 瑗勯槼甯傦紙甯傚窞琛岋級 | 27985.3 | 27985.2565 | 鍚屼笂 |
+| R42 | J42 | 瑗勯槼甯傦紙甯傚窞琛岋級 | 2531 | 2530.9565 | 鍚屼笂 |
+| R49 | H49 | 涓夈�佸啘鏉戠患鍚堣繍杈撴湇鍔$珯 | 203 | 202.9565 | 搴曠鎵嬪啓鍊� 203 |
+| R49 | J49 | 涓夈�佸啘鏉戠患鍚堣繍杈撴湇鍔$珯 | 203 | 202.9565 | 搴曠鎵嬪啓鍊� 203 |
+| R50 | H50 | 瑗勫窞鍖虹▼娌抽晣鍩犲彛缁煎悎杩愯緭鏈嶅姟绔� | 203 | 202.9565 | 搴曠鎵嬪啓鍊� 203 |
+| R50 | J50 | 瑗勫窞鍖虹▼娌抽晣鍩犲彛缁煎悎杩愯緭鏈嶅姟绔� | 203 | 202.9565 | 搴曠鎵嬪啓鍊� 203 |
+| R7 | C7 | 姹囨��-鍚堣锛堣嚜骞村垵绱锛� | 43225.9 | 43225.8565 | 闅� H/J 鍙栨暣 |
+| R7 | E7 | 姹囨��-鍚堣锛堝崰骞村害璁″垝%锛� | 59.2307223257 | 59.2306627194 | 鐢卞彇鏁存淳鐢� |
+| R12 | C12 | 姹囨��-瑗勯槼锛堣嚜骞村垵绱锛� | 2531 | 2530.9565 | 鐢卞彇鏁存淳鐢� |
+| R12 | E12 | 姹囨��-瑗勯槼锛堝崰骞村害璁″垝%锛� | 125.6927752726 | 125.6906150057 | 鐢卞彇鏁存淳鐢� |
+
+### 3.2 鏂囨湰宸紓 4 鏍�
+
+| 琛� | 鍒� | 浣嶇疆 | 浜哄伐鐗� | 杞欢鐗� | 鏍稿缁撹 |
+| --- | --- | --- | --- | --- | --- |
+| R26 | M26 | 閮цタ鍘垮杩愭崲涔樹腑蹇冿紙褰㈣薄杩涘害锛� | 锛堢┖锛� | 鎹箻涓績缁撴瀯灏侀《锛屽唴澧欏畬鎴愶紝閰嶅璁炬柦宸插畬鍠� | **杞欢瀵�**锛氭簮鏂囦欢銆婂崄鍫板競2026骞�8鏈堝浐瀹氳祫浜ф湀鎶ョ數瀛愮増鎶曡祫琛ㄦ牸.xlsx銆婻12 M銆佸簱鍐� 2026-08 `progress_desc` 鍧囦负璇ユ枃瀛楋紱浜哄伐鐗堟部鐢ㄥ簳绋跨殑绌� |
+| R85 | M85 | 閫氬北鍘跨嚂鍘﹀杩愮珯锛堜笁绾х珯锛� | 锛堢┖锛� | 鍦熷缓宸ョ▼鍩虹 | **杞欢瀵�**锛氭簮鏂囦欢銆�2026骞�8鏈堝捀瀹佸競瀹㈣繍绔欏満鎶曡祫缁熻鏈堟姤琛�(1)鐪佽〃.xls銆婻15 M銆佸簱鍐� 2026-08 鍧囦负銆屽湡寤哄伐绋嬪熀纭�銆嶏紱浜哄伐鐗堢┖ |
+| R91 | L91 | 澶у箷涔$患鍚堣繍杈撴湇鍔$珯锛堝缓璁鹃樁娈碉級 | 鍦ㄥ缓 | 鏆傚仠鏂藉伐 | **浜哄伐鐗堟洿鎺ヨ繎**锛氭簮琛� R20 L=涓讳綋鏂藉伐銆佸簱鍐� 8 鏈� `progress_stage`=涓讳綋鏂藉伐锛涜蒋浠剁増銆屾殏鍋滄柦宸ャ�嶆潵鑷簳绋� R91 鐨勬棫鍊硷紙瀵煎嚭涓嶈鐩� L 鍒楋級 |
+| R116 | M116 | 绁炲啘鏋舵灑绾界珯 | 寤烘垚鎶曚骇 | 寤烘垚鎶曚骇銆� | 浠呭涓�涓彞鍙凤紙杞欢=搴撳唴鍊硷級锛屾棤瀹炶川宸紓 |
+
+> 娉細M26/M85 涓ゅ浜哄伐鐗堜负绌猴紝鏄�屼汉宸ョ増娌℃妸婧愯〃鐨勫舰璞¤繘搴﹁ˉ杩涘幓銆嶏紱L91 鏄�岃蒋浠剁増鎶婂簳绋挎棫鐨勫缓璁鹃樁娈电暀涓嬫潵浜嗐�嶃��
+
+## 鍥涖�佺墿娴佺珯鍦烘姇璧勬槑缁嗗樊寮傦紙140 鏍硷級
+
+### 4.1 閲戦宸紓鎸夊競宸炴眹鎬伙紙杩欐槸瑕佸鐞嗙殑閲嶇偣锛�
+
+| 甯傚窞 | 椤圭洰 | 浜哄伐鐗� | 杞欢鐗� | 宸� | 鏍稿缁撹 |
+| --- | --- | --- | --- | --- | --- |
+| 姝︽眽 | 甯傚窞琛� 绱/鑷勾鍒�/鏈湀 | 155513.9 / 81366 / 9200 | 146313.9 / 72166 / 10116 | 鈭�9200 / 鈭�9200 / +916 | **浜哄伐鐗堝**锛氬簱鍐呮棤姝︽眽鐗╂祦褰撴湀鏁帮紝杞欢鐗堟槸搴曠 7 鏈堝�� |
+| 鍗佸牥 | 甯傚窞琛� 绱/鑷勾鍒�/鏈湀 | 81182 / 29482 / 1671 | 80888 / 29188 / 1591 | 鈭�294 / 鈭�294 / 鈭�80 | 宸� 294 鍏ㄩ儴鏉ヨ嚜銆屽揩閫掔墿娴佷骇涓氬洯浜屾湡銆嶏紙璇﹁ 4.2锛� |
+| 鑽嗗窞 | 甯傚窞琛� 绱/鑷勾鍒�/鏈湀 | 311700.5 / 46548 / 8606 | 303473 / 38320.5 / 1978.6 | 鈭�8227.5 / 鈭�8227.5 / 鈭�6627.4 | **浜哄伐鐗堝**锛氬樊 8227.5 鏉ヨ嚜銆屼腑鍥戒緵閿�鍏畨鍟嗚锤鐗╂祦鍥�嶏紙璇﹁ 4.2锛� |
+| 澶╅棬 | 甯傚窞琛� 绱/鑷勾鍒�/鏈湀 | 16677.7 / 16677.7 / 500 | 锛堢┖锛� | | **浜哄伐鐗堝**锛氭簮鏂囦欢鏈夊�硷紝搴撳唴琚啓鎴� 0 |
+| 閯傚窞/鎭╂柦/浠欐/娼滄睙/鏋楀尯 | 浠呭垎缁勫皬璁¤ | 锛堢┖锛� | = 甯傚窞鍚堣 | 0 | 濉〃涔犳儻宸紓锛岄噾棰濅笉鍐茬獊 |
+| 鍚堣 | 绱/鑷勾鍒�/鏈湀 | 2064669.55 / 789311.6 / 89644.1 | 2030270.35 / 754912.4 / 83352.7 | 鈭�34399.2 / 鈭�34399.2 / 鈭�6291.4 | 姹囨�讳互涓婂悇椤� |
+
+### 4.2 涓変釜銆屾姄閿欐暟銆嶇殑琛岋紙蹇呴』淇級
+
+| 椤圭洰 | 瀛楁 | 浜哄伐鐗� | 杞欢鐗� | 搴撳唴 2026-08 | 婧愭枃浠� | 缁撹 |
+| --- | --- | --- | --- | --- | --- | --- |
+| 鍗佸牥甯傚揩閫掔墿娴佷骇涓氬洯浜屾湡锛堝崄鍫板競鐗╂祦鏋㈢航闆嗙枏杩愬熀鍦帮級 | 绔e伐/绱/鑷勾鍒�/鏈湀/褰㈣薄杩涘害 | 2029 / 20377 / 3196 / 296 /銆屸�3鏂板缓鍩虹鏂藉伐銆丅4鍘傛埧澶栫珛闈㈣楗拌淇柦宸ャ�傘�� | 2026 / 20081 / 2900 / 214 /銆屸�3銆丅7鏂板缓鍩虹鏂藉伐銆傘�� | `id=181` = 20377/3196/296锛沗id=154` 鏈�鏂板彧鍒� 2026-07 = 20081/2900/214 | 鍗佸牥姹囨�昏〃 R71 = 2029/20377/3196/296 | **杞欢鐗堟姄浜嗘棫妗� `id=154`**锛涘簲鍏堝悎骞�/鍒犻噸澶嶉」鐩富妗� |
+| 涓浗渚涢攢鍏畨鍟嗚锤鐗╂祦鍥紙鍏畨鍘垮煙闆嗛噰闆嗛厤涓績锛� | 绱/鑷勾鍒�/鏈湀/褰㈣薄杩涘害 | 15986 / 15986 / 8227.5 /銆屾敮浠樺湡鍦版锛屽畬鎴愬湡寤衡�︺�� | 7758.5 / 7758.5 / 1600.1 /銆屽畬鎴愬湡寤恒�佽楗扳�︺�� | 15986 / 15986 / 8227.5 /銆屾敮浠樺湡鍦版锛屽畬鎴愬湡寤衡�︺�� | 鑽嗗窞 8 鏈堟姤鐪� R21 鍚屼笂 | **杞欢鐗堝洜椤圭洰鍚嶄笉鍖归厤鏈鐩�**锛堝簱鍐呭悕澶氫竴涓偣锛夛紝鐢ㄤ簡搴曠 7 鏈堝�� |
+| 澶╅棬甯傜墿娴佷腑蹇冨缓璁鹃」鐩� | 绱/鑷勾鍒�/鏈湀 | 16677.7 / 16677.7 / 500 | 0 / 0 / 0 | 0 / 0 / 0锛堝鍏ュ啓鎴� 0锛� | 澶╅棬 8 鏈堟簮鏂囦欢 R13 = 16677.7 / 16677.7 / 500 | **瀵煎叆涓㈡暟**锛堜笉鏄鍑洪棶棰橈級锛岄渶淇鍏� + 閲嶅澶╅棬 |
+
+### 4.3 鏂囨湰涓庡瓧娈靛樊寮傦紙寤鸿鎬ц川 / 寤鸿闃舵 / 褰㈣薄杩涘害 / 宸ユ湡锛�
+
+| 琛� | 鍒� | 椤圭洰 / 浣嶇疆 | 浜哄伐鐗� | 杞欢鐗� | 鏍稿缁撹 |
+| --- | --- | --- | --- | --- | --- |
+| R27 | L27 | 榛勭煶澶у喍婀栭珮鏂板尯鏅烘収鍐烽摼鐗╂祦鍥� | 鍦ㄥ缓 | 鏆傚仠 | 婧愯〃/搴撳唴=鍦ㄥ缓锛涜蒋浠�=搴曠鏃у�笺�屾殏鍋溿�� |
+| R35 | L35 | 鍗佸牥鐢熶骇鏈嶅姟鍨嬪浗瀹剁墿娴佹灑绾藉伐绋嬮」鐩� | 鍦ㄥ缓 | 鍓嶆湡 | 婧愯〃/搴撳唴=鍦ㄥ缓锛涜蒋浠�=搴曠鏃у�笺�屽墠鏈熴�� |
+| R75 | L75 | 瑗勯槼楂樻柊鍖虹墿娴佸彂灞曚腑蹇冮」鐩�斿喎閾句骇涓氶泦鎴愪腑蹇� | 瀹屽伐 | 鍦ㄥ缓 | 婧愯〃 R17 L=瀹屽伐锛涜蒋浠�=搴曠鏃у�� |
+| R47 | M47 | 绉綊鍘胯剱姗欎骇涓氱患鍚堢墿娴佷腑蹇� | 瀹屽伐 | 浜屾湡涓讳綋宸ョ▼瀹屾垚锛屾鍦ㄨ繘琛岄厤濂楀伐绋嬫柦宸ャ�� | 杞欢=婧愯〃/搴撳唴鍘熸枃锛涗汉宸ョ増鍋氫簡绠�鍖� |
+| R48 | D48 | 瀹滈兘渚涢攢鍟嗚锤鐗╂祦鍥紙寤鸿鎬ц川锛� | 缁缓 | 鏂板缓 | 婧愯〃 R7 D=缁缓 鈫� 浜哄伐鐗堝 |
+| R49 | D49 | 闀块槼鍘垮煄涔″喎閾剧墿娴佸洯鍙婂叾閰嶅璁炬柦寤鸿椤圭洰 | 缁缓 | 鏂板缓 | 婧愯〃 R8 D=缁缓 鈫� 浜哄伐鐗堝 |
+| R51 | D51 | 鏉ㄥ鍨辩珯鐗╂祦璁惧鏇存柊鏀归�犻」鐩� | 鏀瑰缓 | 鏂板缓 | 婧愯〃 R10 D=鏂板缓 鈫� 杞欢瀵� |
+| R67 | F67 | 浼犲寲閯傝タ鍖楁櫤鎱х墿娴佷腑蹇冮」鐩紙绔e伐鏃堕棿锛� | 46539锛堟棩鏈� 2027-06-01锛� | 2026骞�10鏈� | 婧愯〃 R7 F=銆�2027骞�6鏈堛�嶁啋 浜哄伐鐗堝锛涜蒋浠剁増鍊兼潵婧愪笉鏄� |
+| R75 | E75/F75 | 瑗勯槼楂樻柊鍖虹墿娴佸彂灞曚腑蹇冮」鐩� | 45292 / 46600锛堟棩鏈熸牸寮忥級 | 2024 / 2027 | 鏁板�煎悓涔夛紙2024骞�1鏈� / 2027骞�8鏈堬級锛屽睘鏍煎紡宸紓 |
+| R51鈥揜54 | M51鈥揗54 | 瀹滄槍 4 涓」鐩舰璞¤繘搴� | 涓讳綋鏂藉伐 | 涓讳綋鏂藉伐銆� | 浠呭彞鍙凤紙婧愯〃甯﹀彞鍙凤級 |
+| R82 | M82 | 姝︽眽涓囧惃路鍗庝腑鍐烽摼娓� | 锛堢┖锛� | 鍐峰簱涓讳綋鏂藉伐 | 杞欢=婧愯〃/搴撳唴锛涗汉宸ョ増绌猴紙搴曠绌猴級 |
+| R94 | M94 | 婀栧寳鎭掑嘲鍥介檯鐗╂祦鍥� | 鈥︽寮忔姇鍏ヨ繍钀� | 鈥︽寮忔姇鍏ヨ繍钀ャ�� | 浠呭彞鍙� |
+| R119 | M119 | 涓浗渚涢攢鍏畨鍟嗚锤鐗╂祦鍥� | 鏀粯鍦熷湴娆撅紝瀹屾垚鍦熷缓鈥� | 瀹屾垚鍦熷缓銆佽楗扳�� | 瑙� 4.2 |
+| R136 | M136 | 姝︽眽鍖椾紶鍖栧煄甯傜墿娴佷腑蹇� | 寤鸿閰嶅鍔炲叕鍙婇鍫傦紝涓�鏈熷凡瀹屽伐 | 寤鸿閰嶅鍔炲叕鍙婇鍫� | 浜哄伐鐗堝銆屼竴鏈熷凡瀹屽伐銆嶏紙搴曠 L 鍒楀悓鏍峰啓鐫�銆屼竴鏈熷凡瀹屽伐銆嶏級 |
+| R145 | M145 | 搴峰崕鏅烘収鐗╂祦鍥� | 鏈湀鏃犲缓璁惧唴瀹� | 鏈湀鏃犲缓璁捐繘灞� | 鎺緸涓嶅悓锛岄渶涓氬姟瀹氱 |
+| R156 | M156 | 姘戠敓鐗╄祫鍩庡競閰嶉�佸強浠撳偍鐗╂祦寤鸿椤圭洰 | 2026骞�07鏈堚��7鏈堟姇璧勯锛�53涓囧厓鏁� | 2026骞�08鏈堚�� | **杞欢瀵�**锛堝簱鍐� 8 鏈堝師鏂囷級锛涗汉宸ョ増鏄� 7 鏈堟枃瀛楁湭鏇存柊 |
+| R184 | M184 | 澶╅棬甯傜墿娴佷腑蹇冨缓璁鹃」鐩� | 1.2.3#鍘傛埧鍛ㄥ洿閬撹矾鐮兼祰绛戝畬鎴愨�� | 4鏍嬪巶鎴垮姙鍏锛屽崼鐢熼棿鈥� | 涓や唤鍒嗗埆鍙栬嚜婧愯〃鐨勪袱涓笉鍚屼綅缃紙婧愯〃鍚屾椂鍚袱娈碉級 |
+| R92 | M92 | 娌欐磱澶氬紡鑱旇繍鐜颁唬鐗╂祦鍥� | 闀挎枃鏈� | 闀挎枃鏈� | 鍐呭鏈夊鍒狅紙婧愯〃 8 鏈堜负杞欢鐗堬級 |
+
+### 4.4 銆�0銆嶄笌銆岀┖鐧姐�嶇殑鍐欐硶宸紓锛堜笉褰卞搷閲戦锛�
+
+| 琛� | 鍒� | 浣嶇疆 | 浜哄伐鐗� | 杞欢鐗� |
+| --- | --- | --- | --- | --- |
+| R41 | I41 / K41 | 鍗佸牥 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | 0 / 0 | 锛堢┖锛� |
+| R96 | K96 | 鑽嗛棬 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | 0 | 锛堢┖锛� |
+| R175 | K175 | 娼滄睙锛堝競宸炶锛� | 0 | 锛堢┖锛� |
+| R187 | K187 | 鏋楀尯锛堝競宸炶锛� | 0 | 锛堢┖锛� |
+| R8 | G8 / H8 | 鍒嗗競宸炶鍒掑唴澶�-瑗勯槼锛堣鍒掑椤圭洰涓暟/鎶曡祫锛� | 0 / 0 | 锛堢┖锛� |
+| R18 | E18 | 鍒嗗競宸炶鍒掑唴澶�-娼滄睙 | 0 | 锛堢┖锛� |
+| R22 / R24 | D22 / D24 | 甯傚窞姹囨��-娼滄睙 / 鏋楀尯锛堟湰鏈堝畬鎴愶級 | 0 | 锛堢┖锛� |
+
+### 4.5 鍏ㄩ噺宸紓娓呭崟锛�156 鏍硷級
+
+#### 瀹㈣繍-鏄庣粏锛堥〉绛俱�屾槑缁嗐�嶏級
+
+| 琛� | 鍒� | 浣嶇疆 | 浜哄伐鐗� | 杞欢鐗� |
+| --- | --- | --- | --- | --- |
+| R9 | H9 | 鍚� 璁� | 622591.3 | 622591.2565 |
+| R9 | J9 | 鍚� 璁� | 43225.9 | 43225.8565 |
+| R26 | M26 | 閮цタ鍘垮杩愭崲涔樹腑蹇� | (绌�) | 鎹箻涓績缁撴瀯灏侀《锛屽唴澧欏畬鎴愶紝閰嶅璁炬柦宸插畬鍠� |
+| R42 | H42 | 瑗勯槼甯傦紙甯傚窞琛岋級 | 27985.3 | 27985.2565 |
+| R42 | J42 | 瑗勯槼甯傦紙甯傚窞琛岋級 | 2531 | 2530.9565 |
+| R49 | H49 | 涓夈�佸啘鏉戠患鍚堣繍杈撴湇鍔$珯 | 203 | 202.9565 |
+| R49 | J49 | 涓夈�佸啘鏉戠患鍚堣繍杈撴湇鍔$珯 | 203 | 202.9565 |
+| R50 | H50 | 瑗勫窞鍖虹▼娌抽晣鍩犲彛缁煎悎杩愯緭鏈嶅姟绔� | 203 | 202.9565 |
+| R50 | J50 | 瑗勫窞鍖虹▼娌抽晣鍩犲彛缁煎悎杩愯緭鏈嶅姟绔� | 203 | 202.9565 |
+| R85 | M85 | 閫氬北鍘跨嚂鍘﹀杩愮珯锛堜笁绾х珯锛� | (绌�) | 鍦熷缓宸ョ▼鍩虹 |
+| R91 | L91 | 澶у箷涔$患鍚堣繍杈撴湇鍔$珯 | 鍦ㄥ缓 | 鏆傚仠鏂藉伐 |
+| R116 | M116 | 绁炲啘鏋舵灑绾界珯 | 寤烘垚鎶曚骇 | 寤烘垚鎶曚骇銆� |
+
+#### 瀹㈣繍-姹囨�伙紙椤电銆屾眹鎬汇�嶏級
+
+| 琛� | 鍒� | 浣嶇疆 | 浜哄伐鐗� | 杞欢鐗� |
+| --- | --- | --- | --- | --- |
+| R7 | C7 | 鍚堣 | 43225.9 | 43225.8565 |
+| R7 | E7 | 鍚堣 | 59.2307223257 | 59.2306627194 |
+| R12 | C12 | 瑗勯槼 | 2531 | 2530.9565 |
+| R12 | E12 | 瑗勯槼 | 125.6927752726 | 125.6906150057 |
+
+#### 鐗╂祦-鍒嗛」鐩姇璧勫畬鎴愭儏鍐碉紙椤电銆� 鍒嗛」鐩姇璧勫畬鎴愭儏鍐点�嶏紝鍏� 108 鏍硷級
+
+| 琛� | 鍒� | 浣嶇疆 | 浜哄伐鐗� | 杞欢鐗� |
+| --- | --- | --- | --- | --- |
+| R7 | H7 | 鍚堣 | 2064669.55 | 2030270.35 |
+| R7 | J7 | 鍚堣 | 789311.6 | 754912.4 |
+| R7 | K7 | 鍚堣 | 89644.1 | 83352.7 |
+| R8 | H8 | 姝︽眽锛堝競宸炶锛� | 155513.9 | 146313.9 |
+| R8 | J8 | 姝︽眽锛堝競宸炶锛� | 81366 | 72166 |
+| R8 | K8 | 姝︽眽锛堝競宸炶锛� | 9200 | 10116 |
+| R11 | H11 | 姝︽眽 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | 129483.9 | 122383.9 |
+| R11 | J11 | 姝︽眽 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | 55336 | 48236 |
+| R11 | K11 | 姝︽眽 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | 7100 | 6716 |
+| R12 | H12 | 姝︽眽 鑸彂鏅烘収鐗╂祦鍥� | 62081.8 | 59081.8 |
+| R12 | J12 | 姝︽眽 鑸彂鏅烘収鐗╂祦鍥� | 17475 | 14475 |
+| R12 | K12 | 姝︽眽 鑸彂鏅烘収鐗╂祦鍥� | 3000 | 2500 |
+| R13 | K13 | 姝︽眽 涓�氫緵搴旈摼婀栧寳绠$悊涓績椤圭洰 | 0 | 416 |
+| R14 | H14 | 姝︽眽 闃抽�绘腐閾佹按鑱旇繍浜屾湡涓鐝垪闆嗙粨涓績 | 6400 | 6100 |
+| R14 | J14 | 姝︽眽 闃抽�绘腐閾佹按鑱旇繍浜屾湡涓鐝垪闆嗙粨涓績 | 6400 | 6100 |
+| R15 | H15 | 姝︽眽 鏋佸厰閫熼�掑崕涓墿娴佹灑绾藉熀鍦伴」鐩� | 27746 | 23946 |
+| R15 | J15 | 姝︽眽 鏋佸厰閫熼�掑崕涓墿娴佹灑绾藉熀鍦伴」鐩� | 27746 | 23946 |
+| R15 | K15 | 姝︽眽 鏋佸厰閫熼�掑崕涓墿娴佹灑绾藉熀鍦伴」鐩� | 3800 | 3500 |
+| R16 | H16 | 姝︽眽 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | 26030 | 23930 |
+| R16 | J16 | 姝︽眽 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | 26030 | 23930 |
+| R16 | K16 | 姝︽眽 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | 2100 | 3400 |
+| R17 | H17 | 姝︽眽 婀栧寳杩堢澘杈句緵搴旈摼鎬婚儴鐮斿彂鍙婄敓浜у熀鍦伴」鐩� | 17730 | 16630 |
+| R17 | J17 | 姝︽眽 婀栧寳杩堢澘杈句緵搴旈摼鎬婚儴鐮斿彂鍙婄敓浜у熀鍦伴」鐩� | 17730 | 16630 |
+| R17 | K17 | 姝︽眽 婀栧寳杩堢澘杈句緵搴旈摼鎬婚儴鐮斿彂鍙婄敓浜у熀鍦伴」鐩� | 1100 | 2900 |
+| R18 | H18 | 姝︽眽 鍗庝腑鍦板尯鍖栧鍝佷粨搴撻」鐩� | 8300 | 7300 |
+| R18 | J18 | 姝︽眽 鍗庝腑鍦板尯鍖栧鍝佷粨搴撻」鐩� | 8300 | 7300 |
+| R18 | K18 | 姝︽眽 鍗庝腑鍦板尯鍖栧鍝佷粨搴撻」鐩� | 1000 | 500 |
+| R27 | L27 | 榛勭煶 榛勭煶澶у喍婀栭珮鏂板尯鏅烘収鍐烽摼鐗╂祦鍥� | 鍦ㄥ缓 | 鏆傚仠 |
+| R31 | H31 | 鍗佸牥锛堝競宸炶锛� | 81182 | 80888 |
+| R31 | J31 | 鍗佸牥锛堝競宸炶锛� | 29482 | 29188 |
+| R31 | K31 | 鍗佸牥锛堝競宸炶锛� | 1671 | 1591 |
+| R34 | H34 | 鍗佸牥 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | 80152 | 79858 |
+| R34 | J34 | 鍗佸牥 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | 28452 | 28158 |
+| R34 | K34 | 鍗佸牥 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | 1671 | 1591 |
+| R35 | H35 | 鍗佸牥 鍗佸牥鐢熶骇鏈嶅姟鍨嬪浗瀹剁墿娴佹灑绾藉伐绋嬮」鐩� | 11047 | 11049 |
+| R35 | J35 | 鍗佸牥 鍗佸牥鐢熶骇鏈嶅姟鍨嬪浗瀹剁墿娴佹灑绾藉伐绋嬮」鐩� | 589 | 591 |
+| R35 | K35 | 鍗佸牥 鍗佸牥鐢熶骇鏈嶅姟鍨嬪浗瀹剁墿娴佹灑绾藉伐绋嬮」鐩� | 0 | 2 |
+| R35 | L35 | 鍗佸牥 鍗佸牥鐢熶骇鏈嶅姟鍨嬪浗瀹剁墿娴佹灑绾藉伐绋嬮」鐩� | 鍦ㄥ缓 | 鍓嶆湡 |
+| R36 | F36 | 鍗佸牥 鍗佸牥甯傚揩閫掔墿娴佷骇涓氬洯浜屾湡锛堝崄鍫板競鐗╂祦鏋㈢航闆嗙枏杩愬熀鍦帮級 | 2029 | 2026 |
+| R36 | H36 | 鍗佸牥 鍗佸牥甯傚揩閫掔墿娴佷骇涓氬洯浜屾湡锛堝崄鍫板競鐗╂祦鏋㈢航闆嗙枏杩愬熀鍦帮級 | 20377 | 20081 |
+| R36 | J36 | 鍗佸牥 鍗佸牥甯傚揩閫掔墿娴佷骇涓氬洯浜屾湡锛堝崄鍫板競鐗╂祦鏋㈢航闆嗙枏杩愬熀鍦帮級 | 3196 | 2900 |
+| R36 | K36 | 鍗佸牥 鍗佸牥甯傚揩閫掔墿娴佷骇涓氬洯浜屾湡锛堝崄鍫板競鐗╂祦鏋㈢航闆嗙枏杩愬熀鍦帮級 | 296 | 214 |
+| R36 | M36 | 鍗佸牥 鍗佸牥甯傚揩閫掔墿娴佷骇涓氬洯浜屾湡锛堝崄鍫板競鐗╂祦鏋㈢航闆嗙枏杩愬熀鍦帮級 | 鈥3鏂板缓鍩虹鏂藉伐銆丅4鍘傛埧澶栫珛闈㈣楗拌淇柦宸ャ�� | 鈥3銆丅7鏂板缓鍩虹鏂藉伐銆� |
+| R41 | I41 | 鍗佸牥 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | 0 | (绌�) |
+| R41 | K41 | 鍗佸牥 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | 0 | (绌�) |
+| R47 | M47 | 瀹滄槍 绉綊鍘胯剱姗欎骇涓氱患鍚堢墿娴佷腑蹇� | 瀹屽伐 | 浜屾湡涓讳綋宸ョ▼瀹屾垚锛屾鍦ㄨ繘琛岄厤濂楀伐绋嬫柦宸ャ�� |
+| R48 | D48 | 瀹滄槍 瀹滈兘渚涢攢鍟嗚锤鐗╂祦鍥� | 缁缓 | 鏂板缓 |
+| R49 | D49 | 瀹滄槍 闀块槼鍘垮煄涔″喎閾剧墿娴佸洯鍙婂叾閰嶅璁炬柦寤鸿椤圭洰 | 缁缓 | 鏂板缓 |
+| R51 | D51 | 瀹滄槍 鏉ㄥ鍨辩珯鐗╂祦璁惧鏇存柊鏀归�犻」鐩� | 鏀瑰缓 | 鏂板缓 |
+| R51 | M51 | 瀹滄槍 鏉ㄥ鍨辩珯鐗╂祦璁惧鏇存柊鏀归�犻」鐩� | 涓讳綋鏂藉伐 | 涓讳綋鏂藉伐銆� |
+| R52 | M52 | 瀹滄槍 涓夊场涓寸┖鍐滆锤鐗╂祦鍥� | 涓讳綋鏂藉伐 | 涓讳綋鏂藉伐銆� |
+| R53 | M53 | 瀹滄槍 婀栧寳绂忔粙婧愰鍝佹湁闄愬叕鍙告按鏋滄繁鍔犲伐鍙婃櫤鎱у喎閾剧墿娴佷粨鍌ㄩ」鐩� | 涓讳綋鏂藉伐 | 涓讳綋鏂藉伐銆� |
+| R54 | M54 | 瀹滄槍 鏋濇睙甯傞【瀹跺簵浠撳偍鐗╂祦涓績锛堜竴鏈燂級 | 涓讳綋鏂藉伐 | 涓讳綋鏂藉伐銆� |
+| R67 | F67 | 瑗勯槼 浼犲寲閯傝タ鍖楁櫤鎱х墿娴佷腑蹇冮」鐩� | 46539锛�2027-06-01锛� | 2026骞�10鏈� |
+| R75 | E75 | 瑗勯槼 瑗勯槼楂樻柊鍖虹墿娴佸彂灞曚腑蹇冮」鐩�斿喎閾句骇涓氶泦鎴愪腑蹇� | 45292锛�2024-01-01锛� | 2024 |
+| R75 | F75 | 瑗勯槼 瑗勯槼楂樻柊鍖虹墿娴佸彂灞曚腑蹇冮」鐩�斿喎閾句骇涓氶泦鎴愪腑蹇� | 46600锛�2027-08-01锛� | 2027 |
+| R75 | L75 | 瑗勯槼 瑗勯槼楂樻柊鍖虹墿娴佸彂灞曚腑蹇冮」鐩�斿喎閾句骇涓氶泦鎴愪腑蹇� | 瀹屽伐 | 鍦ㄥ缓 |
+| R80 | G80 | 閯傚窞 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | (绌�) | 270490 |
+| R80 | H80 | 閯傚窞 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | (绌�) | 169345.2 |
+| R80 | I80 | 閯傚窞 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | (绌�) | 21000 |
+| R80 | J80 | 閯傚窞 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | (绌�) | 12289.1 |
+| R80 | K80 | 閯傚窞 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | (绌�) | 1250 |
+| R82 | M82 | 閯傚窞 姝︽眽涓囧惃路鍗庝腑鍐烽摼娓� | (绌�) | 鍐峰簱涓讳綋鏂藉伐 |
+| R92 | M92 | 鑽嗛棬 娌欐磱澶氬紡鑱旇繍鐜颁唬鐗╂祦鍥� | 锛堥暱鏂囨湰锛岃婧愭枃浠跺樊寮傦級 | 锛堥暱鏂囨湰锛� |
+| R94 | M94 | 鑽嗛棬 婀栧寳鎭掑嘲鍥介檯鐗╂祦鍥� | 鈥︽寮忔姇鍏ヨ繍钀� | 鈥︽寮忔姇鍏ヨ繍钀ャ�� |
+| R96 | K96 | 鑽嗛棬 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | 0 | (绌�) |
+| R110 | H110 | 鑽嗗窞锛堝競宸炶锛� | 311700.5 | 303473 |
+| R110 | J110 | 鑽嗗窞锛堝競宸炶锛� | 46548 | 38320.5 |
+| R110 | K110 | 鑽嗗窞锛堝競宸炶锛� | 8606 | 1978.6 |
+| R113 | H113 | 鑽嗗窞 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | 84799.7 | 76572.2 |
+| R113 | J113 | 鑽嗗窞 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | 22044.6 | 13817.1 |
+| R113 | K113 | 鑽嗗窞 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | 8441 | 1813.6 |
+| R119 | H119 | 鑽嗗窞 涓浗渚涢攢鍏畨鍟嗚锤鐗╂祦鍥紙鍏畨鍘垮煙闆嗛噰闆嗛厤涓績锛� | 15986 | 7758.5 |
+| R119 | J119 | 鑽嗗窞 涓浗渚涢攢鍏畨鍟嗚锤鐗╂祦鍥紙鍏畨鍘垮煙闆嗛噰闆嗛厤涓績锛� | 15986 | 7758.5 |
+| R119 | K119 | 鑽嗗窞 涓浗渚涢攢鍏畨鍟嗚锤鐗╂祦鍥紙鍏畨鍘垮煙闆嗛噰闆嗛厤涓績锛� | 8227.5 | 1600.1 |
+| R119 | M119 | 鑽嗗窞 涓浗渚涢攢鍏畨鍟嗚锤鐗╂祦鍥紙鍏畨鍘垮煙闆嗛噰闆嗛厤涓績锛� | 鏀粯鍦熷湴娆撅紝瀹屾垚鍦熷缓銆佽楗般�佹満鐢点�佹秷闃层�佸競鏀跨瓑宸ョ▼ | 瀹屾垚鍦熷缓銆佽楗般�佹満鐢点�佹秷闃层�佸競鏀跨瓑宸ョ▼ |
+| R136 | M136 | 榛勫唸 姝︽眽鍖椾紶鍖栧煄甯傜墿娴佷腑蹇� | 寤鸿閰嶅鍔炲叕鍙婇鍫傦紝涓�鏈熷凡瀹屽伐 | 寤鸿閰嶅鍔炲叕鍙婇鍫� |
+| R145 | M145 | 鍜稿畞 搴峰崕鏅烘収鐗╂祦鍥� | 鏈湀鏃犲缓璁惧唴瀹� | 鏈湀鏃犲缓璁捐繘灞� |
+| R156 | M156 | 闅忓窞 姘戠敓鐗╄祫鍩庡競閰嶉�佸強浠撳偍鐗╂祦寤鸿椤圭洰 | 2026骞�07鏈堚�︼紙7 鏈堟枃瀛楋級 | 2026骞�08鏈堚�︼紙8 鏈堟枃瀛楋級 |
+| R160 | G160 | 鎭╂柦 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | (绌�) | 308255 |
+| R160 | H160 | 鎭╂柦 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | (绌�) | 126741 |
+| R160 | I160 | 鎭╂柦 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | (绌�) | 49800 |
+| R160 | J160 | 鎭╂柦 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | (绌�) | 41574 |
+| R160 | K160 | 鎭╂柦 涓夈�佺撼鍏ヨ鍒掓湭浣跨敤鐪侀儴绾ц祫閲戝缓璁鹃」鐩� | (绌�) | 2116 |
+| R170 | G170 | 浠欐 浜屻�佷娇鐢ㄧ渷鐕冩补绋庤繑杩樿祫閲戝缓璁鹃」鐩� | (绌�) | 123710.5 |
+| R170 | H170 | 浠欐 浜屻�佷娇鐢ㄧ渷鐕冩补绋庤繑杩樿祫閲戝缓璁鹃」鐩� | (绌�) | 29403 |
+| R170 | I170 | 浠欐 浜屻�佷娇鐢ㄧ渷鐕冩补绋庤繑杩樿祫閲戝缓璁鹃」鐩� | (绌�) | 39200 |
+| R170 | J170 | 浠欐 浜屻�佷娇鐢ㄧ渷鐕冩补绋庤繑杩樿祫閲戝缓璁鹃」鐩� | (绌�) | 29403 |
+| R170 | K170 | 浠欐 浜屻�佷娇鐢ㄧ渷鐕冩补绋庤繑杩樿祫閲戝缓璁鹃」鐩� | (绌�) | 3782 |
+| R175 | K175 | 娼滄睙锛堝競宸炶锛� | 0 | (绌�) |
+| R179 | G179 | 娼滄睙 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | (绌�) | 22000 |
+| R179 | H179 | 娼滄睙 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | (绌�) | 11947.9 |
+| R179 | I179 | 娼滄睙 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | (绌�) | 12000 |
+| R179 | J179 | 娼滄睙 鍥涖�佷娇鐢ㄧぞ浼氳祫閲戝缓璁鹃」鐩� | (绌�) | 1135 |
+| R181 | H181 | 澶╅棬锛堝競宸炶锛� | 16677.7 | (绌�) |
+| R181 | J181 | 澶╅棬锛堝競宸炶锛� | 16677.7 | (绌�) |
+| R181 | K181 | 澶╅棬锛堝競宸炶锛� | 500 | (绌�) |
+| R183 | G183 | 澶╅棬 浜屻�佷娇鐢ㄧ渷鐕冩补绋庤繑杩樿祫閲戝缓璁鹃」鐩� | (绌�) | 36835 |
+| R183 | I183 | 澶╅棬 浜屻�佷娇鐢ㄧ渷鐕冩补绋庤繑杩樿祫閲戝缓璁鹃」鐩� | (绌�) | 30635 |
+| R184 | H184 | 澶╅棬 澶╅棬甯傜墿娴佷腑蹇冨缓璁鹃」鐩� | 16677.7 | 0 |
+| R184 | J184 | 澶╅棬 澶╅棬甯傜墿娴佷腑蹇冨缓璁鹃」鐩� | 16677.7 | 0 |
+| R184 | K184 | 澶╅棬 澶╅棬甯傜墿娴佷腑蹇冨缓璁鹃」鐩� | 500 | 0 |
+| R184 | M184 | 澶╅棬 澶╅棬甯傜墿娴佷腑蹇冨缓璁鹃」鐩� | 1.2.3#鍘傛埧鍛ㄥ洿閬撹矾鐮兼祰绛戝畬鎴愨�︽帴鍏ュ競鏀块洦姹℃按鍙g閬� | 4鏍嬪巶鎴垮姙鍏鈥﹀洓鍙峰巶鎴跨爩浣撳瀹屾垚浜屾瀯缁戞墡瀹屾垚銆� |
+| R187 | K187 | 鏋楀尯锛堝競宸炶锛� | 0 | (绌�) |
+| R189 | G189 | 鏋楀尯 浜屻�佷娇鐢ㄧ渷鐕冩补绋庤繑杩樿祫閲戝缓璁鹃」鐩� | (绌�) | 7440.35 |
+| R189 | H189 | 鏋楀尯 浜屻�佷娇鐢ㄧ渷鐕冩补绋庤繑杩樿祫閲戝缓璁鹃」鐩� | (绌�) | 7535.45 |
+| R189 | I189 | 鏋楀尯 浜屻�佷娇鐢ㄧ渷鐕冩补绋庤繑杩樿祫閲戝缓璁鹃」鐩� | (绌�) | 31 |
+| R189 | J189 | 鏋楀尯 浜屻�佷娇鐢ㄧ渷鐕冩补绋庤繑杩樿祫閲戝缓璁鹃」鐩� | (绌�) | 26.1 |
+
+#### 鐗╂祦-鍒嗗競宸炶鍒掑唴澶栭」鐩畬鎴愭儏鍐碉紙15 鏍硷級
+
+| 琛� | 鍒� | 浣嶇疆 | 浜哄伐鐗� | 杞欢鐗� |
+| --- | --- | --- | --- | --- |
+| R4 | D4 | 姝︽眽 | 81366 | 72166 |
+| R4 | F4 | 姝︽眽 | 55336 | 48236 |
+| R4 | H4 | 姝︽眽 | 26030 | 23930 |
+| R6 | D6 | 鍗佸牥 | 29482 | 29188 |
+| R6 | F6 | 鍗佸牥 | 28452 | 28158 |
+| R8 | G8 | 瑗勯槼 | 0 | (绌�) |
+| R8 | H8 | 瑗勯槼 | 0 | (绌�) |
+| R12 | D12 | 鑽嗗窞 | 46548 | 38320.5 |
+| R12 | F12 | 鑽嗗窞 | 22044.6 | 13817.1 |
+| R18 | E18 | 娼滄睙 | 0 | (绌�) |
+| R19 | D19 | 澶╅棬 | 16677.7 | (绌�) |
+| R19 | F19 | 澶╅棬 | 16677.7 | (绌�) |
+| R21 | D21 | 鍚堣 | 789311.6 | 754912.4 |
+| R21 | F21 | 鍚堣 | 661947 | 629647.8 |
+| R21 | H21 | 鍚堣 | 127364.6 | 125264.6 |
+
+#### 鐗╂祦-甯傚窞姹囨�伙紙17 鏍硷級
+
+| 琛� | 鍒� | 浣嶇疆 | 浜哄伐鐗� | 杞欢鐗� |
+| --- | --- | --- | --- | --- |
+| R7 | C7 | 鍚堣 | 789311.6 | 754912.4 |
+| R7 | D7 | 鍚堣 | 89644.1 | 83352.7 |
+| R7 | E7 | 鍚堣 | 79.4316061253 | 75.9698760489 |
+| R8 | C8 | 姝︽眽 | 81366 | 72166 |
+| R8 | D8 | 姝︽眽 | 9200 | 10116 |
+| R8 | E8 | 姝︽眽 | 76.5437441204 | 67.8889934149 |
+| R10 | C10 | 鍗佸牥 | 29482 | 29188 |
+| R10 | D10 | 鍗佸牥 | 1671 | 1591 |
+| R10 | E10 | 鍗佸牥 | 139.0660377358 | 137.679245283 |
+| R16 | C16 | 鑽嗗窞 | 46548 | 38320.5 |
+| R16 | D16 | 鑽嗗窞 | 8606 | 1978.6 |
+| R16 | E16 | 鑽嗗窞 | 78.2319327731 | 64.4042016807 |
+| R22 | D22 | 娼滄睙 | 0 | (绌�) |
+| R23 | C23 | 澶╅棬 | 16677.7 | (绌�) |
+| R23 | D23 | 澶╅棬 | 500 | (绌�) |
+| R23 | E23 | 澶╅棬 | 54.4400195854 | 0 |
+| R24 | D24 | 鏋楀尯 | 0 | (绌�) |
+
+#### 鐗╂祦-鏈�2锛�0 鏍硷級
+
+瀹屽叏涓�鑷达紝鏃犲樊寮傘��
+
+## 浜斻�佸缃缓璁紙鎸変紭鍏堢骇锛�
+
+1. **銆怭0銆戜慨銆屾寜椤圭洰鍚嶅尮閰嶃�嶇殑鑴嗗急鎬�**锛氭槑缁嗚〃琛屽悕涓庡簱鍐呴」鐩悕涓嶄竴鑷达紙澶氱偣/灏戞嫭鍙�/鏂版棫鍚嶅苟瀛橈級灏辨暣琛屼笉瑕嗙洊銆傚缓璁敼涓烘寜銆屽競宸� + 搴忓彿/椤圭洰鍚嶅綊涓�鍖栵紙鍘绘爣鐐圭┖鏍硷級+ 寤哄簱鏃堕棿銆嶅尮閰嶏紝鍖归厤涓嶅埌鏃�**蹇呴』鍦ㄨ繍琛屾棩蹇�/鏍¢獙鎶ラ敊涓垪鍑鸿鍙�**锛堢鍚堢敤鎴枫�屽鍏ュけ璐ヨ鏄剧ず琛屽彿銆嶇殑瑕佹眰锛夈��
+2. **銆怭0銆戜慨瀵煎叆涓㈡暟锛堝ぉ闂級**锛氭牳瀵广��8鏈堜唤鐗╂祦鍥腑蹇冮」鐩�(澶╅棬).xlsx銆嬬殑 H/J/K 涓夊垪鏄犲皠锛屼慨澶嶅悗閲嶅锛屽鏌� `investment_monthly` 2026-08銆�
+3. **銆怭0銆戞竻鐞嗛噸澶嶉」鐩富妗�**锛氬崄鍫般�屽揩閫掔墿娴佷骇涓氬洯浜屾湡銆峘id=154`锛�2026 绔e伐锛変笌 `id=181`锛�2029 绔e伐锛夊苟瀛橈紝搴斿厛鍚堝苟鍐嶅仛瀵煎嚭姣斿锛涘悓绫诲巻鍙查噸鍚嶉」鐩缓璁叏琛ㄦ壂涓�閬嶃��
+4. **銆怭1銆戝鍑鸿ˉ鍐� L锛堝缓璁鹃樁娈碉級**锛氱洰鍓� L 娌跨敤搴曠锛屽鑷淬�屾殏鍋�/鍓嶆湡/鍦ㄥ缓銆嶈繖绫婚樁娈典俊鎭彲鑳芥槸涓婁竴鏈熺殑锛涘缓璁笌 M 涓�鏍锋寜褰撴湀鏁版嵁瑕嗙洊銆�
+5. **銆怭1銆戞姹夌墿娴佹棤婧愯〃**锛堝搴斾氦鎺ユ枃妗� P1-8锛夛細搴撳唴 0 鏉″綋鏈堣褰曪紝瀵煎嚭鍙兘娌跨敤鏃у�硷紱瑕佷箞琛ユ姹夊崟琛紝瑕佷箞鍦ㄥ鍑烘椂鎻愮ず銆岃甯傚窞鏃犲綋鏈堟暟鎹�嶃��
+6. **銆怭2銆戝垎缁勫皬璁¤涓� 0/绌虹櫧鍐欐硶**锛氫笌涓氬姟纭缁熶竴锛堜汉宸ョ増涓嶅~鍗曟笭閬撳垎缁勮銆�0 鍐� 0锛涜蒋浠跺~銆�0 鍐欑┖锛夈��
+7. **銆怭2銆戝彛寰勬枃妗�**锛氬悍鍗� M145銆屾湰鏈堟棤寤鸿鍐呭/鏈湀鏃犲缓璁捐繘灞曘�嶃�佸疁鏄� 4 澶勫彞鍙风瓑锛屽缓璁寜婧愯〃鍘熸枃缁熶竴锛堥伩鍏嶄汉宸ュ啀鏀癸級銆�
+
+## 鍏�佺粨璁�
+
+鏈姣斿鍏卞彂鐜� **156 鏍煎樊寮�**锛屽叾涓細
+
+- **浼氬奖鍝嶆姤鐪佹暟瀛楃殑**锛氱墿娴� 3 涓」鐩锛堝崄鍫板揩閫掍骇涓氬洯浜屾湡銆佽崋宸炰腑鍥戒緵閿�鍏畨銆佸ぉ闂ㄧ墿娴佷腑蹇冿級+ 姝︽眽鏁存锛�6 琛岋級锛屽悎璁′娇杞欢鐗堢墿娴併�岃嚜寮�濮嬬疮璁°�嶅皯 **34399.2 涓囧厓**銆併�岃嚜骞村垵绱銆嶅皯 **34399.2 涓囧厓**銆併�屾湰鏈堝畬鎴愩�嶅皯 **6291.4 涓囧厓**锛�
+- **涓嶅奖鍝嶆暟瀛椼�佸彧褰卞搷鐗堝紡/鍙e緞鐨�**锛氬垎缁勫皬璁¤濉硶銆�0/绌虹櫧鍐欐硶銆佸彞鍙枫�佹棩鏈熸暟瀛楁牸寮忕瓑锛�
+- **璋佸璋侀敊锛堝凡鍥炴函婧愭枃浠�/搴撳唴锛�**锛氱墿娴佺殑 3 涓�屾姄閿欐暟銆嶅鍏ㄩ儴鏄�**浜哄伐鐗堝**锛涘杩愮殑 M26/M85 鏄�**杞欢鐗堝**锛堜汉宸ョ増缂哄舰璞¤繘搴︼級锛孡91 鏄�**杞欢鐗堝彇浜嗗簳绋挎棫鍊�**锛涢殢宸� M156 鏄�**杞欢鐗堝**锛堜汉宸ョ増杩樻槸 7 鏈堟枃瀛楋級銆�
+
+杞欢鐗堣淇殑鏄�屽彇鏁般�嶈�屼笉鏄�岀畻鏈�嶁�斺�斿簳绋�+鍚嶇О鍖归厤鐨勬満鍒跺湪鏁版嵁榻愬叏鏃剁粨鏋滄纭紝涓�鏃︺�岄」鐩悕涓嶄竴鑷� / 閲嶅悕鍙屾。 / 褰撴湀缂烘暟銆嶅氨浼氶潤榛樻部鐢ㄤ笂鏈熷�硷紝灞炰簬**浼氶潤榛樺嚭閿�**鐨勭被鍨嬶紝寤鸿鎸夌浜旇妭 1~3 椤逛紭鍏堜慨銆�
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-22.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-22.md"
index 7869518..77011da 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-22.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-22.md"
@@ -70,7 +70,7 @@
- 涓庢墜宸ユ牳绠椾竴鑷达細鍏氦 1-8 鏈� 110776.34 涓囦汉娆°�佽揣杩愪紒涓� 313,998,248 鍚ㄣ�佽揣杩愰噺鍛ㄨ浆閲� 130,311.89 涓囧惃銆�
- 鏀跺熬锛氭寜鐢ㄦ埛瑕佹眰鎶娿�屽叏鐪佸悎璁°�嶈鎻愬埌鏈�鍓嶉潰锛堟姹夊競涔嬩笂锛夛紝瀵煎嚭 Excel 涓悎璁¤鍔犵矖銆�
-### 5. 姹囨�诲ぇ琛ㄥ鍑虹粨鏋滆惤鐩樼紦瀛橈紙鐢ㄦ埛锛�"涓嬭浇杩囧氨涓嶈鍐嶇瓑寰堜箙锛岃兘涓嶈兘璁颁綇涓婃缁撴灉"锛�
+### 9. 姹囨�诲ぇ琛ㄥ鍑虹粨鏋滆惤鐩樼紦瀛橈紙鐢ㄦ埛锛�"涓嬭浇杩囧氨涓嶈鍐嶇瓑寰堜箙锛岃兘涓嶈兘璁颁綇涓婃缁撴灉"锛�
- **鑳屾櫙**锛氬師鏉ュ彧鏈夈��10 鍒嗛挓鍐� + 鏈熼棿鏃犳柊瀵煎叆銆嶇殑**鍐呭瓨**缂撳瓨锛岀獥鍙g煭銆侀噸鍚嵆澶辨晥 鈫� 绗簩娆′笅杞借繕瑕佺瓑 13~17 绉掋��
- **鏀瑰姩**锛坄ReportExportTaskService.java` 涓轰富锛夛細
@@ -79,6 +79,32 @@
3. 鍓嶇鏂囨锛氬懡涓紦瀛樻樉绀恒�屾湰娆$洿鎺ユ部鐢� <鏃堕棿> 鐢熸垚鐨勭粨鏋滐紙鏈熼棿娌℃湁鏂扮殑鏁版嵁瀵煎叆锛夈�嶏紝鍏冧俊鎭敼涓恒�屼笂娆$敓鎴愪簬 鈥︺�嶃��
- **椤哄甫淇� bug**锛氳惤鐩樺懡涓椂 `elapsedMs` 涓鸿礋鏁帮紙浠诲姟璧风偣鐢ㄧ幇鍦ㄣ�佺粨鏉熸椂闂存槸鍘嗗彶鐢熸垚鏃堕棿锛夆啋 宸叉敼涓轰互鐢熸垚鏃堕棿浣滆捣鐐广��
- **瀹炴祴**锛氶娆� 12.4 s 鍐欑紦瀛橈紱鍐嶆鎻愪氦 **164 ms** 鍛戒腑鍐呭瓨锛�**閲嶅惎鍚庣鍚庢彁浜� 1.19 s 鍛戒腑钀界洏**锛涗复鏃舵彃涓�鏉″鍏ヨ褰曞悗 `fromCache=false` 閲嶆柊鐢熸垚锛堥獙璇併�屾湁鏂板鍏ュ嵆澶辨晥銆嶏級锛涙祻瑙堝櫒鐐瑰鍑虹鍑恒�佹枃妗堜笌鎸夐挳姝g‘銆佹帶鍒跺彴 0 鎶ラ敊銆�
+
+### 10. 瀵煎嚭缂撳瓨瀹堝崼鍗囩骇涓恒�屾暟鎹寚绾广��+ 澶辨晥鎻愮ず锛堢敤鎴凤細鎸変綘璇寸殑鍋氾級
+
+- **鑳屾櫙**锛氫笂涓�鐗堢紦瀛樺畧鍗敤鍏ㄥ眬 `MAX(import_batch.id)`锛屸憼瀵煎叆鎶曡祫/鑳借�楃瓑鏃犲叧鏁版嵁浼氱櫧澶辨晥锛涒憽**涓嶅惈姣嶇増鏂囦欢**锛屾崲姣嶇増鏃朵細閿欒鍛戒腑鏃х粨鏋滐紙姝g‘鎬ф紡娲烇級銆�
+- **鏀瑰姩**锛坄ReportExportTaskService.java`锛夛細
+ 1. 鎸囩汗 =銆屼緷璧栨簮琛� `CHECKSUM TABLE` 鏍¢獙鍜岋紙鑳芥崟鎹夊師鍦� UPDATE锛夈��+銆屾瘝鐗堢洰褰曞叏閮ㄦ枃浠� + 缃戠害杞﹁鍗� xlsx 鐨勫悕绉�/澶у皬/淇敼鏃堕棿銆嶏紝SHA-256 鍓� 8 瀛楄妭鍐欒繘缂撳瓨鏂囦欢鍚嶏紱
+ 2. 婧愯〃鑼冨洿鐢�**鎺掗櫎娉�**锛氭帓闄ゆ姇璧� 3 / 鑳借�� 2 / 瀹℃牳 4 / 绯荤粺 6 / `import_batch`锛屽叾浣欏叏绾冲叆锛堝畞鍙绠椾笉鍙嚭閿欙級锛�
+ 3. 澶辨晥鎻愮ず锛堢 3 姝ユ彁绀虹増锛夛細娌″懡涓笖鏈夋棫缁撴灉鏃讹紝杩涘害寮圭獥鏄剧ず銆屼笂娆$敓鎴愮殑缁撴灉宸插洜鏁版嵁鎴栨瘝鐗堝彉鍖栧け鏁堬紝鏈鎸夋渶鏂版暟鎹噸绠椼�傘��
+- **瀹炴祴**锛氭棤鍏冲鍏ワ紙鎶曡祫椤圭洰 + 瀵煎叆璁板綍鍚勬彃涓�琛岋級**浠嶅懡涓�**缂撳瓨锛涚浉鍏虫簮琛ㄥ師鍦� UPDATE銆佹敼姣嶇増 mtime **蹇呭畾澶辨晥**骞堕噸绠楋紱鍛戒腑缂撳瓨鏃朵笉鍐嶆畫鐣欐彁绀猴紱娴忚鍣ㄥ疄娴嬫彁绀鸿鏄剧ず姝e父銆佹帶鍒跺彴 0 鎶ラ敊锛涙祴璇曟暟鎹凡鍏ㄩ儴杩樺師锛�419 鎵规 / 152 椤圭洰锛夈��
+
+### 11. 浜ゆ帴鏀跺熬锛氬悓姝ュ悓浜嬭繘灞� + 鍓╀綑椤规牳鏌ワ紙鐢ㄦ埛鍑嗗寮�鏂颁細璇濓級
+
+- **鍚屼簨杩涘睍鏍稿疄**锛堣繎涓夊ぉ xyc / zyj 璐﹀彿鐨勬彁浜わ級锛氭敼鍔�**鍏ㄩ儴闆嗕腑鍦ㄦ眹鎬诲ぇ琛ㄧ嚎**鈥斺��
+ `abf468c` 涓彛寰勬帓鍚嶇疮璁″悓姣斿熀鏁版敼鐢ㄦ瘝鐗� 2025 闈欐�佸垪锛堟柟妗� A锛宍ReportExportService.java`锛夈�乣47a8734` 杞欢杈撳嚭涓庢墜宸ュ畾绋垮樊寮傛姤鍛娿��
+ `ceaa5f2` AGENTS 鏀瑰叕鍙� gitea 鍗曚粨搴撱�乣a5a9545` 09-22 璁板綍涓� Codex 鍗¢】澶嶆牳銆乣zyj` 鐨� 8 鏈堟瘝鐗� 196 鏍兼枃鏈浆鏁板�� + 宸紓娓呭崟銆�
+- **鍓╀綑寰呭姙閫愭潯鏍告煡锛屽悓浜嬪潎鏈Е纰�**锛堟湁璇佹嵁锛夛細
+ 1. P0-2銆婁嚎鍏冩姇璧勯」鐩�嬫寜 Q7 杩藉垪 鈥斺�� `ReportExportService.java:6251` 浠嶅啓鍚屼竴鏍硷紙绗� 24 鍒楋級锛屾棤杩藉垪閫昏緫锛�
+ 2. P0-3 瀵煎嚭鍓嶅熀鏁颁綋妫� +銆婃暟鎹己澶辨竻鍗曘�嬮〉 鈥斺�� `getLastMidIssues()` 鍏ㄤ粨搴撴棤璋冪敤鏂癸紱
+ 3. P0-4 缂� 2026-06 / 2026-09 姣嶇増 鈥斺�� 姣嶇増鐩綍鏃犺繖涓や釜鏈堟枃浠讹紱
+ 4. P1-7 鎶曡祫璧勯噾娓犻亾鍒嗙粍 鈥斺�� 鏃� `fund_channel` 瀛楁锛�
+ 5. P1-9 鎶曡祫瀵煎嚭鎸夋湀鍒嗙洰褰� + 杩愯鏃ュ織/鏍¢獙鎶ラ敊 鈥斺�� 鏃犲疄鐜帮紱
+ 6. P2-1 D 缁勩�屽閫熸帓鍚嶃�嶆帾杈� 鈥斺�� 鏃犮�屾殏涓嶆帓鍚嶃�嶉�昏緫銆�
+- **浜ゆ帴鏂囨。宸插悓姝�**锛坈ommit `06b1cb7`锛夛細搂0 鏈�绱ф�ユ竻鍗� 4鈫�3 浠跺苟鍒楀嚭涓夐」宸查棴鐜紙鍗佸牥婧愭枃浠� / 涓彛寰勫熀鏁板弻杞ㄥ埗 / 瀵煎嚭缂撳瓨锛夛紱
+ P1-1 琛ユ彁浜ゅ彿 `abf468c`锛浡�1.3 涓� 搂7.4 浠庛�屽弻浠撳簱銆嶆敼涓�**鍏徃 gitea 鍗曚粨搴�**锛浡�6 绱㈠紩琛ュ悓浜嬩袱浠芥枃妗c��
+- **寰呮牳瀹烇紙鐣欑粰鏂颁細璇濓級**锛歅2-2銆屽煄甯傚杩愰〉琛ㄥご浠嶆槸鏃ユ湡搴忓垪鍙枫�嶅彲鑳藉凡杩囨椂鈥斺�斾唬鐮侀噷鏈� `fixCityMonthHeaderText()`锛�09-03 鍔犲叆锛�
+ 浼氭妸鍩庡競瀹㈣繍绫昏〃澶村簭鍒楀彿鏀瑰啓鎴愩�孻YYY骞碝鏈堛�嶏紱寤鸿璺戜竴娆� 2026-08 瀵煎嚭鏍稿瀹為檯琛ㄥご鍚庡啀鏇存柊浜ゆ帴鏂囨。銆�
## 浜屻�佹祴璇曠粨鏋滄憳瑕�
@@ -89,6 +115,7 @@
- 鎶ュ憡锛歚docs/鍔熻兘娴嬭瘯鎶ュ憡/鍔熻兘娴嬭瘯鎶ュ憡_鏁版嵁鏌ョ湅鎸夊競宸炴眹鎬讳笌瀵煎嚭_2026-09-22.md`锛堟帴鍙� 10 鏉� + 鐪熸満 4 鏉″叏閫氳繃锛�
- 鎶ュ憡锛歚docs/鍔熻兘娴嬭瘯鎶ュ憡/鍔熻兘娴嬭瘯鎶ュ憡_姹囨�诲ぇ琛ㄨ繘搴﹀脊绐椾紭鍖朹2026-09-22.md`锛�6 鏉$敤渚嬮�氳繃锛氱敓鎴愪腑鐘舵�� / 瀹屾垚鎻愮ず / 鍐嶆涓嬭浇璧扮紦瀛� / 鍏抽棴 / 鏃犳帶鍒跺彴鎶ラ敊 / 鍏跺畠瀵煎嚭鏈彈褰卞搷锛�
- 鎶ュ憡锛歚docs/鍔熻兘娴嬭瘯鎶ュ憡/鍔熻兘娴嬭瘯鎶ュ憡_姹囨�诲ぇ琛ㄥ鍑虹粨鏋滆惤鐩樼紦瀛樺鐢╛2026-09-22.md`锛�10 鏉$敤渚嬮�氳繃锛氶娆$敓鎴愬啓缂撳瓨 / 鍐呭瓨鍛戒腑 164ms / **閲嶅惎鍚庤惤鐩樺懡涓� 1.19s** / 鏈夋柊瀵煎叆鍗冲け鏁� / 鍚� key 鍙暀鏈�鏂扮増鏈� / 鏃堕暱鏄剧ず淇 / 娴忚鍣ㄧ鍒扮锛�
+- 鎶ュ憡锛歚docs/鍔熻兘娴嬭瘯鎶ュ憡/鍔熻兘娴嬭瘯鎶ュ憡_瀵煎嚭缂撳瓨鏀圭敤鏁版嵁鎸囩汗_2026-09-22.md`锛�12 鏉$敤渚嬮�氳繃锛氭棤鍏冲鍏ヤ粛鍛戒腑 / 鐩稿叧婧愯〃鍘熷湴 UPDATE 蹇呭け鏁� / **鎹㈡瘝鐗堝繀澶辨晥** / 澶辨晥鎻愮ず鏄剧ず / 鍛戒腑鏃犳彁绀� / 鏁版嵁杩樺師鏍稿锛�
- 鐜锛氬悗绔� `mvn spring-boot:run`锛�8090锛宍Started TrafficAuditApplication`锛夛紱鍓嶇 `npm run serve`锛�8080锛宍Compiled successfully in 4769ms`锛夛紱MySQL `localhost:3308/traffic_audit`锛涚櫥褰� admin/123456 鍙� JWT銆�
- 缁撴灉锛�3 涓柊绫诲瀷姝e悜锛堝惈鏈熼棿/鍏抽敭瀛楃瓫閫夛級銆佽礋鍚戯紙鏈煡绫诲瀷銆佹棤鏁版嵁鏈熴�佹棤 token锛夊叏閮ㄩ�氳繃锛涘叆搴撴娊鏌ユ潯鏁颁笌搴撳唴涓�鑷达紙20 / 20 / 139锛夛紱鍘熸湁 15 绫诲洖褰掓甯搞��
@@ -114,7 +141,27 @@
- 瀹堝崼锛氳皟璇曠鍙� 9229 璇诲彇 `window.__codexPlusRetryTimerGuardInstalled=true`锛屾湰娆′細璇� `window.__codexPlusRetryTimerGuardDropped=16`銆�
- 缁撹锛氳緭鍏ュ崱椤夸慨澶嶅湪閲嶅惎鍚庝粛鐢熸晥锛岄棶棰樺凡瑙e喅銆�
-## 鍏�佹眹鎬诲ぇ琛ㄨ蒋浠惰緭鍑轰笌鎵嬪伐瀹氱宸紓澶嶆牳锛�2026-08锛�
+
+## 鍏�佹姇璧勬槑缁嗚〃銆岃蒋浠剁敓鎴� vs 浜哄伐鐗堛�嶆暟鎹瘮瀵癸紙2026-08锛�
+
+鐢ㄦ埛瑕佹眰锛氭妸杞欢鐢熸垚鐨勩�婂杩愮珯鎶曡祫鏄庣粏琛ㄣ�嬨�婄墿娴佺珯鍦烘姇璧勬槑缁嗐�嬩笌浜哄伐缁存姢鐨勪袱浠藉畾绋块�愭牸姣斿锛屽垪鍑烘墍鏈変笉鍚屻��
+
+- **姣斿鏂囦欢**锛氫汉宸ョ増 `D:\05_鏁版嵁鍒嗙被\鎶曡祫\8鏈圽8鏈堝杩愮珯鎶曡祫鏄庣粏琛�.xlsx`銆乣8鏈堢墿娴佺珯鍦烘姇璧勬槑缁�.xls`
+ vs 杞欢鐗� `D:\妗岄潰\鐢熸垚鏁版嵁\鐢熸垚_鎵�閫夋姤琛╛2026-08 (1)\鐢熸垚_瀹㈣繍绔欐姇璧勬槑缁嗚〃.xlsx`銆乣鐢熸垚_鐗╂祦绔欏満鎶曡祫鏄庣粏.xls`銆�
+- **姣斿鏂规硶**锛氳剼鏈�愰〉绛鹃�愭牸姣斿锛坄_tmp_diff_invest_0922.py`锛夛紱鍏堟牳瀵� B 鍒楅」鐩悕閫愯瀵归綈锛�192/121 琛屽叏閮ㄤ竴鑷达紝鏃犻敊浣嶏級锛屽啀缁熻宸紓锛屾渶鍚庡洖婧簮鏂囦欢 / 鏁版嵁搴� / 搴曠妯℃澘瀹氫綅鏍瑰洜銆�
+- **缁撴灉**锛氬叡 **156 鏍煎樊寮�** 鈥斺�� 瀹㈣繍銆婃槑缁嗐��12 +銆婃眹鎬汇��4锛涚墿娴併�婂垎椤圭洰鎶曡祫瀹屾垚鎯呭喌銆�108 +銆婂垎甯傚窞瑙勫垝鍐呭銆�15 +銆婂競宸炴眹鎬汇��17锛屻�婃湀2銆嬫棤宸紓銆�
+- **鏍瑰洜锛堜笁鏂硅瘉鎹攣瀹氾級**锛�
+ 1. 杞欢瀵煎嚭 = 鍦ㄥ簳绋裤�婃ā鏉縚X鏈堚�︽姇璧勬槑缁嗐�嬩笂锛屾妸搴撳唴褰撴湀鏁版嵁**鎸夐」鐩悕绉板尮閰�**瑕嗙洊 H/J/K 涓� M锛�**鍖归厤涓嶄笂鎴栧簱鍐呮棤褰撴湀鏁板氨闈欓粯娌跨敤涓婃湡鍊�** 鈥斺�� 姝︽眽甯傜墿娴侊紙搴撳唴 0 鏉℃湀搴﹁褰曪級鏁存淇濈暀 7 鏈堝�硷紱鑽嗗窞銆屼腑鍥戒緵閿�鍏畨鍟嗚锤鐗╂祦鍥�嶏紙搴撳唴鍚嶅涓�涓偣锛屽尮閰嶅け璐ワ級淇濈暀 7 鏈堝�� 7758.5/1600.1锛堝簱鍐�/婧愯〃瀹為檯 15986/8227.5锛夈��
+ 2. 搴撳唴**鍚屽悕鍙屾。**锛氬崄鍫般�屽揩閫掔墿娴佷骇涓氬洯浜屾湡銆嶆湁 `id=154`锛堢宸� 2026锛変笌 `id=181`锛堢宸� 2029锛変袱妗o紝瀵煎嚭鍙栧埌鏃ф。锛屽啓浜� 7 鏈堝�� 20081/2900/214锛堝簲 20377/3196/296锛夈��
+ 3. **瀵煎叆涓㈡暟**锛氬ぉ闂ㄣ�屽ぉ闂ㄥ競鐗╂祦涓績寤鸿椤圭洰銆嶅簱鍐� 2026-08 鐨勭疮璁�/鑷勾鍒�/鏈湀鍏ㄦ槸 0锛屾簮鏂囦欢鏄� 16677.7/16677.7/500锛圥1-5 鍘熻褰曘�屾簮鏂囦欢 H/J/K 鍒椾负绌恒�嶄笌鐜版枃浠朵笉绗︼級銆�
+ 4. 瀵煎嚭**涓嶈鐩� L锛堝缓璁鹃樁娈碉級绛夐潪閲戦鍒�** 鈫� 榛勭煶澶у喍婀栧喎閾� L=鏆傚仠銆佸崄鍫版灑绾� L=鍓嶆湡銆佽闃冲喎閾句腑蹇� L=鍦ㄥ缓銆侀殢宸炴皯鐢熺墿璧� M 鐨� 7 鏈堟枃瀛楋紝閮芥槸搴曠娈嬬暀銆�
+ 5. 鍗曟笭閬撳競宸炵殑**鍒嗙粍灏忚琛�**锛氳蒋浠跺~=甯傚窞鍚堣锛屼汉宸ョ増涓嶅~锛�0 涓庣┖鐧界殑鍐欐硶涓よ竟涓嶅悓锛堜笉褰卞搷閲戦锛夈��
+ 6. 瀹㈣繍閮ㄥ垎宸紓涓昏鏄�**浜哄伐鐗堟墜鍐欏洓鑸嶄簲鍏�**锛�203 / 2531 / 43225.9 绛夛級锛屼互鍙� 3 澶勫舰璞¤繘搴�/寤鸿闃舵锛歁26銆丮85 浜哄伐鐗堢┖锛堣蒋浠剁増鍙栬嚜婧愯〃涓庡簱鍐呫�佹槸瀵圭殑锛夛紝L91 浜哄伐鐗堛�屽湪寤恒�嶆纭�佽蒋浠剁増鏄簳绋挎棫鍊笺�屾殏鍋滄柦宸ャ�嶃��
+- **褰卞搷閲戦**锛氳蒋浠剁増鐗╂祦銆岃嚜寮�濮嬬疮璁°�嶃�岃嚜骞村垵绱銆嶅悇灏� **34399.2 涓囧厓**銆併�屾湰鏈堝畬鎴愩�嶅皯 **6291.4 涓囧厓**銆�
+- **鎶ュ憡**锛歚docs/鍔熻兘娴嬭瘯鎶ュ憡/鏁版嵁姣斿鎶ュ憡_鎶曡祫鏄庣粏琛ㄨ蒋浠剁敓鎴愪笌浜哄伐鐗坃2026-09-22.md`锛堝惈 156 鏍煎叏閲忔竻鍗� + 閫愭潯鏍稿缁撹 + 澶勭疆寤鸿锛夈��
+- **涓存椂鑴氭湰锛堜繚鐣欙級**锛歚_tmp_diff_invest_0922.py`銆乣_tmp_dump_invest_full_0922.py`銆乣_tmp_diff_invest_annot_0922.py`銆乣_tmp_diff_tables_0922.py`銆乣_tmp_src_spotcheck_0922.py`銆乣_tmp_src_spotcheck2_0922.py`銆乣_tmp_db_probe*_0922.py`銆乣_tmp_tpl_*_0922.py` 鍙婂搴� `_*.txt` 杈撳嚭銆�
+
+## 涓冦�佹眹鎬诲ぇ琛ㄨ蒋浠惰緭鍑轰笌鎵嬪伐瀹氱宸紓澶嶆牳锛�2026-08锛�
- 姣斿鏂囦欢锛氳蒋浠惰緭鍑� `鐢熸垚_閬撹矾杩愯緭閲忔眹鎬昏〃_2026-08 (5).xlsx`锛屾墜宸ュ畾绋� `2026骞�8鏈堝杩愰噺銆佽揣杩愰噺瀹氱.xlsx`銆�
- 鏂规硶锛氬厛鐢� Excel COM 瀵逛袱浠藉壇鏈叏閲忛噸绠楋紝鍐嶆寜椤电銆佹暟鎹潡銆佽鏍囩銆佸垪澶村仛璇箟瀵归綈鍚庨�愭牸姣斿锛岄伩鍏嶈鍙� XLSX 鏃х紦瀛橀�犳垚 `#VALUE!` 鍋囧樊寮傘��
diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportTaskService.java b/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportTaskService.java
index 6c430eb..b3a9ff5 100644
--- a/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportTaskService.java
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/service/ReportExportTaskService.java
@@ -1,19 +1,27 @@
package com.trafficaudit.reportexport.service;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.trafficaudit.dataimport.entity.ImportBatch;
-import com.trafficaudit.dataimport.mapper.ImportBatchMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
+import javax.sql.DataSource;
import java.io.File;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
import java.util.Date;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
@@ -29,9 +37,11 @@
* 2) 鐢熸垚杩囩▼涓嶅崰鐢� HTTP 璇锋眰绾跨▼锛岄伩鍏嶅浜哄悓鏃剁偣鎶婂鍣ㄦ嫋姝伙紙宸ヤ綔绾跨▼鍥哄畾 1 涓紝澶氫綑璇锋眰鏄剧ず銆屾帓闃熶腑銆嶏級锛�
* 3) 鍚屼竴鎶ヨ〃鏈熺殑缁撴灉鍙鐢紙**钀界洏淇濆瓨锛岃繘绋嬮噸鍚悗渚濈劧鏈夋晥**锛夛紝閬垮厤姣忔閲嶇畻鏁存湰绾� 4 涓囨牸鍏紡銆�
*
- * 缂撳瓨姝g‘鎬у畧鍗細鍙湁褰撱�屾湡闂存病鏈変换浣曟柊鐨勬暟鎹鍏ワ紙import_batch 鏈�澶� id 鏈彉锛夈�嶄笖銆岀粨鏋滀笉瓒呰繃 7 澶┿�嶆椂鎵嶅鐢紱
- * 瀵煎叆鍗冲け鏁堬紝閬垮厤鎶婅繃鏈熸姤琛ㄧ粰鐢ㄦ埛銆傚墠绔粛鎻愪緵銆岄噸鏂扮敓鎴愩�嶅己鍒堕噸绠楋紙璺宠繃缂撳瓨锛夈��
- * 钀界洏浣嶇疆锛歿summary.template-dir}/_cache/<key>_v<鏁版嵁鐗堟湰>.xlsx
+ * 缂撳瓨姝g‘鎬у畧鍗紳**鏁版嵁鎸囩汗**锛氭寚绾圭敱銆屾眹鎬诲ぇ琛ㄤ緷璧栫殑婧愯〃鍐呭鏍¢獙鍜屻��+銆屾瘝鐗堢瓑鏂囦欢韬唤锛堝ぇ灏�/淇敼鏃堕棿锛夈�嶇畻鍑猴紝
+ * 鍙湁鎸囩汗涓�鑷达紙涓旂粨鏋滀笉瓒呰繃 7 澶╋級鎵嶅鐢ㄣ�傚洜姝わ細
+ * - 鎶曡祫/鑳借��/瀹℃牳绛�**涓庢眹鎬诲ぇ琛ㄦ棤鍏�**鐨勫鍏ヤ笉鍐嶈缂撳瓨澶辨晥锛�
+ * - 鎹㈡瘝鐗堛�佹敼鍙傜収浠躲�佸姩鐩稿叧婧愯〃锛堝惈鍘熷湴 UPDATE锛夐兘浼氳缂撳瓨澶辨晥锛屼笉浼氭妸鏃ц〃褰撴柊琛ㄥ彂鍑恒��
+ * 鍓嶇浠嶆彁渚涖�岄噸鏂扮敓鎴愩�嶅己鍒堕噸绠楋紙璺宠繃缂撳瓨锛夈�傝惤鐩樹綅缃細{summary.template-dir}/_cache/<key>_v<鎸囩汗>.xlsx
*/
@Slf4j
@Service
@@ -50,11 +60,24 @@
@Resource
private ReportExportService reportService;
@Resource
- private ImportBatchMapper importBatchMapper;
+ private DataSource dataSource;
/** 姹囨�诲伐浣滅翱鐩綍锛堜笌 ReportExportService 鍚岄厤缃級锛岃惤鐩樼紦瀛樻斁鍦ㄥ叾 _cache 瀛愮洰褰� */
@org.springframework.beans.factory.annotation.Value("${summary.template-dir:docs/鐢熸垚姹囨�诲ぇ琛▆")
private String summaryTemplateDir;
+
+ /** 鍩庡競瀹㈣繍鐩綍锛氱綉绾﹁溅璁㈠崟鍙婂叏鐪佹�婚噺.xlsx锛堝簱閲岀己璇ユ湀鏃剁殑鍏滃簳杈撳叆锛� */
+ @org.springframework.beans.factory.annotation.Value("${city-passenger.template-dir:docs/鍩庡競瀹㈣繍}")
+ private String cityPassengerTemplateDir;
+
+ /** 璁$畻鎸囩汗鏃�**鎺掗櫎**鐨勮〃锛氭姇璧勭嚎銆佽兘鑰楃嚎銆佸鏍哥嚎銆佺郴缁熻〃銆佸鍏ユ棩蹇椼��
+ * 杩欎簺琛ㄥ彉鍖栦笉褰卞搷姹囨�诲ぇ琛ㄥ唴瀹癸紝娌″繀瑕佽缂撳瓨澶辨晥锛涘叾浣欒〃涓�寰嬬撼鍏ワ紙瀹佸彲澶氱畻涓嶅彲鍑洪敊锛夈�� */
+ private static final Set<String> FINGERPRINT_EXCLUDE = new HashSet<>(Arrays.asList(
+ "investment_project", "investment_monthly", "investment_system",
+ "h204_vehicle_quarterly", "h204_auth_vehicle",
+ "audit_result", "audit_run", "audit_rule", "audit_explanation",
+ "sys_user", "sys_role", "sys_user_role", "sys_dept", "sys_operation_log",
+ "llm_desensitize_map", "import_batch"));
/** 钀界洏缂撳瓨鐩綍锛涘畾浣嶇瓥鐣ヤ笌妯℃澘涓�鑷达紙閰嶇疆鐩綍 / user.dir 鐩稿 / 涓婄骇鐩綍锛� */
private File cacheDir() {
@@ -95,8 +118,8 @@
private final String mode;
private final Integer toMonth;
private volatile long createdAt = System.currentTimeMillis();
- /** 鐢熸垚鏃剁殑鏁版嵁鐗堟湰锛坕mport_batch 鏈�澶� id锛夛紝鐢ㄤ簬鍒ゆ柇缂撳瓨鏄惁杩囨湡 */
- private final long importVersion;
+ /** 鐢熸垚鏃剁殑鏁版嵁鎸囩汗锛堟簮琛ㄦ牎楠屽拰 + 姣嶇増鏂囦欢韬唤锛夛紝鐢ㄤ簬鍒ゆ柇缂撳瓨鏄惁杩囨湡 */
+ private final String fingerprint;
private volatile String status = "PENDING"; // PENDING/RUNNING/DONE/FAILED
private volatile int percent = 0;
private volatile String step = "鎺掗槦涓�";
@@ -106,14 +129,16 @@
private volatile File cacheFile;
private volatile String fileName;
private volatile boolean fromCache;
+ /** 鏈銆屾病鍛戒腑缂撳瓨銆嶆槸鍥犱负瀛樺湪鏃х粨鏋滀絾鏁版嵁/姣嶇増宸插彉锛堢敤浜庣粰鐢ㄦ埛涓�鍙ヨВ閲婏級 */
+ private volatile boolean staleCache;
private volatile long finishedAt;
- Task(String type, String period, String mode, Integer toMonth, long importVersion) {
+ Task(String type, String period, String mode, Integer toMonth, String fingerprint) {
this.type = type;
this.period = period;
this.mode = mode;
this.toMonth = toMonth;
- this.importVersion = importVersion;
+ this.fingerprint = fingerprint;
}
void progress(int pct, String stepText) {
@@ -159,6 +184,7 @@
m.put("percent", "DONE".equals(status) ? 100 : percent);
m.put("step", step);
m.put("fromCache", fromCache);
+ m.put("staleCache", staleCache);
m.put("fileName", fileName);
m.put("error", error);
long end = finishedAt > 0 ? finishedAt : System.currentTimeMillis();
@@ -170,20 +196,22 @@
/**
* 鎻愪氦瀵煎嚭浠诲姟銆俧orceRefresh=true 鏃跺拷鐣ョ紦瀛橀噸鏂扮敓鎴愶紱
- * 鍚﹀垯鍦ㄣ�屽悓涓�鎶ヨ〃鏈熴��10 鍒嗛挓鍐呫�佹湡闂存棤鏂板鍏ャ�嶇殑鍓嶆彁涓嬬洿鎺ュ鐢ㄤ笂娆$粨鏋溿��
+ * 鍚﹀垯鍦ㄣ�屽悓涓�鎶ヨ〃鏈� + 鏁版嵁鎸囩汗涓�鑷� + 7 澶╁唴銆嶇殑鍓嶆彁涓嬬洿鎺ュ鐢ㄤ笂娆$粨鏋溿��
* 鍚屼竴鎶ヨ〃鏈熷凡鏈変换鍔″湪璺戞椂鐩存帴杩斿洖璇ヤ换鍔★紝閬垮厤閲嶅鎺掗槦銆�
*/
public Task submit(String type, String period, String mode, Integer toMonth, boolean forceRefresh) {
cleanupExpired();
String key = cacheKey(type, period, mode, toMonth);
+ String fingerprint = dataFingerprint();
if (!forceRefresh) {
Task hit = cache.get(key);
- if (cacheUsable(hit)) {
+ if (cacheUsable(hit, fingerprint)) {
hit.fromCache = true;
+ hit.staleCache = false; // 鍛戒腑缂撳瓨鏃朵笉鑳芥畫鐣欎笂涓�娆°�岀粨鏋滃凡澶辨晥銆嶇殑鎻愮ず
log.info("鎶ヨ〃瀵煎嚭浠诲姟鍛戒腑鍐呭瓨缂撳瓨锛歿} {}锛堢敓鎴愪簬 {}锛�", type, period, new Date(hit.finishedAt));
return hit;
}
- Task disk = loadFromDisk(key, type, period, mode, toMonth);
+ Task disk = loadFromDisk(key, type, period, mode, toMonth, fingerprint);
if (disk != null) {
tasks.put(disk.id, disk);
cache.put(key, disk);
@@ -197,7 +225,9 @@
log.info("鎶ヨ〃瀵煎嚭浠诲姟宸插湪鎵ц锛屽鐢ㄨ繘琛屼腑鐨勪换鍔★細{} {}锛坽}锛�", type, period, running.id);
return running;
}
- Task task = new Task(type, period, mode, toMonth, importVersion());
+ Task task = new Task(type, period, mode, toMonth, fingerprint);
+ // 鏈夋棫缁撴灉浣嗘病鍛戒腑锛堟暟鎹垨姣嶇増鍙樹簡锛夆啋 鍓嶇鎻愮ず涓�鍙ワ紝閬垮厤鐢ㄦ埛浠ヤ负"缂撳瓨鍧忎簡"
+ task.staleCache = !forceRefresh && hasStaleCache(type, period, mode, toMonth, fingerprint);
tasks.put(task.id, task);
pool.submit(() -> run(task));
return task;
@@ -240,23 +270,99 @@
return null;
}
- private boolean cacheUsable(Task t) {
- if (t == null || !"DONE".equals(t.status) || t.data == null) return false;
+ private boolean cacheUsable(Task t, String fingerprint) {
+ if (t == null || !"DONE".equals(t.status)) return false;
+ if (t.data == null && (t.cacheFile == null || !t.cacheFile.isFile())) return false;
if (System.currentTimeMillis() - t.finishedAt > CACHE_MAX_AGE_MS) return false;
- long now = importVersion();
- if (now < 0 || t.importVersion < 0) return false; // 鍙栦笉鍒版暟鎹増鏈椂涓嶅啋椋庨櫓澶嶇敤
- return now == t.importVersion;
+ if (fingerprint == null || t.fingerprint == null) return false; // 绠椾笉鍑烘寚绾规椂涓嶅啋椋庨櫓澶嶇敤
+ return fingerprint.equals(t.fingerprint);
}
- /** 鏁版嵁鐗堟湰锛漣mport_batch 鏈�澶� id锛氫换浣曚竴娆″鍏ラ兘浼氳瀹冨彉鍖栵紝鍙栦笉鍒拌繑鍥� -1锛堟鏃剁鐢ㄧ紦瀛橈級 */
- private long importVersion() {
+ /**
+ * 姹囨�诲ぇ琛ㄦ暟鎹寚绾癸紳銆屼緷璧栫殑婧愯〃鍐呭鏍¢獙鍜屻��+銆屾瘝鐗堢瓑鏂囦欢韬唤銆嶃��
+ * - 婧愯〃锛氬簱鍐呴櫎 FINGERPRINT_EXCLUDE锛堟姇璧�/鑳借��/瀹℃牳/绯荤粺/瀵煎叆鏃ュ織锛変互澶栫殑鍏ㄩ儴琛紝鐢� CHECKSUM TABLE 鍙栨牎楠屽拰锛�
+ * 鑳芥崟鎹夎鏁板彉鍖栥�佹柊澧炲垹闄ゃ��**鍘熷湴 UPDATE**锛�
+ * - 鏂囦欢锛氭瘝鐗堢洰褰曚笅鍏ㄩ儴鏂囦欢锛堟瘝鐗� / 鍙傜収浠� / _澶囦唤_ 鍥炲~浠讹級+銆婄綉绾﹁溅璁㈠崟鍙婂叏鐪佹�婚噺.xlsx銆嬶紝鍙栥�屽悕绉�+澶у皬+淇敼鏃堕棿銆嶃��
+ * 浠讳竴椤瑰彉鍖栧嵆鎸囩汗鍙樺寲 鈫� 缂撳瓨澶辨晥銆傝绠楀け璐ヨ繑鍥� null锛堟鏃剁鐢ㄧ紦瀛橈紝鍙噸绠椾笉澶嶇敤锛夈��
+ */
+ private String dataFingerprint() {
try {
- List<Object> v = importBatchMapper.selectObjs(new QueryWrapper<ImportBatch>().select("IFNULL(MAX(id),0)"));
- if (v == null || v.isEmpty() || v.get(0) == null) return 0L;
- return ((Number) v.get(0)).longValue();
+ List<String> parts = new ArrayList<>();
+ try (Connection conn = dataSource.getConnection()) {
+ List<String> tables = new ArrayList<>();
+ try (Statement st = conn.createStatement();
+ ResultSet rs = st.executeQuery("SELECT table_name FROM information_schema.tables "
+ + "WHERE table_schema = DATABASE() AND table_type = 'BASE TABLE' ORDER BY table_name")) {
+ while (rs.next()) tables.add(rs.getString(1));
+ }
+ for (String t : tables) {
+ if (FINGERPRINT_EXCLUDE.contains(t)) continue;
+ try (Statement st = conn.createStatement();
+ ResultSet rs = st.executeQuery("CHECKSUM TABLE `" + t + "`")) {
+ if (rs.next()) parts.add("T:" + t + ":" + rs.getString(2));
+ }
+ }
+ }
+ for (File f : listIdentityFiles(resolveBaseDir(summaryTemplateDir))) {
+ parts.add("F:" + f.getName() + ":" + f.length() + ":" + f.lastModified());
+ }
+ File wyc = new File(resolveBaseDir(cityPassengerTemplateDir), "缃戠害杞﹁鍗曞強鍏ㄧ渷鎬婚噺.xlsx");
+ if (wyc.isFile()) parts.add("F:" + wyc.getName() + ":" + wyc.length() + ":" + wyc.lastModified());
+ return sha256Hex(String.join("|", parts)).substring(0, 16);
} catch (Exception e) {
- log.warn("璇诲彇瀵煎叆鏁版嵁鐗堟湰澶辫触锛屾湰娆$鐢ㄥ鍑虹紦瀛橈細{}", e.getMessage());
- return -1L;
+ log.warn("璁$畻鏁版嵁鎸囩汗澶辫触锛屾湰娆$鐢ㄥ鍑虹紦瀛橈細{}", e.getMessage());
+ return null;
+ }
+ }
+
+ /** 姣嶇増鐩綍绛夊熀纭�鐩綍瀹氫綅锛堜笌妯℃澘瑙f瀽鍚岀瓥鐣ワ細閰嶇疆鐩綍 / user.dir 鐩稿 / 涓婄骇鐩綍锛� */
+ private File resolveBaseDir(String dir) {
+ if (dir == null) return null;
+ String rel = dir;
+ while (rel.startsWith("./")) rel = rel.substring(2);
+ String[] roots = {rel, System.getProperty("user.dir") + "/" + rel, System.getProperty("user.dir") + "/../" + rel};
+ for (String root : roots) {
+ if (root == null || root.trim().isEmpty()) continue;
+ File f = new File(root);
+ if (f.isDirectory()) return f;
+ }
+ return null;
+ }
+
+ /** 鐩綍涓嬬殑鏂囦欢锛堟寜鍚嶅瓧鎺掑簭锛屾帓闄ゅ瓙鐩綍锛屼繚璇佹寚绾圭ǔ瀹氾級 */
+ private List<File> listIdentityFiles(File dir) {
+ List<File> out = new ArrayList<>();
+ if (dir == null) return out;
+ File[] fs = dir.listFiles(File::isFile);
+ if (fs == null) return out;
+ Arrays.sort(fs, Comparator.comparing(File::getName));
+ out.addAll(Arrays.asList(fs));
+ return out;
+ }
+
+ private String sha256Hex(String text) throws Exception {
+ MessageDigest md = MessageDigest.getInstance("SHA-256");
+ byte[] d = md.digest(text.getBytes(StandardCharsets.UTF_8));
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < 8; i++) sb.append(String.format("%02x", d[i])); // 鍙栧墠 8 瀛楄妭锛�16 浣嶅崄鍏繘鍒讹紝澶熺敤涓旀枃浠跺悕鐭�
+ return sb.toString();
+ }
+
+ /** 璇ユ姤琛ㄦ湡鏄惁瀛樺湪銆屼笌褰撳墠鎸囩汗涓嶄竴鑷淬�嶇殑鏃х粨鏋滐紙鐢ㄤ簬鎻愮ず銆屼笂娆$粨鏋滃凡澶辨晥锛屾鍦ㄦ寜鏈�鏂版暟鎹噸绠椼�嶏級 */
+ private boolean hasStaleCache(String type, String period, String mode, Integer toMonth, String fingerprint) {
+ try {
+ File dir = cacheDir();
+ if (dir == null) return false;
+ String prefix = cacheFilePrefix(type, period, mode, toMonth);
+ File[] fs = dir.listFiles((d, n) -> n.startsWith(prefix + "_v") && n.endsWith(".xlsx"));
+ if (fs == null || fs.length == 0) return false;
+ String current = prefix + "_v" + fingerprint + ".xlsx";
+ for (File f : fs) {
+ if (!f.getName().equals(current)) return true;
+ }
+ return false;
+ } catch (Exception e) {
+ return false;
}
}
@@ -290,10 +396,10 @@
try {
File dir = cacheDir();
if (dir == null) return;
- long version = t.importVersion;
- if (version < 0) return;
+ String fingerprint = t.fingerprint;
+ if (fingerprint == null) return;
String prefix = cacheFilePrefix(t.type, t.period, t.mode, t.toMonth);
- File target = new File(dir, prefix + "_v" + version + ".xlsx");
+ File target = new File(dir, prefix + "_v" + fingerprint + ".xlsx");
java.nio.file.Files.write(target.toPath(), data);
File[] siblings = dir.listFiles((d, n) -> n.startsWith(prefix + "_v") && n.endsWith(".xlsx"));
if (siblings != null) {
@@ -308,18 +414,17 @@
}
}
- /** 浠庤惤鐩樼紦瀛橀噷鎵俱�屽悓涓�鎶ヨ〃鏈� + 鍚屼竴鏁版嵁鐗堟湰 + 鏈秴鏈熴�嶇殑缁撴灉锛涙病鏈夎繑鍥� null */
- private Task loadFromDisk(String key, String type, String period, String mode, Integer toMonth) {
+ /** 浠庤惤鐩樼紦瀛橀噷鎵俱�屽悓涓�鎶ヨ〃鏈� + 鍚屼竴鏁版嵁鎸囩汗 + 鏈秴鏈熴�嶇殑缁撴灉锛涙病鏈夎繑鍥� null */
+ private Task loadFromDisk(String key, String type, String period, String mode, Integer toMonth, String fingerprint) {
try {
+ if (fingerprint == null) return null; // 绠椾笉鍑烘寚绾规椂涓嶅啋椋庨櫓澶嶇敤
File dir = cacheDir();
if (dir == null) return null;
- long version = importVersion();
- if (version < 0) return null; // 鍙栦笉鍒版暟鎹増鏈椂涓嶅啋椋庨櫓澶嶇敤
- File f = new File(dir, cacheFilePrefix(type, period, mode, toMonth) + "_v" + version + ".xlsx");
+ File f = new File(dir, cacheFilePrefix(type, period, mode, toMonth) + "_v" + fingerprint + ".xlsx");
if (!f.isFile()) return null;
long finished = f.lastModified();
if (finished <= 0 || System.currentTimeMillis() - finished > CACHE_MAX_AGE_MS) return null;
- Task t = new Task(type, period, mode, toMonth, version);
+ Task t = new Task(type, period, mode, toMonth, fingerprint);
t.cacheFile = f;
t.createdAt = finished; // 澶嶇敤鍘嗗彶缁撴灉锛氫互鐢熸垚鏃堕棿浣滀负璧风偣锛岄伩鍏� elapsedMs 鍑虹幇璐熸暟
t.fileName = "鐢熸垚_閬撹矾杩愯緭閲忔眹鎬昏〃_" + period + ".xlsx";
diff --git a/traffic-audit-web/src/views/ReportExport.vue b/traffic-audit-web/src/views/ReportExport.vue
index 20c86d5..d9e76d3 100644
--- a/traffic-audit-web/src/views/ReportExport.vue
+++ b/traffic-audit-web/src/views/ReportExport.vue
@@ -170,6 +170,7 @@
<p class="task-step">{{ taskInfo.step || '鎺掗槦涓�' }}</p>
<p class="task-meta" v-if="taskInfo.period && !taskInfo.fromCache">鎶ヨ〃鏈� {{ taskInfo.period }}銆�宸茬敤 {{ ((taskInfo.elapsedMs || 0) / 1000).toFixed(1) }} 绉�</p>
<p class="task-meta" v-else-if="taskInfo.period">鎶ヨ〃鏈� {{ taskInfo.period }}銆�涓婃鐢熸垚浜� {{ taskCacheTime }}</p>
+ <p class="task-meta" v-if="taskInfo.staleCache">涓婃鐢熸垚鐨勭粨鏋滃凡鍥犳暟鎹垨姣嶇増鍙樺寲澶辨晥锛屾湰娆℃寜鏈�鏂版暟鎹噸绠椼��</p>
<p class="task-meta" v-if="taskInfo.fromCache">鏈鐩存帴娌跨敤 {{ taskCacheTime }} 鐢熸垚鐨勭粨鏋滐紙鏈熼棿娌℃湁鏂扮殑鏁版嵁瀵煎叆锛夈�傚闇�鎸夋渶鏂版暟鎹噸绠楋紝璇风偣銆岄噸鏂扮敓鎴愩�嶃��</p>
<p class="task-done" v-if="taskDownloaded">
宸茶嚜鍔ㄤ笅杞斤細<b>{{ taskFileName }}</b><span v-if="taskFileSize">锛坽{ taskFileSizeText }}锛�</span>锛屾枃浠跺湪娴忚鍣ㄩ粯璁や笅杞界洰褰曘��
--
Gitblit v1.9.1