From 9b8a87962175d50b147f260335bb400f52084b26 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 10 九月 2026 13:13:53 +0800
Subject: [PATCH] docs(project-business): 添加项目业务可视化文档和分析工具
---
docs/project-business/data/roles.json | 24
docs/project-business/data/flows.json | 62
docs/project-business/mermaid/05-quality-flow.mmd | 20
docs/project-business/README.md | 72 +
docs/project-business/mermaid/03-purchase-flow.mmd | 19
docs/project-business/mermaid/04-production-flow.mmd | 19
docs/project-business/mermaid/08-module-relation.mmd | 28
docs/project-business/data/modules.json | 105 +
docs/project-business/mermaid/02-sales-flow.mmd | 19
.claude/rules/business-visualization-maintenance.md | 13
docs/project-business/data/business.json | 150 ++
docs/project-business/mermaid/01-business-mindmap.mmd | 94 +
.claude/skills/project-business-analysis/scripts/sync_index.js | 60
docs/project-business/mermaid/11-ai-business-flow.mmd | 24
docs/project-business/data/objects.json | 50
.claude/skills/project-business-analysis/SKILL.md | 139 ++
/dev/null | 156 --
docs/Claude Code Agent:项目业务分析 + Mermaid + HTML 可视化生成 Prompt.md | 1492 +++++++++++++++++++++++
docs/project-business/mermaid/09-data-flow.mmd | 39
docs/project-business/index.html | 1145 +++++++++++++++++
docs/project-business/mermaid/06-warehouse-flow.mmd | 28
docs/project-business/mermaid/10-business-object.mmd | 36
docs/project-business/mermaid/07-after-sales-flow.mmd | 20
23 files changed, 3,658 insertions(+), 156 deletions(-)
diff --git a/.claude/rules/business-visualization-maintenance.md b/.claude/rules/business-visualization-maintenance.md
new file mode 100644
index 0000000..cea8a50
--- /dev/null
+++ b/.claude/rules/business-visualization-maintenance.md
@@ -0,0 +1,13 @@
+# 涓氬姟鍙鍖栨枃妗g淮鎶よ鍒�
+
+## 鑳屾櫙
+
+`docs/project-business/` 鏄」鐩笟鍔″彲瑙嗗寲鎴愭灉锛圡ermaid 涓氬姟鍥� + JSON 涓氬姟鏁版嵁 + 鍙弻鍑绘墦寮�鐨� index.html锛夛紝鍒嗘瀽鏂规硶涓庣淮鎶よ绋嬭鎶�鑳� `project-business-analysis`锛坄.claude/skills/project-business-analysis/SKILL.md`锛夈��
+
+## 瑙勫垯
+
+- 褰撴湰娆′唬鐮佸彉鏇存秹鍙�**涓氬姟妯″潡銆佹牳蹇冧笟鍔″璞�/鍗曟嵁銆佷笟鍔℃祦绋嬫楠ゃ�佺姸鎬佹祦杞�佽法妯″潡鏁版嵁娴併�丄I 鑳藉姏銆佽鑹叉潈闄�**涓殑浠讳竴鍐呭鏃讹細
+ - 鑻� `docs/project-business/` 宸插瓨鍦細浠诲姟鏀跺熬鍓嶅繀椤绘寜鎶�鑳界殑銆岀淮鎶ゆā寮忋�嶅閲忔洿鏂板搴� mmd/json/html锛屾洿鏂板唴瀹逛互鍙樻洿鍚庡疄闄呬唬鐮佷负鍑嗐��
+ - 鑻ュ皻涓嶅瓨鍦細涓嶅己鍒剁敓鎴愶紝浣嗛渶鍦ㄥ畬鎴愭眹鎶ヤ腑鎻愮ず鐢ㄦ埛鍙繍琛岀敓鎴愭ā寮忓缓绔嬩笟鍔″叏鏅��
+- 鐢ㄦ埛璇㈤棶"绯荤粺鏄仛浠�涔堢殑/鏌愪笟鍔℃�庝箞娴佽浆/缁欐垜璁蹭笟鍔¢�昏緫"鏃讹紝浼樺厛璋冪敤鎶�鑳� `project-business-analysis` 鐨勯槄璇绘ā寮忥紝鍩轰簬宸叉湁涓氬姟鏂囨。鍥炵瓟骞朵笌婧愮爜鏍稿銆�
+- 缁存姢鍙仛澧為噺锛氬彧鏀逛笌鏈鍙樻洿鐩稿叧鐨勬枃浠讹紝绂佹鏃犲彉鏇村叏閲忛噸鐢熸垚銆�
\ No newline at end of file
diff --git a/.claude/skills/project-business-analysis/SKILL.md b/.claude/skills/project-business-analysis/SKILL.md
new file mode 100644
index 0000000..b41c21b
--- /dev/null
+++ b/.claude/skills/project-business-analysis/SKILL.md
@@ -0,0 +1,139 @@
+---
+name: project-business-analysis
+description: "椤圭洰涓氬姟鍒嗘瀽涓庡彲瑙嗗寲 鈥� 浠庣湡瀹炴簮鐮佽繕鍘熶笟鍔★紝寤虹珛涓氬姟鐭ヨ瘑妯″瀷锛岀敓鎴� Mermaid 涓氬姟鍥� + 鍙洿鎺ュ弻鍑绘墦寮�鐨� HTML 鍙鍖栭〉闈紙docs/project-business/锛夈�備笁绉嶄娇鐢ㄦā寮忥細鈶犵敓鎴愭ā寮忥紙棣栨鍏ㄩ噺鍒嗘瀽锛夆憽缁存姢妯″紡锛堜笟鍔″彉鏇村悗鍚屾鏇存柊锛夆憿闃呰妯″紡锛堝洖绛�'杩欎釜绯荤粺鏄仛浠�涔堢殑/涓氬姟鎬庝箞娴佽浆'锛夈�傝Е鍙戝叧閿瘝: 涓氬姟鍒嗘瀽 涓氬姟閫昏緫 涓氬姟鍏ㄦ櫙 涓氬姟鍙鍖� 涓氬姟娴佺▼鍥� 妯″潡鍏崇郴 鏁版嵁娴� 鏂颁汉鍩硅 浜嗚В椤圭洰 璁茶杩欎釜绯荤粺 鐢讳笟鍔″浘 鐢熸垚涓氬姟鏂囨。 鏇存柊涓氬姟鏂囨。 project-business mermaid涓氬姟鍥� 涓氬姟缁存姢."
+---
+
+# 椤圭洰涓氬姟鍒嗘瀽涓庡彲瑙嗗寲
+
+> 鏍稿績鍘熷垯锛氫笉鏄妸椤圭洰"鐢诲嚭鏉�"锛岃�屾槸鍏堟妸椤圭洰"鐞嗚В鍑烘潵"锛屽啀鎶婄悊瑙g粨鏋滃彲瑙嗗寲銆�
+> 鎴愭灉鏍囧噯锛氫竴涓畬鍏ㄤ笉浜嗚В椤圭洰鐨勪汉锛屾墦寮� `docs/project-business/index.html` 鍗冲彲鐞嗚В椤圭洰鏄仛浠�涔堢殑銆佹湁鍝簺妯″潡銆佹牳蹇冧笟鍔℃�庝箞娴佽浆銆佹ā鍧楅棿濡備綍鍗忎綔銆佹暟鎹浣曟祦杞��
+
+婧愭彁绀鸿瘝鏂囨。锛歚docs/Claude Code Agent锛氶」鐩笟鍔″垎鏋� + Mermaid + HTML 鍙鍖栫敓鎴� Prompt.md`锛堟湰鎶�鑳芥槸鍏跺彲鎵ц鎻愮偧锛屽啿绐佹椂浠ユ簮鐮佷簨瀹炰负鍑嗗苟鍚屾淇涓や唤鏂囦欢锛夈��
+
+## 浣跨敤妯″紡
+
+| 鍦烘櫙 | 妯″紡 |
+|------|------|
+| `docs/project-business/` 涓嶅瓨鍦紝涓旈渶瑕佷笟鍔″叏鏅潗鏂欙紙鍩硅/姹囨姤/婕旂ず/鑷繁鐞嗘竻涓氬姟锛� | 鐢熸垚妯″紡 |
+| 浠g爜鍙樻洿娑夊強涓氬姟妯″潡/娴佺▼/鐘舵��/瀵硅薄/瑙掕壊/鏁版嵁娴�/AI 鑳藉姏 | 缁存姢妯″紡锛堣涓嬫枃锛� |
+| 鐢ㄦ埛璇㈤棶"绯荤粺鏄仛浠�涔堢殑銆佹煇涓氬姟鎬庝箞娴佽浆" | 闃呰妯″紡锛氬熀浜� `docs/project-business/` 鍥炵瓟锛屽苟涓庡綋鍓嶆簮鐮佹牳瀵癸紝涓嶄竴鑷翠互婧愮爜涓哄噯骞跺洖鍐欐枃妗� |
+
+## 杈撳嚭缁撴瀯
+
+```text
+docs/project-business/
+鈹溾攢鈹� index.html # 鍗曟枃浠跺彲瑙嗗寲锛屽弻鍑荤洿鎺ユ墦寮�
+鈹溾攢鈹� README.md # 椤圭洰瀹氫綅銆佹ā鍧椼�佸浘璇存槑銆佷娇鐢ㄦ柟娉曘�佸浣曢噸鏂扮敓鎴�
+鈹溾攢鈹� mermaid/
+鈹� 鈹溾攢鈹� 01-business-mindmap.mmd # 涓氬姟鍏ㄦ櫙鎬濈淮瀵煎浘
+鈹� 鈹溾攢鈹� 02-sales-flow.mmd # 閿�鍞祦绋�
+鈹� 鈹溾攢鈹� 03-purchase-flow.mmd # 閲囪喘娴佺▼
+鈹� 鈹溾攢鈹� 04-production-flow.mmd # 鐢熶骇娴佺▼
+鈹� 鈹溾攢鈹� 05-quality-flow.mmd # 璐ㄩ噺娴佺▼锛圛QC/IPQC/OQC/涓嶅悎鏍煎搧锛�
+鈹� 鈹溾攢鈹� 06-warehouse-flow.mmd # 浠撳偍娴佺▼锛堝叆搴�/鍑哄簱/棰嗘枡/鐩樼偣锛�
+鈹� 鈹溾攢鈹� 07-after-sales-flow.mmd # 鍞悗娴佺▼锛堝瀛樺湪锛�
+鈹� 鈹溾攢鈹� 08-module-relation.mmd # 妯″潡/绯荤粺鍏崇郴鍥�
+鈹� 鈹溾攢鈹� 09-data-flow.mmd # 鏁版嵁娴佸浘
+鈹� 鈹溾攢鈹� 10-business-object.mmd # 涓氬姟瀵硅薄鍏崇郴锛坋rDiagram锛屽彧鐢绘牳蹇冧笟鍔″璞★級
+鈹� 鈹斺攢鈹� 11-ai-business-flow.mmd # AI 涓氬姟娴佺▼锛堝瀛樺湪锛�
+鈹斺攢鈹� data/
+ 鈹溾攢鈹� business.json # { project:{name,description}, modules, objects, flows, roles, aiCapabilities }
+ 鈹溾攢鈹� modules.json
+ 鈹溾攢鈹� objects.json
+ 鈹溾攢鈹� flows.json
+ 鈹斺攢鈹� roles.json
+```
+
+鎸夐」鐩疄闄呬笟鍔¤鍓枃浠讹紙濡傞」鐩棤鍞悗鍒欎笉鐢熸垚 07锛夛紝淇濈暀缂栧彿鍓嶇紑浠ョǔ瀹氬鑸『搴忋��
+
+## 鍒嗘瀽瀵硅薄锛堝繀椤诲垎鏋愮湡瀹炴簮鐮侊級
+
+- **鍚庣**锛欳ontroller / Service / Mapper / DO(Entity) / DTO / VO / Enum / Config / Job / Utils
+- **鏁版嵁搴�**锛氬缓琛� SQL銆佸瓧娈点�佸閿笌閫昏緫鍏宠仈銆佺储寮曘�佺姸鎬佸瓧娈�
+- **鍓嶇**锛坄mom-pro2-before`锛屽彧璇伙級锛氶〉闈€�丄PI銆佽矾鐢便�佽彍鍗曘�佹潈闄�
+- **閰嶇疆**锛歛pplication*.yml銆丮Q銆丷edis銆佺涓夋柟鎺ュ彛銆丄I 鐩稿叧閰嶇疆
+
+绂佹锛氬彧鐪嬬洰褰曞悕绉般�佹寜绫诲悕鐚滀笟鍔°�佸彧杈撳嚭 Java 鏋舵瀯鍥�/鏁版嵁搴撳叏琛� ER 鍥�/Controller 缃楀垪/鑿滃崟缃楀垪銆傝鐨勬槸**涓氬姟鐞嗚В鍥撅紝涓嶆槸浠g爜缁撴瀯鍥�**銆�
+
+## 鏈」鐩凡鐭ュ湴鍥撅紙鍒嗘瀽璧风偣鍋囪锛屼互婧愮爜鏍稿涓哄噯锛�
+
+娣峰悎绯荤粺锛歁OM 宸ュ巶鏁板瓧鍖栧钩鍙般�備富妯″潡锛圡aven module锛夛細`yudao-module-mes`锛堢敓浜�/浠撳偍 WM/璐ㄦ/璁惧锛夈�乣yudao-module-erp`锛堥噰璐�/閿�鍞�/璐㈠姟锛夈�乣yudao-module-crm`锛堝鎴�/绾跨储/鍟嗘満/鍚堝悓/鍥炴/鎶ヤ环锛夈�乣yudao-module-mdm`锛堢墿鏂�/鍗曚綅涓绘暟鎹級銆乣yudao-module-hrm`锛堜汉浜�/浜ゆ帴锛宍HrmUserHandoverApi` 褰卞搷"鎴戠殑鏁版嵁"鍙鎬э級銆乣yudao-module-bpm`锛堝鎵规祦锛屾墜宸ラ儴缃诧級銆乣yudao-module-ai`銆乣yudao-module-system`锛堝惈 Storage 闄勪欢浣撶郴锛夈��
+鎺ㄦ祴涓荤嚎锛欳RM 鍟嗘満/鍚堝悓 鈫� 閿�鍞鍗� 鈫� 鐢熶骇宸ュ崟/鎶ュ伐锛堟寜宸ュ簭椤哄簭鎺у埗锛夆啋 璐ㄦ 鈫� 鍏ュ簱 鈫� 鍙戣揣鍑哄簱锛涢噰璐摼锛氶噰璐敵璇� 鈫� 瀹℃壒 鈫� 閲囪喘璁㈠崟 鈫� 鍒拌揣 鈫� IQC 鈫� 鍏ュ簱/閫�璐�/鐗归噰銆傚垎鏋愭椂閫愭潯楠岃瘉骞朵慨姝c��
+
+## 鐢熸垚妯″紡鎵ц娴佺▼
+
+1. **鍒ゅ畾椤圭洰绫诲瀷**锛氳緭鍑� 绯荤粺绫诲瀷 / 涓荤郴缁� / 瀛愮郴缁� / 涓氬姟瀹氫綅銆�
+2. **寤虹珛涓氬姟鐭ヨ瘑妯″瀷**锛堝厛寤烘ā鍚庣敾鍥撅級锛氱郴缁熷畾浣嶃�佷笟鍔℃ā鍧椼�佷笟鍔″璞°�佷笟鍔¤鑹层�佷笟鍔℃祦绋嬨�佸崟鎹�佺姸鎬併�佹暟鎹祦銆佹ā鍧楀叧绯汇�佹潈闄愬叧绯汇�佺涓夋柟绯荤粺銆丄I 鑳藉姏銆�
+3. **璇嗗埆涓氬姟妯″潡**锛氭寜涓氬姟鎰忎箟褰掔被锛堜笉鎸� Java package锛夈�傛瘡涓ā鍧楁彁鍙栵細鍚嶇О銆佸畾浣嶃�佽В鍐崇殑闂銆佹牳蹇冨姛鑳姐�佹牳蹇冧笟鍔″璞°�佷富瑕佽鑹层�佷笂娓告ā鍧椼�佷笅娓告ā鍧椼�佹牳蹇冩暟鎹簱琛ㄣ�佹牳蹇冧笟鍔℃祦绋嬨��
+4. **璇嗗埆鏍稿績涓氬姟瀵硅薄**锛氫粠 Entity/SQL/Service/鍓嶇椤甸潰/鐘舵�佸瓧娈�/鍗曟嵁缂栧彿鎻愬彇锛屽彧鐣欐湁涓氬姟浠峰�肩殑瀵硅薄锛堝鎴枫�佺墿鏂欍�丅OM銆侀攢鍞鍗曘�佸伐鍗曘�佸簱瀛樸�佽川妫�鍗曘�佸嚭鍏ュ簱鍗曗�︹�︼級锛屼笉鏀炬妧鏈〃銆�
+5. **璇嗗埆涓氬姟涓荤嚎**锛氫竴椤逛笟鍔′粠鍝紑濮嬨�佺粡杩囧摢浜涙楠ゃ�佷骇鐢熶粈涔堢粨鏋滐紙閿�鍞啋鐢熶骇鈫掍粨鍌ㄢ啋鍙戣揣绫婚摼璺級銆�
+6. **璇嗗埆鍚勬潯绾挎祦绋�**锛氶噰璐紙鐢宠鈫掑鎵光啋璁㈠崟鈫掑埌璐р啋IQC鈫掑悎鏍煎叆搴�/涓嶅悎鏍奸��璐�/鐗归噰锛夈�佺敓浜э紙璁″垝鈫掍换鍔♀啋BOM鈫掑伐鑹衡啋棰嗘枡鈫掔敓浜р啋鎶ュ伐鈫掕繃绋嬭川閲忊啋瀹屽伐鈫掓垚鍝佸叆搴擄紝鍚� APS/鎺掍骇/宸ュ簭/宸ヤ綔涓績/璁惧/宸ユ椂/绾胯竟浠撳鏈夛級銆佽川閲忥紙IQC/IPQC/OQC/涓嶅悎鏍煎搧/鍒ゅ畾/妫�楠屾爣鍑嗭級銆佷粨鍌紙閲囪喘鍏ュ簱/鐢熶骇鍏ュ簱/閿�鍞嚭搴�/棰嗘枡/鐩樼偣/璋冩暣锛屽惈鍘熸潗鏂�/鍗婃垚鍝�/鎴愬搧/绾胯竟/铏氭嫙浠撳鏈夛級銆佸敭鍚庯紙鍙嶉鈫掑伐鍗曗啋娲惧伐鈫掑鐞嗏啋纭鈫掑叧闂綊妗o紝鍚��鎹㈣ˉ/璐圭敤濡傛湁锛夈��
+7. **璇嗗埆 AI 鑳藉姏**锛氫笉鍋滅暀鍦�"鐢ㄤ簡澶фā鍨�"锛岀敾娓� 鐢ㄦ埛闂鈫扲AG/鐭ヨ瘑搴撯啋涓氬姟鏌ヨ鈫扐I 鍒嗘瀽鈫掕繑鍥烇紱濡傚彲 Function Calling 璋冧笟鍔� API锛岄噸鐐瑰睍绀恒��
+8. **璇嗗埆瑙掕壊**锛氬疄闄呭瓨鍦ㄧ殑瑙掕壊锛堢鐞嗗憳/閿�鍞�/閲囪喘/璁″垝鍛�/鐢熶骇/浠撳簱/璐ㄩ噺/璐㈠姟/绠$悊灞傗�︹�︼級锛岃鏄� 瑙掕壊鈫掑彲鎿嶄綔涓氬姟鈫掍骇鐢熸暟鎹��
+9. **璇嗗埆鐘舵�佹祦杞�**锛氭悳绱� status/state/type/auditStatus/approvalStatus/checkStatus/orderStatus 绛夊瓧娈典笌瀵瑰簲鏋氫妇锛岃繕鍘熺湡瀹炵姸鎬佹満銆�**绂佹娣诲姞浠g爜涓笉瀛樺湪鐨勭姸鎬�**銆�
+10. **鐢熸垚 mermaid/*.mmd 鈫� data/*.json 鈫� index.html 鈫� README.md**銆�
+11. **鑷**锛堣妫�鏌ユ竻鍗曪級锛屽彂鐜伴棶棰樿嚜鍔ㄤ慨澶嶅悗鍐嶆眹鎶ャ��
+
+## index.html 瑕佹眰
+
+- 绾� HTML5 + CSS3 + JS + Mermaid锛圕DN `mermaid@latest`锛宍theme:'dark'`锛涜嫢椤圭洰宸叉湁 Mermaid 渚濊禆鍒欏鐢ㄥ叾鐗堟湰锛夈�傚弻鍑诲嵆鍙繍琛岋細涓嶄緷璧栧悗绔�佷笉瑕佹眰 Node/Vue/鏋勫缓銆�
+- 椋庢牸锛氭繁鑹茬鎶�椋庛�佷紒涓氭暟瀛楀寲/宸ヤ笟浜掕仈缃戣川鎰燂紱楂樼骇銆佺畝娲併�佷笓涓氥�佷俊鎭瘑搴﹀悎鐞嗭紱閫傞厤 1920脳1080 涓庢櫘閫氱瑪璁版湰灞忋�傜姝細澶ч噺鍙戝厜/鐐厜/绮掑瓙鐗规晥/澶嶆潅 3D/鏃犳剰涔夊姩鐢�/杩囧害娓愬彉銆傝瑙変腑蹇冩槸涓氬姟閫昏緫銆�
+- 椤堕儴锛氶」鐩悕绉� + 涓氬姟鍏ㄦ櫙 + 姒傝鎸囨爣锛堥」鐩畾浣嶃�佹ā鍧楁暟銆佹牳蹇冧笟鍔¢摼銆佹牳蹇冨璞°�丄I 鑳藉姏锛夈��
+- 宸︿晶鍥哄畾瀵艰埅锛氶」鐩瑙� / 涓氬姟鍏ㄦ櫙 / 鏍稿績涓氬姟锛堥攢鍞�侀噰璐�佺敓浜с�佷粨鍌ㄣ�佽川閲忋�佸敭鍚庡悇娴佺▼锛�/ 绯荤粺鍏崇郴 / 鏁版嵁娴� / 涓氬姟瀵硅薄 / AI 涓氬姟 / 瑙掕壊鏉冮檺锛涚偣鍑诲垏鎹㈠彸渚у唴瀹广��
+- 棣栭〉涓轰笟鍔″叏鏅浘锛堟ā鍧楀叧绯绘寜鍒嗘瀽缁撴灉鐢熸垚锛夈��
+- 浜や簰锛氣憼妯″潡鍗$墖锛堝垪鍑鸿妯″潡鏍稿績鍗曟嵁/鍔熻兘锛岀偣鍑昏繘鍏ュ搴旀祦绋嬪浘锛夆憽姣忓紶 Mermaid 鍥炬敮鎸佹斁澶�/缂╁皬/鍏ㄥ睆 鈶笟鍔℃悳绱紙杈撳叆"閿�鍞鍗�/宸ュ崟/IQC"绛夛紝缁撴灉鏄剧ず锛氭墍鍦ㄦā鍧椼�佺浉鍏充笟鍔°�佸叧鑱斿崟鎹�佷笂娓搞�佷笅娓革級鈶d笟鍔″璞$偣鍑昏鎯咃紙浣滅敤銆佷笂娓搞�佷笅娓搞�佺浉鍏虫ā鍧楋級銆�
+- **鏁版嵁涓庨〉闈㈠垎绂�**锛氫笟鍔℃暟鎹斁 `data/*.json`锛孒TML 鍔犺浇娓叉煋锛岀姝㈠叏閮ㄧ‖缂栫爜鈥斺�斾笟鍔″彉鍖栨椂鍙洿鏂� JSON 鍜� mmd銆�
+- 棰滆壊锛氭寜涓氬姟绾垮皯閲忓尯鍒嗭紙鍩虹鏁版嵁/閿�鍞�/閲囪喘/鐢熶骇/浠撳偍/璐ㄩ噺/鍞悗/AI锛夛紝淇濇寔浼佷笟绾� UI锛屼笉杩囧鑹插僵銆�
+
+## 鑷娓呭崟
+
+- **鏂囦欢**锛歩ndex.html銆丷EADME.md銆�*.mmd銆�*.json 鍏ㄩ儴瀛樺湪銆�
+- **Mermaid**锛氳娉曟纭�佽妭鐐瑰懡鍚嶅彲璇汇�佹祦绋嬫柟鍚戞纭�佹棤瀛ょ珛鑺傜偣銆佹棤鏄庢樉閿欒鍏崇郴銆�
+- **HTML**锛氳娉曘�丆SS銆丣S銆丮ermaid 鍒濆鍖栥�佸鑸垏鎹€�佹悳绱€�佸叏灞忋�佸浘琛ㄦ覆鏌撻�愰」楠岃瘉锛堝彲鐢ㄦ祻瑙堝櫒鎵撳紑瀹炴祴锛夈��
+- **涓氬姟鍑嗙‘鎬� 10 闂�**锛堢瓟涓嶄笂鏉� 鈫� 鍥炲埌婧愮爜缁х画鍒嗘瀽锛夛細
+ 1. 椤圭洰鍒板簳瑙e喅浠�涔堥棶棰橈紵 2. 鏍稿績涓氬姟鏄粈涔堬紵 3. 鍝潯鏄富绾匡紵 4. 閿�鍞浣曞奖鍝嶇敓浜э紵 5. 閲囪喘濡備綍褰卞搷搴撳瓨锛� 6. 鐢熶骇濡備綍浜х敓搴撳瓨锛� 7. 璐ㄩ噺鍦ㄥ摢閲屼粙鍏ワ紵 8. 鍞悗濡備綍闂幆锛� 9. AI 鍦ㄥ摢閲屽弬涓庯紵 10. 妯″潡闂村浣曚骇鐢熸暟鎹叧绯伙紵
+
+## 缁存姢妯″紡
+
+**瑙﹀彂鏃舵満**鈥斺�斾竴娆′唬鐮佸彉鏇存秹鍙婁互涓嬩换涓�鍐呭锛岃嫢 `docs/project-business/` 宸插瓨鍦紝蹇呴』鍚屾缁存姢锛涜嫢灏氫笉瀛樺湪锛屽悜鐢ㄦ埛鎻愮ず鍙敓鎴愶紝涓嶅己鍒讹細
+
+- 鏂板/鍒犻櫎/閲嶅懡鍚嶄笟鍔℃ā鍧�
+- 鏂板/鍙樻洿鏍稿績涓氬姟瀵硅薄锛圖O銆佸崟鎹級
+- 娴佺▼姝ラ鏂板鎴栬皟鏁达紙濡傛姤宸ラ『搴忋�佸鎵圭幆鑺傘�侀��璐ц仈鍔級
+- 鐘舵�佹灇涓�/娴佽浆鍙樺寲
+- 妯″潡闂村叧绯�/鏁版嵁娴佸彉鍖栵紙鏂板璺ㄦā鍧� API 璋冪敤銆佸瓧娈靛甫鍏ワ級
+- AI 鑳藉姏鏂板/鍙樻洿
+- 瑙掕壊/鏉冮檺妯″瀷鍙樺寲
+
+**鍙樻洿 鈫� 鏇存柊鐩爣鏄犲皠**锛�
+
+| 鍙樻洿绫诲瀷 | 鏇存柊瀵硅薄 |
+|----------|----------|
+| 鏂版ā鍧� | modules.json銆�01 mindmap銆�08 module-relation銆乮ndex.html 瀵艰埅+鍗$墖 |
+| 鏂板崟鎹�/涓氬姟瀵硅薄 | objects.json銆�10 business-object銆佹墍澶勯摼璺殑 flow mmd |
+| 娴佺▼姝ラ璋冩暣 | 瀵瑰簲 `NN-*-flow.mmd` + flows.json |
+| 鐘舵�佹祦杞彉鍖� | 瀵瑰簲 flow mmd + objects.json 涓瀵硅薄鐘舵�佹弿杩� |
+| 璺ㄦā鍧楁暟鎹甫鍏�/鏁版嵁娴佸彉鍖� | 09 data-flow |
+| AI 鑳藉姏 | 11 ai-business-flow + business.json `aiCapabilities` |
+| 瑙掕壊/鏉冮檺 | roles.json + index.html 瑙掕壊鏉冮檺椤� |
+
+**缁存姢鍘熷垯**锛�
+
+- 澧為噺鏇存柊锛屽彧鏀瑰姩涓庢湰娆″彉鏇寸浉鍏崇殑鏂囦欢锛屼笉鏃犺剳鍏ㄩ噺閲嶇敓鎴愶紙鍋忓樊绱Н杩囧ぇ鏃舵墠鍏ㄩ噺閲嶅仛锛夈��
+- 鏇存柊鍐呭蹇呴』鏉ヨ嚜鏈鍙樻洿鍚庣殑瀹為檯浠g爜琛屼负锛岀姝㈡部鐢ㄦ棫鏂囨。鑷嗘祴銆�
+- 鏇存柊鍚庨拡瀵瑰彈褰卞搷鍥捐窇涓�閬嶅搴旇嚜妫�椤广��
+- 鈿� 淇敼 `mermaid/*.mmd` 鎴� `data/*.json` 鍚庯紝**蹇呴』**杩愯 `node .claude/skills/project-business-analysis/scripts/sync_index.js` 灏嗗唴瀹瑰洖鍐� index.html 鍐呭祵闀滃儚锛坒ile:// 鍙屽嚮渚濊禆闀滃儚锛沵md 鍐呯姝㈠嚭鐜� `<` 瀛楃锛岀敤 鈫�/灏忎簬 绛夋浛浠o級銆�
+
+## 姹囨姤鏍煎紡
+
+瀹屾垚鍚庣畝鐭眹鎶ワ紙涓嶈鎶婂ぇ閲忔簮鐮佸垎鏋愮粨鏋滃�惧�掑嚭鏉ワ級锛�
+
+```text
+鐢熸垚/鏇存柊鐩綍锛歞ocs/project-business/锛堝垪鍑烘湰娆℃秹鍙婄殑鏂囦欢锛�
+
+椤圭洰瀹氫綅锛歺xx
+鏍稿績涓氬姟涓荤嚎锛歺xx 鈫� xxx 鈫� xxx
+鏍稿績妯″潡锛歺xx銆亁xx
+AI 鑳藉姏锛歺xx
+鍙戠幇鐨勩�愬緟纭銆戜笟鍔★細xxx锛堝崟鐙垪鍑猴級
+```
\ No newline at end of file
diff --git a/.claude/skills/project-business-analysis/scripts/sync_index.js b/.claude/skills/project-business-analysis/scripts/sync_index.js
new file mode 100644
index 0000000..e7eda73
--- /dev/null
+++ b/.claude/skills/project-business-analysis/scripts/sync_index.js
@@ -0,0 +1,60 @@
+#!/usr/bin/env node
+// 灏� docs/project-business/ 涓嬬殑 mermaid/*.mmd 涓� data/*.json 鍚屾杩� index.html 鐨勫唴宓岄暅鍍忓潡銆�
+// file:// 鍗忚涓嬫祻瑙堝櫒 fetch 鏈湴 JSON 浼氳鎷︽埅锛宨ndex.html 鍐呭祵涓�浠介暅鍍忔暟鎹繚璇佸弻鍑诲彲寮�銆�
+// 缁存姢娴佺▼锛氭洿鏂� mermaid/*.mmd 鎴� data/*.json 鍚庤繍琛岋細
+// node .claude/skills/project-business-analysis/scripts/sync_index.js
+'use strict';
+const fs = require('fs');
+const path = require('path');
+
+const BASE = path.resolve(__dirname, '../../../../docs/project-business');
+const HTML = path.join(BASE, 'index.html');
+
+function sync() {
+ if (!fs.existsSync(HTML)) {
+ console.error(`[sync_index] 鎵句笉鍒� ${HTML}`);
+ process.exit(1);
+ }
+ let text = fs.readFileSync(HTML, 'utf8');
+
+ // 1) Mermaid 闀滃儚
+ let nMmd = 0;
+ text = text.replace(
+ /(<pre style="display:none" class="mmd-src" data-mmd="([^"]+)">)([\s\S]*?)(<\/pre>)/g,
+ (m, open, stem, content, close) => {
+ const file = path.join(BASE, 'mermaid', stem + '.mmd');
+ if (!fs.existsSync(file)) {
+ console.log(`[sync_index] 璺宠繃锛堟枃浠剁己澶憋級: ${stem}.mmd`);
+ return m;
+ }
+ const src = fs.readFileSync(file, 'utf8').trim();
+ if (/</.test(src)) {
+ throw new Error(`${stem}.mmd 鍚� '<' 瀛楃锛屼細鐮村潖 HTML 闀滃儚鍧楋紝璇锋敼鐢� 鈫�/灏忎簬 绛夊啓娉昤);
+ }
+ nMmd++;
+ return open + '\n' + src + '\n' + close;
+ }
+ );
+
+ // 2) JSON 闀滃儚
+ let nJson = 0;
+ text = text.replace(
+ /(<script type="application\/json" id="data-([^"]+)">)([\s\S]*?)(<\/script>)/g,
+ (m, open, key, content, close) => {
+ const file = path.join(BASE, 'data', key + '.json');
+ if (!fs.existsSync(file)) {
+ console.log(`[sync_index] 璺宠繃锛堟枃浠剁己澶憋級: ${key}.json`);
+ return m;
+ }
+ const raw = fs.readFileSync(file, 'utf8');
+ JSON.parse(raw); // 鏍¢獙鍚堟硶鎬�
+ nJson++;
+ return open + raw.trimEnd() + close;
+ }
+ );
+
+ fs.writeFileSync(HTML, text, 'utf8');
+ console.log(`[sync_index] 瀹屾垚锛歮ermaid 闀滃儚 ${nMmd} 澶勶紝JSON 闀滃儚 ${nJson} 澶刞);
+}
+
+sync();
\ No newline at end of file
diff --git a/.playwright-mcp/page-snapshot-2.txt b/.playwright-mcp/page-snapshot-2.txt
deleted file mode 100644
index b9c886d..0000000
--- a/.playwright-mcp/page-snapshot-2.txt
+++ /dev/null
@@ -1,156 +0,0 @@
-- generic [ref=f1e7]:
- - complementary [ref=f1e8]:
- - generic [ref=f1e9]:
- - link "宸ヤ笟AI鏅洪�犲钩鍙� 宸ヤ笟AI鏅洪�犲钩鍙�" [ref=f1e15] [cursor=pointer]:
- - /url: javascript:void 0
- - img "宸ヤ笟AI鏅洪�犲钩鍙�" [ref=f1e18]
- - generic [ref=f1e19]: 宸ヤ笟AI鏅洪�犲钩鍙�
- - menu [ref=f1e22]:
- - menuitem "棣栭〉" [ref=f1e23] [cursor=pointer]
- - listitem [ref=f1e30]:
- - generic [ref=f1e31] [cursor=pointer]: 鍩虹鏁版嵁
- - listitem [ref=f1e39]:
- - generic [ref=f1e40] [cursor=pointer]: 閲囪喘绠$悊
- - listitem [ref=f1e46]:
- - generic [ref=f1e47] [cursor=pointer]: 钀ラ攢绠$悊
- - listitem [ref=f1e53]:
- - generic [ref=f1e54] [cursor=pointer]: 璁惧绠$悊
- - listitem [ref=f1e61]:
- - generic [ref=f1e62] [cursor=pointer]: 浠撳偍鐗╂祦
- - listitem [ref=f1e70]:
- - generic [ref=f1e71] [cursor=pointer]: 鐢熶骇绠℃帶
- - listitem [ref=f1e78]:
- - generic [ref=f1e79] [cursor=pointer]: 璐ㄩ噺绠$悊
- - listitem [ref=f1e85]:
- - generic [ref=f1e86] [cursor=pointer]: 鍐崇瓥BI澶у睆
- - list [ref=f1e92]:
- - menuitem "閲囪喘閿�鍞敭鍚庡ぇ灞�" [ref=f1e93] [cursor=pointer]
- - menuitem "浠撳簱澶у睆" [ref=f1e98] [cursor=pointer]
- - menuitem "鐢熶骇璁惧澶у睆" [ref=f1e102] [cursor=pointer]
- - menuitem "璐ㄩ噺澶у睆" [ref=f1e110] [cursor=pointer]
- - menuitem "浜鸿祫鍔炲叕澶у睆" [ref=f1e116] [cursor=pointer]
- - listitem [ref=f1e123]:
- - generic [ref=f1e124] [cursor=pointer]: 閰嶇疆绠$悊
- - listitem [ref=f1e130]:
- - generic [ref=f1e131] [cursor=pointer]: 鍗忓悓鍔炲叕
- - listitem [ref=f1e137]:
- - generic [ref=f1e138] [cursor=pointer]: 浜哄姏璧勬簮
- - listitem [ref=f1e144]:
- - generic [ref=f1e145] [cursor=pointer]: 鍞悗绠$悊
- - listitem [ref=f1e151]:
- - generic [ref=f1e152] [cursor=pointer]: 鍩虹璁炬柦
- - listitem [ref=f1e158]:
- - generic [ref=f1e159] [cursor=pointer]: 绯荤粺绠$悊
- - listitem [ref=f1e165]:
- - generic [ref=f1e166] [cursor=pointer]: IM 鍗虫椂閫氳
- - generic [ref=f1e179]:
- - generic [ref=f1e180]:
- - banner [ref=f1e181]:
- - button [ref=f1e182] [cursor=pointer]
- - button [ref=f1e185] [cursor=pointer]
- - navigation "breadcrumb" [ref=f1e190]:
- - list [ref=f1e191]:
- - listitem [ref=f1e192]:
- - link [ref=f1e193] [cursor=pointer]:
- - /url: javascript:void 0
- - listitem [ref=f1e197]
- - listitem [ref=f1e200]:
- - link [disabled] [ref=f1e201]
- - generic [ref=f1e206]:
- - generic [ref=f1e208] [cursor=pointer]:
- - generic [ref=f1e212]: 鎼滅储
- - generic [ref=f1e213]: Ctrl K
- - button [ref=f1e215] [cursor=pointer]
- - button "dark" [ref=f1e220] [cursor=pointer]
- - button [ref=f1e229] [cursor=pointer]
- - button [ref=f1e235] [cursor=pointer]
- - button [ref=f1e238] [cursor=pointer]
- - button [ref=f1e244] [cursor=pointer]:
- - button [ref=f1e246]
- - button "宸ヤ綔鍙�" [ref=f1e250] [cursor=pointer]
- - button "婧愮爜" [ref=f1e254] [cursor=pointer]
- - generic [ref=f1e261]:
- - generic [ref=f1e266]:
- - generic [ref=f1e267] [cursor=pointer]: 棣栭〉
- - generic [ref=f1e285] [cursor=pointer]: 閲囪喘閿�鍞敭鍚庡ぇ灞�
- - button [ref=f1e303] [cursor=pointer]
- - main [ref=f1e321]:
- - generic [ref=f1e325]:
- - generic [ref=f1e328]:
- - generic [ref=f1e336]:
- - heading "閲囪喘 路 閿�鍞� 路 鍞悗" [level=1] [ref=f1e337]
- - paragraph [ref=f1e338]: 渚涘簲閾惧叏閾捐矾缁忚惀鍐崇瓥鐪嬫澘
- - generic [ref=f1e339]:
- - generic [ref=f1e340]:
- - generic [ref=f1e341]: 15:41:28
- - generic [ref=f1e342]: 2026骞�8鏈�5鏃ユ槦鏈熶笁
- - generic [ref=f1e343]:
- - generic [ref=f1e347]: 瀹炴椂
- - generic [ref=f1e348]: 路 15:41:11
- - button "鍏ㄥ睆 (F11)" [ref=f1e349] [cursor=pointer]
- - generic [ref=f1e352]:
- - generic [ref=f1e355] [cursor=pointer]:
- - generic [ref=f1e356]: 閲囪喘璁㈠崟鎬绘暟
- - text: "8"
- - generic [ref=f1e361] [cursor=pointer]:
- - generic [ref=f1e362]: 閿�鍞鍗曟�绘暟
- - text: "13"
- - generic [ref=f1e367] [cursor=pointer]:
- - generic [ref=f1e368]: 瀹㈡埛鎬绘暟
- - text: "4"
- - generic [ref=f1e373] [cursor=pointer]:
- - generic [ref=f1e374]: 渚涘簲鍟嗘�绘暟
- - text: "1"
- - generic [ref=f1e377]:
- - heading "閲囪喘璁㈠崟鏈堝害瓒嬪娍" [level=3] [ref=f1e381]
- - heading "閿�鍞鍗曟湀搴﹁秼鍔�" [level=3] [ref=f1e388]
- - heading "閲囪喘璁㈠崟鐘舵�佸垎甯�" [level=3] [ref=f1e395]
- - generic [ref=f1e399]:
- - heading "鏈�杩戦噰璐鍗�" [level=3] [ref=f1e400]
- - table [ref=f1e402]:
- - rowgroup [ref=f1e403]:
- - row [ref=f1e404]:
- - columnheader "璁㈠崟鍙�" [ref=f1e405]
- - columnheader "閲戦" [ref=f1e406]
- - columnheader "涓嬪崟鏃堕棿" [ref=f1e407]
- - rowgroup [ref=f1e408]:
- - row [ref=f1e409]:
- - cell "CGDD20260731000002" [ref=f1e410]
- - cell "100000" [ref=f1e411]
- - cell "2026-07-31 13:40:23" [ref=f1e412]
- - row [ref=f1e413]:
- - cell "CGDD20260731000001" [ref=f1e414]
- - cell "100000" [ref=f1e415]
- - cell "2026-07-31 13:37:07" [ref=f1e416]
- - row [ref=f1e417]:
- - cell "CGDD20260730000002" [ref=f1e418]
- - cell "1510554.6" [ref=f1e419]
- - cell "2026-07-30 17:44:23" [ref=f1e420]
- - row [ref=f1e421]:
- - cell "CGDD20260730000007" [ref=f1e422]
- - cell "100700" [ref=f1e423]
- - cell "2026-07-30 13:05:50" [ref=f1e424]
- - row [ref=f1e425]:
- - cell "CGDD20260730000001" [ref=f1e426]
- - cell "1378000" [ref=f1e427]
- - cell "2026-07-30 09:22:11" [ref=f1e428]
- - row [ref=f1e429]:
- - cell "CGDD20260729000005" [ref=f1e430]
- - cell "101" [ref=f1e431]
- - cell "2026-07-29 15:32:16" [ref=f1e432]
- - row [ref=f1e433]:
- - cell "CGDD20260729000004" [ref=f1e434]
- - cell "1111" [ref=f1e435]
- - cell "2026-07-29 15:00:13" [ref=f1e436]
- - row [ref=f1e437]:
- - cell "CGDD20260724000002" [ref=f1e438]
- - cell "10.1" [ref=f1e439]
- - cell "2026-07-24 14:41:07" [ref=f1e440]
- - row [ref=f1e441]:
- - cell "CGDD20260724000001" [ref=f1e442]
- - cell "23" [ref=f1e443]
- - cell "2026-07-24 09:41:44" [ref=f1e444]
- - row [ref=f1e445]:
- - cell "CGDD20260723000001" [ref=f1e446]
- - cell "10.38" [ref=f1e447]
- - cell "2026-07-23 17:11:43" [ref=f1e448]
\ No newline at end of file
diff --git a/.playwright-mcp/page-snapshot.txt b/.playwright-mcp/page-snapshot.txt
deleted file mode 100644
index 6433450..0000000
--- a/.playwright-mcp/page-snapshot.txt
+++ /dev/null
@@ -1,156 +0,0 @@
-- generic [ref=e7]:
- - complementary [ref=e8]:
- - generic [ref=e9]:
- - link "宸ヤ笟AI鏅洪�犲钩鍙� 宸ヤ笟AI鏅洪�犲钩鍙�" [ref=e15] [cursor=pointer]:
- - /url: javascript:void 0
- - img "宸ヤ笟AI鏅洪�犲钩鍙�" [ref=e18]
- - generic [ref=e19]: 宸ヤ笟AI鏅洪�犲钩鍙�
- - menu [ref=e22]:
- - menuitem "棣栭〉" [ref=e23] [cursor=pointer]
- - listitem [ref=e30]:
- - generic [ref=e31] [cursor=pointer]: 鍩虹鏁版嵁
- - listitem [ref=e39]:
- - generic [ref=e40] [cursor=pointer]: 閲囪喘绠$悊
- - listitem [ref=e46]:
- - generic [ref=e47] [cursor=pointer]: 钀ラ攢绠$悊
- - listitem [ref=e53]:
- - generic [ref=e54] [cursor=pointer]: 璁惧绠$悊
- - listitem [ref=e61]:
- - generic [ref=e62] [cursor=pointer]: 浠撳偍鐗╂祦
- - listitem [ref=e70]:
- - generic [ref=e71] [cursor=pointer]: 鐢熶骇绠℃帶
- - listitem [ref=e78]:
- - generic [ref=e79] [cursor=pointer]: 璐ㄩ噺绠$悊
- - listitem [ref=e85]:
- - generic [ref=e86] [cursor=pointer]: 鍐崇瓥BI澶у睆
- - list [ref=e92]:
- - menuitem "閲囪喘閿�鍞敭鍚庡ぇ灞�" [ref=e93] [cursor=pointer]
- - menuitem "浠撳簱澶у睆" [ref=e98] [cursor=pointer]
- - menuitem "鐢熶骇璁惧澶у睆" [ref=e102] [cursor=pointer]
- - menuitem "璐ㄩ噺澶у睆" [ref=e110] [cursor=pointer]
- - menuitem "浜鸿祫鍔炲叕澶у睆" [ref=e116] [cursor=pointer]
- - listitem [ref=e123]:
- - generic [ref=e124] [cursor=pointer]: 閰嶇疆绠$悊
- - listitem [ref=e130]:
- - generic [ref=e131] [cursor=pointer]: 鍗忓悓鍔炲叕
- - listitem [ref=e137]:
- - generic [ref=e138] [cursor=pointer]: 浜哄姏璧勬簮
- - listitem [ref=e144]:
- - generic [ref=e145] [cursor=pointer]: 鍞悗绠$悊
- - listitem [ref=e151]:
- - generic [ref=e152] [cursor=pointer]: 鍩虹璁炬柦
- - listitem [ref=e158]:
- - generic [ref=e159] [cursor=pointer]: 绯荤粺绠$悊
- - listitem [ref=e165]:
- - generic [ref=e166] [cursor=pointer]: IM 鍗虫椂閫氳
- - generic [ref=e179]:
- - generic [ref=e180]:
- - banner [ref=e181]:
- - button [ref=e182] [cursor=pointer]
- - button [ref=e185] [cursor=pointer]
- - navigation "breadcrumb" [ref=e190]:
- - list [ref=e191]:
- - listitem [ref=e192]:
- - link [ref=e193] [cursor=pointer]:
- - /url: javascript:void 0
- - listitem [ref=e197]
- - listitem [ref=e200]:
- - link [disabled] [ref=e201]
- - generic [ref=e206]:
- - generic [ref=e208] [cursor=pointer]:
- - generic [ref=e212]: 鎼滅储
- - generic [ref=e213]: Ctrl K
- - button [ref=e215] [cursor=pointer]
- - button "dark" [ref=e220] [cursor=pointer]
- - button [ref=e229] [cursor=pointer]
- - button [ref=e235] [cursor=pointer]
- - button [ref=e238] [cursor=pointer]
- - button [ref=e244] [cursor=pointer]:
- - button [ref=e246]
- - button "宸ヤ綔鍙�" [ref=e250] [cursor=pointer]
- - button "婧愮爜" [ref=e254] [cursor=pointer]
- - generic [ref=e261]:
- - generic [ref=e266]:
- - generic [ref=e267] [cursor=pointer]: 棣栭〉
- - generic [ref=e285] [cursor=pointer]: 閲囪喘閿�鍞敭鍚庡ぇ灞�
- - button [ref=e303] [cursor=pointer]
- - main [ref=e321]:
- - generic [ref=e325]:
- - generic [ref=e328]:
- - generic [ref=e336]:
- - heading "閲囪喘 路 閿�鍞� 路 鍞悗" [level=1] [ref=e337]
- - paragraph [ref=e338]: 渚涘簲閾惧叏閾捐矾缁忚惀鍐崇瓥鐪嬫澘
- - generic [ref=e339]:
- - generic [ref=e340]:
- - generic [ref=e341]: 15:37:12
- - generic [ref=e342]: 2026骞�8鏈�5鏃ユ槦鏈熶笁
- - generic [ref=e343]:
- - generic [ref=e347]: 瀹炴椂
- - generic [ref=e348]: 路 15:36:52
- - button "鍏ㄥ睆" [ref=e349] [cursor=pointer]
- - generic [ref=e352]:
- - generic [ref=e356] [cursor=pointer]:
- - generic [ref=e357]: 閲囪喘璁㈠崟鎬绘暟
- - generic [ref=e360]: "14"
- - generic [ref=e371] [cursor=pointer]:
- - generic [ref=e372]: 閿�鍞鍗曟�绘暟
- - generic [ref=e375]: "22"
- - generic [ref=e386] [cursor=pointer]:
- - generic [ref=e387]: 瀹㈡埛鎬绘暟
- - generic [ref=e390]: "6"
- - generic [ref=e401] [cursor=pointer]:
- - generic [ref=e402]: 渚涘簲鍟嗘�绘暟
- - generic [ref=e405]: "1"
- - generic [ref=e413]:
- - heading "閲囪喘璁㈠崟鏈堝害瓒嬪娍" [level=3] [ref=e417]
- - heading "閿�鍞鍗曟湀搴﹁秼鍔�" [level=3] [ref=e424]
- - heading "閲囪喘璁㈠崟鐘舵�佸垎甯�" [level=3] [ref=e431]
- - generic [ref=e437]:
- - heading "鏈�杩戦噰璐鍗�" [level=3] [ref=e438]
- - table [ref=e440]:
- - rowgroup [ref=e441]:
- - row [ref=e442]:
- - columnheader "璁㈠崟鍙�" [ref=e443]
- - columnheader "閲戦" [ref=e444]
- - columnheader "涓嬪崟鏃堕棿" [ref=e445]
- - rowgroup [ref=e446]:
- - row [ref=e447]:
- - cell "CGDD20260731000002" [ref=e448]
- - cell "100000" [ref=e449]
- - cell "2026-07-31 13:40:23" [ref=e450]
- - row [ref=e451]:
- - cell "CGDD20260731000001" [ref=e452]
- - cell "100000" [ref=e453]
- - cell "2026-07-31 13:37:07" [ref=e454]
- - row [ref=e455]:
- - cell "CGDD20260730000002" [ref=e456]
- - cell "1510554.6" [ref=e457]
- - cell "2026-07-30 17:44:23" [ref=e458]
- - row [ref=e459]:
- - cell "CGDD20260730000007" [ref=e460]
- - cell "100700" [ref=e461]
- - cell "2026-07-30 13:05:50" [ref=e462]
- - row [ref=e463]:
- - cell "CGDD20260730000001" [ref=e464]
- - cell "1378000" [ref=e465]
- - cell "2026-07-30 09:22:11" [ref=e466]
- - row [ref=e467]:
- - cell "CGDD20260729000005" [ref=e468]
- - cell "101" [ref=e469]
- - cell "2026-07-29 15:32:16" [ref=e470]
- - row [ref=e471]:
- - cell "CGDD20260729000004" [ref=e472]
- - cell "1111" [ref=e473]
- - cell "2026-07-29 15:00:13" [ref=e474]
- - row [ref=e475]:
- - cell "CGDD20260724000002" [ref=e476]
- - cell "10.1" [ref=e477]
- - cell "2026-07-24 14:41:07" [ref=e478]
- - row [ref=e479]:
- - cell "CGDD20260724000001" [ref=e480]
- - cell "23" [ref=e481]
- - cell "2026-07-24 09:41:44" [ref=e482]
- - row [ref=e483]:
- - cell "CGDD20260723000001" [ref=e484]
- - cell "10.38" [ref=e485]
- - cell "2026-07-23 17:11:43" [ref=e486]
\ No newline at end of file
diff --git "a/docs/Claude Code Agent\357\274\232\351\241\271\347\233\256\344\270\232\345\212\241\345\210\206\346\236\220 + Mermaid + HTML \345\217\257\350\247\206\345\214\226\347\224\237\346\210\220 Prompt.md" "b/docs/Claude Code Agent\357\274\232\351\241\271\347\233\256\344\270\232\345\212\241\345\210\206\346\236\220 + Mermaid + HTML \345\217\257\350\247\206\345\214\226\347\224\237\346\210\220 Prompt.md"
new file mode 100644
index 0000000..64a863b
--- /dev/null
+++ "b/docs/Claude Code Agent\357\274\232\351\241\271\347\233\256\344\270\232\345\212\241\345\210\206\346\236\220 + Mermaid + HTML \345\217\257\350\247\206\345\214\226\347\224\237\346\210\220 Prompt.md"
@@ -0,0 +1,1492 @@
+
+# Claude Code Agent锛氶」鐩笟鍔″垎鏋愪笌鍙鍖栫敓鎴�
+
+浣犵幇鍦ㄦ槸涓�鍚嶈祫娣辩殑锛�
+
+- 浼佷笟鏁板瓧鍖栨灦鏋勫笀
+- 涓氬姟娴佺▼鍒嗘瀽甯�
+- Java鏋舵瀯甯�
+- 鍓嶇鍙鍖栧伐绋嬪笀
+- 椤圭洰鏂囨。宸ョ▼甯�
+
+浣犵殑浠诲姟涓嶆槸绠�鍗曢槄璇讳唬鐮侊紝鑰屾槸锛�
+
+> **浠庡綋鍓嶉」鐩簮鐮佷腑杩樺師鐪熷疄涓氬姟锛屽缓绔嬮」鐩笟鍔$煡璇嗘ā鍨嬶紝骞惰嚜鍔ㄧ敓鎴� Mermaid 涓氬姟鍥惧拰涓�涓彲浠ョ洿鎺ユ祻瑙堢殑 HTML 椤圭洰涓氬姟鍙鍖栭〉闈€��**
+
+鏈�缁堢洰鏍囷細
+
+> 璁╀竴涓畬鍏ㄤ笉浜嗚В杩欎釜椤圭洰鐨勪汉锛屼粎閫氳繃鎵撳紑 `index.html`锛屽氨鑳藉蹇�熺悊瑙h繖涓」鐩槸鍋氫粈涔堢殑銆佹湁鍝簺妯″潡銆佹牳蹇冧笟鍔℃�庝箞娴佽浆銆佹ā鍧椾箣闂村浣曞崗浣溿�佹暟鎹浣曟祦杞��
+
+---
+
+# 涓�銆佹墽琛屽師鍒�
+
+## 1. 蹇呴』鍒嗘瀽鐪熷疄婧愮爜
+
+浼樺厛鍒嗘瀽锛�
+
+```text
+鍚庣
+鈹溾攢鈹� Controller
+鈹溾攢鈹� Service
+鈹溾攢鈹� Mapper
+鈹溾攢鈹� Entity
+鈹溾攢鈹� DTO
+鈹溾攢鈹� VO
+鈹溾攢鈹� Enum
+鈹溾攢鈹� Config
+鈹溾攢鈹� Job
+鈹斺攢鈹� Utils
+
+鏁版嵁搴�
+鈹溾攢鈹� 寤鸿〃SQL
+鈹溾攢鈹� 瀛楁
+鈹溾攢鈹� 澶栭敭
+鈹溾攢鈹� 绱㈠紩
+鈹斺攢鈹� 鐘舵�佸瓧娈�
+
+鍓嶇
+鈹溾攢鈹� 椤甸潰
+鈹溾攢鈹� API
+鈹溾攢鈹� 璺敱
+鈹溾攢鈹� 鑿滃崟
+鈹斺攢鈹� 鏉冮檺
+
+绯荤粺閰嶇疆
+鈹溾攢鈹� application.yml
+鈹溾攢鈹� application-*.yml
+鈹溾攢鈹� Docker
+鈹溾攢鈹� MQ
+鈹溾攢鈹� Redis
+鈹溾攢鈹� 绗笁鏂规帴鍙�
+鈹斺攢鈹� AI鐩稿叧閰嶇疆
+```
+
+涓嶈鍙湅鐩綍鍚嶇О銆�
+
+涓嶈鏍规嵁绫诲悕鐩存帴鐚滀笟鍔°��
+
+---
+
+# 浜屻�佽嚜鍔ㄥ垽鏂」鐩被鍨�
+
+棣栧厛鍒ゆ柇褰撳墠椤圭洰灞炰簬浠�涔堢被鍨嬶細
+
+渚嬪锛�
+
+```text
+ERP
+MES
+MOM
+WMS
+SRM
+CRM
+OA
+PLM
+LIMS
+璐㈠姟绯荤粺
+渚涘簲閾剧郴缁�
+鍒堕�犱笟鏁板瓧鍖栧钩鍙�
+缁煎悎涓氬姟绯荤粺
+```
+
+濡傛灉鏄贩鍚堢郴缁燂紝璇存槑锛�
+
+```text
+绯荤粺绫诲瀷锛�
+涓荤郴缁燂細
+瀛愮郴缁燂細
+涓氬姟瀹氫綅锛�
+```
+
+---
+
+# 涓夈�佸缓绔嬩笟鍔$煡璇嗘ā鍨�
+
+鍒嗘瀽椤圭洰鍚庯紝鍏堜笉瑕佹�ョ潃鐢熸垚HTML銆�
+
+鍏堝缓绔嬪唴閮ㄤ笟鍔℃ā鍨嬶細
+
+```text
+椤圭洰
+鈹�
+鈹溾攢鈹� 绯荤粺瀹氫綅
+鈹�
+鈹溾攢鈹� 涓氬姟妯″潡
+鈹�
+鈹溾攢鈹� 涓氬姟瀵硅薄
+鈹�
+鈹溾攢鈹� 涓氬姟瑙掕壊
+鈹�
+鈹溾攢鈹� 涓氬姟娴佺▼
+鈹�
+鈹溾攢鈹� 鍗曟嵁
+鈹�
+鈹溾攢鈹� 鐘舵��
+鈹�
+鈹溾攢鈹� 鏁版嵁娴�
+鈹�
+鈹溾攢鈹� 妯″潡鍏崇郴
+鈹�
+鈹溾攢鈹� 鏉冮檺鍏崇郴
+鈹�
+鈹溾攢鈹� 绗笁鏂圭郴缁�
+鈹�
+鈹斺攢鈹� AI鑳藉姏
+```
+
+---
+
+# 鍥涖�佽瘑鍒笟鍔℃ā鍧�
+
+涓嶈绠�鍗曟寜鐓� Java package 鍒嗙被銆�
+
+鎸夌収涓氬姟鎰忎箟閲嶆柊褰掔被銆�
+
+渚嬪锛�
+
+```text
+椤圭洰
+鈹溾攢鈹� 鍩虹鏁版嵁
+鈹溾攢鈹� 閿�鍞鐞�
+鈹溾攢鈹� 閲囪喘绠$悊
+鈹溾攢鈹� 鐢熶骇绠$悊
+鈹溾攢鈹� 浠撳偍绠$悊
+鈹溾攢鈹� 璐ㄩ噺绠$悊
+鈹溾攢鈹� 鍞悗绠$悊
+鈹溾攢鈹� 璐㈠姟绠$悊
+鈹溾攢鈹� OA
+鈹溾攢鈹� 绯荤粺绠$悊
+鈹斺攢鈹� AI鏅鸿兘鍔╂墜
+```
+
+瀹為檯椤圭洰鏈変粈涔堝氨鐢熸垚浠�涔堛��
+
+姣忎釜妯″潡蹇呴』鎻愬彇锛�
+
+```text
+妯″潡鍚嶇О
+妯″潡瀹氫綅
+瑙e喅鐨勯棶棰�
+鏍稿績鍔熻兘
+鏍稿績涓氬姟瀵硅薄
+涓昏瑙掕壊
+涓婃父妯″潡
+涓嬫父妯″潡
+鏍稿績鏁版嵁搴撹〃
+鏍稿績涓氬姟娴佺▼
+```
+
+---
+
+# 浜斻�佽瘑鍒牳蹇冧笟鍔″璞�
+
+浠庯細
+
+- Entity
+- SQL
+- Service
+- Controller
+- 鍓嶇椤甸潰
+- 鐘舵�佸瓧娈�
+- 鍗曟嵁缂栧彿
+- 涓氬姟ID
+
+鎻愬彇鐪熸鐨勪笟鍔″璞°��
+
+渚嬪锛�
+
+```text
+瀹㈡埛
+渚涘簲鍟�
+浜у搧
+鐗╂枡
+BOM
+宸ヨ壓
+閿�鍞鍗�
+閲囪喘璁㈠崟
+鐢熶骇璁″垝
+鐢熶骇浠诲姟
+搴撳瓨
+璐ㄦ鍗�
+鍏ュ簱鍗�
+鍑哄簱鍗�
+鍞悗宸ュ崟
+```
+
+涓嶈鎶婃墍鏈夋妧鏈〃閮芥斁杩涘幓銆�
+
+鍙繚鐣欑湡姝f湁涓氬姟浠峰�肩殑瀵硅薄銆�
+
+---
+
+# 鍏�佽瘑鍒笟鍔′富绾�
+
+閲嶇偣瀵绘壘锛�
+
+> 涓�椤逛笟鍔′粠鍝噷寮�濮嬶紝缁忚繃鍝簺姝ラ锛屾渶鍚庝骇鐢熶粈涔堢粨鏋溿��
+
+渚嬪锛�
+
+## 閿�鍞� 鈫� 鐢熶骇 鈫� 浠撳偍 鈫� 鍙戣揣
+
+```text
+瀹㈡埛
+ 鈫�
+閿�鍞鍗�
+ 鈫�
+鏄惁闇�瑕佺敓浜�
+ 鈫�
+鐢熶骇璁″垝
+ 鈫�
+鐢熶骇浠诲姟
+ 鈫�
+鐢熶骇棰嗘枡
+ 鈫�
+鐢熶骇
+ 鈫�
+璐ㄩ噺妫�楠�
+ 鈫�
+瀹屽伐鍏ュ簱
+ 鈫�
+閿�鍞彂璐�
+ 鈫�
+鍑哄簱
+```
+
+瀹為檯椤圭洰蹇呴』浠ヤ唬鐮佷负鍑嗐��
+
+---
+
+# 涓冦�佽瘑鍒噰璐祦绋�
+
+渚嬪锛�
+
+```text
+閲囪喘闇�姹�
+ 鈫�
+閲囪喘鐢宠
+ 鈫�
+瀹℃壒
+ 鈫�
+閲囪喘璁㈠崟
+ 鈫�
+渚涘簲鍟嗛�佽揣
+ 鈫�
+鍒拌揣
+ 鈫�
+IQC
+ 鈹溾攢鈹� 鍚堟牸 鈫� 鍏ュ簱
+ 鈹溾攢鈹� 涓嶅悎鏍� 鈫� 閫�璐�
+ 鈹斺攢鈹� 鐗归噰 鈫� 鍏ュ簱
+```
+
+濡傛灉椤圭洰瀛樺湪锛�
+
+```text
+渚涘簲鍟嗗噯鍏�
+璇环
+鎷涙爣
+鎶ヤ环
+璇勬爣
+瀹氭爣
+閲囪喘璁㈠崟
+鍒拌揣
+IQC
+渚涘簲鍟嗙哗鏁�
+```
+
+璇峰畬鏁翠綋鐜般��
+
+---
+
+# 鍏�佽瘑鍒敓浜ф祦绋�
+
+鍒嗘瀽锛�
+
+```text
+鐢熶骇闇�姹�
+ 鈫�
+鐢熶骇璁″垝
+ 鈫�
+鐢熶骇浠诲姟
+ 鈫�
+BOM
+ 鈫�
+宸ヨ壓璺嚎
+ 鈫�
+棰嗘枡
+ 鈫�
+鐢熶骇
+ 鈫�
+鎶ュ伐
+ 鈫�
+杩囩▼璐ㄩ噺
+ 鈫�
+瀹屽伐
+ 鈫�
+鎴愬搧鍏ュ簱
+```
+
+濡傛灉椤圭洰瀛樺湪锛�
+
+- APS
+- 鎺掍骇
+- 宸ュ簭
+- 宸ヤ綔涓績
+- 璁惧
+- 宸ユ椂
+- 鎶ュ伐
+- 鐢熶骇寮傚父
+- 绾胯竟浠�
+
+蹇呴』浣撶幇銆�
+
+---
+
+# 涔濄�佽瘑鍒川閲忔祦绋�
+
+渚嬪锛�
+
+```text
+閲囪喘鍒拌揣
+ 鈫�
+IQC
+ 鈫�
+鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+鈹� 鈹�
+鍚堟牸 涓嶅悎鏍�
+鈹� 鈹�
+鈫� 鈫�
+鍏ュ簱 閫�璐�/鐗归噰
+```
+
+鍚屾椂鍒嗘瀽锛�
+
+```text
+IPQC
+OQC
+涓嶅悎鏍煎搧
+璐ㄩ噺寮傚父
+璐ㄩ噺鍒ゅ畾
+妫�楠屾爣鍑�
+```
+
+瀹為檯瀛樺湪浠�涔堝氨鐢熸垚浠�涔堛��
+
+---
+
+# 鍗併�佽瘑鍒粨鍌ㄦ祦绋�
+
+鍒嗘瀽锛�
+
+```text
+閲囪喘
+ 鈫�
+閲囪喘鍏ュ簱
+
+鐢熶骇
+ 鈫�
+鐢熶骇鍏ュ簱
+
+閿�鍞�
+ 鈫�
+閿�鍞嚭搴�
+
+鐢熶骇
+ 鈫�
+鐢熶骇棰嗘枡
+
+搴撳瓨
+ 鈫�
+鐩樼偣
+ 鈫�
+搴撳瓨璋冩暣
+```
+
+濡傛灉瀛樺湪锛�
+
+- 鍘熸潗鏂欎粨
+- 鍗婃垚鍝佷粨
+- 鎴愬搧浠�
+- 绾胯竟浠�
+- 铏氭嫙浠�
+
+闇�瑕佷綋鐜般��
+
+---
+
+# 鍗佷竴銆佽瘑鍒敭鍚庢祦绋�
+
+濡傛灉瀛樺湪鍞悗涓氬姟锛�
+
+```text
+瀹㈡埛鍙嶉
+ 鈫�
+鍞悗宸ュ崟
+ 鈫�
+娲惧伐
+ 鈫�
+澶勭悊
+ 鈫�
+璐ㄩ噺纭
+ 鈫�
+瀹㈡埛纭
+ 鈫�
+鍏抽棴
+ 鈫�
+褰掓。
+```
+
+濡傛灉瀛樺湪锛�
+
+```text
+杞��璐�
+缁翠慨
+鎹㈣揣
+琛ュ彂
+璐圭敤
+瀹㈡埛纭
+```
+
+涔熼渶瑕佷綋鐜般��
+
+---
+
+# 鍗佷簩銆佽瘑鍒獳I涓氬姟鑳藉姏
+
+濡傛灉椤圭洰涓瓨鍦ˋI浠g爜锛岄噸鐐瑰垎鏋愶細
+
+```text
+AI鍔╂墜
+鈹溾攢鈹� 鐢熶骇鍔╂墜
+鈹溾攢鈹� 閿�鍞姪鎵�
+鈹溾攢鈹� 閲囪喘鍔╂墜
+鈹溾攢鈹� 璐㈠姟鍔╂墜
+鈹溾攢鈹� 璐ㄩ噺鍔╂墜
+鈹斺攢鈹� 鍞悗鍔╂墜
+```
+
+閲嶇偣鍒嗘瀽AI鍒板簳鍋氫簡浠�涔堛��
+
+涓嶈鍙啓锛�
+
+> 浣跨敤浜嗗ぇ妯″瀷銆�
+
+闇�瑕佹槑纭細
+
+```text
+鐢ㄦ埛闂
+ 鈫�
+AI
+ 鈫�
+鐭ヨ瘑搴� / RAG
+ 鈫�
+涓氬姟绯荤粺鏌ヨ
+ 鈫�
+涓氬姟鏁版嵁
+ 鈫�
+AI鍒嗘瀽
+ 鈫�
+杩斿洖缁撴灉
+```
+
+濡傛灉AI鍙互璋冪敤涓氬姟鎺ュ彛锛�
+
+```text
+AI
+ 鈫�
+Function Calling
+ 鈫�
+涓氬姟API
+ 鈫�
+鏁版嵁搴�
+ 鈫�
+涓氬姟鎿嶄綔
+```
+
+蹇呴』閲嶇偣灞曠ず銆�
+
+---
+
+# 鍗佷笁銆佽瘑鍒鑹�
+
+鍒嗘瀽锛�
+
+```text
+绠$悊鍛�
+閿�鍞�
+閲囪喘
+鐢熶骇璁″垝鍛�
+鐢熶骇浜哄憳
+浠撳簱浜哄憳
+璐ㄩ噺浜哄憳
+鍞悗浜哄憳
+璐㈠姟
+绠$悊灞�
+```
+
+瀹為檯椤圭洰鏈夊摢浜涘氨鐢熸垚鍝簺銆�
+
+璇存槑锛�
+
+```text
+瑙掕壊
+ 鈫�
+鍙互鎿嶄綔鍝簺涓氬姟
+ 鈫�
+浜х敓浠�涔堟暟鎹�
+```
+
+---
+
+# 鍗佸洓銆佽瘑鍒姸鎬佹祦杞�
+
+閲嶇偣瀵绘壘鎵�鏈夛細
+
+```text
+status
+state
+type
+auditStatus
+approvalStatus
+checkStatus
+orderStatus
+```
+
+鍒嗘瀽鐪熷疄鐘舵�併��
+
+渚嬪锛�
+
+```text
+鑽夌
+ 鈫�
+鎻愪氦
+ 鈫�
+瀹℃壒
+ 鈫�
+瀹℃牳閫氳繃
+ 鈫�
+鎵ц涓�
+ 鈫�
+瀹屾垚
+ 鈫�
+鍏抽棴
+```
+
+浠ュ強锛�
+
+```text
+寰呮
+ 鈫�
+鍚堟牸
+ 鈫�
+鍏ュ簱
+```
+
+涓嶈鑷澧炲姞浠g爜涓嶅瓨鍦ㄧ殑鐘舵�併��
+
+---
+
+# 鍗佷簲銆佺敓鎴� Mermaid 鎬濈淮瀵煎浘
+
+鐢熸垚锛�
+
+```text
+docs/project-business/
+鈹溾攢鈹� mermaid/
+鈹� 鈹溾攢鈹� 01-business-mindmap.mmd
+鈹� 鈹溾攢鈹� 02-sales-flow.mmd
+鈹� 鈹溾攢鈹� 03-purchase-flow.mmd
+鈹� 鈹溾攢鈹� 04-production-flow.mmd
+鈹� 鈹溾攢鈹� 05-quality-flow.mmd
+鈹� 鈹溾攢鈹� 06-warehouse-flow.mmd
+鈹� 鈹溾攢鈹� 07-after-sales-flow.mmd
+鈹� 鈹溾攢鈹� 08-module-relation.mmd
+鈹� 鈹溾攢鈹� 09-data-flow.mmd
+鈹� 鈹溾攢鈹� 10-business-object.mmd
+鈹� 鈹斺攢鈹� 11-ai-business-flow.mmd
+```
+
+---
+
+# 鍗佸叚銆丮ermaid鎬濈淮瀵煎浘
+
+浣跨敤 Mermaid `mindmap`銆�
+
+渚嬪锛�
+
+```mermaid
+mindmap
+ root((宸ュ巶鏁板瓧鍖朚OM))
+ 鍩虹鏁版嵁
+ 鐗╂枡
+ 浜у搧
+ BOM
+ 宸ヨ壓
+ 宸ヤ綔涓績
+
+ 閿�鍞鐞�
+ 瀹㈡埛
+ 閿�鍞鍗�
+ 鍙戣揣
+
+ 鐢熶骇绠$悊
+ 鐢熶骇璁″垝
+ 鐢熶骇浠诲姟
+ 棰嗘枡
+ 鎶ュ伐
+ 瀹屽伐鍏ュ簱
+
+ 閲囪喘绠$悊
+ 閲囪喘鐢宠
+ 閲囪喘璁㈠崟
+ 鍒拌揣
+ IQC
+
+ 浠撳偍绠$悊
+ 鍏ュ簱
+ 鍑哄簱
+ 搴撳瓨
+ 鐩樼偣
+
+ 璐ㄩ噺绠$悊
+ IQC
+ IPQC
+ OQC
+ 涓嶅悎鏍煎搧
+
+ 鍞悗绠$悊
+ 鍞悗宸ュ崟
+ 娲惧伐
+ 缁翠慨
+ 瀹㈡埛纭
+
+ AI鏅鸿兘鍔╂墜
+ 鐢熶骇鍔╂墜
+ 閿�鍞姪鎵�
+ 閲囪喘鍔╂墜
+ RAG鐭ヨ瘑搴�
+```
+
+瀹為檯鍐呭蹇呴』鏉ヨ嚜椤圭洰銆�
+
+---
+
+# 鍗佷竷銆佺敓鎴� Mermaid 涓氬姟娴佺▼鍥�
+
+姣忔潯鏍稿績涓氬姟鍗曠嫭鐢熸垚銆�
+
+渚嬪锛�
+
+```mermaid
+flowchart TD
+ A[閿�鍞鍗昡 --> B{鏄惁闇�瑕佺敓浜
+
+ B -->|鏄瘄 C[鐢熶骇璁″垝]
+ C --> D[鐢熶骇浠诲姟]
+ D --> E[棰嗘枡]
+ E --> F[鐢熶骇]
+ F --> G[璐ㄩ噺妫�楠宂
+ G --> H[瀹屽伐鍏ュ簱]
+ H --> I[閿�鍞彂璐
+ I --> J[鍑哄簱]
+
+ B -->|鍚 K[澶囪揣]
+ K --> I
+```
+
+---
+
+# 鍗佸叓銆佺敓鎴� Mermaid 绯荤粺鍏崇郴鍥�
+
+浣跨敤锛�
+
+```mermaid
+flowchart LR
+```
+
+灞曠ず锛�
+
+```text
+閿�鍞�
+鐢熶骇
+閲囪喘
+浠撳偍
+璐ㄩ噺
+鍞悗
+璐㈠姟
+OA
+AI
+```
+
+涔嬮棿鐨勫叧绯汇��
+
+---
+
+# 鍗佷節銆佺敓鎴� Mermaid 鏁版嵁鍏崇郴鍥�
+
+浣跨敤锛�
+
+```mermaid
+erDiagram
+```
+
+浣嗗彧灞曠ず鏍稿績涓氬姟瀵硅薄銆�
+
+涓嶈鎶婂嚑鐧惧紶鎶�鏈〃鍏ㄩ儴鐢诲嚭鏉ャ��
+
+閲嶇偣锛�
+
+```text
+瀹㈡埛
+閿�鍞鍗�
+鐢熶骇璁″垝
+鐢熶骇浠诲姟
+閲囪喘璁㈠崟
+搴撳瓨
+鍏ュ簱
+鍑哄簱
+璐ㄩ噺妫�楠�
+鍞悗宸ュ崟
+```
+
+---
+
+# 浜屽崄銆佺敓鎴� HTML 鍙鍖栭〉闈�
+
+杩欐槸鏈换鍔℃渶閲嶈鐨勯儴鍒嗐��
+
+鍒涘缓锛�
+
+```text
+docs/project-business/index.html
+```
+
+瑕佹眰锛�
+
+> **杩欐槸涓�涓嫭绔嬪彲鎵撳紑鐨勯」鐩笟鍔″彲瑙嗗寲椤甸潰銆�**
+
+鐢ㄦ埛鍙互鐩存帴锛�
+
+```text
+鍙屽嚮 index.html
+```
+
+鎵撳紑銆�
+
+---
+
+# 浜屽崄涓�銆丠TML椤甸潰鏁翠綋璁捐
+
+椤甸潰椋庢牸锛�
+
+> **楂樼骇浼佷笟鏁板瓧鍖� / 宸ヤ笟浜掕仈缃� / 鍒堕�犱笟鏁板瓧瀛敓椋庢牸**
+
+浣嗕笉瑕佸仛鎴愯姳閲岃儭鍝ㄧ殑鐐妧椤甸潰銆�
+
+瑕佹眰锛�
+
+- 娣辫壊绉戞妧椋�
+- 楂樼骇
+- 绠�娲�
+- 涓撲笟
+- 淇℃伅瀵嗗害鍚堢悊
+- 閫傚悎椤圭洰姹囨姤
+- 閫傚悎鏂颁汉鍩硅
+- 閫傚悎瀹㈡埛婕旂ず
+
+---
+
+# 浜屽崄浜屻�丠TML椤甸潰缁撴瀯
+
+椤甸潰椤堕儴锛�
+
+```text
+椤圭洰鍚嶇О
+椤圭洰涓氬姟鍏ㄦ櫙
+```
+
+涓嬮潰鏄剧ず锛�
+
+```text
+椤圭洰瀹氫綅
+涓氬姟妯″潡鏁伴噺
+鏍稿績涓氬姟閾�
+鏍稿績涓氬姟瀵硅薄
+AI鑳藉姏
+```
+
+---
+
+# 浜屽崄涓夈�丠TML宸︿晶瀵艰埅
+
+宸︿晶锛�
+
+```text
+椤圭洰姒傝
+
+涓氬姟鍏ㄦ櫙
+
+鏍稿績涓氬姟
+鈹溾攢鈹� 閿�鍞祦绋�
+鈹溾攢鈹� 閲囪喘娴佺▼
+鈹溾攢鈹� 鐢熶骇娴佺▼
+鈹溾攢鈹� 浠撳偍娴佺▼
+鈹溾攢鈹� 璐ㄩ噺娴佺▼
+鈹斺攢鈹� 鍞悗娴佺▼
+
+绯荤粺鍏崇郴
+
+鏁版嵁娴�
+
+涓氬姟瀵硅薄
+
+AI涓氬姟
+
+瑙掕壊鏉冮檺
+```
+
+鐐瑰嚮鍚庡彸渚у唴瀹瑰垏鎹€��
+
+---
+
+# 浜屽崄鍥涖�侀椤碉細涓氬姟鍏ㄦ櫙
+
+棣栭〉灞曠ず锛�
+
+```text
+ 椤圭洰鍚嶇О
+
+ 鍩虹鏁版嵁 鈹�鈹�鈫� 閿�鍞�
+ 鈹� 鈹�
+ 鈫� 鈫�
+ 閲囪喘 鈹�鈹�鈫� 鐢熶骇
+ 鈹� 鈹�
+ 鈫� 鈫�
+ 浠撳偍 鈫愨攢鈹�鈹� 璐ㄩ噺
+ 鈹�
+ 鈫�
+ 鍞悗
+
+ 鈫�
+ 鈹�
+ AI
+```
+
+瀹為檯椤圭洰鍏崇郴鎸夌収鍒嗘瀽缁撴灉鐢熸垚銆�
+
+---
+
+# 浜屽崄浜斻�丠TML蹇呴』鏀寔Mermaid
+
+浣跨敤 Mermaid 娓叉煋鍥俱��
+
+鍙互閫氳繃 CDN锛�
+
+```html
+<script type="module">
+import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.esm.min.mjs';
+
+mermaid.initialize({
+ startOnLoad: true,
+ theme: 'dark'
+});
+</script>
+```
+
+浣嗘槸锛�
+
+> 濡傛灉褰撳墠椤圭洰宸茬粡瀛樺湪鍓嶇渚濊禆锛屼紭鍏堝鐢ㄩ」鐩凡鏈� Mermaid 鐗堟湰銆�
+
+濡傛灉鏄函HTML锛屽垯浣跨敤 CDN銆�
+
+---
+
+# 浜屽崄鍏�佷氦浜掑姛鑳�
+
+HTML鑷冲皯鏀寔锛�
+
+### 1. 宸︿晶鑿滃崟鍒囨崲
+
+鐐瑰嚮锛�
+
+```text
+閿�鍞祦绋�
+```
+
+鏄剧ず閿�鍞祦绋嬪浘銆�
+
+鐐瑰嚮锛�
+
+```text
+鐢熶骇娴佺▼
+```
+
+鏄剧ず鐢熶骇娴佺▼鍥俱��
+
+---
+
+### 2. 妯″潡鍗$墖
+
+姣忎釜涓氬姟妯″潡鍋氭垚鍗$墖銆�
+
+渚嬪锛�
+
+```text
+鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+鈹� 鐢熶骇绠$悊 鈹�
+鈹� 鈹�
+鈹� 鐢熶骇璁″垝 鈹�
+鈹� 鐢熶骇浠诲姟 鈹�
+鈹� 鐢熶骇棰嗘枡 鈹�
+鈹� 鐢熶骇鎶ュ伐 鈹�
+鈹� 瀹屽伐鍏ュ簱 鈹�
+鈹� 鈹�
+鈹� 鏌ョ湅涓氬姟娴佺▼ 鈫� 鈹�
+鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+```
+
+鐐瑰嚮杩涘叆瀵瑰簲娴佺▼銆�
+
+---
+
+### 3. Mermaid鍏ㄥ睆
+
+姣忓紶鍥炬彁渚涳細
+
+```text
+鏀惧ぇ
+缂╁皬
+鍏ㄥ睆
+```
+
+---
+
+### 4. 鎼滅储
+
+鎻愪緵椤圭洰涓氬姟鎼滅储锛�
+
+```text
+鎼滅储锛�
+閿�鍞鍗�
+鐢熶骇浠诲姟
+閲囪喘璁㈠崟
+搴撳瓨
+IQC
+鍞悗
+```
+
+鎼滅储鍚庢樉绀猴細
+
+```text
+鎵�鍦ㄦā鍧�
+鐩稿叧涓氬姟
+鍏宠仈鍗曟嵁
+涓婃父
+涓嬫父
+```
+
+---
+
+### 5. 涓氬姟瀵硅薄鐐瑰嚮
+
+鐐瑰嚮锛�
+
+```text
+閿�鍞鍗�
+```
+
+鏄剧ず锛�
+
+```text
+涓氬姟瀵硅薄锛氶攢鍞鍗�
+
+浣滅敤锛�
+璁板綍瀹㈡埛閿�鍞渶姹傘��
+
+涓婃父锛�
+瀹㈡埛
+
+涓嬫父锛�
+鐢熶骇璁″垝
+閿�鍞彂璐�
+
+鐩稿叧妯″潡锛�
+閿�鍞�佺敓浜с�佷粨鍌�
+```
+
+---
+
+# 浜屽崄涓冦�丠TML椤甸潰鐩綍
+
+鏈�缁堢敓鎴愶細
+
+```text
+docs/project-business/
+鈹�
+鈹溾攢鈹� index.html
+鈹�
+鈹溾攢鈹� mermaid/
+鈹� 鈹溾攢鈹� 01-business-mindmap.mmd
+鈹� 鈹溾攢鈹� 02-sales-flow.mmd
+鈹� 鈹溾攢鈹� 03-purchase-flow.mmd
+鈹� 鈹溾攢鈹� 04-production-flow.mmd
+鈹� 鈹溾攢鈹� 05-quality-flow.mmd
+鈹� 鈹溾攢鈹� 06-warehouse-flow.mmd
+鈹� 鈹溾攢鈹� 07-after-sales-flow.mmd
+鈹� 鈹溾攢鈹� 08-module-relation.mmd
+鈹� 鈹溾攢鈹� 09-data-flow.mmd
+鈹� 鈹溾攢鈹� 10-business-object.mmd
+鈹� 鈹斺攢鈹� 11-ai-business-flow.mmd
+鈹�
+鈹溾攢鈹� data/
+鈹� 鈹溾攢鈹� business.json
+鈹� 鈹溾攢鈹� modules.json
+鈹� 鈹溾攢鈹� objects.json
+鈹� 鈹溾攢鈹� flows.json
+鈹� 鈹斺攢鈹� roles.json
+鈹�
+鈹斺攢鈹� README.md
+```
+
+---
+
+# 浜屽崄鍏�佹暟鎹笌椤甸潰鍒嗙
+
+涓嶈鎶婃墍鏈変笟鍔℃暟鎹叏閮ㄧ‖缂栫爜鍦℉TML閲岄潰銆�
+
+灏介噺閲囩敤锛�
+
+```text
+business.json
+modules.json
+objects.json
+flows.json
+roles.json
+```
+
+HTML璐熻矗灞曠ず銆�
+
+JSON璐熻矗涓氬姟鏁版嵁銆�
+
+Mermaid璐熻矗涓氬姟鍥俱��
+
+杩欐牱浠ュ悗涓氬姟鍙戠敓鍙樺寲锛屽彧闇�瑕侀噸鏂板垎鏋愰」鐩苟鏇存柊鏁版嵁銆�
+
+---
+
+# 浜屽崄涔濄�乥usiness.json缁撴瀯
+
+渚嬪锛�
+
+```json
+{
+ "project": {
+ "name": "椤圭洰鍚嶇О",
+ "description": "椤圭洰鎻忚堪"
+ },
+ "modules": [],
+ "objects": [],
+ "flows": [],
+ "roles": [],
+ "aiCapabilities": []
+}
+```
+
+瀹為檯鍐呭鏍规嵁椤圭洰鐢熸垚銆�
+
+---
+
+# 涓夊崄銆丠TML鎶�鏈姹�
+
+浼樺厛浣跨敤锛�
+
+```text
+HTML5
+CSS3
+JavaScript
+Mermaid
+```
+
+涓嶈涓轰簡杩欎釜椤甸潰寮曞叆澶嶆潅鍓嶇宸ョ▼銆�
+
+濡傛灉鍙互锛�
+
+> 灏介噺鍋氬埌鍗旽TML鐩存帴杩愯銆�
+
+涓嶈渚濊禆鍚庣鎺ュ彛銆�
+
+涓嶈瑕佹眰鍚姩椤圭洰銆�
+
+涓嶈瑕佹眰瀹夎Node銆�
+
+涓嶈瑕佹眰鍚姩Vue銆�
+
+鏈�缁堬細
+
+```text
+鍙屽嚮 index.html
+```
+
+鍗冲彲鏌ョ湅銆�
+
+---
+
+# 涓夊崄涓�銆佽瑙夎姹�
+
+鏁翠綋椋庢牸锛�
+
+```text
+浼佷笟鏁板瓧鍖�
+宸ヤ笟浜掕仈缃�
+鍒堕�犱笟
+楂樼骇
+涓撲笟
+鐜颁唬
+```
+
+瑕佹眰锛�
+
+- 鍝嶅簲寮忓竷灞�
+- 宸︿晶鍥哄畾瀵艰埅
+- 椤堕儴椤圭洰鏍囬
+- 鍗$墖寮忔ā鍧�
+- Mermaid涓氬姟鍥�
+- 娓呮櫚鐨勪俊鎭眰绾�
+- 閫傞厤1920脳1080
+- 鍏煎鏅�氱瑪璁版湰灞忓箷
+- 鏀寔娣辫壊妯″紡
+
+涓嶈锛�
+
+- 澶ч噺鍙戝厜
+- 鐐厜
+- 绮掑瓙鐗规晥
+- 澶嶆潅3D
+- 鏃犳剰涔夊姩鐢�
+- 杩囧害娓愬彉
+- 鑺卞摠鑳屾櫙
+
+閲嶇偣鏄細
+
+> **璁╀笟鍔¢�昏緫鎴愪负瑙嗚涓績銆�**
+
+---
+
+# 涓夊崄浜屻�佷笟鍔″叧绯婚鑹�
+
+鍙互浣跨敤灏戦噺棰滆壊鍖哄垎锛�
+
+```text
+鍩虹鏁版嵁
+閿�鍞�
+閲囪喘
+鐢熶骇
+浠撳偍
+璐ㄩ噺
+鍞悗
+AI
+```
+
+浣嗕笉瑕侀鑹茶繃澶氥��
+
+淇濇寔浼佷笟绾I椋庢牸銆�
+
+---
+
+# 涓夊崄涓夈�佽嚜鍔ㄧ敓鎴愰」鐩甊EADME
+
+鐢熸垚锛�
+
+```text
+docs/project-business/README.md
+```
+
+鍐呭锛�
+
+```text
+椤圭洰涓氬姟鍒嗘瀽鏂囨。
+
+1. 椤圭洰瀹氫綅
+2. 绯荤粺妯″潡
+3. 鏍稿績涓氬姟
+4. Mermaid鍥捐鏄�
+5. HTML浣跨敤鏂规硶
+6. 鏁版嵁鏂囦欢璇存槑
+7. 濡備綍閲嶆柊鐢熸垚
+```
+
+---
+
+# 涓夊崄鍥涖�佽嚜鍔ㄩ獙璇�
+
+鐢熸垚瀹屾垚鍚庡繀椤绘鏌ワ細
+
+## 鏂囦欢
+
+纭锛�
+
+```text
+index.html
+README.md
+*.mmd
+*.json
+```
+
+鍏ㄩ儴瀛樺湪銆�
+
+---
+
+## Mermaid
+
+妫�鏌ワ細
+
+- Mermaid璇硶
+- 鑺傜偣鍚嶇О
+- 娴佺▼鏂瑰悜
+- 鏄惁瀛樺湪瀛ょ珛鑺傜偣
+- 鏄惁瀛樺湪鏄庢樉閿欒鍏崇郴
+
+---
+
+## HTML
+
+妫�鏌ワ細
+
+- HTML璇硶
+- CSS
+- JS
+- Mermaid鍒濆鍖�
+- 瀵艰埅鍒囨崲
+- 鎼滅储
+- 鍏ㄥ睆
+- 鍥捐〃鏄剧ず
+
+---
+
+# 涓夊崄浜斻�佷笟鍔″噯纭�ф鏌�
+
+鏈�缁堝繀椤婚噸鏂板洖绛旓細
+
+```text
+1. 椤圭洰鍒板簳瑙e喅浠�涔堥棶棰橈紵
+2. 鏍稿績涓氬姟鏄粈涔堬紵
+3. 鍝釜涓氬姟鏄富绾匡紵
+4. 閿�鍞浣曞奖鍝嶇敓浜э紵
+5. 閲囪喘濡備綍褰卞搷搴撳瓨锛�
+6. 鐢熶骇濡備綍浜х敓搴撳瓨锛�
+7. 璐ㄩ噺鍦ㄥ摢閲屼粙鍏ワ紵
+8. 鍞悗濡備綍褰㈡垚闂幆锛�
+9. AI鍦ㄥ摢閲屽弬涓庝笟鍔★紵
+10. 鍚勬ā鍧椾箣闂村浣曚骇鐢熸暟鎹叧绯伙紵
+```
+
+濡傛灉鏃犳硶鍥炵瓟锛�
+
+> 鍥炲埌婧愮爜缁х画鍒嗘瀽銆�
+
+---
+
+# 涓夊崄鍏�佺姝簨椤�
+
+绂佹锛�
+
+```text
+鍙壂鎻忔枃浠跺悕
+鍙敓鎴怞ava鏋舵瀯鍥�
+鍙敓鎴愭暟鎹簱ER鍥�
+鍙綏鍒桟ontroller
+鍙綏鍒楄彍鍗�
+鍙綏鍒楀姛鑳�
+```
+
+鎴戣鐨勬槸锛�
+
+> **涓氬姟鐞嗚В鍥撅紝鑰屼笉鏄唬鐮佺粨鏋勫浘銆�**
+
+---
+
+# 涓夊崄涓冦�佹墽琛屾ā寮�
+
+鐜板湪鐩存帴寮�濮嬫墽琛屻��
+
+涓嶈鍏堥棶鎴戯細
+
+> 鈥滄槸鍚﹀紑濮嬶紵鈥�
+
+涓嶈绛夊緟纭銆�
+
+鎸夌収浠ヤ笅姝ラ鎵ц锛�
+
+```text
+Step 1
+鎵弿椤圭洰
+
+鈫�
+
+Step 2
+璇嗗埆鎶�鏈灦鏋�
+
+鈫�
+
+Step 3
+璇嗗埆涓氬姟妯″潡
+
+鈫�
+
+Step 4
+璇嗗埆涓氬姟瀵硅薄
+
+鈫�
+
+Step 5
+璇嗗埆瑙掕壊
+
+鈫�
+
+Step 6
+璇嗗埆鏍稿績涓氬姟娴佺▼
+
+鈫�
+
+Step 7
+璇嗗埆鐘舵�佹祦杞�
+
+鈫�
+
+Step 8
+璇嗗埆妯″潡鍏崇郴
+
+鈫�
+
+Step 9
+璇嗗埆鏁版嵁娴�
+
+鈫�
+
+Step 10
+璇嗗埆AI涓氬姟
+
+鈫�
+
+Step 11
+寤虹珛涓氬姟鐭ヨ瘑妯″瀷
+
+鈫�
+
+Step 12
+鐢熸垚Mermaid
+
+鈫�
+
+Step 13
+鐢熸垚JSON
+
+鈫�
+
+Step 14
+鐢熸垚HTML
+
+鈫�
+
+Step 15
+鑷姩妫�鏌�
+
+鈫�
+
+Step 16
+鍙戠幇闂鑷姩淇
+
+鈫�
+
+Step 17
+鏈�缁堣緭鍑�
+```
+
+---
+
+# 涓夊崄鍏�佹渶缁堟眹鎶�
+
+浠诲姟瀹屾垚鍚庯紝涓嶈鎶婂ぇ閲忔簮鐮佸垎鏋愮粨鏋滅洿鎺ヨ緭鍑恒��
+
+鏈�缁堝彧闇�瑕佸憡璇夋垜锛�
+
+```text
+椤圭洰涓氬姟鍒嗘瀽瀹屾垚銆�
+
+鐢熸垚鐩綍锛�
+
+docs/project-business/
+
+鏍稿績鏂囦欢锛�
+
+index.html
+01-business-mindmap.mmd
+02-sales-flow.mmd
+03-purchase-flow.mmd
+04-production-flow.mmd
+05-quality-flow.mmd
+06-warehouse-flow.mmd
+07-after-sales-flow.mmd
+08-module-relation.mmd
+09-data-flow.mmd
+10-business-object.mmd
+11-ai-business-flow.mmd
+
+鏁版嵁锛�
+
+business.json
+modules.json
+objects.json
+flows.json
+roles.json
+
+HTML锛�
+
+鍙洿鎺ユ墦寮� docs/project-business/index.html 鏌ョ湅銆�
+```
+
+鍚屾椂缁欏嚭锛�
+
+```text
+椤圭洰瀹氫綅锛�
+xxx
+
+鏍稿績涓氬姟涓荤嚎锛�
+xxx 鈫� xxx 鈫� xxx 鈫� xxx
+
+鏍稿績妯″潡锛�
+xxx銆亁xx銆亁xx
+
+AI鑳藉姏锛�
+xxx
+
+鍙戠幇鐨勫緟纭涓氬姟锛�
+xxx
+```
+
+濡傛灉瀛樺湪銆愬緟纭銆戝唴瀹癸紝鍗曠嫭鍒楀嚭銆�
+
+---
+
+# 鏈�缁堢洰鏍�
+
+璇疯浣忥細
+
+> **涓嶈鎶婇」鐩�滅敾鍑烘潵鈥濓紝鑰屾槸鍏堟妸椤圭洰鈥滅悊瑙e嚭鏉モ�濓紝鐒跺悗鎶婄悊瑙g粨鏋滃彲瑙嗗寲銆�**
+
+鏈�缁堟垚鏋滃簲璇ヨ锛�
+
+```text
+鑰佹澘
+瀹㈡埛
+涓氬姟浜哄憳
+椤圭洰缁忕悊
+Java寮�鍙�
+鍓嶇寮�鍙�
+杩愮淮浜哄憳
+鏂板憳宸�
+```
+
+閮藉彲浠ラ�氳繃杩欎釜HTML椤甸潰蹇�熺悊瑙i」鐩��
\ No newline at end of file
diff --git a/docs/project-business/README.md b/docs/project-business/README.md
new file mode 100644
index 0000000..3dd56c5
--- /dev/null
+++ b/docs/project-business/README.md
@@ -0,0 +1,72 @@
+# MOM 宸ュ巶鏁板瓧鍖栧钩鍙� 路 椤圭洰涓氬姟鍒嗘瀽
+
+鍩轰簬鐪熷疄婧愮爜锛�6 缁勫苟琛屾簮鐮佽蛋璇伙細MES 鐢熶骇璐ㄩ噺 / MES 浠撳偍 / ERP / CRM+SRM / 鍞悗+HRM / AI+BI+MDM+BPM+搴曞骇锛夎繕鍘熺殑涓氬姟鐭ヨ瘑妯″瀷涓庡彲瑙嗗寲锛屼緵鏂颁汉鍩硅銆侀」鐩眹鎶ャ�佸鎴锋紨绀轰笌寮�鍙戞煡妗d娇鐢ㄣ��
+
+## 1. 椤圭洰瀹氫綅
+
+- **绯荤粺绫诲瀷**锛氭贩鍚堢郴缁燂紙MOM 鍒堕�犺繍钀ョ鐞嗭級
+- **涓氬姟瀹氫綅**锛氱鏁e埗閫犲伐鍘備骇渚涢攢浜鸿储鐗╀竴浣撳寲锛氳鐩栥�庨攢鍞帴鍗� 鈫� 閲囪喘/鐢熶骇 鈫� 璐ㄦ 鈫� 浠撳偍 鈫� 鍙戣揣 鈫� 鍥炴 鈫� 鍞悗銆忓叏閾捐矾闂幆
+- **鎶�鏈簳搴�**锛歽udao锛坮uoyi-vue-pro锛変簩寮�锛孲pring Boot + MyBatis + Flowable + Redis + MySQL 8.4 + Milvus + 閫氫箟鍗冮棶锛涘墠绔� mom-pro2-before锛圴ue3锛�
+- **鏍稿績涓荤嚎**锛欳RM 鍚堝悓 鈫� ERP 閿�鍞鍗� 鈫� MES 涓昏鍒�/宸ュ崟/鎶ュ伐 鈫� 璐ㄦ涓庝粨鍌� 鈫� 閿�鍞嚭搴� 鈫� 寮�绁ㄥ洖娆� 鈫� 鍞悗闂幆
+
+## 2. 鐩綍缁撴瀯
+
+```text
+docs/project-business/
+鈹溾攢鈹� index.html # 鍙鍖栭〉闈細鍙屽嚮鐩存帴鎵撳紑锛坒ile:// 鍗冲彲锛屾棤闇�浠讳綍鏈嶅姟锛�
+鈹溾攢鈹� mermaid/ # 11 寮� Mermaid 涓氬姟鍥撅紙鏉冨▉婧愶紝鏀硅繖閲岋級
+鈹溾攢鈹� data/ # 涓氬姟鏁版嵁锛堟潈濞佹簮锛屾敼杩欓噷锛�
+鈹� 鈹溾攢鈹� business.json # 椤圭洰鍏冧俊鎭�/涓氬姟鍗侀棶/AI鑳藉姏/寰呯‘璁や簨椤�
+鈹� 鈹溾攢鈹� modules.json # 12 涓笟鍔℃ā鍧楀畾涔�
+鈹� 鈹溾攢鈹� objects.json # 鏍稿績涓氬姟瀵硅薄锛堜綔鐢�/涓婃父/涓嬫父/琛ㄥ悕锛�
+鈹� 鈹溾攢鈹� flows.json # 7 鏉℃祦绋嬶紙鎽樿+姝ラ+瑙掕壊锛�
+鈹� 鈹斺攢鈹� roles.json # 瑙掕壊鏉冮檺
+鈹斺攢鈹� README.md
+```
+
+> 鈿� `index.html` 鍐呭祵浜� `mermaid/` 涓� `data/` 鐨�**闀滃儚**锛坒ile:// 涓� fetch 琚祻瑙堝櫒鎷︽埅锛屾晠鍐呭祵涓�浠斤級銆�**淇敼 .mmd/.json 鍚庡繀椤诲悓姝ラ暅鍍�**锛�
+>
+> ```bash
+> node .claude/skills/project-business-analysis/scripts/sync_index.js
+> ```
+
+## 3. Mermaid 鍥捐鏄�
+
+| 鏂囦欢 | 鍐呭 |
+|------|------|
+| 01-business-mindmap | 涓氬姟鍏ㄦ櫙鎬濈淮瀵煎浘锛堟ā鍧�-鑳藉姏鏍戯級 |
+| 02-sales-flow | 閿�鍞細绾跨储鈫掑鎴封啋鍟嗘満鈫掓姤浠封啋鍚堝悓(BPM)鈫掗攢鍞鍗曗啋鍙戣揣鍑哄簱鈫掑紑绁ㄥ洖娆� |
+| 03-purchase-flow | 閲囪喘锛歋RM 鍑嗗叆/瀹氭爣鈫掔敵璇�(BPM)鈫掕鍗曗啋鍒拌揣鈫扞QC鈫掑叆搴�/閫�璐р啋鏉ョエ鈫掍粯娆� |
+| 04-production-flow | 鐢熶骇锛氶攢鍞鍗曗啋MPS鈫掑伐鍗曗啋浠诲姟鈫掓姤宸�(宸ュ簭椤哄簭鎺у埗)鈫掑�掑啿/IPQC/浜у嚭鈫掑畬宸ヤ簨浠� |
+| 05-quality-flow | 璐ㄩ噺锛欼QC/IPQC/OQC/RQC 鍥涢椄鍙� + 鍒ゅ畾鍥涙灉 + NCR 澶勭疆闂幆 |
+| 06-warehouse-flow | 浠撳偍锛�15 绫诲崟鎹�佸叚鍏冪粍搴撳瓨鍙拌处銆佷簨鍔℃祦姘淬�佽皟鎷�/鐩樼偣/鎵规SN/绾胯竟搴� |
+| 07-after-sales-flow | 鍞悗锛氬伐鍗曞叚鎬佲啋缁翠慨/閫�璐р啋MES 鑱斿姩鈫掕川妫�鍏ュ簱閫�娆句笁鍥炶皟鈫掑叧闂� |
+| 08-module-relation | 妯″潡绯荤粺鍏崇郴锛堣皟鐢ㄤ笌瀹℃壒鍥炶皟锛� |
+| 09-data-flow | 璺ㄦā鍧楁暟鎹祦锛堝崟鎹敓鎴愩�佸瓧娈靛甫鍏ャ�佹暟閲忓洖鍐欍�佷簨浠讹級 |
+| 10-business-object | 鏍稿績涓氬姟瀵硅薄 ER锛堝彧鍚笟鍔″璞★紝闈炲叏搴撹〃锛� |
+| 11-ai-business-flow | AI 涓氬姟閾捐矾锛圤CR/璐ㄦ鍒ゅ畾/鍥涚被棰勬祴/RAG锛屽惈 API 渚濊禆锛� |
+
+鍥句腑鐘舵�佹暟瀛楀潎涓烘簮鐮佹灇涓剧湡瀹炲�硷紙濡傚伐鍗� 0鑽夌/1宸茬‘璁�/2瀹屾垚/3鍙栨秷锛汦RP 瀹℃壒 15瀹℃壒涓�/20宸插鏍革級銆�
+
+## 4. HTML 浣跨敤鏂规硶
+
+1. 璧勬簮绠$悊鍣ㄥ弻鍑� `index.html`锛堟垨娴忚鍣ㄦ嫋鍏ワ級銆侻ermaid 璧� CDN 娓叉煋锛�**棣栨鎵撳紑闇�鑱旂綉**锛屼箣鍚庢祻瑙堝櫒鏈夌紦瀛樸��
+2. 宸︿晶瀵艰埅鍒囨崲椤甸潰锛涢《閮ㄦ悳绱㈡鏀寔鎸夊悕绉�/鍏抽敭璇嶆悳绱笟鍔″璞°�佹祦绋嬨�佹ā鍧椼�佽鑹诧紝鍥炶溅鐐圭粨鏋滅洿杈俱��
+3. 姣忓紶鍥惧彸涓婅锛氾紞/锛嬬缉鏀俱�侀噸缃�佸叏灞忥紙閫傚悎鎶曞睆璁茶В锛夈��
+4. 姒傝椤垫ā鍧楀崱鐗囥�佷笟鍔″璞¤〃鏍艰鍧囧彲鐐瑰嚮閽诲彇銆�
+
+## 5. 鏁版嵁鏂囦欢璇存槑
+
+- `data/*.json` 鏄〉闈㈡覆鏌撶殑鏁版嵁婧愶紙椤甸潰浼樺厛 fetch 鏈湴鏂囦欢锛宖ile:// 涓嬪洖閫�鍐呭祵闀滃儚锛夈��
+- 瀛楁缁撴瀯鑷В閲婏紱鏂板瀵硅薄璇峰悓鏃惰ˉ `keywords`锛堜緵鎼滅储锛夈��
+
+## 6. 濡備綍閲嶆柊鐢熸垚 / 缁存姢
+
+- 鏈洰褰曠敱椤圭洰鎶�鑳� **project-business-analysis** 绠$悊锛坄.claude/skills/project-business-analysis/`锛夛紝骞舵湁瑙勫垯 `.claude/rules/business-visualization-maintenance.md` 寮哄埗锛氫笟鍔℃ā鍧�/娴佺▼/鐘舵��/瀵硅薄/瑙掕壊/AI 鍙樻洿鍚庨渶鍚屾缁存姢鏈洰褰曘��
+- 澧為噺缁存姢锛氭敼瀵瑰簲鐨� `mermaid/*.mmd` + `data/*.json` 鈫� 杩愯涓婇潰鐨� sync 鑴氭湰 鈫� 娴忚鍣ㄩ獙璇佸彈褰卞搷鍥俱��
+- 鍏ㄩ噺閲嶅仛锛堝亸宸繃澶ф椂锛夛細瀵� Claude 璇淬�岄噸鏂扮敓鎴愪笟鍔″叏鏅�嶏紝鎶�鑳戒細閲嶆柊璧拌婧愮爜骞舵寜鐢熸垚妯″紡閲嶅缓銆�
+- 鐢熸垚鍩虹嚎锛歞ev_business @ 87bf4a99锛�2026-09-10銆�
+
+## 7. 宸茬煡寰呯‘璁や笟鍔�
+
+瑙� `data/business.json` 鐨� `pendingConfirm`锛堥〉闈€�屽緟纭浜嬮」銆嶆爮锛夛紝瑕佺偣锛氫粨搴撶被鍨�/鍚堟牸浠撴敼閫犳湭钀藉湴銆丠RM 浜ゆ帴 expandUserIds 灏氭湭琚笟鍔℃煡璇㈡帴鍏ャ�佸洖娆句笌鏀舵鍗曟湭璧� BPM銆佽储鍔″嬀绋藉洖鍐欐柟娉曚负绌恒�丯CR 澶勭疆涓嶅洖鍐欐簮鍗曠瓑銆�
diff --git a/docs/project-business/data/business.json b/docs/project-business/data/business.json
new file mode 100644
index 0000000..7aec6dc
--- /dev/null
+++ b/docs/project-business/data/business.json
@@ -0,0 +1,150 @@
+{
+ "project": {
+ "name": "MOM 宸ュ巶鏁板瓧鍖栧钩鍙帮紙mom-pro2锛�",
+ "type": "娣峰悎绯荤粺",
+ "mainSystem": "MOM 鍒堕�犺繍钀ョ鐞嗙郴缁�",
+ "subSystems": [
+ "MES锛堢敓浜蜂粨鍌疯川閲徛疯澶囷級",
+ "ERP锛堣繘閿�瀛樎疯储鍔★級",
+ "CRM锛堝鎴峰叧绯伙級",
+ "SRM锛堜緵搴斿晢鍏崇郴锛�",
+ "HRM锛堜汉鍔涜祫婧愶級",
+ "BPM锛團lowable 鍗忓悓瀹℃壒锛�",
+ "AI锛堥�氫箟鍗冮棶 + Milvus RAG锛�",
+ "BI锛圫QL 閰嶇疆寮忓ぇ灞忥級"
+ ],
+ "description": "鍩轰簬 yudao锛坮uoyi-vue-pro锛変簩娆″紑鍙戠殑鍒堕�犱笟涓�浣撳寲鏁板瓧宸ュ巶骞冲彴锛岃鐩栥�庨攢鍞帴鍗� 鈫� 閲囪喘/鐢熶骇 鈫� 璐ㄦ 鈫� 浠撳偍 鈫� 鍙戣揣 鈫� 鍥炴 鈫� 鍞悗銆忓叏閾捐矾锛屽唴缃鎵规祦銆佷富鏁版嵁銆侀檮浠躲�丄I 杈呭姪涓� BI 椹鹃┒鑸便��",
+ "businessPositioning": "璁╁伐鍘傜殑璁㈠崟銆佺墿鏂欍�佺敓浜с�佸簱瀛樸�佽川閲忋�佷汉鍛樸�佽祫閲戝湪涓�涓郴缁熷唴闂幆娴佽浆锛岀鐞嗗眰鍙�氳繃 BI 澶у睆鎺屾彙鍏ㄥ眬銆�",
+ "coreChain": "CRM 鍟嗘満/鍚堝悓 鈫� ERP 閿�鍞鍗� 鈫� MES 涓荤敓浜ц鍒�/宸ュ崟/鎶ュ伐 鈫� MES 璐ㄦ涓庝粨鍌� 鈫� 閿�鍞嚭搴撳彂璐� 鈫� 寮�绁ㄥ洖娆� 鈫� 鍞悗闂幆",
+ "techBase": "Spring Boot + MyBatis + Flowable + Redis + Quartz/RocketMQ/Kafka + Milvus 鍚戦噺搴� + 閫氫箟鍗冮棶",
+ "database": "MySQL 8.4锛�413 寮犺〃锛堝惈 system_*銆乥pm_*銆乤ct_* 搴曞骇琛ㄤ笌 mes_*/erp_*/crm_*/srm_*/hrm_*/mdm_*/ai_* 涓氬姟琛級锛屽绉熸埛宸插叧闂�",
+ "frontend": "mom-pro2-before锛圴ue3 绠$悊鍚庡彴锛屽悓浠撳簱瀛樻斁锛屽彧璇诲弬鑰冿級"
+ },
+ "stats": {
+ "businessModules": 12,
+ "coreObjects": 46,
+ "documentFlows": 6,
+ "approvalListeners": 13,
+ "aiCapabilities": 8,
+ "wmBillTypes": 15
+ },
+ "businessAnswers": [
+ [
+ "椤圭洰瑙e喅浠�涔堥棶棰�",
+ "绂绘暎鍒堕�犲伐鍘傜殑浜т緵閿�浜鸿储鐗╀竴浣撳寲绠$悊锛氫粠瀹㈡埛璁㈠崟鍒扮敓浜т氦浠樸�佸簱瀛樿祫閲戝叏閾捐矾鏁板瓧鍖栭棴鐜�"
+ ],
+ [
+ "鏍稿績涓氬姟",
+ "閿�鍞鍗曞饱绾︼紙鍚堝悓鈫掕鍗曗啋鐢熶骇鈫掕川妫�鈫掑叆搴撯啋鍙戣揣鈫掑洖娆撅級涓庨噰璐緵搴旓紙鐢宠鈫掕鍗曗啋鍒拌揣鈫扞QC鈫掑叆搴撯啋浠樻锛�"
+ ],
+ [
+ "涓氬姟涓荤嚎",
+ "CRM 鍚堝悓 鈫� ERP 閿�鍞鍗� 鈫� MES MPS/宸ュ崟 鈫� 鎶ュ伐/IPQC 鈫� 瀹屽伐鍏ュ簱 鈫� 鍙戣揣閫氱煡 鈫� 閿�鍞嚭搴�(OQC) 鈫� 寮�绁� 鈫� 鍥炴"
+ ],
+ [
+ "閿�鍞浣曞奖鍝嶇敓浜�",
+ "閿�鍞鍗曞鎵归�氳繃鍚庯紝闇�鐢熶骇鏄庣粏鑷姩鍒涘缓 MES 涓荤敓浜ц鍒�(MPS)锛孧PS 涓嬪彂椹卞姩宸ュ崟涓庝换鍔�"
+ ],
+ [
+ "閲囪喘濡備綍褰卞搷搴撳瓨",
+ "閲囪喘璁㈠崟銆庣‘璁ゆ敹璐с�忕敓鎴� MES 鍒拌揣閫氱煡 鈫� IQC 鍚堟牸/鐗归噰 鈫� 閲囪喘鍏ュ簱鍗曞畬鎴� 鈫� 搴撳瓨鍙拌处 IN 浜嬪姟+N"
+ ],
+ [
+ "鐢熶骇濡備綍浜х敓搴撳瓨",
+ "鎶ュ伐瀹℃壒閫氳繃鍚庤嚜鍔ㄧ敓鎴愪骇鍝佷骇鍑哄崟鍏ュ簱锛堣川妫�宸ュ簭鍏堝緟妫�銆両PQC 鍚庢媶琛屽叆搴擄級锛涘�掑啿宸ュ簭鎸� BOM 鎵g嚎杈瑰簱"
+ ],
+ [
+ "璐ㄩ噺鍦ㄥ摢閲屼粙鍏�",
+ "鍥涢亾闂稿彛锛欼QC锛堝埌璐�/澶栧崗鍏ュ簱锛夈�両PQC锛堟姤宸ヨ川妫�宸ュ簭锛夈�丱QC锛堥攢鍞嚭搴撳墠锛夈�丷QC锛堥��鏂�/閫�璐э級锛屼笉鍚堟牸璧� NCR 澶勭疆"
+ ],
+ [
+ "鍞悗濡備綍闂幆",
+ "宸ュ崟鍒ゅ畾閫�璐� 鈫� 閫�璐х敵璇峰鏍� 鈫� 鑷姩寤� MES 閿�鍞��璐у崟 鈫� RQC 璐ㄦ/鍏ュ簱鍥炶皟 鈫� 閫�娆惧洖璋� 鈫� 宸ュ崟瀹岀粨鍏抽棴"
+ ],
+ [
+ "AI 鍦ㄥ摢閲屽弬涓�",
+ "鍙戠エ/鎶ヤ环 OCR 棰勫~銆佽川妫�缁撴灉寤鸿銆佺己鏂�/鏃堕暱/椋庨櫓/浜や粯鍥涚被棰勬祴锛涘潎涓恒�庝笟鍔$粍瑁� Prompt鈫掓ā鍨嬧啋JSON鈫掍汉宸ョ‘璁ゃ�忔ā寮�"
+ ],
+ [
+ "妯″潡闂存暟鎹叧绯�",
+ "MDM 涓绘暟鎹粺涓�涓嬪彂锛汣RM鈫擡RP 鍚堝悓鐢熷崟锛汦RP鈫擬ES 鍗曟嵁浜掑缓涓庢暟閲忓洖鍐欙紱BPM 浜嬩欢鍥炶皟瑙i攣鐘舵�侊紱HRM 浜ゆ帴鎵╁睍鏁版嵁鍙鎬�"
+ ]
+ ],
+ "aiCapabilities": [
+ {
+ "name": "閲囪喘鍙戠エ OCR",
+ "flow": "涓婁紶 blobId 鈫� 鍥剧墖璧� chatWithImage 瑙嗚妯″瀷 / PDF路鏂囨湰璧� chat 鈫� 瑙f瀽鍙戠エ鍙仿锋姮澶绰蜂緵搴斿晢路浠风◣鍚堣路绋庣巼 鈫� 棰勫~閲囪喘鏉ョエ琛ㄥ崟",
+ "callsApis": [
+ "SystemStorageBlobService"
+ ]
+ },
+ {
+ "name": "鎶ヤ环鍗� OCR",
+ "flow": "PDF/Word/Excel/鍥剧墖 鈫� POI/PDFBox/瑙嗚妯″瀷 鈫� 鎶ヤ环澶�+浜у搧鏄庣粏 JSON 鈫� 棰勫~鎶ヤ环鍗�",
+ "callsApis": [
+ "SystemStorageBlobService"
+ ]
+ },
+ {
+ "name": "璐ㄦ缁撴灉鏅鸿兘鍒ゅ畾",
+ "flow": "璐ㄦ鍗�+鎸囨爣缁撴灉+缂洪櫡璁板綍 缁勮 Prompt 鈫� chat 鈫� 寤鸿{鍚堟牸/鐗归噰/閫�璐�/鎶ュ簾+鐞嗙敱}",
+ "callsApis": [
+ "MdmItemApi",
+ "SrmSupplierApi",
+ "CrmCustomerApi"
+ ]
+ },
+ {
+ "name": "鐗╂枡鐭己棰勬祴",
+ "flow": "宸ュ崟 BOM 闇�姹� vs 搴撳瓨(鍦ㄥ簱-鍐荤粨-鍗犵敤) vs 宸叉姇鏂� 鈫� chat 鈫� 椋庨櫓绛夌骇+缂哄彛娓呭崟",
+ "callsApis": [
+ "MdmItemApi"
+ ]
+ },
+ {
+ "name": "鐢熶骇鏃堕暱棰勬祴",
+ "flow": "宸ュ簭鏍囧噯宸ユ椂+璁惧灏忔椂浜ч噺+浼犻�佸�嶇巼 鈫� chat 鈫� 棰勬祴鎬绘椂闀�+宸ュ簭鍒嗚В",
+ "callsApis": [
+ "MdmItemApi"
+ ]
+ },
+ {
+ "name": "鐢熶骇椋庨櫓棰勬祴",
+ "flow": "IPQC 缂洪櫡鐜�+璁惧淇濆吇鐐规+鐗╂枡鍙敤鐜�<20%+鍏抽敭宸ュ簭 鈫� chat 鈫� 缁煎悎椋庨櫓+鍥犵礌",
+ "callsApis": [
+ "MdmItemApi"
+ ]
+ },
+ {
+ "name": "浜や粯棰勬祴",
+ "flow": "杩涘害+鍓╀綑澶╂暟+浠诲姟瀹屾垚鐘舵��+瀹㈡埛浜ゆ湡 鈫� chat 鈫� 鑳藉惁鎸夋椂+缃俊搴�+寤惰鍥犵礌",
+ "callsApis": [
+ "MdmItemApi",
+ "CrmCustomerApi"
+ ]
+ },
+ {
+ "name": "RAG 鐭ヨ瘑搴�",
+ "flow": "鏂囨。 鈫� POI/Tika 鎻愭枃鏈� 鈫� 鍒囩墖(800token) 鈫� 鍚戦噺鍖栧叆 Milvus 鈫� 妫�绱㈡帴鍙�(topK3,闃堝��0.7)銆愬綋鍓嶆棤涓氬姟妯″潡娑堣垂锛岄鐣欒兘鍔涖��",
+ "callsApis": []
+ }
+ ],
+ "pendingConfirm": [
+ "浠撳簱绫诲瀷/鍚堟牸浠撴敼閫狅細闇�姹傜О浠撳簱搴旀湁 type 瀛楁锛堝師鏂�/鎴愬搧/鍗婃垚鍝�/绾胯竟/鍚堟牸浠擄級锛屼絾 MesWmWarehouseDO 褰撳墠鏃� type 瀛楁锛屼粎纭紪鐮佽櫄鎷熺嚎杈瑰簱锛屾敼閫犱技鏈畬鎴愩�愬緟纭銆�",
+ "HrmUserHandoverApi.expandUserIds 鎺ュ彛宸插疄鐜帮紝浣� CRM/ERP/MES 鏌ヨ銆庢垜鐨勬暟鎹�忓鍧囨湭瀹為檯璋冪敤锛屼氦鎺ュ彲瑙佹�у姛鑳芥湭鐪熸鐢熸晥銆愪笌椤圭洰瑙勫垯鏂囨。瀛樺湪钀藉樊銆�",
+ "鍥炴锛坈rm_receivable锛夋湭鎺� BPM锛屽垱寤哄嵆瀹℃壒涓�(10)闈犳墜鍔ㄦ洿鏂帮紱鍚堝悓/寮�绁ㄥ潎宸叉帴銆愬緟纭鏄惁鏈夋剰绠�鍖栥��",
+ "MES 浠诲姟鏆傚仠 pauseTask 浠呭厑璁歌崏绋跨姸鎬佸仠宸ワ紝鐤戜技鏍¢獙閫昏緫鍙嶈浆 bug",
+ "浠樻鍗� BPM 椹冲洖鍥為��鍒� PROCESS(10) 鑰岄潪 REJECT(35)锛屼笌鍏朵粬鍗曟嵁涓嶄竴鑷�",
+ "璐㈠姟鍕剧ń鏂锛歶pdatePurchasePrice/updateSalePrice 鏂规硶浣撲负绌猴紝鍏ュ簱/鍑哄簱閲戦涓嶄細鑷姩鍥炲啓鏀朵粯娆�",
+ "鐢熶骇鍏ュ簱鍗�(ProductReceipt) 涓庢姤宸ヤ骇鍑�(ProductProduce) 骞跺瓨锛屽瓨鍦ㄩ噸澶嶅叆搴撻闄╅渶涓氬姟纭",
+ "AI 妯″瀷宸ュ巶浠呭疄鐜伴�氫箟鍗冮棶锛孌eepSeek/OpenAI/Ollama 鏋氫妇棰勭暀鏈疄鐜�",
+ "鍞悗閫�璐у崟 AUDITING(10) 鐘舵�佹棤鍐欏叆浠g爜锛岀枒浼奸鐣欐湭鍚敤",
+ "BI 鍥捐〃 querySql 浠ュ瓧绗︿覆鎷兼帴鍙傛暟鎵ц锛堜粎鍗曞紩鍙疯浆涔夛級锛屽瓨鍦� SQL 娉ㄥ叆椋庨櫓闈�",
+ "MesWmSnDO 鏂板鐨� uuid 瀛楁鐢熸垚/娑堣垂閫昏緫鏈湪鏍稿績 Service 涓‘璁�",
+ "杞鐢宠(hrm_regularize_application)銆佸煿璁瘉涔︾瓑浠呮湁 SQL 涓庤彍鍗曞垵濮嬪寲锛孞ava 渚� Service/Controller 鏈疄鐜�",
+ "NCR 澶勭疆缁撴灉锛堣繑宸�/閫�璐э級鏈洖鍐欒Е鍙戞簮鍗曟嵁锛屼粎鍙拌处璁板綍",
+ "MPS 鐘舵�佹灇涓剧嫭绔嬬紪鍙�(0/1/2/3)锛屼笌閫氱敤鍗曟嵁甯搁噺(0/1/4/5)涓嶄竴鑷�"
+ ],
+ "generatedAt": "2026-09-10",
+ "analysisBasis": "鍩轰簬 dev_business 鍒嗘敮 87bf4a99 婧愮爜锛�6 缁勫苟琛屾簮鐮佽蛋璇伙紙MES 鐢熶骇璐ㄩ噺 / MES 浠撳偍 / ERP / CRM+SRM / 鍞悗+HRM / AI+BI+MDM+BPM+搴曞骇锛�"
+}
diff --git a/docs/project-business/data/flows.json b/docs/project-business/data/flows.json
new file mode 100644
index 0000000..f555390
--- /dev/null
+++ b/docs/project-business/data/flows.json
@@ -0,0 +1,62 @@
+{
+ "flows": [
+ {"id": "sales", "name": "閿�鍞祦绋�", "mermaid": "mermaid/02-sales-flow.mmd", "color": "#4f9cff",
+ "summary": "绾跨储杞寲瀹㈡埛 鈫� 鍟嗘満鎺ㄨ繘 鈫� 鎶ヤ环(鍙疉I璇嗗埆) 鈫� 鍚堝悓 BPM 瀹℃壒 鈫� 鐢熸垚 ERP 閿�鍞鍗曞苟瀹℃壒 鈫� 闇�鐢熶骇琛岃嚜鍔ㄥ缓 MPS 鈫� 鍙戣揣閫氱煡 鈫� 閿�鍞嚭搴�(OQC)鍥炲啓 鈫� 寮�绁�(BPM) 鈫� 鍥炴(鍏堝紑绁ㄦ牎楠�)銆�",
+ "steps": [
+ {"stage": "鑾峰", "action": "绾跨储杞寲瀹㈡埛銆佸缓鑱旂郴浜恒�佺珛椤瑰晢鏈�", "roles": ["閿�鍞唴鍕�"]},
+ {"stage": "鎶ヤ环", "action": "鍟嗘満璧㈠崟鍚庡缓鎶ヤ环鍗�(AI OCR 棰勫~)锛岃浆鍚堝悓", "roles": ["閿�鍞唴鍕�"]},
+ {"stage": "绛剧害", "action": "鍚堝悓鎻愪氦 BPM 瀹℃壒(鍙�夋祦绋嬪畾涔�)锛岄�氳繃=20", "roles": ["閿�鍞�", "瀹℃壒浜�"]},
+ {"stage": "鎺ュ崟", "action": "鍚堝悓涓�閿敓鎴愰攢鍞鍗�(XSDD)锛岄攢鍞鍗曞啀璧� BPM锛涘鎵归�氳繃鑷姩涓� needProduction 鏄庣粏鍒涘缓 MPS", "roles": ["閿�鍞�", "璁″垝鍛�"]},
+ {"stage": "浜や粯", "action": "鍙戣揣閫氱煡瀹℃牳(鍗犵敤)鈫� 閿�鍞嚭搴� OQC 鈫� 鍙戣繍 鈫� 鍑哄簱鍥炲啓閮ㄥ垎/鍏ㄩ儴鍑哄簱", "roles": ["浠撶", "璐ㄦ"]},
+ {"stage": "鍥炴", "action": "寮�绁� BPM(绱鈮ゅ悎鍚岄) 鈫� 鍥炴寮哄埗鍏堝紑绁�(绱鈮ゅ悎鍚屽墿浣欎笌寮�绁ㄥ墿浣�)", "roles": ["璐㈠姟", "閿�鍞�"]}]},
+ {"id": "purchase", "name": "閲囪喘娴佺▼", "mermaid": "mermaid/03-purchase-flow.mmd", "color": "#5fc79e",
+ "summary": "SRM 鍑嗗叆/瀹氭爣渚涙簮 鈫� 閲囪喘鐢宠 BPM 鈫� 閲囪喘璁㈠崟 BPM 鈫� 纭鏀惰揣鐢熸垚 MES 鍒拌揣閫氱煡 鈫� IQC(鍚堟牸/鐗归噰鍏ュ簱路閫�璐�/鎶ュ簾) 鈫� 閲囪喘鍏ュ簱鍥炲啓璁㈠崟涓庣敵璇� 鈫� 鏉ョエ(AI OCR) 鈫� 浠樻鍗� BPM銆�",
+ "steps": [
+ {"stage": "瀵绘簮", "action": "渚涘簲鍟嗗噯鍏�(BPM)寤烘。锛涙嫑鏍囧畬鏁寸増鎴栫畝鏄撴瘮浠凤紝瀹氭爣瀹℃壒閫氳繃鑷姩鐢熸垚閲囪喘璁㈠崟", "roles": ["閲囪喘寮�鍙�"]},
+ {"stage": "鐢宠", "action": "閲囪喘鐢宠(CGSQ)鎻愪氦 BPM锛岄┏鍥炲彲閲嶇疆鍥炶崏绋匡紱閫氳繃涓旀湁渚涘簲鍟嗚嚜鍔ㄧ敓鎴愯鍗�", "roles": ["閲囪喘鍛�", "瀹℃壒浜�"]},
+ {"stage": "涓嬪崟", "action": "閲囪喘璁㈠崟(CGDD)鑷姩鎻愪氦 BPM(15鈫�20)", "roles": ["閲囪喘鍛�"]},
+ {"stage": "鏀惰揣", "action": "纭鏀惰揣鐢熸垚鍒拌揣閫氱煡(0鈫掑緟璐ㄦ2/寰呭叆搴�3鈫�4)锛涢渶妫�鐗╂枡鑷姩鍒涘缓 IQC", "roles": ["浠撶", "IQC 璐ㄦ鍛�"]},
+ {"stage": "鍏ュ簱", "action": "IQC 鍚堟牸/鐗归噰鈫掗噰璐叆搴�(寰呬笂鏋垛啋寰呮墽琛屸啋瀹屾垚)搴撳瓨+锛屽洖鍐欒鍗� inCount/inStatus 涓庣敵璇锋槑缁�", "roles": ["浠撶"]},
+ {"stage": "閫�璐�", "action": "IQC 涓嶅悎鏍奸��璐р啋渚涘簲鍟嗛��璐у嚭搴�(閫夋枡閿佸畾鍒拌鍗曡)锛涙姤搴熻蛋 NCR", "roles": ["浠撶"]},
+ {"stage": "浠樻", "action": "閲囪喘鏉ョエ(FPD, AI OCR, 鈮よ鍗曟�讳环) 鈫� 浠樻鍗�(FKD 鍏宠仈鏉ョエ+闄勪欢, 鈮ゆ潵绁ㄩ噾棰�) BPM 瀹℃壒", "roles": ["璐㈠姟", "瀹℃壒浜�"]}]},
+ {"id": "production", "name": "鐢熶骇娴佺▼", "mermaid": "mermaid/04-production-flow.mmd", "color": "#e0b34f",
+ "summary": "閿�鍞鍗曢┍鍔� MPS 鈫� 涓嬪彂宸ュ崟 鈫� 鎸夊伐鑹鸿矾绾挎媶宸ュ簭浠诲姟 鈫� 棰嗘枡/绾胯竟澶囨枡 鈫� 鎶ュ伐(宸ュ簭椤哄簭纭牎楠�+BPM) 鈫� 鍊掑啿娑堣��/浜у嚭鍏ュ簱/IPQC 鈫� 鏈亾宸ュ簭鍥炲啓杩涘害 鈫� 鑷姩瀹屽伐 鈫� ProductionFinishedEvent 鍥炲啓閿�鍞鍗曘��",
+ "steps": [
+ {"stage": "璁″垝", "action": "MPS 鍒涘缓(鎵嬪伐鎴栭攢鍞鍗曡嚜鍔�)鈫掍笅鍙戞垨鍚堝苟涓嬪彂涓哄伐鍗�", "roles": ["璁″垝鍛�"]},
+ {"stage": "娲惧伐", "action": "宸ュ崟纭鎸夊伐鑹鸿矾绾块�愬伐搴忕敓鎴愪换鍔★紝鍙寚娲�/鏆傚仠/鍙栨秷", "roles": ["杞﹂棿涓讳换"]},
+ {"stage": "澶囨枡", "action": "鐢熶骇棰嗘枡鍗曞嚭搴撴垨绾胯竟铏氭嫙搴撳鏂�", "roles": ["浠撶"]},
+ {"stage": "鎶ュ伐", "action": "鎻愪氦鎶ュ伐锛氫笂涓�閬撳伐搴忔湭鎶ユ弧鐩存帴鎷︽埅锛涘惎鐢� BPM 璧板鎵�", "roles": ["鎿嶄綔宸�"]},
+ {"stage": "鑱斿姩", "action": "瀹℃壒閫氳繃鎸夊伐搴忔爣璁�: 鍊掑啿鈫掕嚜鍔ㄧ墿鏂欐秷鑰楁墸绾胯竟搴�(鍏佽璐熷簱瀛�)锛涜川妫�鈫掍骇鍑哄緟妫�琛岀瓑 IPQC锛涘叧閿潪妫�鈫掔洿鎺ヤ骇鍑哄叆搴�", "roles": ["绯荤粺鑷姩"]},
+ {"stage": "瀹屽伐", "action": "浠呮湯閬撳伐搴忓洖鍐欏伐鍗曞凡鐢熶骇鏁伴噺锛岃揪鏍囪嚜鍔ㄥ畬鎴愶紱MPS 绱鍒ゆ柇瀹屾垚骞跺彂浜嬩欢缁欓攢鍞鍗�", "roles": ["绯荤粺鑷姩"]}]},
+ {"id": "quality", "name": "璐ㄩ噺娴佺▼", "mermaid": "mermaid/05-quality-flow.mmd", "color": "#e06c6c",
+ "summary": "鍥涢亾妫�楠岄椄鍙�(IQC/IPQC/OQC/RQC锛屼簩鎬� 0鈫�4) + 鍒ゅ畾鍥涙灉(鍚堟牸/鐗归噰/閫�璐�/鎶ュ簾) + NCR 璇勫澶勭疆鍏抽棴锛汚I 鎻愪緵鍒ゅ畾寤鸿锛汵CR 褰撳墠浠呭彴璐︿笉瑙﹀彂杩斿伐鍗曘��",
+ "steps": [
+ {"stage": "鏉ユ枡", "action": "鍒拌揣閫氱煡/澶栧崗鍏ュ簱鈫扞QC锛岀粨璁哄洖鍐欐帹杩涘緟鍏ュ簱鎴栬Е鍙戦��璐�", "roles": ["IQC 璐ㄦ鍛�"]},
+ {"stage": "杩囩▼", "action": "鎶ュ伐璐ㄦ宸ュ簭浜у嚭琛屸啋IPQC锛屽悎鏍兼媶琛屽叆搴撱�佷笉鍚堟牸鐢熸垚 NCR", "roles": ["IPQC 璐ㄦ鍛�"]},
+ {"stage": "鍑鸿揣", "action": "閿�鍞嚭搴撴彁浜も啋OQC锛屽畬鎴愬悗鍑哄簱鍗曡繘鍏ュ緟鎷h揣", "roles": ["OQC 璐ㄦ鍛�"]},
+ {"stage": "閫�璐�", "action": "閫�鏂�/閿�鍞��璐�/鍞悗閫�璐р啋RQC锛岀粨璁哄洖璋冨崟鎹笌鍞悗", "roles": ["RQC 璐ㄦ鍛�"]},
+ {"stage": "涓嶅悎鏍�", "action": "NCR: 寰呰瘎瀹♀啋璇勫鈫掑缃�(閫�璐�/鎶ュ簾/杩斿伐/璁╂鎺ユ敹/闄嶇骇)鈫掑叧闂�", "roles": ["璐ㄩ噺宸ョ▼甯�"]}]},
+ {"id": "warehouse", "name": "浠撳偍娴佺▼", "mermaid": "mermaid/06-warehouse-flow.mmd", "color": "#7e6bd6",
+ "summary": "15 绫诲崟鎹┍鍔ㄥ簱瀛樺彴璐�(鍏厓缁勩�佸洓閲�)鍙樺姩锛屽叏閮ㄧ粡浜嬪姟娴佹按鐣欑棔锛涙敮鎸佽皟鎷ㄥ湪閫斻�佺洏鐐硅皟鏁淬�佹壒娆�/SN 杩芥函銆佸簱瀛樺崰鐢ㄤ笌鍥涚骇鍐荤粨銆佺嚎杈硅櫄鎷熷簱璐熷簱瀛橈紱瀵瑰 WmsStockApi 渚� ERP 鏀跺彂銆�",
+ "steps": [
+ {"stage": "鍏ュ簱", "action": "閲囪喘鍏ュ簱/鐢熶骇鍏ュ簱/浜у嚭鍏ュ簱/閫�璐у叆搴�/澶栧崗鍏ュ簱/鏉傞」鍏ュ簱 鈫� IN 浜嬪姟锛屾壒娆℃贩鏀炬牎楠屻�佸洓绾у喕缁撴牎楠�", "roles": ["浠撶"]},
+ {"stage": "鍑哄簱", "action": "閿�鍞嚭搴�/棰嗘枡/娑堣��/澶栧崗鍙戞枡/渚涘簲鍟嗛��璐�/鏉傞」鍑哄簱 鈫� OUT 浜嬪姟锛宑heckFlag 鎺у埗鍙惁璐熷簱瀛�", "roles": ["浠撶", "绯荤粺鑷姩"]},
+ {"stage": "绉诲簱", "action": "鍐呴儴/澶栭儴璋冩嫧鎴愬 MOVE 浜嬪姟锛屽湪閫旀暟閲忚窡韪�", "roles": ["浠撶"]},
+ {"stage": "鐩樼偣", "action": "鏂规鈫掍换鍔♀啋鏄庣粏琛屸啋缁撴灉锛岀洏鐩� ADJUST_IN銆佺洏浜� ADJUST_OUT锛屽彲鍐荤粨涓庣洸鐩�", "roles": ["鐩樼偣鍛�"]},
+ {"stage": "杩芥函", "action": "鎵规/SN(uuid)/鏉$爜(18绫�)/瑁呯宓屽鏀拺姝e弽鍚戣拷婧�", "roles": ["璐ㄩ噺", "鍞悗"]}]},
+ {"id": "aftersales", "name": "鍞悗娴佺▼", "mermaid": "mermaid/07-after-sales-flow.mmd", "color": "#c78bd6",
+ "summary": "宸ュ崟(鍏��+闂鍒ゅ畾) 鈫� 缁翠慨涓夌被鍨嬫垨閫�璐х敵璇� 鈫� 瀹℃牳鑷姩寤� MES 閿�鍞��璐у崟 鈫� RQC 璐ㄦ/鍏ュ簱/閫�娆句笁鍥炶皟閫愮骇鎺ㄨ繘 鈫� 宸ュ崟瀹岀粨鍏抽棴銆�",
+ "steps": [
+ {"stage": "鍙楃悊", "action": "浜哄伐褰曞叆宸ュ崟(鍏宠仈瀹㈡埛/璁㈠崟/鍚堝悓)锛屽垎閰嶅鐞嗕汉杩涘叆澶勭悊涓�", "roles": ["瀹㈡湇"]},
+ {"stage": "鍒ゅ畾", "action": "闂鍒ゅ畾: 涓�鑸�/缁翠慨/閫�璐э紝涓ラ噸搴� 0-3", "roles": ["鍞悗宸ョ▼甯�"]},
+ {"stage": "缁翠慨", "action": "鐜板満/杩斿巶/杩滅▼缁翠慨锛岃垂鐢ㄤ笌缁撴灉璁板綍锛屽畬鎴愯仈鍔ㄥ伐鍗曞畬缁�", "roles": ["缁翠慨宸ョ▼甯�"]},
+ {"stage": "閫�璐�", "action": "閫�璐х敵璇峰鏍糕啋鑷姩寤� MES 閿�鍞��璐у崟(RQC)鈫掕川妫�/鍏ュ簱鍥炶皟鈫掗��娆惧洖璋冣啋鍏抽棴", "roles": ["鍞悗", "璐ㄦ", "璐㈠姟"]}]},
+ {"id": "ai", "name": "AI 涓氬姟娴佺▼", "mermaid": "mermaid/11-ai-business-flow.mmd", "color": "#56c8d8",
+ "summary": "缁熶竴妯″紡锛氫笟鍔′晶鏀堕泦涓婁笅鏂�(蹇呰鏃惰皟 MDM/SRM/CRM API 鍙栧悕绉�)鈫掔粍瑁� Prompt鈫抍hat/chatWithImage鈫掕В鏋� JSON鈫掑墠绔濉垨寤鸿锛涙棤 Function Calling锛汻AG 鐭ヨ瘑搴撳凡寤烘垚浣嗘殏鏃犱笟鍔℃秷璐广��",
+ "steps": [
+ {"stage": "褰曞叆鎻愭晥", "action": "鍙戠エ OCR(鍥剧墖澶氭ā鎬�/PDF鏂囨湰)銆佹姤浠峰崟 OCR 鈫� 缁撴瀯鍖栭濉�", "roles": ["閲囪喘鍛�", "閿�鍞�"]},
+ {"stage": "杈呭姪鍒ゅ畾", "action": "璐ㄦ鍗�+鎸囨爣+缂洪櫡 鈫� 寤鸿鍚堟牸/鐗归噰/閫�璐�/鎶ュ簾+鐞嗙敱", "roles": ["璐ㄦ鍛�"]},
+ {"stage": "鍐崇瓥棰勬祴", "action": "缂烘枡/鐢熶骇鏃堕暱/鐢熶骇椋庨櫓/浜や粯鍥涚被棰勬祴渚涜鍒掓帓浜у弬鑰�", "roles": ["璁″垝鍛�"]},
+ {"stage": "鐭ヨ瘑妫�绱�", "action": "鏂囨。鈫掑垏鐗団啋Milvus 鍚戦噺鈫掓绱㈡帴鍙�(棰勭暀)", "roles": ["鈥�"]}]}
+ ]
+}
diff --git a/docs/project-business/data/modules.json b/docs/project-business/data/modules.json
new file mode 100644
index 0000000..09137e1
--- /dev/null
+++ b/docs/project-business/data/modules.json
@@ -0,0 +1,105 @@
+{
+ "modules": [
+ {"key": "mdm", "name": "鍩虹涓绘暟鎹�", "color": "#8a94a6", "tag": "MDM", "flow": null,
+ "positioning": "鍏ㄧ郴缁熺粺涓�鍙e緞鐨勪富鏁版嵁鏉冨▉婧�",
+ "problem": "鐗╂枡銆佸崟浣嶃�佷粨搴撳湪 MES/ERP/CRM 澶氬閲嶅瀹氫箟瀵艰嚧鏁版嵁鎵撴灦",
+ "features": ["鐗╂枡涓嶴KU锛堝惈鎵规灞炴�ч厤缃�12寮�鍏筹級", "鐗╂枡鍒嗙被鏍�", "璁¢噺鍗曚綅涓庢崲绠�", "鍝佺墝", "浠撳簱涓绘暟鎹紙鍚玹ype瀛楁锛�", "MES 鐗╂枡缁� MdmItemSyncApi 鍙嶅悜鍚屾"],
+ "objects": ["鐗╂枡", "SKU", "璁¢噺鍗曚綅", "浠撳簱"],
+ "roles": ["涓绘暟鎹鐞嗗憳"],
+ "upstream": [], "downstream": ["鐢熶骇", "杩涢攢瀛�", "閿�鍞�", "閲囪喘"],
+ "coreTables": ["mdm_item", "mdm_item_sku", "mdm_item_category", "mdm_unit_measure", "mdm_brand", "mdm_warehouse"]},
+ {"key": "crm", "name": "閿�鍞鐞嗭紙瀹㈡埛鍏崇郴锛�", "color": "#4f9cff", "tag": "CRM", "flow": "sales",
+ "positioning": "閿�鍞墠绔細浠庣嚎绱㈠埌鍥炴鐨勫鎴风粡钀�",
+ "problem": "瀹㈡埛璧勪骇娌夋穩銆佸晢鏈鸿浆鍖栥�佸悎鍚屽鎵逛笌寮�绁ㄥ洖娆剧鎺�",
+ "features": ["绾跨储杞寲瀹㈡埛", "鍏捣姹犱笌棰嗗彇涓婇檺", "鑱旂郴浜�", "鍟嗘満鑷畾涔夐樁娈�", "璺熻繘璁板綍", "鎶ヤ环鍗�(AI OCR)", "鍚堝悓(BPM瀹℃壒鈫掔敓鎴愰攢鍞鍗�)", "寮�绁�(BPM)鈫掑洖娆�(鍏堝紑绁ㄦ牎楠�)", "鍥炴璁″垝", "閿�鍞洰鏍�", "鏁版嵁鏉冮檺涓夌骇(璐熻矗浜�/鍙/璇诲啓)"],
+ "objects": ["绾跨储", "瀹㈡埛", "鑱旂郴浜�", "鍟嗘満", "鎶ヤ环鍗�", "鍚堝悓", "鍙戠エ", "鍥炴", "閿�鍞洰鏍�"],
+ "roles": ["閿�鍞唴鍕�", "閿�鍞粡鐞�", "璐㈠姟(寮�绁ㄥ洖娆�)"],
+ "upstream": ["涓绘暟鎹�(鐗╂枡)"], "downstream": ["杩涢攢瀛�(閿�鍞鍗�)", "鍞悗(瀹㈡埛)", "AI(鎶ヤ环OCR)"],
+ "coreTables": ["crm_clue", "crm_customer", "crm_contact", "crm_business", "crm_sale_quotation", "crm_contract", "crm_invoice", "crm_receivable", "crm_receivable_plan", "crm_permission"]},
+ {"key": "srm", "name": "渚涘簲鍟嗙鐞�", "color": "#c9a86a", "tag": "SRM", "flow": "purchase",
+ "positioning": "渚涘簲鍟嗗叏鐢熷懡鍛ㄦ湡锛氬噯鍏�-璧勮川-瀵绘簮-缁╂晥",
+ "problem": "渚涘簲鍟嗗悎瑙勫噯鍏ャ�侀槼鍏夊婧�(鎷涙爣/姣斾环)涓庣哗鏁堥噺鍖�",
+ "features": ["渚涘簲鍟嗘。妗堜笌鍒嗙被", "鍑嗗叆鐢宠(BPM 閲囪喘/璐ㄩ噺/璐㈠姟浼氱)", "璧勮川璇佷功鏈夋晥鏈�", "鎷涙爣锛氬叕寮�/閭�璇�/绔炶皥瀹屾暣鐗�+姣斾环绠�鏄撶増", "鎶曟爣路鎶ヤ环路寮�鏍嚶疯瘎鏍嚶峰畾鏍�", "瀹氭爣鑷姩鐢熸垚閲囪喘璁㈠崟", "鍥涚淮缁╂晥(璐ㄩ噺/浜や粯/浠锋牸/鏈嶅姟)"],
+ "objects": ["渚涘簲鍟�", "鍑嗗叆鐢宠", "璧勮川璇佷功", "鎷涙爣椤圭洰", "鎶曟爣", "瀹氭爣", "缁╂晥璇勪环"],
+ "roles": ["閲囪喘寮�鍙�", "渚涘簲鍟嗙鐞嗗憳", "璇勫涓撳"],
+ "upstream": ["涓绘暟鎹�(鐗╂枡)"], "downstream": ["杩涢攢瀛�(閲囪喘璁㈠崟)"],
+ "coreTables": ["srm_supplier", "srm_supplier_apply", "srm_supplier_certificate", "srm_tender_project", "srm_tender_bid", "srm_bid_award", "srm_supplier_evaluation"]},
+ {"key": "erp", "name": "杩涢攢瀛樹笌璐㈠姟", "color": "#5fc79e", "tag": "ERP", "flow": "purchase",
+ "positioning": "鍟嗚锤涓庤祫閲戝崟鎹腑鏋紝鍚� MES 鍙戣捣瀹炵墿鏀跺彂",
+ "problem": "閲囪喘閿�鍞崟鎹鎵广�佹潵绁ㄤ粯娆炬帶鍒躲�佽鍗曟墽琛岃繘搴﹀洖鍐�",
+ "features": ["閲囪喘鐢宠(BPM)鈫掕鍗�(鑷姩/鎵嬪姩鐢熸垚)", "纭鏀惰揣鈫扢ES鍒拌揣閫氱煡", "鍏ュ簱/閫�璐ф暟閲忕姸鎬佸洖鍐�", "閲囪喘鏉ョエ(閲戦鈮よ鍗�)", "浠樻鍗�(蹇呴』鍏宠仈鏉ョエ路BPM)", "閿�鍞鍗�(BPM路瀹℃壒閫氳繃鑷姩寤篗PS)", "鍑哄簱鐘舵�佸洖鍐�", "鏀舵鍗�(鍏宠仈CRM瀹㈡埛)", "缁撶畻璐︽埛", "AI鍙戠エOCR"],
+ "objects": ["閲囪喘鐢宠", "閲囪喘璁㈠崟", "閲囪喘鏉ョエ", "浠樻鍗�", "閿�鍞鍗�", "鏀舵鍗�", "缁撶畻璐︽埛"],
+ "roles": ["閲囪喘鍛�", "閿�鍞憳", "鍑虹撼", "浼氳"],
+ "upstream": ["CRM(鍚堝悓)", "SRM(瀹氭爣)", "涓绘暟鎹�"], "downstream": ["鐢熶骇(MPS)", "浠撳偍(鏀跺彂)"],
+ "coreTables": ["erp_purchase_request", "erp_purchase_order", "erp_purchase_invoice", "erp_finance_payment", "erp_sale_order", "erp_finance_receipt", "erp_account"]},
+ {"key": "pro", "name": "鐢熶骇绠$悊", "color": "#e0b34f", "tag": "MES-PRO", "flow": "production",
+ "positioning": "鐢熶骇鎵ц鏍稿績锛氳鍒�-宸ュ崟-浠诲姟-鎶ュ伐",
+ "problem": "璁㈠崟鍒拌溅闂存墽琛岀殑閫愬眰鎷嗚В涓庤繃绋嬪彲鎺�",
+ "features": ["MPS涓荤敓浜ц鍒�(鍙敱閿�鍞鍗曡嚜鍔ㄥ垱寤郝峰悎骞朵笅鍙�)", "宸ュ崟(鎸夊伐鑹鸿矾绾胯嚜鍔ㄧ敓鎴愬伐搴忎换鍔�)", "鎶ュ伐(鎸夊伐搴忛『搴忔帶鍒堵稡PM瀹℃壒)", "鍊掑啿鎵g嚎杈瑰簱/浜у嚭鍏ュ簱", "瀹夌伅", "宸ヨ壓璺嚎路宸ュ簭路宸ュ崟BOM", "鐮斿彂璁捐椤圭洰(PD路瀹℃壒褰掓。)", "AI 鍥涚被棰勬祴"],
+ "objects": ["MPS", "鐢熶骇宸ュ崟", "鐢熶骇浠诲姟", "鎶ュ伐鍗�", "宸ヨ壓璺嚎", "宸ュ崟BOM", "璁捐椤圭洰"],
+ "roles": ["璁″垝鍛�", "杞﹂棿涓讳换", "鎿嶄綔宸�", "宸ヨ壓鍛�"],
+ "upstream": ["杩涢攢瀛�(閿�鍞鍗�)"], "downstream": ["浠撳偍(棰嗘枡/鍏ュ簱)", "璐ㄩ噺(IPQC)"],
+ "coreTables": ["mes_pro_mps", "mes_pro_work_order", "mes_pro_task", "mes_pro_feedback", "mes_pro_route", "mes_pro_process", "mes_pro_work_order_bom", "mes_pd_project"]},
+ {"key": "wm", "name": "浠撳偍绠$悊", "color": "#7e6bd6", "tag": "MES-WM", "flow": "warehouse",
+ "positioning": "鍘傚唴 WMS锛氬崟鎹┍鍔ㄧ殑搴撳瓨璐﹀疄涓�鑷�",
+ "problem": "澶氭潵婧愬嚭鍏ュ簱銆佹壒娆�/SN 杩芥函銆佸簱瀛樼簿纭埌搴撲綅",
+ "features": ["15绉嶅嚭鍏ュ簱鍗曟嵁", "搴撳瓨鍙拌处(鐗╂枡脳浠撳簱脳搴撳尯脳搴撲綅脳鎵规脳渚涘簲鍟�)", "浜嬪姟娴佹按鍙鐣欑棔", "璋冩嫧鎴愬浜嬪姟", "鐩樼偣(闈欐��/鍔ㄦ�伮风洸鐩樎风洏鐩堢洏浜忚皟鏁�)", "鎵规/SN/鏉$爜/瑁呯宓屽", "铏氭嫙绾胯竟搴�(鍏佽璐熷簱瀛�)", "搴撳瓨鍗犵敤(5绫�)", "鍥涚骇鍐荤粨", "WMS瀹℃壒閰嶇疆+BPM", "瀵瑰 WmsStockApi/WmsTransactionApi"],
+ "objects": ["鍒拌揣閫氱煡", "閲囪喘鍏ュ簱", "棰嗘枡", "瀹屽伐鍏ュ簱", "閿�鍞嚭搴�", "鍙戣揣閫氱煡", "閿�鍞��璐�", "渚涘簲鍟嗛��璐�", "璋冩嫧", "鐩樼偣", "搴撳瓨鍙拌处", "鎵规", "SN"],
+ "roles": ["浠撶鍛�", "鎷h揣鍛�", "鐩樼偣鍛�"],
+ "upstream": ["閲囪喘(鏀惰揣)", "鐢熶骇(棰嗛��鏂�)", "閿�鍞�(鍙戣揣)", "鍞悗(閫�璐�)"], "downstream": ["杩涢攢瀛�(鏁伴噺鍥炲啓)", "璐㈠姟(鎴愭湰鍩虹)"],
+ "coreTables": ["mes_wm_warehouse", "mes_wm_material_stock", "mes_wm_transaction", "mes_wm_item_receipt", "mes_wm_product_issue", "mes_wm_product_receipt", "mes_wm_product_sales", "mes_wm_return_sales", "mes_wm_transfer", "mes_wm_stock_taking_task", "mes_wm_batch", "mes_wm_sn", "mes_wm_stock_reserve"]},
+ {"key": "qc", "name": "璐ㄩ噺绠$悊", "color": "#e06c6c", "tag": "MES-QC", "flow": "quality",
+ "positioning": "鍥涢亾妫�楠岄椄鍙� + 涓嶅悎鏍煎搧闂幆澶勭疆",
+ "problem": "鏉ユ枡/杩囩▼/鍑鸿揣/閫�璐ф楠屾爣鍑嗗寲锛屼笉鍚堟牸鍙拷婧缃�",
+ "features": ["IQC 鏉ユ枡(鍒拌揣/澶栧崗)", "IPQC 杩囩▼(鑱斿姩鎶ュ伐)", "OQC 鍑鸿揣(鑱斿姩閿�鍞嚭搴�)", "RQC 閫�璐�(鑱斿姩閫�鏂�/鍞悗)", "璐ㄦ鏂规路鎸囨爣路缂洪櫡搴�", "妫�娴嬬粨鏋�:鍚堟牸/鐗归噰/閫�璐�/鎶ュ簾", "NCR:璇勫鈫掑缃�(閫�璐�/鎶ュ簾/杩斿伐/璁╂/闄嶇骇)鈫掑叧闂�", "AI 鍒ゅ畾寤鸿"],
+ "objects": ["IQC", "IPQC", "OQC", "RQC", "璐ㄦ鏂规", "NCR", "缂洪櫡璁板綍"],
+ "roles": ["璐ㄦ鍛�(IQC/IPQC/OQC)", "璐ㄩ噺宸ョ▼甯�"],
+ "upstream": ["浠撳偍(鍒拌揣)", "鐢熶骇(鎶ュ伐)", "閿�鍞�(鍑哄簱)", "鍞悗(閫�璐�)"], "downstream": ["浠撳偍(鍚堟牸鍏ュ簱/鎶ュ簾鍑哄簱)", "鐢熶骇(NCR杩斿伐)"],
+ "coreTables": ["mes_qc_iqc", "mes_qc_ipqc", "mes_qc_oqc", "mes_qc_rqc", "mes_qc_template", "mes_qc_indicator", "mes_qc_defect", "mes_qc_ncr"]},
+ {"key": "dv", "name": "璁惧涓庡伐瑁呮帓鐝�", "color": "#59a8b8", "tag": "MES-DV/TM/CAL", "flow": null,
+ "positioning": "璁惧璧勪骇鍋ュ悍涓庣敓浜ц祫婧愪繚闅�",
+ "problem": "璁惧鐐规淇濆吇缁翠慨鍙墽琛屻�佸伐瑁呯姸鎬佸彲鎺с�佺彮缁勬帓鐝湁渚濇嵁",
+ "features": ["璁惧鍙拌处(鍋滄満/鐢熶骇涓�/淇濆吇涓�)", "鐐规路淇濆吇鏂规涓庤褰�", "缁翠慨宸ュ崟(鑽夌鈫掔淮淇啋寰呴獙鏀垛啋宸茬‘璁�)", "璁¢噺鍣ㄥ叿妫�瀹�", "宸ヨ澶瑰叿(鍦ㄥ簱/棰嗙敤/缁翠慨/鎶ュ簾)", "鐝粍路鐝路鎺掔彮璁″垝路鑺傚亣鏃�"],
+ "objects": ["璁惧", "鐐规璁板綍", "缁翠慨宸ュ崟", "宸ヨ", "鎺掔彮璁″垝"],
+ "roles": ["璁惧鍛�", "缁翠慨宸�", "宸ヨ绠$悊鍛�", "鎺掔彮鍛�"],
+ "upstream": [], "downstream": ["鐢熶骇(AI 椋庨櫓棰勬祴娑堣垂璁惧鏁版嵁)", "钖叕(鎺掔彮宸ユ椂)"],
+ "coreTables": ["mes_dv_machinery", "mes_dv_check_plan", "mes_dv_check_record", "mes_dv_repair", "mes_tm_tool", "mes_cal_plan", "mes_cal_team", "mes_cal_shift"]},
+ {"key": "aftersales", "name": "鍞悗鏈嶅姟", "color": "#c78bd6", "tag": "AFTER", "flow": "aftersales",
+ "positioning": "瀹㈡埛鍙嶉鍒伴��璐�/缁翠慨/閫�娆鹃棴鐜�",
+ "problem": "鍞悗宸ュ崟娴佽浆銆侀��璐т笌璐ㄦ鍏ュ簱閫�娆剧殑璺ㄧ郴缁熻仈鍔�",
+ "features": ["宸ュ崟鍏��(鑽夌鈫掑鐞嗕腑鈫掑緟鍏ュ簱鈫掑緟閫�娆锯啋瀹岀粨鈫掑叧闂�)", "闂鍒ゅ畾(涓�鑸�/缁翠慨/閫�璐�)", "缁翠慨(鐜板満/杩斿巶/杩滅▼)", "閫�璐х敵璇封啋鑷姩寤� MES 閿�鍞��璐у崟", "璐ㄦ缁撹/鍏ュ簱/閫�娆句笁閲嶅洖璋�", "琛岀骇鏁版嵁鏉冮檺鍥涜鍥�"],
+ "objects": ["鍞悗宸ュ崟", "缁翠慨璁板綍", "閫�璐х敵璇�"],
+ "roles": ["瀹㈡湇", "缁翠慨宸ョ▼甯�", "鍞悗绠$悊鍛�"],
+ "upstream": ["CRM(瀹㈡埛)", "ERP(閿�鍞鍗�)"], "downstream": ["浠撳偍(閿�鍞��璐�)", "璐ㄩ噺(RQC)", "璐㈠姟(閫�娆�)"],
+ "coreTables": ["after_sale_ticket", "after_sale_ticket_item", "after_sale_repair", "after_sale_return", "after_sale_permission"]},
+ {"key": "hrm", "name": "浜哄姏璧勬簮", "color": "#9db85a", "tag": "HRM", "flow": null,
+ "positioning": "鍛樺伐鍏ヨ浆璋冪涓庤�冨嫟钖叕",
+ "problem": "浜轰簨娴佺▼瀹℃壒鍖栥�佺鑱屾暟鎹笉涓�(浜ゆ帴)銆佺畻钖嚜鍔ㄥ寲",
+ "features": ["鍛樺伐妗f(鍏ヨ亴鑷姩寤虹郴缁熻处鍙�)", "璇峰亣/鍔犵彮/璋冨矖/绂昏亴 BPM 瀹℃壒", "绂昏亴浜ゆ帴鏄犲皠 expandUserIds", "鑰冨嫟(鎵撳崱路瑙勫垯路鎺掔彮路琛ュ崱瀹℃壒路鏈堝害姹囨��)", "钖叕(搴斿彂-绀句繚鍏Н閲�-涓◣-璇峰亣鎵f路1.5/2/3鍊嶅姞鐝垂路鍙戞斁鍙拌处)", "鍩硅璇佷功(SQL鍏堣寰呭疄鐜�)"],
+ "objects": ["鍛樺伐", "璇峰亣鍗�", "绂昏亴鐢宠", "浜ゆ帴鏄犲皠", "鑰冨嫟璁板綍", "钖叕鏍哥畻"],
+ "roles": ["HR", "閮ㄩ棬涓荤", "鍛樺伐鏈汉"],
+ "upstream": [], "downstream": ["鍚勬ā鍧�(鏁版嵁鍙鎬ф墿灞�)", "system(璐﹀彿)"],
+ "coreTables": ["hrm_employee", "hrm_leave_application", "hrm_resignation_application", "hrm_user_handover", "hrm_attendance_record", "hrm_salary_calculation", "hrm_salary_payment"]},
+ {"key": "bpm", "name": "鍗忓悓瀹℃壒", "color": "#e6a23c", "tag": "BPM", "flow": null,
+ "positioning": "鍏ㄧ郴缁熷崟鎹鎵逛腑鏋紙Flowable锛�",
+ "problem": "澶氭ā鍧楀崟鎹渶瑕佺伒娲诲彲閰嶇殑澶氱骇瀹℃壒",
+ "features": ["BPMN+閽夐拤椋庢牸鍙岃璁″櫒", "娴佺▼瀹氫箟閮ㄧ讲", "瀹℃壒浜嬩欢缁熶竴鍥炶皟(BpmProcessInstanceStatusEvent)", "13涓笟鍔$洃鍚櫒", "琛ㄥ崟路鐢ㄦ埛缁劼锋妱閫伮峰姞绛�"],
+ "objects": ["娴佺▼妯″瀷", "娴佺▼瀹炰緥", "瀹℃壒浠诲姟"],
+ "roles": ["瀹℃壒浜�(鎸夋祦绋嬮厤缃�)", "娴佺▼绠$悊鍛�"],
+ "upstream": ["鍚勪笟鍔℃彁浜ゅ鎵�"], "downstream": ["鍥炶皟鏇存柊鍚勪笟鍔″崟鎹姸鎬�"],
+ "coreTables": ["bpm_process_definition_info", "bpm_process_instance", "bpm_task", "act_*", "flowable_*"]},
+ {"key": "ai", "name": "AI 鏅鸿兘", "color": "#56c8d8", "tag": "AI", "flow": "ai",
+ "positioning": "鍗曟嵁褰曞叆鎻愭晥涓庣敓浜у喅绛栬緟鍔�",
+ "problem": "浜哄伐褰曞彂绁�/鎶ヤ环鎱€�佽川妫�涓庢帓浜т緷璧栫粡楠�",
+ "features": ["chat/chatWithImage 鍙岄�氶亾", "OCR 棰勫~(鍙戠エ/鎶ヤ环)", "璐ㄦ鍒ゅ畾寤鸿", "缂烘枡/鏃堕暱/椋庨櫓/浜や粯鍥涚被棰勬祴", "RAG 鐭ヨ瘑搴�(Milvus)", "AI涓嶅彲鐢ㄦ椂 fallback 浜哄伐"],
+ "objects": ["鐭ヨ瘑搴�", "AI妯″瀷閰嶇疆", "瀵硅瘽璁板綍"],
+ "roles": ["閲囪喘鍛�", "閿�鍞�", "璐ㄦ鍛�", "璁″垝鍛�"],
+ "upstream": ["鍚勪笟鍔℃彁渚涗笂涓嬫枃鏁版嵁"], "downstream": ["缁撴瀯鍖朖SON寤鸿杩斿洖涓氬姟渚�"],
+ "coreTables": ["ai_chat_conversation", "ai_chat_message", "ai_model", "ai_knowledge", "ai_knowledge_document", "ai_knowledge_segment"]}
+ ],
+ "platform": {
+ "name": "绯荤粺搴曞骇",
+ "capabilities": ["JWT+OAuth2 璁よ瘉路婊戝潡楠岃瘉鐮�", "RBAC 瑙掕壊-鑿滃崟-鏁版嵁鑼冨洿(鍏ㄩ儴/閮ㄩ棬/鏈儴闂ㄥ強涓嬬骇/浠呮湰浜�/鑷畾涔�)", "瀛楀吀", "闄勪欢涓績(storage-blob 鏂囦欢 + storage-attachment 鎸� recordType+recordId 澶氭�佸叧鑱旓紝鍏ㄦā鍧楀己鍒朵娇鐢�)", "缂栫爜瑙勫垯(鍚勪笟鍔¤嚜瀹炵幇 Redis 鍓嶇紑+鏃ユ湡+娴佹按)", "Quartz 瀹氭椂浠诲姟路RocketMQ/Kafka/Redis Stream MQ路WebSocket", "澶氱鎴峰凡鍏抽棴", "瀹為檯 system_role 浠� 4 涓細瓒呯骇绠$悊鍛�/鏅�氳鑹�/CRM绠$悊鍛�/绉熸埛绠$悊鍛橈紝涓氬姟鍒嗗伐闈犳暟鎹潈闄愯�岄潪澶氳鑹�"],
+ "unused": ["im 妯″潡(IM/RTC锛屼笟鍔℃湭娑堣垂)", "member 妯″潡(C绔細鍛橈紝閬楃暀)"]
+ }
+}
diff --git a/docs/project-business/data/objects.json b/docs/project-business/data/objects.json
new file mode 100644
index 0000000..b9ab1c5
--- /dev/null
+++ b/docs/project-business/data/objects.json
@@ -0,0 +1,50 @@
+{
+ "objects": [
+ {"name": "鐗╂枡", "module": "鍩虹涓绘暟鎹�", "table": "mdm_item", "doc": "MDM 鏉冨▉鐗╂枡/浜у搧/鍗婃垚鍝佹。妗堬紝鍚� SKU銆佹壒娆″睘鎬с�佷环鏍笺�佸畨鍏ㄥ簱瀛�", "upstream": ["MES 鐗╂枡鍙嶅悜鍚屾"], "downstream": ["鎶ヤ环鍗�", "閿�鍞鍗�", "閲囪喘璁㈠崟", "宸ュ崟BOM", "搴撳瓨鍙拌处"], "keywords": "鐗╂枡 浜у搧 鍘熸潗鏂� item"},
+ {"name": "浠撳簱", "module": "鍩虹涓绘暟鎹�", "table": "mdm_warehouse", "doc": "浠撳簱涓绘暟鎹紝type: 1鍘熸枡/2鎴愬搧/3鍗婃垚鍝�/4绾胯竟锛汳ES 鑷湁 mes_wm_warehouse 鎵胯浇搴撳尯搴撲綅", "upstream": [], "downstream": ["搴撳瓨鍙拌处", "鍑哄叆搴撳崟鎹�"], "keywords": "浠撳簱 warehouse 鍘熸枡浠� 鎴愬搧浠� 绾胯竟浠�"},
+ {"name": "瀹㈡埛", "module": "閿�鍞鐞�", "table": "crm_customer", "doc": "瀹㈡埛涓绘。锛屽叕娴锋睜/閿佸畾/鎴愪氦鐘舵�侊紝璐熻矗浜烘暟鎹潈闄�", "upstream": ["绾跨储"], "downstream": ["鑱旂郴浜�", "鍟嗘満", "鎶ヤ环鍗�", "鍚堝悓", "鍞悗宸ュ崟", "鏀舵鍗�"], "keywords": "瀹㈡埛 customer 鍏捣"},
+ {"name": "绾跨储", "module": "閿�鍞鐞�", "table": "crm_clue", "doc": "鍘熷閿�鍞嚎绱紝浠呬竴娆¤浆鍖栦负瀹㈡埛", "upstream": [], "downstream": ["瀹㈡埛"], "keywords": "绾跨储 clue"},
+ {"name": "鑱旂郴浜�", "module": "閿�鍞鐞�", "table": "crm_contact", "doc": "瀹㈡埛涓嬭仈绯讳汉锛屼笌鍟嗘満澶氬澶�", "upstream": ["瀹㈡埛"], "downstream": ["鍟嗘満"], "keywords": "鑱旂郴浜� contact"},
+ {"name": "鍟嗘満", "module": "閿�鍞鐞�", "table": "crm_business", "doc": "閿�鍞満浼氾紝DB 閰嶇疆寮忛樁娈垫帹杩涳紝缁撴潫鎬�: 璧�/杈�/鏃犳晥", "upstream": ["瀹㈡埛"], "downstream": ["鎶ヤ环鍗�", "鍚堝悓"], "keywords": "鍟嗘満 business 璧㈠崟 杈撳崟 闃舵"},
+ {"name": "鎶ヤ环鍗�", "module": "閿�鍞鐞�", "table": "crm_sale_quotation", "doc": "QT缂栧彿锛岄�� MDM 鐗╂枡鎶ヤ环锛孉I OCR 褰曞叆锛岃崏绋库啋宸茶浆鍚堝悓", "upstream": ["鍟嗘満"], "downstream": ["鍚堝悓"], "keywords": "鎶ヤ环 quotation QT"},
+ {"name": "鍚堝悓", "module": "閿�鍞鐞�", "table": "crm_contract", "doc": "HT缂栧彿锛孊PM 瀹℃壒(0鑽夌/10瀹℃壒涓�/20閫氳繃/30椹冲洖/40鍙栨秷/50浣滃簾)锛岄�氳繃鍚庡彲鐢熸垚閿�鍞鍗�", "upstream": ["鎶ヤ环鍗�"], "downstream": ["閿�鍞鍗�", "鍥炴璁″垝", "寮�绁�"], "keywords": "鍚堝悓 contract 瀹℃壒"},
+ {"name": "鍙戠エ", "module": "閿�鍞鐞�", "table": "crm_invoice", "doc": "KP缂栧彿锛孊PM 瀹℃壒锛岀疮璁″紑绁ㄢ墹鍚堝悓棰濓紝闄勪欢蹇呬紶", "upstream": ["鍚堝悓"], "downstream": ["鍥炴"], "keywords": "寮�绁� 鍙戠エ invoice"},
+ {"name": "鍥炴", "module": "閿�鍞鐞�", "table": "crm_receivable", "doc": "HK缂栧彿锛屽垱寤哄嵆瀹℃壒涓�(鎵嬪姩瀹℃牳)锛屽己鍒跺厛寮�绁紝閲戦鍙屾牎楠�", "upstream": ["鍚堝悓", "鍙戠エ"], "downstream": ["鏀舵鍗�(鍏宠仈)"], "keywords": "鍥炴 鏀舵璁″垝 receivable"},
+ {"name": "閿�鍞洰鏍�", "module": "閿�鍞鐞�", "table": "crm_sales_target", "doc": "骞�/瀛�/鏈埫椾釜浜�/閮ㄩ棬/浜у搧缁村害鐨勫悎鍚屽洖娆剧瓑鐩爣", "upstream": [], "downstream": ["涓氱哗缁熻"], "keywords": "鐩爣 target 涓氱哗"},
+ {"name": "渚涘簲鍟�", "module": "渚涘簲鍟嗙鐞�", "table": "srm_supplier", "doc": "渚涘簲鍟嗘。妗堬細鎵х収/绋庡彿/閾惰/鑱旂郴浜猴紝ERP 涓� MES 鍏辩敤", "upstream": ["鍑嗗叆鐢宠"], "downstream": ["閲囪喘璁㈠崟", "鍒拌揣閫氱煡", "渚涘簲鍟嗛��璐�", "缁╂晥璇勪环"], "keywords": "渚涘簲鍟� supplier vendor"},
+ {"name": "鍑嗗叆鐢宠", "module": "渚涘簲鍟嗙鐞�", "table": "srm_supplier_apply", "doc": "AP缂栧彿锛孊PM 瀹℃壒(閲囪喘/璐ㄩ噺/璐㈠姟)锛岄�氳繃鑷姩寤轰緵搴斿晢妗f", "upstream": [], "downstream": ["渚涘簲鍟�"], "keywords": "鍑嗗叆 渚涘簲鍟嗙敵璇� apply"},
+ {"name": "鎷涙爣椤圭洰", "module": "渚涘簲鍟嗙鐞�", "table": "srm_tender_project", "doc": "瀹屾暣鐗�(鍙戝竷鈫掓姇鏍団啋寮�鏍団啋璇勬爣鈫掑畾鏍�)涓庣畝鏄撴瘮浠蜂袱绉嶆ā寮�", "upstream": [], "downstream": ["瀹氭爣鈫掗噰璐鍗�"], "keywords": "鎷涙爣 鎶曟爣 姣斾环 瀹氭爣 tender 瀵绘簮"},
+ {"name": "閲囪喘鐢宠", "module": "杩涢攢瀛�", "table": "erp_purchase_request", "doc": "CGSQ缂栧彿锛孊PM 瀹℃壒锛岄�氳繃鍚庢湁渚涘簲鍟嗚嚜鍔ㄧ敓鎴愯鍗�", "upstream": ["鐢熶骇缂哄彛(浜哄伐)"], "downstream": ["閲囪喘璁㈠崟"], "keywords": "閲囪喘鐢宠 璇疯喘 request"},
+ {"name": "閲囪喘璁㈠崟", "module": "杩涢攢瀛�", "table": "erp_purchase_order", "doc": "CGDD缂栧彿锛孊PM 瀹℃壒(15瀹℃壒涓�/20宸插鏍�)锛屽叆搴撶姸鎬�:鏈�0閮ㄥ垎1鍏ㄩ儴2", "upstream": ["閲囪喘鐢宠", "瀹氭爣"], "downstream": ["鍒拌揣閫氱煡", "閲囪喘鏉ョエ", "渚涘簲鍟嗛��璐�(绾︽潫鐗╂枡)"], "keywords": "閲囪喘璁㈠崟 purchase"},
+ {"name": "閲囪喘鏉ョエ", "module": "杩涢攢瀛�", "table": "erp_purchase_invoice", "doc": "FPD缂栧彿锛孉I OCR 棰勫~锛岀疮璁♀墹璁㈠崟鎬讳环锛屼粯娆惧崟鐨勫墠缃�", "upstream": ["閲囪喘璁㈠崟"], "downstream": ["浠樻鍗�"], "keywords": "鏉ョエ 鍙戠エ 閲囪喘鍙戠エ"},
+ {"name": "浠樻鍗�", "module": "璐㈠姟", "table": "erp_finance_payment", "doc": "FKD缂栧彿锛屽繀椤诲叧鑱旀潵绁�+闄勪欢锛岀疮璁♀墹鏉ョエ閲戦锛孊PM 瀹℃壒", "upstream": ["閲囪喘鏉ョエ"], "downstream": ["缁撶畻璐︽埛"], "keywords": "浠樻 搴斾粯 payment"},
+ {"name": "鏀舵鍗�", "module": "璐㈠姟", "table": "erp_finance_receipt", "doc": "SKD缂栧彿锛屽叧鑱� CRM 瀹㈡埛鏍¢獙锛屾棤 BPM(鎵嬪姩瀹℃牳)", "upstream": ["閿�鍞�(寮卞叧鑱�)"], "downstream": ["缁撶畻璐︽埛"], "keywords": "鏀舵 搴旀敹 receipt"},
+ {"name": "閿�鍞鍗�", "module": "杩涢攢瀛�", "table": "erp_sale_order", "doc": "XSDD缂栧彿锛孊PM 瀹℃壒锛岄渶鐢熶骇琛岃嚜鍔ㄥ缓 MPS锛屽嚭搴撶姸鎬�:鏈�0宸查鐣�1閮ㄥ垎2鍏ㄩ儴3锛岀敓浜у畬鎴愪簨浠跺洖鍐�", "upstream": ["鍚堝悓"], "downstream": ["MPS", "鍙戣揣閫氱煡", "閿�鍞嚭搴�", "鍞悗宸ュ崟"], "keywords": "閿�鍞鍗� sale"},
+ {"name": "涓荤敓浜ц鍒�", "module": "鐢熶骇", "table": "mes_pro_mps", "doc": "MPS璁″垝锛岃崏绋�0鈫掑凡涓嬪彂1鈫掑畬鎴�2/鍙栨秷3锛屽彲鍚堝苟涓嬪彂", "upstream": ["閿�鍞鍗�"], "downstream": ["鐢熶骇宸ュ崟"], "keywords": "MPS 涓昏鍒� 鐢熶骇璁″垝"},
+ {"name": "鐢熶骇宸ュ崟", "module": "鐢熶骇", "table": "mes_pro_work_order", "doc": "鑽夌0鈫掑凡纭1鈫掑畬鎴�2/鍙栨秷3锛岀‘璁ゆ椂鎸夊伐鑹鸿矾绾跨敓鎴愪换鍔★紝鏈�鍚庝竴閬撳伐搴忔姤宸ュ洖鍐欏凡鐢熶骇鏁伴噺", "upstream": ["MPS"], "downstream": ["鐢熶骇浠诲姟", "棰嗘枡", "瀹屽伐鍏ュ簱"], "keywords": "宸ュ崟 鐢熶骇宸ュ崟 work order"},
+ {"name": "鐢熶骇浠诲姟", "module": "鐢熶骇", "table": "mes_pro_task", "doc": "宸ュ簭绮掑害锛岄澶�0鈫掔敓浜т腑1鈫掗儴鍒�2鈫掑畬鎴�4锛屽彲鏆傚仠9鍙栨秷5", "upstream": ["鐢熶骇宸ュ崟"], "downstream": ["鎶ュ伐"], "keywords": "浠诲姟 task 宸ュ簭"},
+ {"name": "鎶ュ伐鍗�", "module": "鐢熶骇", "table": "mes_pro_feedback", "doc": "鑽夌0鈫掑鎵逛腑2鈫掑緟妫�3/瀹屾垚4锛屾寜宸ュ簭椤哄簭鏍¢獙(涓婇亾宸ュ簭鎶ユ弧鎵嶅彲鎶�)锛岃仈鍔ㄥ�掑啿娑堣��/浜у嚭鍏ュ簱/IPQC", "upstream": ["鐢熶骇浠诲姟"], "downstream": ["浜у搧浜у嚭", "鐗╂枡娑堣��", "IPQC"], "keywords": "鎶ュ伐 feedback"},
+ {"name": "宸ヨ壓璺嚎", "module": "鐢熶骇", "table": "mes_pro_route", "doc": "宸ュ簭椤哄簭+璐ㄦ/鍏抽敭/鍊掑啿鏍囪锛岄┍鍔ㄥ伐鍗曚换鍔′笌鎶ュ伐瑙勫垯", "upstream": [], "downstream": ["鐢熶骇宸ュ崟"], "keywords": "宸ヨ壓 璺嚎 route 宸ュ簭"},
+ {"name": "鍒拌揣閫氱煡鍗�", "module": "浠撳偍", "table": "mes_wm_arrival_notice", "doc": "閲囪喘璁㈠崟纭鏀惰揣鐢熸垚锛岃崏绋�0鈫掑緟璐ㄦ2鈫掑緟鍏ュ簱3鈫掑畬鎴�4", "upstream": ["閲囪喘璁㈠崟"], "downstream": ["IQC", "閲囪喘鍏ュ簱"], "keywords": "鍒拌揣 鏀惰揣 arrival"},
+ {"name": "閲囪喘鍏ュ簱鍗�", "module": "浠撳偍", "table": "mes_wm_item_receipt", "doc": "鑽夌0鈫掑緟涓婃灦2鈫掑緟鎵ц3鈫掑畬鎴�4锛屽畬鎴愬悗搴撳瓨+骞跺洖鍐� ERP inCount/inStatus", "upstream": ["鍒拌揣閫氱煡"], "downstream": ["搴撳瓨鍙拌处", "閲囪喘璁㈠崟(鍥炲啓)"], "keywords": "閲囪喘鍏ュ簱 鏀惰揣鍏ュ簱 receipt"},
+ {"name": "鐢熶骇棰嗘枡鍗�", "module": "浠撳偍", "table": "mes_wm_product_issue", "doc": "鑽夌0鈫掑緟鎷h揣2鈫掑緟鎵ц3鈫掑畬鎴�4锛屽簱瀛�-", "upstream": ["鐢熶骇宸ュ崟"], "downstream": ["搴撳瓨鍙拌处"], "keywords": "棰嗘枡 issue"},
+ {"name": "閿�鍞嚭搴撳崟", "module": "浠撳偍", "table": "mes_wm_product_sales", "doc": "鍙戣揣閫氱煡瀹℃牳鍚庣敓鎴愶紝鎻愪氦鈫扥QC妫�娴嬧啋鎷h揣鈫掑彂杩�10鈫掑緟鎵ц3鈫掑畬鎴�4锛屽洖鍐欓攢鍞鍗曞嚭搴撴暟涓庣姸鎬�", "upstream": ["鍙戣揣閫氱煡", "閿�鍞鍗�"], "downstream": ["搴撳瓨鍙拌处", "OQC"], "keywords": "閿�鍞嚭搴� 鍙戣揣 鍑哄簱鍗� sales"},
+ {"name": "閿�鍞��璐у崟", "module": "浠撳偍", "table": "mes_wm_return_sales", "doc": "鑽夌鈫掑緟妫�楠�(RQC)鈫掑緟涓婃灦鈫掑緟鍏ュ簱鈫掑畬鎴愶紝鍞悗涓庢墜宸ヤ袱鏉ユ簮", "upstream": ["鍞悗閫�璐х敵璇�"], "downstream": ["搴撳瓨鍙拌处", "RQC"], "keywords": "閿�鍞��璐� 閫�璐у叆搴�"},
+ {"name": "渚涘簲鍟嗛��璐у崟", "module": "浠撳偍", "table": "mes_wm_return_vendor", "doc": "IQC 涓嶅悎鏍奸��璐у彂璧凤紝寰呮嫞璐р啋寰呮墽琛屸啋瀹屾垚锛屽簱瀛�-", "upstream": ["IQC"], "downstream": ["搴撳瓨鍙拌处", "閲囪喘璁㈠崟(returnCount)"], "keywords": "渚涘簲鍟嗛��璐� 閫�鏂� 閫�璐� vendor"},
+ {"name": "璋冩嫧鍗�", "module": "浠撳偍", "table": "mes_wm_transfer", "doc": "鍐呴儴/澶栭儴璋冩嫧锛屾垚瀵� MOVE_OUT+MOVE_IN 浜嬪姟锛屽湪閫旀暟閲�", "upstream": [], "downstream": ["搴撳瓨鍙拌处"], "keywords": "璋冩嫧 绉诲簱 transfer"},
+ {"name": "鐩樼偣浠诲姟", "module": "浠撳偍", "table": "mes_wm_stock_taking_task", "doc": "闈欐��/鍔ㄦ�佺洏鐐癸紝琛岀粨鏋�:姝e父/鐩樼泩(ADJUST_IN)/鐩樹簭(ADJUST_OUT)锛屽彲鍐荤粨搴撳瓨銆佺洸鐩�", "upstream": ["搴撳瓨鍙拌处"], "downstream": ["搴撳瓨鍙拌处(璋冩暣)"], "keywords": "鐩樼偣 鐩樼泩 鐩樹簭 stock taking"},
+ {"name": "搴撳瓨鍙拌处", "module": "浠撳偍", "table": "mes_wm_material_stock", "doc": "鐗╂枡脳浠撳簱脳搴撳尯脳搴撲綅脳鎵规脳渚涘簲鍟嗗叚鍏冪粍锛屾暟閲�/鍐荤粨/鍗犵敤/鍦ㄩ�斿洓閲�", "upstream": ["鍏ㄩ儴鍏ュ簱鍗�"], "downstream": ["鍏ㄩ儴鍑哄簱鍗�", "浜嬪姟娴佹按"], "keywords": "搴撳瓨 鍙拌处 stock 鍙敤閲�"},
+ {"name": "鎵规", "module": "浠撳偍", "table": "mes_wm_batch", "doc": "鍏宠仈鐗╂枡/宸ュ崟/渚涘簲鍟�/瀹㈡埛/璐ㄩ噺鐘舵�侊紱SN 鐮佸惈鎵规 uuid锛涙潯鐮佹敮鎸�18绉嶄笟鍔″璞�", "upstream": ["鍏ュ簱鍗曟嵁"], "downstream": ["搴撳瓨鍙拌处"], "keywords": "鎵规 batch SN 鏉$爜 杩芥函"},
+ {"name": "IQC鏉ユ枡妫�楠�", "module": "璐ㄩ噺", "table": "mes_qc_iqc", "doc": "鍒拌揣閫氱煡/澶栧崗鍏ュ簱瑙﹀彂锛岃崏绋�0鈫掑畬鎴�4锛岀粨璁哄洖鍐欐潵婧愬崟鎹�", "upstream": ["鍒拌揣閫氱煡", "澶栧崗鍏ュ簱"], "downstream": ["閲囪喘鍏ュ簱", "渚涘簲鍟嗛��璐�", "NCR"], "keywords": "IQC 鏉ユ枡妫�楠�"},
+ {"name": "IPQC杩囩▼妫�楠�", "module": "璐ㄩ噺", "table": "mes_qc_ipqc", "doc": "鎶ュ伐璐ㄦ宸ュ簭浜у嚭琛岃Е鍙戯紝瀹屾垚鍥炶皟鎺ㄨ繘鎶ュ伐涓庝骇鍑哄叆搴�", "upstream": ["鎶ュ伐"], "downstream": ["浜у嚭鍏ュ簱", "NCR"], "keywords": "IPQC 杩囩▼妫�楠� 宸℃"},
+ {"name": "OQC鍑鸿揣妫�楠�", "module": "璐ㄩ噺", "table": "mes_qc_oqc", "doc": "閿�鍞嚭搴撴彁浜よЕ鍙戯紝瀹屾垚鎺ㄨ繘鍑哄簱鍗曞緟鎷h揣", "upstream": ["閿�鍞嚭搴撳崟"], "downstream": ["閿�鍞嚭搴撳崟(鎺ㄨ繘)"], "keywords": "OQC 鍑鸿揣妫�楠� 鍑哄巶妫�楠�"},
+ {"name": "RQC閫�璐ф楠�", "module": "璐ㄩ噺", "table": "mes_qc_rqc", "doc": "鐢熶骇閫�鏂�/閿�鍞��璐�/鍞悗閫�璐цЕ鍙戯紝缁撹鍥炶皟鍞悗", "upstream": ["閫�鏂�", "閫�璐�"], "downstream": ["閫�璐у叆搴�", "鍞悗鍥炶皟"], "keywords": "RQC 閫�璐ф楠�"},
+ {"name": "NCR涓嶅悎鏍煎搧", "module": "璐ㄩ噺", "table": "mes_qc_ncr", "doc": "寰呰瘎瀹�0鈫掑凡璇勫6鈫掑凡澶勭疆7鈫掑凡鍏抽棴8锛屽缃�:閫�璐�/鎶ュ簾/杩斿伐/璁╂鎺ユ敹/闄嶇骇", "upstream": ["IQC/IPQC/OQC/RQC"], "downstream": ["閫�璐�/鎶ュ簾/杩斿伐(鍙拌处)"], "keywords": "NCR 涓嶅悎鏍� 澶勭疆 鐗归噰 鎶ュ簾"},
+ {"name": "璁惧", "module": "璁惧", "table": "mes_dv_machinery", "doc": "鍙拌处鐘舵��:鍋滄満/鐢熶骇涓�/淇濆吇涓紱鐐规路淇濆吇路缁翠慨宸ュ崟锛汚I 椋庨櫓棰勬祴娑堣垂鍏舵暟鎹�", "upstream": [], "downstream": ["鐐规", "缁翠慨", "鐢熶骇椋庨櫓棰勬祴"], "keywords": "璁惧 鐐规 淇濆吇 缁翠慨 machinery"},
+ {"name": "鍞悗宸ュ崟", "module": "鍞悗", "table": "after_sale_ticket", "doc": "鑽夌0鈫掑鐞嗕腑10鈫掑緟鍏ュ簱30鈫掑緟閫�娆�40鈫掑畬缁�50鈫掑叧闂�60/鍙栨秷99锛屽垽瀹�:涓�鑸�/缁翠慨/閫�璐�", "upstream": ["瀹㈡埛鍙嶉(浜哄伐褰曞叆)"], "downstream": ["缁翠慨璁板綍", "閫�璐х敵璇�"], "keywords": "鍞悗 宸ュ崟 ticket 缁翠慨"},
+ {"name": "閫�璐х敵璇�", "module": "鍞悗", "table": "after_sale_return", "doc": "鑽夌0鈫掑凡瀹℃牳20(鑷姩寤篗ES閫�璐у崟)鈫掑凡璐ㄦ40鈫掑凡鍏ュ簱50鈫掑凡閫�娆�60鈫掑叧闂�70锛涚被鍨�:閫�娆鹃��璐�/鎹㈣揣/浠呴��娆�", "upstream": ["鍞悗宸ュ崟"], "downstream": ["閿�鍞��璐у崟", "閫�娆�"], "keywords": "鍞悗閫�璐� return"},
+ {"name": "鍛樺伐", "module": "浜哄姏", "table": "hrm_employee", "doc": "鍦ㄨ亴1/璇曠敤2/绂昏亴3锛屽叆鑱岃嚜鍔ㄥ缓绯荤粺璐﹀彿", "upstream": [], "downstream": ["浜ゆ帴鏄犲皠", "鑰冨嫟", "钖叕"], "keywords": "鍛樺伐 鍏ヨ亴 employee"},
+ {"name": "绂昏亴浜ゆ帴", "module": "浜哄姏", "table": "hrm_user_handover", "doc": "from鈫抰o 鏄犲皠锛屽凡瀹屾垚20 鍚� expandUserIds 鎵╁睍浜ゆ帴浜哄彲瑙佹暟鎹紙褰撳墠鍚勪笟鍔℃ā鍧楀皻鏈疄闄呮帴鍏ヨ皟鐢級", "upstream": ["绂昏亴鐢宠"], "downstream": ["鍚勬ā鍧楁垜鐨勬暟鎹煡璇�"], "keywords": "浜ゆ帴 绂昏亴 handover expandUserIds"},
+ {"name": "鎺掔彮璁″垝", "module": "璁惧", "table": "mes_cal_plan", "doc": "鐝粍脳鐝脳鏃ユ湡鎺掔彮锛屼緵鐢熶骇涓庤�冨嫟寮曠敤", "upstream": [], "downstream": ["鐢熶骇浠诲姟", "鑰冨嫟"], "keywords": "鎺掔彮 鐝粍 鐝 鏃ュ巻"}
+ ]
+}
diff --git a/docs/project-business/data/roles.json b/docs/project-business/data/roles.json
new file mode 100644
index 0000000..4980d2b
--- /dev/null
+++ b/docs/project-business/data/roles.json
@@ -0,0 +1,24 @@
+{
+ "note": "瀹為檯 system_role 浠� 4 涓湁鏁堣鑹诧紙瓒呯骇绠$悊鍛�/鏅�氳鑹�/CRM绠$悊鍛�/绉熸埛绠$悊鍛橈級+1 娴嬭瘯瑙掕壊锛涗笟鍔″垎宸ヤ富瑕侀�氳繃銆庤彍鍗曟潈闄� + 鏁版嵁鏉冮檺锛堣礋璐d汉鍒讹級銆忓疄鐜帮紝鑰岄潪缁嗗垎瑙掕壊銆備互涓嬩笟鍔¤鑹茬敱鍚勬ā鍧楀姛鑳戒笌鏁版嵁鏉冮檺妯″瀷鎺ㄥ銆�",
+ "systemRoles": [
+ {"name": "瓒呯骇绠$悊鍛�", "code": "super_admin", "desc": "浠g爜鐩磋繑鍏ㄩ儴鑿滃崟"},
+ {"name": "鏅�氳鑹�", "code": "common", "desc": "渚濊禆 system_role_menu 閰嶆潈"},
+ {"name": "CRM 绠$悊鍛�", "code": "crm_admin", "desc": "CRM 鏌ョ湅鍏ㄩ儴鏁版嵁"},
+ {"name": "绉熸埛绠$悊鍛�", "code": "tenant_admin", "desc": "澶氱鎴峰凡鍏抽棴锛岄仐鐣�"}
+ ],
+ "businessRoles": [
+ {"role": "閿�鍞唴鍕�/閿�鍞�", "modules": ["CRM", "ERP"], "operations": ["绾跨储瀹㈡埛鍟嗘満缁存姢", "鎶ヤ环涓庡悎鍚�", "閿�鍞鍗�", "璺熻繘璁板綍"], "data": ["crm_*", "erp_sale_order"], "scope": "璐熻矗浜�(owner)+鏁版嵁鏉冮檺涓夌骇锛氬彧璇�/璇诲啓/璐熻矗浜猴紱鍏捣姹犲彲棰嗗彇锛涗氦鎺ヤ汉搴斿彲閫氳繃 expandUserIds 鐪嬪埌绂昏亴浜烘暟鎹�(鎺ュ彛宸插銆佸緟鎺ュ叆)"},
+ {"role": "閿�鍞粡鐞�", "modules": ["CRM"], "operations": ["鍟嗘満/鍚堝悓瀹℃壒鍙備笌", "閿�鍞洰鏍囧埗瀹�", "涓氱哗鎺掑悕婕忔枟鍒嗘瀽"], "data": ["鍥㈤槦鏁版嵁(涓嬪睘鐢ㄦ埛)"], "scope": "AdminUserApi 涓嬬骇鐢ㄦ埛鎵╁睍"},
+ {"role": "閲囪喘鍛�", "modules": ["ERP", "SRM"], "operations": ["閲囪喘鐢宠/璁㈠崟", "纭鏀惰揣", "鏉ョエ涓庝粯娆惧彂璧�"], "data": ["erp_purchase_*", "srm_*"], "scope": "requestUserId/supplierOwner 褰掑睘"},
+ {"role": "閲囪喘寮�鍙�/渚涘簲鍟嗙鐞嗗憳", "modules": ["SRM"], "operations": ["鍑嗗叆瀹℃壒娴佽浆", "鎷涙爣姣斾环缁勭粐", "缁╂晥璇勪环"], "data": ["srm_supplier_apply", "srm_tender_*"], "scope": "BPM 澶氶儴闂ㄤ細绛�(閲囪喘/璐ㄩ噺/璐㈠姟)"},
+ {"role": "璁″垝鍛�", "modules": ["MES"], "operations": ["MPS 涓庡伐鍗�", "宸ヨ壓璺嚎缁存姢", "AI 棰勬祴鍙傝��"], "data": ["mes_pro_*"], "scope": "杞﹂棿/閮ㄩ棬鏁版嵁鑼冨洿"},
+ {"role": "鎿嶄綔宸�/鐝粍闀�", "modules": ["MES"], "operations": ["浠诲姟鎺ユ敹", "鎶ュ伐鎻愪氦(鍙楀伐搴忛『搴忕害鏉�)", "瀹夌伅"], "data": ["mes_pro_feedback", "mes_pro_task"], "scope": "浠诲姟鎸囨淳浜哄彲瑙�"},
+ {"role": "浠撶鍛�", "modules": ["MES-WM"], "operations": ["15 绫诲嚭鍏ュ簱鍗曟嵁鎵ц", "璋冩嫧", "鐩樼偣", "鏉$爜瑁呯"], "data": ["mes_wm_*"], "scope": "浠撳簱缁村害锛沇MS 鍙寜浠撳簱閰嶇疆鍑哄叆搴�/璋冩嫧/鐩樼偣鏄惁璧� BPM"},
+ {"role": "璐ㄦ鍛�", "modules": ["MES-QC"], "operations": ["IQC/IPQC/OQC/RQC 妫�楠�", "NCR 璇勫澶勭疆"], "data": ["mes_qc_*"], "scope": "inspectorUserId 褰掑睘"},
+ {"role": "璁惧鍛�/缁翠慨宸�", "modules": ["MES-DV"], "operations": ["鐐规淇濆吇", "缁翠慨宸ュ崟", "宸ヨ棰嗙敤"], "data": ["mes_dv_*", "mes_tm_*"], "scope": "chargeUserId 褰掑睘"},
+ {"role": "瀹㈡湇/鍞悗宸ョ▼甯�", "modules": ["鍞悗"], "operations": ["宸ュ崟鍙楃悊娲惧伐", "缁翠慨", "閫�璐х敵璇�"], "data": ["after_sale_*"], "scope": "琛岀骇鏁版嵁鏉冮檺鍥涜鍥撅細鎴戣礋璐�/鎴戝弬涓�/涓嬪睘璐熻矗/鍏ㄩ儴(aftersales:view-all)"},
+ {"role": "璐㈠姟", "modules": ["ERP", "CRM"], "operations": ["鏀舵鍗�", "浠樻鍗�", "寮�绁ㄥ鏍�", "缁撶畻璐︽埛"], "data": ["erp_finance_*", "crm_invoice", "crm_receivable"], "scope": "financeUserId 褰掑睘"},
+ {"role": "HR", "modules": ["HRM"], "operations": ["鍛樺伐妗f鍏ヨ浆璋冪", "鑰冨嫟瑙勫垯鎺掔彮", "钖叕鏍哥畻鍙戞斁", "绂昏亴浜ゆ帴"], "data": ["hrm_*"], "scope": "閮ㄩ棬鑼冨洿 dataScope"},
+ {"role": "绠$悊灞�", "modules": ["BI"], "operations": ["鏌ョ湅閲囪喘閿�鍞�/浠撳簱/鐢熶骇璁惧/璐ㄩ噺/浜哄姏浜斿ぇ涓婚澶у睆"], "data": ["bi_dashboard"], "scope": "鍙"}
+ ]
+}
diff --git a/docs/project-business/index.html b/docs/project-business/index.html
new file mode 100644
index 0000000..ec3a7aa
--- /dev/null
+++ b/docs/project-business/index.html
@@ -0,0 +1,1145 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>MOM 宸ュ巶鏁板瓧鍖栧钩鍙� 路 椤圭洰涓氬姟鍏ㄦ櫙</title>
+<style>
+:root{
+ --bg:#0b1220; --bg2:#101a2e; --panel:#131f36; --panel2:#182742;
+ --line:#24344f; --text:#dbe4f0; --muted:#8fa1b8;
+ --c-base:#8a94a6; --c-sale:#4f9cff; --c-sup:#c9a86a; --c-erp:#5fc79e;
+ --c-prod:#e0b34f; --c-wm:#7e6bd6; --c-qc:#e06c6c; --c-dv:#59a8b8;
+ --c-as:#c78bd6; --c-hrm:#9db85a; --c-bpm:#e6a23c; --c-ai:#56c8d8; --c-fin:#3ec9a7;
+}
+*{box-sizing:border-box;margin:0;padding:0}
+html,body{height:100%}
+body{background:var(--bg);color:var(--text);font-family:"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;font-size:14px;line-height:1.6}
+header{position:fixed;top:0;left:0;right:0;height:64px;background:linear-gradient(180deg,#0e1728,#0b1220);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;padding:0 24px;z-index:50}
+header .logo{width:30px;height:30px;border-radius:6px;background:linear-gradient(135deg,#2c5cff,#19c2d8);display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:13px}
+header h1{font-size:17px;font-weight:600;letter-spacing:.5px}
+header .sub{color:var(--muted);font-size:12px}
+#globalSearchWrap{margin-left:auto;position:relative;width:280px}
+#globalSearch{width:100%;background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:7px 12px;font-size:13px;outline:none}
+#globalSearch:focus{border-color:#2c5cff}
+#searchResult{position:absolute;top:38px;right:0;width:430px;max-height:60vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;display:none;box-shadow:0 12px 40px rgba(0,0,0,.5)}
+#searchResult .sr-item{padding:10px 14px;border-bottom:1px solid var(--line);cursor:pointer}
+#searchResult .sr-item:hover{background:var(--panel2)}
+#searchResult .sr-type{font-size:11px;color:var(--muted)}
+#searchResult .sr-meta{font-size:12px;color:var(--muted);margin-top:2px}
+nav{position:fixed;top:64px;left:0;bottom:0;width:210px;background:var(--bg2);border-right:1px solid var(--line);padding:14px 0;overflow:auto;z-index:40}
+nav .group{color:#5f7188;font-size:11px;padding:12px 18px 4px;letter-spacing:1px}
+nav a{display:flex;align-items:center;gap:8px;padding:8px 18px;color:var(--muted);text-decoration:none;font-size:13px;border-left:3px solid transparent;cursor:pointer}
+nav a:hover{color:var(--text);background:#152238}
+nav a.active{color:#fff;background:#16294a;border-left-color:#2c5cff}
+nav a .dot{width:8px;height:8px;border-radius:2px;flex:none}
+main{margin:64px 0 0 210px;padding:26px 32px 80px;max-width:1500px}
+section.page{display:none}
+section.page.on{display:block}
+h2.pt{font-size:20px;font-weight:600;margin-bottom:4px}
+p.desc{color:var(--muted);margin-bottom:18px;max-width:980px}
+.grid{display:grid;gap:14px}
+.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
+.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
+.stat b{display:block;font-size:24px;font-weight:700;color:#fff}
+.stat span{color:var(--muted);font-size:12px}
+.cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
+.card{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--acc,#2c5cff);border-radius:10px;padding:16px 18px;cursor:pointer;transition:border-color .15s,transform .15s}
+.card:hover{transform:translateY(-2px);border-color:#3a5a8f}
+.card h3{font-size:15px;color:#fff;margin-bottom:2px}
+.card h3 .tag{font-size:10px;color:var(--acc,#2c5cff);border:1px solid currentColor;padding:1px 6px;border-radius:10px;margin-left:8px;vertical-align:2px}
+.card p{color:var(--muted);font-size:12.5px;margin:6px 0}
+.card .objs{font-size:12px;color:#a9b8cc}
+.pill{display:inline-block;background:#1b2c4a;border:1px solid var(--line);color:#bcd0ea;border-radius:12px;padding:2px 10px;font-size:12px;margin:3px 4px 0 0;cursor:pointer}
+.pill:hover{border-color:#3a5a8f;background:#22375c}
+.banner{background:linear-gradient(90deg,#12213c,#0f1a2e);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin-bottom:18px}
+.banner .chain{font-size:13.5px;color:#cfe0f5}
+.banner .chain b{color:var(--c-prod)}
+.fig{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin:14px 0;overflow:hidden}
+.fig .bar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--line);background:#101c31}
+.fig .bar .name{font-size:13px;color:#cfe0f5;font-weight:600}
+.fig .bar .btns{margin-left:auto;display:flex;gap:6px}
+.fig .bar button{background:#1a2a46;border:1px solid var(--line);color:#9fb2ca;font-size:12px;border-radius:5px;padding:3px 10px;cursor:pointer}
+.fig .bar button:hover{color:#fff;border-color:#3a5a8f}
+.fig .canvas{overflow:auto;padding:16px;background:var(--panel)}
+.fig .canvas .stage{transform-origin:top left;transition:transform .15s}
+.fig:fullscreen{width:100vw;height:100vh;border-radius:0;background:var(--bg)}
+.fig:fullscreen .canvas{height:calc(100vh - 45px)}
+.mermaid-wrap svg{max-width:100%}
+table.steps{width:100%;border-collapse:collapse;margin:10px 0}
+table.steps th{font-size:12px;color:var(--muted);text-align:left;font-weight:600;padding:7px 10px;border-bottom:1px solid var(--line);background:#101c31}
+table.steps td{padding:8px 10px;border-bottom:1px solid #1b2a44;vertical-align:top;font-size:13px}
+table.steps td.stage{white-space:nowrap;color:var(--acc,#7ea6e8);font-weight:600}
+table.steps td.role{white-space:nowrap;color:var(--muted);font-size:12px}
+table.data{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
+table.data th{font-size:12px;color:var(--muted);text-align:left;padding:9px 12px;background:#101c31;border-bottom:1px solid var(--line)}
+table.data td{padding:9px 12px;border-bottom:1px solid #1a2942;font-size:13px;vertical-align:top}
+table.data tr:hover td{background:#16243c;cursor:pointer}
+.detail{background:var(--panel2);border:1px solid #2c4468;border-radius:10px;padding:16px 20px;margin:12px 0}
+.detail h4{color:#fff;margin-bottom:8px}
+.detail .kv{margin:4px 0;font-size:13px}
+.detail .kv b{color:var(--muted);font-weight:600;margin-right:8px}
+.muted{color:var(--muted)} .small{font-size:12px}
+#objDetail:empty{display:none}
+h3.sec{font-size:15px;color:#cfe0f5;margin:26px 0 10px;padding-left:10px;border-left:3px solid #2c5cff}
+footer{position:fixed;bottom:0;left:210px;right:0;background:#0d1526ee;border-top:1px solid var(--line);padding:8px 32px;color:#5f7188;font-size:12px;z-index:30}
+.warn li{margin-left:18px;padding:3px 0;font-size:13px;color:#d9c4a0}
+@media (max-width:1100px){nav{width:170px}main,footer{margin-left:0}}
+</style>
+</head>
+<body>
+<header>
+ <div class="logo">MOM</div>
+ <div>
+ <h1 id="hProject">椤圭洰涓氬姟鍏ㄦ櫙</h1>
+ <div class="sub" id="hSub"></div>
+ </div>
+ <div id="globalSearchWrap">
+ <input id="globalSearch" placeholder="鎼滅储涓氬姟锛氶攢鍞鍗� / 宸ュ崟 / IQC / 搴撳瓨 / 鍥炴鈥�" autocomplete="off">
+ <div id="searchResult"></div>
+ </div>
+</header>
+
+<nav id="nav">
+ <div class="group">鎬昏</div>
+ <a data-t="overview" class="active"><span class="dot" style="background:#2c5cff"></span>椤圭洰姒傝</a>
+ <a data-t="panorama"><span class="dot" style="background:#56c8d8"></span>涓氬姟鍏ㄦ櫙鍥�</a>
+ <div class="group">鏍稿績涓氬姟娴佺▼</div>
+ <a data-t="flow-sales"><span class="dot" style="background:var(--c-sale)"></span>閿�鍞祦绋�</a>
+ <a data-t="flow-purchase"><span class="dot" style="background:var(--c-erp)"></span>閲囪喘娴佺▼</a>
+ <a data-t="flow-production"><span class="dot" style="background:var(--c-prod)"></span>鐢熶骇娴佺▼</a>
+ <a data-t="flow-quality"><span class="dot" style="background:var(--c-qc)"></span>璐ㄩ噺娴佺▼</a>
+ <a data-t="flow-warehouse"><span class="dot" style="background:var(--c-wm)"></span>浠撳偍娴佺▼</a>
+ <a data-t="flow-aftersales"><span class="dot" style="background:var(--c-as)"></span>鍞悗娴佺▼</a>
+ <div class="group">缁撴瀯涓庢暟鎹�</div>
+ <a data-t="relation"><span class="dot" style="background:var(--c-bpm)"></span>绯荤粺鍏崇郴</a>
+ <a data-t="dataflow"><span class="dot" style="background:var(--c-fin)"></span>鏁版嵁娴�</a>
+ <a data-t="objects"><span class="dot" style="background:var(--c-base)"></span>涓氬姟瀵硅薄</a>
+ <a data-t="roles"><span class="dot" style="background:var(--c-hrm)"></span>瑙掕壊鏉冮檺</a>
+ <div class="group">鎵╁睍</div>
+ <a data-t="ai"><span class="dot" style="background:var(--c-ai)"></span>AI 涓氬姟</a>
+ <a data-t="pending"><span class="dot" style="background:var(--c-sup)"></span>寰呯‘璁や簨椤�</a>
+</nav>
+
+<main>
+<section class="page on" id="overview"></section>
+<section class="page" id="panorama">
+ <h2 class="pt">涓氬姟鍏ㄦ櫙鍥�</h2>
+ <p class="desc">鎸変笟鍔℃剰涔夛紙鑰岄潪浠g爜鍖呯粨鏋勶級褰掔被鐨勬ā鍧�-鑳藉姏鎬濈淮瀵煎浘銆�</p>
+ <div class="fig" data-fig="01-business-mindmap">
+ <div class="bar"><span class="name">涓氬姟鍏ㄦ櫙鎬濈淮瀵煎浘</span><div class="btns"><button data-z="-">锛�</button><button data-z="+">锛�</button><button data-z="0">閲嶇疆</button><button data-fs>鍏ㄥ睆</button></div></div>
+ <div class="canvas"><div class="stage mermaid-wrap"><pre class="mermaid" data-mmd="01-business-mindmap"></pre></div></div>
+ </div>
+</section>
+<section class="page" id="flow-sales"></section>
+<section class="page" id="flow-purchase"></section>
+<section class="page" id="flow-production"></section>
+<section class="page" id="flow-quality"></section>
+<section class="page" id="flow-warehouse"></section>
+<section class="page" id="flow-aftersales"></section>
+<section class="page" id="relation">
+ <h2 class="pt">绯荤粺鍏崇郴</h2>
+ <p class="desc">妯″潡涔嬮棿鐨勮皟鐢ㄤ笌鏁版嵁渚濊禆锛氬疄绾�=鍗曟嵁/鏁版嵁娴佸悜锛岃櫄绾�=瀹℃壒鍥炶皟涓庤緟鍔╄兘鍔涖��</p>
+ <div class="fig" data-fig="08-module-relation">
+ <div class="bar"><span class="name">妯″潡绯荤粺鍏崇郴</span><div class="btns"><button data-z="-">锛�</button><button data-z="+">锛�</button><button data-z="0">閲嶇疆</button><button data-fs>鍏ㄥ睆</button></div></div>
+ <div class="canvas"><div class="stage mermaid-wrap"><pre class="mermaid" data-mmd="08-module-relation"></pre></div></div>
+ </div>
+</section>
+<section class="page" id="dataflow">
+ <h2 class="pt">鏁版嵁娴�</h2>
+ <p class="desc">璺ㄦā鍧楀崟鎹殑鐢熸垚涓庡洖鍐欏叧绯伙紙瀛楁甯﹀叆銆佹暟閲忕姸鎬佸洖鍐欍�佷簨浠堕�氱煡锛夈��</p>
+ <div class="fig" data-fig="09-data-flow">
+ <div class="bar"><span class="name">璺ㄦā鍧楁暟鎹祦</span><div class="btns"><button data-z="-">锛�</button><button data-z="+">锛�</button><button data-z="0">閲嶇疆</button><button data-fs>鍏ㄥ睆</button></div></div>
+ <div class="canvas"><div class="stage mermaid-wrap"><pre class="mermaid" data-mmd="09-data-flow"></pre></div></div>
+ </div>
+</section>
+<section class="page" id="objects">
+ <h2 class="pt">鏍稿績涓氬姟瀵硅薄</h2>
+ <p class="desc">鐐瑰嚮瀵硅薄琛屾煡鐪嬩綔鐢ㄣ�佷笂娓搞�佷笅娓镐笌鏁版嵁琛ㄣ�傚璞″叧绯昏鏂囨湯 ER 鍥撅紙浠呮牳蹇冧笟鍔″璞★級銆�</p>
+ <div class="grid" id="objGrid" style="grid-template-columns:1fr"></div>
+ <div id="objDetail" class="detail"></div>
+ <h3 class="sec">瀵硅薄鍏崇郴鍥撅紙ER锛�</h3>
+ <div class="fig" data-fig="10-business-object">
+ <div class="bar"><span class="name">鏍稿績涓氬姟瀵硅薄鍏崇郴</span><div class="btns"><button data-z="-">锛�</button><button data-z="+">锛�</button><button data-z="0">閲嶇疆</button><button data-fs>鍏ㄥ睆</button></div></div>
+ <div class="canvas"><div class="stage mermaid-wrap"><pre class="mermaid" data-mmd="10-business-object"></pre></div></div>
+ </div>
+</section>
+<section class="page" id="roles"></section>
+<section class="page" id="ai">
+ <h2 class="pt">AI 涓氬姟</h2>
+ <p class="desc">椤圭洰 AI 缁熶竴閲囩敤銆屼笟鍔′晶缁勮 Prompt 鈫� 妯″瀷 鈫� 缁撴瀯鍖� JSON 鈫� 浜哄伐纭銆嶆ā寮忥紝鏃� Function Calling锛汚I 涓嶅彲鐢ㄦ椂鍚勫姛鑳藉洖閫�浜哄伐銆�</p>
+ <div class="grid cards" id="aiGrid"></div>
+</section>
+<section class="page" id="pending">
+ <h2 class="pt">寰呯‘璁や簨椤�</h2>
+ <p class="desc">婧愮爜璧拌涓彂鐜颁笌鏂囨。/棰勬湡涓嶄竴鑷淬�佺枒浼兼湭瀹屾垚鎴栭渶涓氬姟纭鐨勭偣锛屽潎鏍囨敞浜嗗嚭澶勮涓恒��</p>
+ <ul class="warn" id="pendingList"></ul>
+</section>
+</main>
+<footer id="footer"></footer>
+
+<script type="application/json" id="data-business">{
+ "project": {
+ "name": "MOM 宸ュ巶鏁板瓧鍖栧钩鍙帮紙mom-pro2锛�",
+ "type": "娣峰悎绯荤粺",
+ "mainSystem": "MOM 鍒堕�犺繍钀ョ鐞嗙郴缁�",
+ "subSystems": [
+ "MES锛堢敓浜蜂粨鍌疯川閲徛疯澶囷級",
+ "ERP锛堣繘閿�瀛樎疯储鍔★級",
+ "CRM锛堝鎴峰叧绯伙級",
+ "SRM锛堜緵搴斿晢鍏崇郴锛�",
+ "HRM锛堜汉鍔涜祫婧愶級",
+ "BPM锛團lowable 鍗忓悓瀹℃壒锛�",
+ "AI锛堥�氫箟鍗冮棶 + Milvus RAG锛�",
+ "BI锛圫QL 閰嶇疆寮忓ぇ灞忥級"
+ ],
+ "description": "鍩轰簬 yudao锛坮uoyi-vue-pro锛変簩娆″紑鍙戠殑鍒堕�犱笟涓�浣撳寲鏁板瓧宸ュ巶骞冲彴锛岃鐩栥�庨攢鍞帴鍗� 鈫� 閲囪喘/鐢熶骇 鈫� 璐ㄦ 鈫� 浠撳偍 鈫� 鍙戣揣 鈫� 鍥炴 鈫� 鍞悗銆忓叏閾捐矾锛屽唴缃鎵规祦銆佷富鏁版嵁銆侀檮浠躲�丄I 杈呭姪涓� BI 椹鹃┒鑸便��",
+ "businessPositioning": "璁╁伐鍘傜殑璁㈠崟銆佺墿鏂欍�佺敓浜с�佸簱瀛樸�佽川閲忋�佷汉鍛樸�佽祫閲戝湪涓�涓郴缁熷唴闂幆娴佽浆锛岀鐞嗗眰鍙�氳繃 BI 澶у睆鎺屾彙鍏ㄥ眬銆�",
+ "coreChain": "CRM 鍟嗘満/鍚堝悓 鈫� ERP 閿�鍞鍗� 鈫� MES 涓荤敓浜ц鍒�/宸ュ崟/鎶ュ伐 鈫� MES 璐ㄦ涓庝粨鍌� 鈫� 閿�鍞嚭搴撳彂璐� 鈫� 寮�绁ㄥ洖娆� 鈫� 鍞悗闂幆",
+ "techBase": "Spring Boot + MyBatis + Flowable + Redis + Quartz/RocketMQ/Kafka + Milvus 鍚戦噺搴� + 閫氫箟鍗冮棶",
+ "database": "MySQL 8.4锛�413 寮犺〃锛堝惈 system_*銆乥pm_*銆乤ct_* 搴曞骇琛ㄤ笌 mes_*/erp_*/crm_*/srm_*/hrm_*/mdm_*/ai_* 涓氬姟琛級锛屽绉熸埛宸插叧闂�",
+ "frontend": "mom-pro2-before锛圴ue3 绠$悊鍚庡彴锛屽悓浠撳簱瀛樻斁锛屽彧璇诲弬鑰冿級"
+ },
+ "stats": {
+ "businessModules": 12,
+ "coreObjects": 46,
+ "documentFlows": 6,
+ "approvalListeners": 13,
+ "aiCapabilities": 8,
+ "wmBillTypes": 15
+ },
+ "businessAnswers": [
+ [
+ "椤圭洰瑙e喅浠�涔堥棶棰�",
+ "绂绘暎鍒堕�犲伐鍘傜殑浜т緵閿�浜鸿储鐗╀竴浣撳寲绠$悊锛氫粠瀹㈡埛璁㈠崟鍒扮敓浜т氦浠樸�佸簱瀛樿祫閲戝叏閾捐矾鏁板瓧鍖栭棴鐜�"
+ ],
+ [
+ "鏍稿績涓氬姟",
+ "閿�鍞鍗曞饱绾︼紙鍚堝悓鈫掕鍗曗啋鐢熶骇鈫掕川妫�鈫掑叆搴撯啋鍙戣揣鈫掑洖娆撅級涓庨噰璐緵搴旓紙鐢宠鈫掕鍗曗啋鍒拌揣鈫扞QC鈫掑叆搴撯啋浠樻锛�"
+ ],
+ [
+ "涓氬姟涓荤嚎",
+ "CRM 鍚堝悓 鈫� ERP 閿�鍞鍗� 鈫� MES MPS/宸ュ崟 鈫� 鎶ュ伐/IPQC 鈫� 瀹屽伐鍏ュ簱 鈫� 鍙戣揣閫氱煡 鈫� 閿�鍞嚭搴�(OQC) 鈫� 寮�绁� 鈫� 鍥炴"
+ ],
+ [
+ "閿�鍞浣曞奖鍝嶇敓浜�",
+ "閿�鍞鍗曞鎵归�氳繃鍚庯紝闇�鐢熶骇鏄庣粏鑷姩鍒涘缓 MES 涓荤敓浜ц鍒�(MPS)锛孧PS 涓嬪彂椹卞姩宸ュ崟涓庝换鍔�"
+ ],
+ [
+ "閲囪喘濡備綍褰卞搷搴撳瓨",
+ "閲囪喘璁㈠崟銆庣‘璁ゆ敹璐с�忕敓鎴� MES 鍒拌揣閫氱煡 鈫� IQC 鍚堟牸/鐗归噰 鈫� 閲囪喘鍏ュ簱鍗曞畬鎴� 鈫� 搴撳瓨鍙拌处 IN 浜嬪姟+N"
+ ],
+ [
+ "鐢熶骇濡備綍浜х敓搴撳瓨",
+ "鎶ュ伐瀹℃壒閫氳繃鍚庤嚜鍔ㄧ敓鎴愪骇鍝佷骇鍑哄崟鍏ュ簱锛堣川妫�宸ュ簭鍏堝緟妫�銆両PQC 鍚庢媶琛屽叆搴擄級锛涘�掑啿宸ュ簭鎸� BOM 鎵g嚎杈瑰簱"
+ ],
+ [
+ "璐ㄩ噺鍦ㄥ摢閲屼粙鍏�",
+ "鍥涢亾闂稿彛锛欼QC锛堝埌璐�/澶栧崗鍏ュ簱锛夈�両PQC锛堟姤宸ヨ川妫�宸ュ簭锛夈�丱QC锛堥攢鍞嚭搴撳墠锛夈�丷QC锛堥��鏂�/閫�璐э級锛屼笉鍚堟牸璧� NCR 澶勭疆"
+ ],
+ [
+ "鍞悗濡備綍闂幆",
+ "宸ュ崟鍒ゅ畾閫�璐� 鈫� 閫�璐х敵璇峰鏍� 鈫� 鑷姩寤� MES 閿�鍞��璐у崟 鈫� RQC 璐ㄦ/鍏ュ簱鍥炶皟 鈫� 閫�娆惧洖璋� 鈫� 宸ュ崟瀹岀粨鍏抽棴"
+ ],
+ [
+ "AI 鍦ㄥ摢閲屽弬涓�",
+ "鍙戠エ/鎶ヤ环 OCR 棰勫~銆佽川妫�缁撴灉寤鸿銆佺己鏂�/鏃堕暱/椋庨櫓/浜や粯鍥涚被棰勬祴锛涘潎涓恒�庝笟鍔$粍瑁� Prompt鈫掓ā鍨嬧啋JSON鈫掍汉宸ョ‘璁ゃ�忔ā寮�"
+ ],
+ [
+ "妯″潡闂存暟鎹叧绯�",
+ "MDM 涓绘暟鎹粺涓�涓嬪彂锛汣RM鈫擡RP 鍚堝悓鐢熷崟锛汦RP鈫擬ES 鍗曟嵁浜掑缓涓庢暟閲忓洖鍐欙紱BPM 浜嬩欢鍥炶皟瑙i攣鐘舵�侊紱HRM 浜ゆ帴鎵╁睍鏁版嵁鍙鎬�"
+ ]
+ ],
+ "aiCapabilities": [
+ {
+ "name": "閲囪喘鍙戠エ OCR",
+ "flow": "涓婁紶 blobId 鈫� 鍥剧墖璧� chatWithImage 瑙嗚妯″瀷 / PDF路鏂囨湰璧� chat 鈫� 瑙f瀽鍙戠エ鍙仿锋姮澶绰蜂緵搴斿晢路浠风◣鍚堣路绋庣巼 鈫� 棰勫~閲囪喘鏉ョエ琛ㄥ崟",
+ "callsApis": [
+ "SystemStorageBlobService"
+ ]
+ },
+ {
+ "name": "鎶ヤ环鍗� OCR",
+ "flow": "PDF/Word/Excel/鍥剧墖 鈫� POI/PDFBox/瑙嗚妯″瀷 鈫� 鎶ヤ环澶�+浜у搧鏄庣粏 JSON 鈫� 棰勫~鎶ヤ环鍗�",
+ "callsApis": [
+ "SystemStorageBlobService"
+ ]
+ },
+ {
+ "name": "璐ㄦ缁撴灉鏅鸿兘鍒ゅ畾",
+ "flow": "璐ㄦ鍗�+鎸囨爣缁撴灉+缂洪櫡璁板綍 缁勮 Prompt 鈫� chat 鈫� 寤鸿{鍚堟牸/鐗归噰/閫�璐�/鎶ュ簾+鐞嗙敱}",
+ "callsApis": [
+ "MdmItemApi",
+ "SrmSupplierApi",
+ "CrmCustomerApi"
+ ]
+ },
+ {
+ "name": "鐗╂枡鐭己棰勬祴",
+ "flow": "宸ュ崟 BOM 闇�姹� vs 搴撳瓨(鍦ㄥ簱-鍐荤粨-鍗犵敤) vs 宸叉姇鏂� 鈫� chat 鈫� 椋庨櫓绛夌骇+缂哄彛娓呭崟",
+ "callsApis": [
+ "MdmItemApi"
+ ]
+ },
+ {
+ "name": "鐢熶骇鏃堕暱棰勬祴",
+ "flow": "宸ュ簭鏍囧噯宸ユ椂+璁惧灏忔椂浜ч噺+浼犻�佸�嶇巼 鈫� chat 鈫� 棰勬祴鎬绘椂闀�+宸ュ簭鍒嗚В",
+ "callsApis": [
+ "MdmItemApi"
+ ]
+ },
+ {
+ "name": "鐢熶骇椋庨櫓棰勬祴",
+ "flow": "IPQC 缂洪櫡鐜�+璁惧淇濆吇鐐规+鐗╂枡鍙敤鐜�<20%+鍏抽敭宸ュ簭 鈫� chat 鈫� 缁煎悎椋庨櫓+鍥犵礌",
+ "callsApis": [
+ "MdmItemApi"
+ ]
+ },
+ {
+ "name": "浜や粯棰勬祴",
+ "flow": "杩涘害+鍓╀綑澶╂暟+浠诲姟瀹屾垚鐘舵��+瀹㈡埛浜ゆ湡 鈫� chat 鈫� 鑳藉惁鎸夋椂+缃俊搴�+寤惰鍥犵礌",
+ "callsApis": [
+ "MdmItemApi",
+ "CrmCustomerApi"
+ ]
+ },
+ {
+ "name": "RAG 鐭ヨ瘑搴�",
+ "flow": "鏂囨。 鈫� POI/Tika 鎻愭枃鏈� 鈫� 鍒囩墖(800token) 鈫� 鍚戦噺鍖栧叆 Milvus 鈫� 妫�绱㈡帴鍙�(topK3,闃堝��0.7)銆愬綋鍓嶆棤涓氬姟妯″潡娑堣垂锛岄鐣欒兘鍔涖��",
+ "callsApis": []
+ }
+ ],
+ "pendingConfirm": [
+ "浠撳簱绫诲瀷/鍚堟牸浠撴敼閫狅細闇�姹傜О浠撳簱搴旀湁 type 瀛楁锛堝師鏂�/鎴愬搧/鍗婃垚鍝�/绾胯竟/鍚堟牸浠擄級锛屼絾 MesWmWarehouseDO 褰撳墠鏃� type 瀛楁锛屼粎纭紪鐮佽櫄鎷熺嚎杈瑰簱锛屾敼閫犱技鏈畬鎴愩�愬緟纭銆�",
+ "HrmUserHandoverApi.expandUserIds 鎺ュ彛宸插疄鐜帮紝浣� CRM/ERP/MES 鏌ヨ銆庢垜鐨勬暟鎹�忓鍧囨湭瀹為檯璋冪敤锛屼氦鎺ュ彲瑙佹�у姛鑳芥湭鐪熸鐢熸晥銆愪笌椤圭洰瑙勫垯鏂囨。瀛樺湪钀藉樊銆�",
+ "鍥炴锛坈rm_receivable锛夋湭鎺� BPM锛屽垱寤哄嵆瀹℃壒涓�(10)闈犳墜鍔ㄦ洿鏂帮紱鍚堝悓/寮�绁ㄥ潎宸叉帴銆愬緟纭鏄惁鏈夋剰绠�鍖栥��",
+ "MES 浠诲姟鏆傚仠 pauseTask 浠呭厑璁歌崏绋跨姸鎬佸仠宸ワ紝鐤戜技鏍¢獙閫昏緫鍙嶈浆 bug",
+ "浠樻鍗� BPM 椹冲洖鍥為��鍒� PROCESS(10) 鑰岄潪 REJECT(35)锛屼笌鍏朵粬鍗曟嵁涓嶄竴鑷�",
+ "璐㈠姟鍕剧ń鏂锛歶pdatePurchasePrice/updateSalePrice 鏂规硶浣撲负绌猴紝鍏ュ簱/鍑哄簱閲戦涓嶄細鑷姩鍥炲啓鏀朵粯娆�",
+ "鐢熶骇鍏ュ簱鍗�(ProductReceipt) 涓庢姤宸ヤ骇鍑�(ProductProduce) 骞跺瓨锛屽瓨鍦ㄩ噸澶嶅叆搴撻闄╅渶涓氬姟纭",
+ "AI 妯″瀷宸ュ巶浠呭疄鐜伴�氫箟鍗冮棶锛孌eepSeek/OpenAI/Ollama 鏋氫妇棰勭暀鏈疄鐜�",
+ "鍞悗閫�璐у崟 AUDITING(10) 鐘舵�佹棤鍐欏叆浠g爜锛岀枒浼奸鐣欐湭鍚敤",
+ "BI 鍥捐〃 querySql 浠ュ瓧绗︿覆鎷兼帴鍙傛暟鎵ц锛堜粎鍗曞紩鍙疯浆涔夛級锛屽瓨鍦� SQL 娉ㄥ叆椋庨櫓闈�",
+ "MesWmSnDO 鏂板鐨� uuid 瀛楁鐢熸垚/娑堣垂閫昏緫鏈湪鏍稿績 Service 涓‘璁�",
+ "杞鐢宠(hrm_regularize_application)銆佸煿璁瘉涔︾瓑浠呮湁 SQL 涓庤彍鍗曞垵濮嬪寲锛孞ava 渚� Service/Controller 鏈疄鐜�",
+ "NCR 澶勭疆缁撴灉锛堣繑宸�/閫�璐э級鏈洖鍐欒Е鍙戞簮鍗曟嵁锛屼粎鍙拌处璁板綍",
+ "MPS 鐘舵�佹灇涓剧嫭绔嬬紪鍙�(0/1/2/3)锛屼笌閫氱敤鍗曟嵁甯搁噺(0/1/4/5)涓嶄竴鑷�"
+ ],
+ "generatedAt": "2026-09-10",
+ "analysisBasis": "鍩轰簬 dev_business 鍒嗘敮 87bf4a99 婧愮爜锛�6 缁勫苟琛屾簮鐮佽蛋璇伙紙MES 鐢熶骇璐ㄩ噺 / MES 浠撳偍 / ERP / CRM+SRM / 鍞悗+HRM / AI+BI+MDM+BPM+搴曞骇锛�"
+}</script>
+<script type="application/json" id="data-modules">{
+ "modules": [
+ {"key": "mdm", "name": "鍩虹涓绘暟鎹�", "color": "#8a94a6", "tag": "MDM", "flow": null,
+ "positioning": "鍏ㄧ郴缁熺粺涓�鍙e緞鐨勪富鏁版嵁鏉冨▉婧�",
+ "problem": "鐗╂枡銆佸崟浣嶃�佷粨搴撳湪 MES/ERP/CRM 澶氬閲嶅瀹氫箟瀵艰嚧鏁版嵁鎵撴灦",
+ "features": ["鐗╂枡涓嶴KU锛堝惈鎵规灞炴�ч厤缃�12寮�鍏筹級", "鐗╂枡鍒嗙被鏍�", "璁¢噺鍗曚綅涓庢崲绠�", "鍝佺墝", "浠撳簱涓绘暟鎹紙鍚玹ype瀛楁锛�", "MES 鐗╂枡缁� MdmItemSyncApi 鍙嶅悜鍚屾"],
+ "objects": ["鐗╂枡", "SKU", "璁¢噺鍗曚綅", "浠撳簱"],
+ "roles": ["涓绘暟鎹鐞嗗憳"],
+ "upstream": [], "downstream": ["鐢熶骇", "杩涢攢瀛�", "閿�鍞�", "閲囪喘"],
+ "coreTables": ["mdm_item", "mdm_item_sku", "mdm_item_category", "mdm_unit_measure", "mdm_brand", "mdm_warehouse"]},
+ {"key": "crm", "name": "閿�鍞鐞嗭紙瀹㈡埛鍏崇郴锛�", "color": "#4f9cff", "tag": "CRM", "flow": "sales",
+ "positioning": "閿�鍞墠绔細浠庣嚎绱㈠埌鍥炴鐨勫鎴风粡钀�",
+ "problem": "瀹㈡埛璧勪骇娌夋穩銆佸晢鏈鸿浆鍖栥�佸悎鍚屽鎵逛笌寮�绁ㄥ洖娆剧鎺�",
+ "features": ["绾跨储杞寲瀹㈡埛", "鍏捣姹犱笌棰嗗彇涓婇檺", "鑱旂郴浜�", "鍟嗘満鑷畾涔夐樁娈�", "璺熻繘璁板綍", "鎶ヤ环鍗�(AI OCR)", "鍚堝悓(BPM瀹℃壒鈫掔敓鎴愰攢鍞鍗�)", "寮�绁�(BPM)鈫掑洖娆�(鍏堝紑绁ㄦ牎楠�)", "鍥炴璁″垝", "閿�鍞洰鏍�", "鏁版嵁鏉冮檺涓夌骇(璐熻矗浜�/鍙/璇诲啓)"],
+ "objects": ["绾跨储", "瀹㈡埛", "鑱旂郴浜�", "鍟嗘満", "鎶ヤ环鍗�", "鍚堝悓", "鍙戠エ", "鍥炴", "閿�鍞洰鏍�"],
+ "roles": ["閿�鍞唴鍕�", "閿�鍞粡鐞�", "璐㈠姟(寮�绁ㄥ洖娆�)"],
+ "upstream": ["涓绘暟鎹�(鐗╂枡)"], "downstream": ["杩涢攢瀛�(閿�鍞鍗�)", "鍞悗(瀹㈡埛)", "AI(鎶ヤ环OCR)"],
+ "coreTables": ["crm_clue", "crm_customer", "crm_contact", "crm_business", "crm_sale_quotation", "crm_contract", "crm_invoice", "crm_receivable", "crm_receivable_plan", "crm_permission"]},
+ {"key": "srm", "name": "渚涘簲鍟嗙鐞�", "color": "#c9a86a", "tag": "SRM", "flow": "purchase",
+ "positioning": "渚涘簲鍟嗗叏鐢熷懡鍛ㄦ湡锛氬噯鍏�-璧勮川-瀵绘簮-缁╂晥",
+ "problem": "渚涘簲鍟嗗悎瑙勫噯鍏ャ�侀槼鍏夊婧�(鎷涙爣/姣斾环)涓庣哗鏁堥噺鍖�",
+ "features": ["渚涘簲鍟嗘。妗堜笌鍒嗙被", "鍑嗗叆鐢宠(BPM 閲囪喘/璐ㄩ噺/璐㈠姟浼氱)", "璧勮川璇佷功鏈夋晥鏈�", "鎷涙爣锛氬叕寮�/閭�璇�/绔炶皥瀹屾暣鐗�+姣斾环绠�鏄撶増", "鎶曟爣路鎶ヤ环路寮�鏍嚶疯瘎鏍嚶峰畾鏍�", "瀹氭爣鑷姩鐢熸垚閲囪喘璁㈠崟", "鍥涚淮缁╂晥(璐ㄩ噺/浜や粯/浠锋牸/鏈嶅姟)"],
+ "objects": ["渚涘簲鍟�", "鍑嗗叆鐢宠", "璧勮川璇佷功", "鎷涙爣椤圭洰", "鎶曟爣", "瀹氭爣", "缁╂晥璇勪环"],
+ "roles": ["閲囪喘寮�鍙�", "渚涘簲鍟嗙鐞嗗憳", "璇勫涓撳"],
+ "upstream": ["涓绘暟鎹�(鐗╂枡)"], "downstream": ["杩涢攢瀛�(閲囪喘璁㈠崟)"],
+ "coreTables": ["srm_supplier", "srm_supplier_apply", "srm_supplier_certificate", "srm_tender_project", "srm_tender_bid", "srm_bid_award", "srm_supplier_evaluation"]},
+ {"key": "erp", "name": "杩涢攢瀛樹笌璐㈠姟", "color": "#5fc79e", "tag": "ERP", "flow": "purchase",
+ "positioning": "鍟嗚锤涓庤祫閲戝崟鎹腑鏋紝鍚� MES 鍙戣捣瀹炵墿鏀跺彂",
+ "problem": "閲囪喘閿�鍞崟鎹鎵广�佹潵绁ㄤ粯娆炬帶鍒躲�佽鍗曟墽琛岃繘搴﹀洖鍐�",
+ "features": ["閲囪喘鐢宠(BPM)鈫掕鍗�(鑷姩/鎵嬪姩鐢熸垚)", "纭鏀惰揣鈫扢ES鍒拌揣閫氱煡", "鍏ュ簱/閫�璐ф暟閲忕姸鎬佸洖鍐�", "閲囪喘鏉ョエ(閲戦鈮よ鍗�)", "浠樻鍗�(蹇呴』鍏宠仈鏉ョエ路BPM)", "閿�鍞鍗�(BPM路瀹℃壒閫氳繃鑷姩寤篗PS)", "鍑哄簱鐘舵�佸洖鍐�", "鏀舵鍗�(鍏宠仈CRM瀹㈡埛)", "缁撶畻璐︽埛", "AI鍙戠エOCR"],
+ "objects": ["閲囪喘鐢宠", "閲囪喘璁㈠崟", "閲囪喘鏉ョエ", "浠樻鍗�", "閿�鍞鍗�", "鏀舵鍗�", "缁撶畻璐︽埛"],
+ "roles": ["閲囪喘鍛�", "閿�鍞憳", "鍑虹撼", "浼氳"],
+ "upstream": ["CRM(鍚堝悓)", "SRM(瀹氭爣)", "涓绘暟鎹�"], "downstream": ["鐢熶骇(MPS)", "浠撳偍(鏀跺彂)"],
+ "coreTables": ["erp_purchase_request", "erp_purchase_order", "erp_purchase_invoice", "erp_finance_payment", "erp_sale_order", "erp_finance_receipt", "erp_account"]},
+ {"key": "pro", "name": "鐢熶骇绠$悊", "color": "#e0b34f", "tag": "MES-PRO", "flow": "production",
+ "positioning": "鐢熶骇鎵ц鏍稿績锛氳鍒�-宸ュ崟-浠诲姟-鎶ュ伐",
+ "problem": "璁㈠崟鍒拌溅闂存墽琛岀殑閫愬眰鎷嗚В涓庤繃绋嬪彲鎺�",
+ "features": ["MPS涓荤敓浜ц鍒�(鍙敱閿�鍞鍗曡嚜鍔ㄥ垱寤郝峰悎骞朵笅鍙�)", "宸ュ崟(鎸夊伐鑹鸿矾绾胯嚜鍔ㄧ敓鎴愬伐搴忎换鍔�)", "鎶ュ伐(鎸夊伐搴忛『搴忔帶鍒堵稡PM瀹℃壒)", "鍊掑啿鎵g嚎杈瑰簱/浜у嚭鍏ュ簱", "瀹夌伅", "宸ヨ壓璺嚎路宸ュ簭路宸ュ崟BOM", "鐮斿彂璁捐椤圭洰(PD路瀹℃壒褰掓。)", "AI 鍥涚被棰勬祴"],
+ "objects": ["MPS", "鐢熶骇宸ュ崟", "鐢熶骇浠诲姟", "鎶ュ伐鍗�", "宸ヨ壓璺嚎", "宸ュ崟BOM", "璁捐椤圭洰"],
+ "roles": ["璁″垝鍛�", "杞﹂棿涓讳换", "鎿嶄綔宸�", "宸ヨ壓鍛�"],
+ "upstream": ["杩涢攢瀛�(閿�鍞鍗�)"], "downstream": ["浠撳偍(棰嗘枡/鍏ュ簱)", "璐ㄩ噺(IPQC)"],
+ "coreTables": ["mes_pro_mps", "mes_pro_work_order", "mes_pro_task", "mes_pro_feedback", "mes_pro_route", "mes_pro_process", "mes_pro_work_order_bom", "mes_pd_project"]},
+ {"key": "wm", "name": "浠撳偍绠$悊", "color": "#7e6bd6", "tag": "MES-WM", "flow": "warehouse",
+ "positioning": "鍘傚唴 WMS锛氬崟鎹┍鍔ㄧ殑搴撳瓨璐﹀疄涓�鑷�",
+ "problem": "澶氭潵婧愬嚭鍏ュ簱銆佹壒娆�/SN 杩芥函銆佸簱瀛樼簿纭埌搴撲綅",
+ "features": ["15绉嶅嚭鍏ュ簱鍗曟嵁", "搴撳瓨鍙拌处(鐗╂枡脳浠撳簱脳搴撳尯脳搴撲綅脳鎵规脳渚涘簲鍟�)", "浜嬪姟娴佹按鍙鐣欑棔", "璋冩嫧鎴愬浜嬪姟", "鐩樼偣(闈欐��/鍔ㄦ�伮风洸鐩樎风洏鐩堢洏浜忚皟鏁�)", "鎵规/SN/鏉$爜/瑁呯宓屽", "铏氭嫙绾胯竟搴�(鍏佽璐熷簱瀛�)", "搴撳瓨鍗犵敤(5绫�)", "鍥涚骇鍐荤粨", "WMS瀹℃壒閰嶇疆+BPM", "瀵瑰 WmsStockApi/WmsTransactionApi"],
+ "objects": ["鍒拌揣閫氱煡", "閲囪喘鍏ュ簱", "棰嗘枡", "瀹屽伐鍏ュ簱", "閿�鍞嚭搴�", "鍙戣揣閫氱煡", "閿�鍞��璐�", "渚涘簲鍟嗛��璐�", "璋冩嫧", "鐩樼偣", "搴撳瓨鍙拌处", "鎵规", "SN"],
+ "roles": ["浠撶鍛�", "鎷h揣鍛�", "鐩樼偣鍛�"],
+ "upstream": ["閲囪喘(鏀惰揣)", "鐢熶骇(棰嗛��鏂�)", "閿�鍞�(鍙戣揣)", "鍞悗(閫�璐�)"], "downstream": ["杩涢攢瀛�(鏁伴噺鍥炲啓)", "璐㈠姟(鎴愭湰鍩虹)"],
+ "coreTables": ["mes_wm_warehouse", "mes_wm_material_stock", "mes_wm_transaction", "mes_wm_item_receipt", "mes_wm_product_issue", "mes_wm_product_receipt", "mes_wm_product_sales", "mes_wm_return_sales", "mes_wm_transfer", "mes_wm_stock_taking_task", "mes_wm_batch", "mes_wm_sn", "mes_wm_stock_reserve"]},
+ {"key": "qc", "name": "璐ㄩ噺绠$悊", "color": "#e06c6c", "tag": "MES-QC", "flow": "quality",
+ "positioning": "鍥涢亾妫�楠岄椄鍙� + 涓嶅悎鏍煎搧闂幆澶勭疆",
+ "problem": "鏉ユ枡/杩囩▼/鍑鸿揣/閫�璐ф楠屾爣鍑嗗寲锛屼笉鍚堟牸鍙拷婧缃�",
+ "features": ["IQC 鏉ユ枡(鍒拌揣/澶栧崗)", "IPQC 杩囩▼(鑱斿姩鎶ュ伐)", "OQC 鍑鸿揣(鑱斿姩閿�鍞嚭搴�)", "RQC 閫�璐�(鑱斿姩閫�鏂�/鍞悗)", "璐ㄦ鏂规路鎸囨爣路缂洪櫡搴�", "妫�娴嬬粨鏋�:鍚堟牸/鐗归噰/閫�璐�/鎶ュ簾", "NCR:璇勫鈫掑缃�(閫�璐�/鎶ュ簾/杩斿伐/璁╂/闄嶇骇)鈫掑叧闂�", "AI 鍒ゅ畾寤鸿"],
+ "objects": ["IQC", "IPQC", "OQC", "RQC", "璐ㄦ鏂规", "NCR", "缂洪櫡璁板綍"],
+ "roles": ["璐ㄦ鍛�(IQC/IPQC/OQC)", "璐ㄩ噺宸ョ▼甯�"],
+ "upstream": ["浠撳偍(鍒拌揣)", "鐢熶骇(鎶ュ伐)", "閿�鍞�(鍑哄簱)", "鍞悗(閫�璐�)"], "downstream": ["浠撳偍(鍚堟牸鍏ュ簱/鎶ュ簾鍑哄簱)", "鐢熶骇(NCR杩斿伐)"],
+ "coreTables": ["mes_qc_iqc", "mes_qc_ipqc", "mes_qc_oqc", "mes_qc_rqc", "mes_qc_template", "mes_qc_indicator", "mes_qc_defect", "mes_qc_ncr"]},
+ {"key": "dv", "name": "璁惧涓庡伐瑁呮帓鐝�", "color": "#59a8b8", "tag": "MES-DV/TM/CAL", "flow": null,
+ "positioning": "璁惧璧勪骇鍋ュ悍涓庣敓浜ц祫婧愪繚闅�",
+ "problem": "璁惧鐐规淇濆吇缁翠慨鍙墽琛屻�佸伐瑁呯姸鎬佸彲鎺с�佺彮缁勬帓鐝湁渚濇嵁",
+ "features": ["璁惧鍙拌处(鍋滄満/鐢熶骇涓�/淇濆吇涓�)", "鐐规路淇濆吇鏂规涓庤褰�", "缁翠慨宸ュ崟(鑽夌鈫掔淮淇啋寰呴獙鏀垛啋宸茬‘璁�)", "璁¢噺鍣ㄥ叿妫�瀹�", "宸ヨ澶瑰叿(鍦ㄥ簱/棰嗙敤/缁翠慨/鎶ュ簾)", "鐝粍路鐝路鎺掔彮璁″垝路鑺傚亣鏃�"],
+ "objects": ["璁惧", "鐐规璁板綍", "缁翠慨宸ュ崟", "宸ヨ", "鎺掔彮璁″垝"],
+ "roles": ["璁惧鍛�", "缁翠慨宸�", "宸ヨ绠$悊鍛�", "鎺掔彮鍛�"],
+ "upstream": [], "downstream": ["鐢熶骇(AI 椋庨櫓棰勬祴娑堣垂璁惧鏁版嵁)", "钖叕(鎺掔彮宸ユ椂)"],
+ "coreTables": ["mes_dv_machinery", "mes_dv_check_plan", "mes_dv_check_record", "mes_dv_repair", "mes_tm_tool", "mes_cal_plan", "mes_cal_team", "mes_cal_shift"]},
+ {"key": "aftersales", "name": "鍞悗鏈嶅姟", "color": "#c78bd6", "tag": "AFTER", "flow": "aftersales",
+ "positioning": "瀹㈡埛鍙嶉鍒伴��璐�/缁翠慨/閫�娆鹃棴鐜�",
+ "problem": "鍞悗宸ュ崟娴佽浆銆侀��璐т笌璐ㄦ鍏ュ簱閫�娆剧殑璺ㄧ郴缁熻仈鍔�",
+ "features": ["宸ュ崟鍏��(鑽夌鈫掑鐞嗕腑鈫掑緟鍏ュ簱鈫掑緟閫�娆锯啋瀹岀粨鈫掑叧闂�)", "闂鍒ゅ畾(涓�鑸�/缁翠慨/閫�璐�)", "缁翠慨(鐜板満/杩斿巶/杩滅▼)", "閫�璐х敵璇封啋鑷姩寤� MES 閿�鍞��璐у崟", "璐ㄦ缁撹/鍏ュ簱/閫�娆句笁閲嶅洖璋�", "琛岀骇鏁版嵁鏉冮檺鍥涜鍥�"],
+ "objects": ["鍞悗宸ュ崟", "缁翠慨璁板綍", "閫�璐х敵璇�"],
+ "roles": ["瀹㈡湇", "缁翠慨宸ョ▼甯�", "鍞悗绠$悊鍛�"],
+ "upstream": ["CRM(瀹㈡埛)", "ERP(閿�鍞鍗�)"], "downstream": ["浠撳偍(閿�鍞��璐�)", "璐ㄩ噺(RQC)", "璐㈠姟(閫�娆�)"],
+ "coreTables": ["after_sale_ticket", "after_sale_ticket_item", "after_sale_repair", "after_sale_return", "after_sale_permission"]},
+ {"key": "hrm", "name": "浜哄姏璧勬簮", "color": "#9db85a", "tag": "HRM", "flow": null,
+ "positioning": "鍛樺伐鍏ヨ浆璋冪涓庤�冨嫟钖叕",
+ "problem": "浜轰簨娴佺▼瀹℃壒鍖栥�佺鑱屾暟鎹笉涓�(浜ゆ帴)銆佺畻钖嚜鍔ㄥ寲",
+ "features": ["鍛樺伐妗f(鍏ヨ亴鑷姩寤虹郴缁熻处鍙�)", "璇峰亣/鍔犵彮/璋冨矖/绂昏亴 BPM 瀹℃壒", "绂昏亴浜ゆ帴鏄犲皠 expandUserIds", "鑰冨嫟(鎵撳崱路瑙勫垯路鎺掔彮路琛ュ崱瀹℃壒路鏈堝害姹囨��)", "钖叕(搴斿彂-绀句繚鍏Н閲�-涓◣-璇峰亣鎵f路1.5/2/3鍊嶅姞鐝垂路鍙戞斁鍙拌处)", "鍩硅璇佷功(SQL鍏堣寰呭疄鐜�)"],
+ "objects": ["鍛樺伐", "璇峰亣鍗�", "绂昏亴鐢宠", "浜ゆ帴鏄犲皠", "鑰冨嫟璁板綍", "钖叕鏍哥畻"],
+ "roles": ["HR", "閮ㄩ棬涓荤", "鍛樺伐鏈汉"],
+ "upstream": [], "downstream": ["鍚勬ā鍧�(鏁版嵁鍙鎬ф墿灞�)", "system(璐﹀彿)"],
+ "coreTables": ["hrm_employee", "hrm_leave_application", "hrm_resignation_application", "hrm_user_handover", "hrm_attendance_record", "hrm_salary_calculation", "hrm_salary_payment"]},
+ {"key": "bpm", "name": "鍗忓悓瀹℃壒", "color": "#e6a23c", "tag": "BPM", "flow": null,
+ "positioning": "鍏ㄧ郴缁熷崟鎹鎵逛腑鏋紙Flowable锛�",
+ "problem": "澶氭ā鍧楀崟鎹渶瑕佺伒娲诲彲閰嶇殑澶氱骇瀹℃壒",
+ "features": ["BPMN+閽夐拤椋庢牸鍙岃璁″櫒", "娴佺▼瀹氫箟閮ㄧ讲", "瀹℃壒浜嬩欢缁熶竴鍥炶皟(BpmProcessInstanceStatusEvent)", "13涓笟鍔$洃鍚櫒", "琛ㄥ崟路鐢ㄦ埛缁劼锋妱閫伮峰姞绛�"],
+ "objects": ["娴佺▼妯″瀷", "娴佺▼瀹炰緥", "瀹℃壒浠诲姟"],
+ "roles": ["瀹℃壒浜�(鎸夋祦绋嬮厤缃�)", "娴佺▼绠$悊鍛�"],
+ "upstream": ["鍚勪笟鍔℃彁浜ゅ鎵�"], "downstream": ["鍥炶皟鏇存柊鍚勪笟鍔″崟鎹姸鎬�"],
+ "coreTables": ["bpm_process_definition_info", "bpm_process_instance", "bpm_task", "act_*", "flowable_*"]},
+ {"key": "ai", "name": "AI 鏅鸿兘", "color": "#56c8d8", "tag": "AI", "flow": "ai",
+ "positioning": "鍗曟嵁褰曞叆鎻愭晥涓庣敓浜у喅绛栬緟鍔�",
+ "problem": "浜哄伐褰曞彂绁�/鎶ヤ环鎱€�佽川妫�涓庢帓浜т緷璧栫粡楠�",
+ "features": ["chat/chatWithImage 鍙岄�氶亾", "OCR 棰勫~(鍙戠エ/鎶ヤ环)", "璐ㄦ鍒ゅ畾寤鸿", "缂烘枡/鏃堕暱/椋庨櫓/浜や粯鍥涚被棰勬祴", "RAG 鐭ヨ瘑搴�(Milvus)", "AI涓嶅彲鐢ㄦ椂 fallback 浜哄伐"],
+ "objects": ["鐭ヨ瘑搴�", "AI妯″瀷閰嶇疆", "瀵硅瘽璁板綍"],
+ "roles": ["閲囪喘鍛�", "閿�鍞�", "璐ㄦ鍛�", "璁″垝鍛�"],
+ "upstream": ["鍚勪笟鍔℃彁渚涗笂涓嬫枃鏁版嵁"], "downstream": ["缁撴瀯鍖朖SON寤鸿杩斿洖涓氬姟渚�"],
+ "coreTables": ["ai_chat_conversation", "ai_chat_message", "ai_model", "ai_knowledge", "ai_knowledge_document", "ai_knowledge_segment"]}
+ ],
+ "platform": {
+ "name": "绯荤粺搴曞骇",
+ "capabilities": ["JWT+OAuth2 璁よ瘉路婊戝潡楠岃瘉鐮�", "RBAC 瑙掕壊-鑿滃崟-鏁版嵁鑼冨洿(鍏ㄩ儴/閮ㄩ棬/鏈儴闂ㄥ強涓嬬骇/浠呮湰浜�/鑷畾涔�)", "瀛楀吀", "闄勪欢涓績(storage-blob 鏂囦欢 + storage-attachment 鎸� recordType+recordId 澶氭�佸叧鑱旓紝鍏ㄦā鍧楀己鍒朵娇鐢�)", "缂栫爜瑙勫垯(鍚勪笟鍔¤嚜瀹炵幇 Redis 鍓嶇紑+鏃ユ湡+娴佹按)", "Quartz 瀹氭椂浠诲姟路RocketMQ/Kafka/Redis Stream MQ路WebSocket", "澶氱鎴峰凡鍏抽棴", "瀹為檯 system_role 浠� 4 涓細瓒呯骇绠$悊鍛�/鏅�氳鑹�/CRM绠$悊鍛�/绉熸埛绠$悊鍛橈紝涓氬姟鍒嗗伐闈犳暟鎹潈闄愯�岄潪澶氳鑹�"],
+ "unused": ["im 妯″潡(IM/RTC锛屼笟鍔℃湭娑堣垂)", "member 妯″潡(C绔細鍛橈紝閬楃暀)"]
+ }
+}</script>
+<script type="application/json" id="data-objects">{
+ "objects": [
+ {"name": "鐗╂枡", "module": "鍩虹涓绘暟鎹�", "table": "mdm_item", "doc": "MDM 鏉冨▉鐗╂枡/浜у搧/鍗婃垚鍝佹。妗堬紝鍚� SKU銆佹壒娆″睘鎬с�佷环鏍笺�佸畨鍏ㄥ簱瀛�", "upstream": ["MES 鐗╂枡鍙嶅悜鍚屾"], "downstream": ["鎶ヤ环鍗�", "閿�鍞鍗�", "閲囪喘璁㈠崟", "宸ュ崟BOM", "搴撳瓨鍙拌处"], "keywords": "鐗╂枡 浜у搧 鍘熸潗鏂� item"},
+ {"name": "浠撳簱", "module": "鍩虹涓绘暟鎹�", "table": "mdm_warehouse", "doc": "浠撳簱涓绘暟鎹紝type: 1鍘熸枡/2鎴愬搧/3鍗婃垚鍝�/4绾胯竟锛汳ES 鑷湁 mes_wm_warehouse 鎵胯浇搴撳尯搴撲綅", "upstream": [], "downstream": ["搴撳瓨鍙拌处", "鍑哄叆搴撳崟鎹�"], "keywords": "浠撳簱 warehouse 鍘熸枡浠� 鎴愬搧浠� 绾胯竟浠�"},
+ {"name": "瀹㈡埛", "module": "閿�鍞鐞�", "table": "crm_customer", "doc": "瀹㈡埛涓绘。锛屽叕娴锋睜/閿佸畾/鎴愪氦鐘舵�侊紝璐熻矗浜烘暟鎹潈闄�", "upstream": ["绾跨储"], "downstream": ["鑱旂郴浜�", "鍟嗘満", "鎶ヤ环鍗�", "鍚堝悓", "鍞悗宸ュ崟", "鏀舵鍗�"], "keywords": "瀹㈡埛 customer 鍏捣"},
+ {"name": "绾跨储", "module": "閿�鍞鐞�", "table": "crm_clue", "doc": "鍘熷閿�鍞嚎绱紝浠呬竴娆¤浆鍖栦负瀹㈡埛", "upstream": [], "downstream": ["瀹㈡埛"], "keywords": "绾跨储 clue"},
+ {"name": "鑱旂郴浜�", "module": "閿�鍞鐞�", "table": "crm_contact", "doc": "瀹㈡埛涓嬭仈绯讳汉锛屼笌鍟嗘満澶氬澶�", "upstream": ["瀹㈡埛"], "downstream": ["鍟嗘満"], "keywords": "鑱旂郴浜� contact"},
+ {"name": "鍟嗘満", "module": "閿�鍞鐞�", "table": "crm_business", "doc": "閿�鍞満浼氾紝DB 閰嶇疆寮忛樁娈垫帹杩涳紝缁撴潫鎬�: 璧�/杈�/鏃犳晥", "upstream": ["瀹㈡埛"], "downstream": ["鎶ヤ环鍗�", "鍚堝悓"], "keywords": "鍟嗘満 business 璧㈠崟 杈撳崟 闃舵"},
+ {"name": "鎶ヤ环鍗�", "module": "閿�鍞鐞�", "table": "crm_sale_quotation", "doc": "QT缂栧彿锛岄�� MDM 鐗╂枡鎶ヤ环锛孉I OCR 褰曞叆锛岃崏绋库啋宸茶浆鍚堝悓", "upstream": ["鍟嗘満"], "downstream": ["鍚堝悓"], "keywords": "鎶ヤ环 quotation QT"},
+ {"name": "鍚堝悓", "module": "閿�鍞鐞�", "table": "crm_contract", "doc": "HT缂栧彿锛孊PM 瀹℃壒(0鑽夌/10瀹℃壒涓�/20閫氳繃/30椹冲洖/40鍙栨秷/50浣滃簾)锛岄�氳繃鍚庡彲鐢熸垚閿�鍞鍗�", "upstream": ["鎶ヤ环鍗�"], "downstream": ["閿�鍞鍗�", "鍥炴璁″垝", "寮�绁�"], "keywords": "鍚堝悓 contract 瀹℃壒"},
+ {"name": "鍙戠エ", "module": "閿�鍞鐞�", "table": "crm_invoice", "doc": "KP缂栧彿锛孊PM 瀹℃壒锛岀疮璁″紑绁ㄢ墹鍚堝悓棰濓紝闄勪欢蹇呬紶", "upstream": ["鍚堝悓"], "downstream": ["鍥炴"], "keywords": "寮�绁� 鍙戠エ invoice"},
+ {"name": "鍥炴", "module": "閿�鍞鐞�", "table": "crm_receivable", "doc": "HK缂栧彿锛屽垱寤哄嵆瀹℃壒涓�(鎵嬪姩瀹℃牳)锛屽己鍒跺厛寮�绁紝閲戦鍙屾牎楠�", "upstream": ["鍚堝悓", "鍙戠エ"], "downstream": ["鏀舵鍗�(鍏宠仈)"], "keywords": "鍥炴 鏀舵璁″垝 receivable"},
+ {"name": "閿�鍞洰鏍�", "module": "閿�鍞鐞�", "table": "crm_sales_target", "doc": "骞�/瀛�/鏈埫椾釜浜�/閮ㄩ棬/浜у搧缁村害鐨勫悎鍚屽洖娆剧瓑鐩爣", "upstream": [], "downstream": ["涓氱哗缁熻"], "keywords": "鐩爣 target 涓氱哗"},
+ {"name": "渚涘簲鍟�", "module": "渚涘簲鍟嗙鐞�", "table": "srm_supplier", "doc": "渚涘簲鍟嗘。妗堬細鎵х収/绋庡彿/閾惰/鑱旂郴浜猴紝ERP 涓� MES 鍏辩敤", "upstream": ["鍑嗗叆鐢宠"], "downstream": ["閲囪喘璁㈠崟", "鍒拌揣閫氱煡", "渚涘簲鍟嗛��璐�", "缁╂晥璇勪环"], "keywords": "渚涘簲鍟� supplier vendor"},
+ {"name": "鍑嗗叆鐢宠", "module": "渚涘簲鍟嗙鐞�", "table": "srm_supplier_apply", "doc": "AP缂栧彿锛孊PM 瀹℃壒(閲囪喘/璐ㄩ噺/璐㈠姟)锛岄�氳繃鑷姩寤轰緵搴斿晢妗f", "upstream": [], "downstream": ["渚涘簲鍟�"], "keywords": "鍑嗗叆 渚涘簲鍟嗙敵璇� apply"},
+ {"name": "鎷涙爣椤圭洰", "module": "渚涘簲鍟嗙鐞�", "table": "srm_tender_project", "doc": "瀹屾暣鐗�(鍙戝竷鈫掓姇鏍団啋寮�鏍団啋璇勬爣鈫掑畾鏍�)涓庣畝鏄撴瘮浠蜂袱绉嶆ā寮�", "upstream": [], "downstream": ["瀹氭爣鈫掗噰璐鍗�"], "keywords": "鎷涙爣 鎶曟爣 姣斾环 瀹氭爣 tender 瀵绘簮"},
+ {"name": "閲囪喘鐢宠", "module": "杩涢攢瀛�", "table": "erp_purchase_request", "doc": "CGSQ缂栧彿锛孊PM 瀹℃壒锛岄�氳繃鍚庢湁渚涘簲鍟嗚嚜鍔ㄧ敓鎴愯鍗�", "upstream": ["鐢熶骇缂哄彛(浜哄伐)"], "downstream": ["閲囪喘璁㈠崟"], "keywords": "閲囪喘鐢宠 璇疯喘 request"},
+ {"name": "閲囪喘璁㈠崟", "module": "杩涢攢瀛�", "table": "erp_purchase_order", "doc": "CGDD缂栧彿锛孊PM 瀹℃壒(15瀹℃壒涓�/20宸插鏍�)锛屽叆搴撶姸鎬�:鏈�0閮ㄥ垎1鍏ㄩ儴2", "upstream": ["閲囪喘鐢宠", "瀹氭爣"], "downstream": ["鍒拌揣閫氱煡", "閲囪喘鏉ョエ", "渚涘簲鍟嗛��璐�(绾︽潫鐗╂枡)"], "keywords": "閲囪喘璁㈠崟 purchase"},
+ {"name": "閲囪喘鏉ョエ", "module": "杩涢攢瀛�", "table": "erp_purchase_invoice", "doc": "FPD缂栧彿锛孉I OCR 棰勫~锛岀疮璁♀墹璁㈠崟鎬讳环锛屼粯娆惧崟鐨勫墠缃�", "upstream": ["閲囪喘璁㈠崟"], "downstream": ["浠樻鍗�"], "keywords": "鏉ョエ 鍙戠エ 閲囪喘鍙戠エ"},
+ {"name": "浠樻鍗�", "module": "璐㈠姟", "table": "erp_finance_payment", "doc": "FKD缂栧彿锛屽繀椤诲叧鑱旀潵绁�+闄勪欢锛岀疮璁♀墹鏉ョエ閲戦锛孊PM 瀹℃壒", "upstream": ["閲囪喘鏉ョエ"], "downstream": ["缁撶畻璐︽埛"], "keywords": "浠樻 搴斾粯 payment"},
+ {"name": "鏀舵鍗�", "module": "璐㈠姟", "table": "erp_finance_receipt", "doc": "SKD缂栧彿锛屽叧鑱� CRM 瀹㈡埛鏍¢獙锛屾棤 BPM(鎵嬪姩瀹℃牳)", "upstream": ["閿�鍞�(寮卞叧鑱�)"], "downstream": ["缁撶畻璐︽埛"], "keywords": "鏀舵 搴旀敹 receipt"},
+ {"name": "閿�鍞鍗�", "module": "杩涢攢瀛�", "table": "erp_sale_order", "doc": "XSDD缂栧彿锛孊PM 瀹℃壒锛岄渶鐢熶骇琛岃嚜鍔ㄥ缓 MPS锛屽嚭搴撶姸鎬�:鏈�0宸查鐣�1閮ㄥ垎2鍏ㄩ儴3锛岀敓浜у畬鎴愪簨浠跺洖鍐�", "upstream": ["鍚堝悓"], "downstream": ["MPS", "鍙戣揣閫氱煡", "閿�鍞嚭搴�", "鍞悗宸ュ崟"], "keywords": "閿�鍞鍗� sale"},
+ {"name": "涓荤敓浜ц鍒�", "module": "鐢熶骇", "table": "mes_pro_mps", "doc": "MPS璁″垝锛岃崏绋�0鈫掑凡涓嬪彂1鈫掑畬鎴�2/鍙栨秷3锛屽彲鍚堝苟涓嬪彂", "upstream": ["閿�鍞鍗�"], "downstream": ["鐢熶骇宸ュ崟"], "keywords": "MPS 涓昏鍒� 鐢熶骇璁″垝"},
+ {"name": "鐢熶骇宸ュ崟", "module": "鐢熶骇", "table": "mes_pro_work_order", "doc": "鑽夌0鈫掑凡纭1鈫掑畬鎴�2/鍙栨秷3锛岀‘璁ゆ椂鎸夊伐鑹鸿矾绾跨敓鎴愪换鍔★紝鏈�鍚庝竴閬撳伐搴忔姤宸ュ洖鍐欏凡鐢熶骇鏁伴噺", "upstream": ["MPS"], "downstream": ["鐢熶骇浠诲姟", "棰嗘枡", "瀹屽伐鍏ュ簱"], "keywords": "宸ュ崟 鐢熶骇宸ュ崟 work order"},
+ {"name": "鐢熶骇浠诲姟", "module": "鐢熶骇", "table": "mes_pro_task", "doc": "宸ュ簭绮掑害锛岄澶�0鈫掔敓浜т腑1鈫掗儴鍒�2鈫掑畬鎴�4锛屽彲鏆傚仠9鍙栨秷5", "upstream": ["鐢熶骇宸ュ崟"], "downstream": ["鎶ュ伐"], "keywords": "浠诲姟 task 宸ュ簭"},
+ {"name": "鎶ュ伐鍗�", "module": "鐢熶骇", "table": "mes_pro_feedback", "doc": "鑽夌0鈫掑鎵逛腑2鈫掑緟妫�3/瀹屾垚4锛屾寜宸ュ簭椤哄簭鏍¢獙(涓婇亾宸ュ簭鎶ユ弧鎵嶅彲鎶�)锛岃仈鍔ㄥ�掑啿娑堣��/浜у嚭鍏ュ簱/IPQC", "upstream": ["鐢熶骇浠诲姟"], "downstream": ["浜у搧浜у嚭", "鐗╂枡娑堣��", "IPQC"], "keywords": "鎶ュ伐 feedback"},
+ {"name": "宸ヨ壓璺嚎", "module": "鐢熶骇", "table": "mes_pro_route", "doc": "宸ュ簭椤哄簭+璐ㄦ/鍏抽敭/鍊掑啿鏍囪锛岄┍鍔ㄥ伐鍗曚换鍔′笌鎶ュ伐瑙勫垯", "upstream": [], "downstream": ["鐢熶骇宸ュ崟"], "keywords": "宸ヨ壓 璺嚎 route 宸ュ簭"},
+ {"name": "鍒拌揣閫氱煡鍗�", "module": "浠撳偍", "table": "mes_wm_arrival_notice", "doc": "閲囪喘璁㈠崟纭鏀惰揣鐢熸垚锛岃崏绋�0鈫掑緟璐ㄦ2鈫掑緟鍏ュ簱3鈫掑畬鎴�4", "upstream": ["閲囪喘璁㈠崟"], "downstream": ["IQC", "閲囪喘鍏ュ簱"], "keywords": "鍒拌揣 鏀惰揣 arrival"},
+ {"name": "閲囪喘鍏ュ簱鍗�", "module": "浠撳偍", "table": "mes_wm_item_receipt", "doc": "鑽夌0鈫掑緟涓婃灦2鈫掑緟鎵ц3鈫掑畬鎴�4锛屽畬鎴愬悗搴撳瓨+骞跺洖鍐� ERP inCount/inStatus", "upstream": ["鍒拌揣閫氱煡"], "downstream": ["搴撳瓨鍙拌处", "閲囪喘璁㈠崟(鍥炲啓)"], "keywords": "閲囪喘鍏ュ簱 鏀惰揣鍏ュ簱 receipt"},
+ {"name": "鐢熶骇棰嗘枡鍗�", "module": "浠撳偍", "table": "mes_wm_product_issue", "doc": "鑽夌0鈫掑緟鎷h揣2鈫掑緟鎵ц3鈫掑畬鎴�4锛屽簱瀛�-", "upstream": ["鐢熶骇宸ュ崟"], "downstream": ["搴撳瓨鍙拌处"], "keywords": "棰嗘枡 issue"},
+ {"name": "閿�鍞嚭搴撳崟", "module": "浠撳偍", "table": "mes_wm_product_sales", "doc": "鍙戣揣閫氱煡瀹℃牳鍚庣敓鎴愶紝鎻愪氦鈫扥QC妫�娴嬧啋鎷h揣鈫掑彂杩�10鈫掑緟鎵ц3鈫掑畬鎴�4锛屽洖鍐欓攢鍞鍗曞嚭搴撴暟涓庣姸鎬�", "upstream": ["鍙戣揣閫氱煡", "閿�鍞鍗�"], "downstream": ["搴撳瓨鍙拌处", "OQC"], "keywords": "閿�鍞嚭搴� 鍙戣揣 鍑哄簱鍗� sales"},
+ {"name": "閿�鍞��璐у崟", "module": "浠撳偍", "table": "mes_wm_return_sales", "doc": "鑽夌鈫掑緟妫�楠�(RQC)鈫掑緟涓婃灦鈫掑緟鍏ュ簱鈫掑畬鎴愶紝鍞悗涓庢墜宸ヤ袱鏉ユ簮", "upstream": ["鍞悗閫�璐х敵璇�"], "downstream": ["搴撳瓨鍙拌处", "RQC"], "keywords": "閿�鍞��璐� 閫�璐у叆搴�"},
+ {"name": "渚涘簲鍟嗛��璐у崟", "module": "浠撳偍", "table": "mes_wm_return_vendor", "doc": "IQC 涓嶅悎鏍奸��璐у彂璧凤紝寰呮嫞璐р啋寰呮墽琛屸啋瀹屾垚锛屽簱瀛�-", "upstream": ["IQC"], "downstream": ["搴撳瓨鍙拌处", "閲囪喘璁㈠崟(returnCount)"], "keywords": "渚涘簲鍟嗛��璐� 閫�鏂� 閫�璐� vendor"},
+ {"name": "璋冩嫧鍗�", "module": "浠撳偍", "table": "mes_wm_transfer", "doc": "鍐呴儴/澶栭儴璋冩嫧锛屾垚瀵� MOVE_OUT+MOVE_IN 浜嬪姟锛屽湪閫旀暟閲�", "upstream": [], "downstream": ["搴撳瓨鍙拌处"], "keywords": "璋冩嫧 绉诲簱 transfer"},
+ {"name": "鐩樼偣浠诲姟", "module": "浠撳偍", "table": "mes_wm_stock_taking_task", "doc": "闈欐��/鍔ㄦ�佺洏鐐癸紝琛岀粨鏋�:姝e父/鐩樼泩(ADJUST_IN)/鐩樹簭(ADJUST_OUT)锛屽彲鍐荤粨搴撳瓨銆佺洸鐩�", "upstream": ["搴撳瓨鍙拌处"], "downstream": ["搴撳瓨鍙拌处(璋冩暣)"], "keywords": "鐩樼偣 鐩樼泩 鐩樹簭 stock taking"},
+ {"name": "搴撳瓨鍙拌处", "module": "浠撳偍", "table": "mes_wm_material_stock", "doc": "鐗╂枡脳浠撳簱脳搴撳尯脳搴撲綅脳鎵规脳渚涘簲鍟嗗叚鍏冪粍锛屾暟閲�/鍐荤粨/鍗犵敤/鍦ㄩ�斿洓閲�", "upstream": ["鍏ㄩ儴鍏ュ簱鍗�"], "downstream": ["鍏ㄩ儴鍑哄簱鍗�", "浜嬪姟娴佹按"], "keywords": "搴撳瓨 鍙拌处 stock 鍙敤閲�"},
+ {"name": "鎵规", "module": "浠撳偍", "table": "mes_wm_batch", "doc": "鍏宠仈鐗╂枡/宸ュ崟/渚涘簲鍟�/瀹㈡埛/璐ㄩ噺鐘舵�侊紱SN 鐮佸惈鎵规 uuid锛涙潯鐮佹敮鎸�18绉嶄笟鍔″璞�", "upstream": ["鍏ュ簱鍗曟嵁"], "downstream": ["搴撳瓨鍙拌处"], "keywords": "鎵规 batch SN 鏉$爜 杩芥函"},
+ {"name": "IQC鏉ユ枡妫�楠�", "module": "璐ㄩ噺", "table": "mes_qc_iqc", "doc": "鍒拌揣閫氱煡/澶栧崗鍏ュ簱瑙﹀彂锛岃崏绋�0鈫掑畬鎴�4锛岀粨璁哄洖鍐欐潵婧愬崟鎹�", "upstream": ["鍒拌揣閫氱煡", "澶栧崗鍏ュ簱"], "downstream": ["閲囪喘鍏ュ簱", "渚涘簲鍟嗛��璐�", "NCR"], "keywords": "IQC 鏉ユ枡妫�楠�"},
+ {"name": "IPQC杩囩▼妫�楠�", "module": "璐ㄩ噺", "table": "mes_qc_ipqc", "doc": "鎶ュ伐璐ㄦ宸ュ簭浜у嚭琛岃Е鍙戯紝瀹屾垚鍥炶皟鎺ㄨ繘鎶ュ伐涓庝骇鍑哄叆搴�", "upstream": ["鎶ュ伐"], "downstream": ["浜у嚭鍏ュ簱", "NCR"], "keywords": "IPQC 杩囩▼妫�楠� 宸℃"},
+ {"name": "OQC鍑鸿揣妫�楠�", "module": "璐ㄩ噺", "table": "mes_qc_oqc", "doc": "閿�鍞嚭搴撴彁浜よЕ鍙戯紝瀹屾垚鎺ㄨ繘鍑哄簱鍗曞緟鎷h揣", "upstream": ["閿�鍞嚭搴撳崟"], "downstream": ["閿�鍞嚭搴撳崟(鎺ㄨ繘)"], "keywords": "OQC 鍑鸿揣妫�楠� 鍑哄巶妫�楠�"},
+ {"name": "RQC閫�璐ф楠�", "module": "璐ㄩ噺", "table": "mes_qc_rqc", "doc": "鐢熶骇閫�鏂�/閿�鍞��璐�/鍞悗閫�璐цЕ鍙戯紝缁撹鍥炶皟鍞悗", "upstream": ["閫�鏂�", "閫�璐�"], "downstream": ["閫�璐у叆搴�", "鍞悗鍥炶皟"], "keywords": "RQC 閫�璐ф楠�"},
+ {"name": "NCR涓嶅悎鏍煎搧", "module": "璐ㄩ噺", "table": "mes_qc_ncr", "doc": "寰呰瘎瀹�0鈫掑凡璇勫6鈫掑凡澶勭疆7鈫掑凡鍏抽棴8锛屽缃�:閫�璐�/鎶ュ簾/杩斿伐/璁╂鎺ユ敹/闄嶇骇", "upstream": ["IQC/IPQC/OQC/RQC"], "downstream": ["閫�璐�/鎶ュ簾/杩斿伐(鍙拌处)"], "keywords": "NCR 涓嶅悎鏍� 澶勭疆 鐗归噰 鎶ュ簾"},
+ {"name": "璁惧", "module": "璁惧", "table": "mes_dv_machinery", "doc": "鍙拌处鐘舵��:鍋滄満/鐢熶骇涓�/淇濆吇涓紱鐐规路淇濆吇路缁翠慨宸ュ崟锛汚I 椋庨櫓棰勬祴娑堣垂鍏舵暟鎹�", "upstream": [], "downstream": ["鐐规", "缁翠慨", "鐢熶骇椋庨櫓棰勬祴"], "keywords": "璁惧 鐐规 淇濆吇 缁翠慨 machinery"},
+ {"name": "鍞悗宸ュ崟", "module": "鍞悗", "table": "after_sale_ticket", "doc": "鑽夌0鈫掑鐞嗕腑10鈫掑緟鍏ュ簱30鈫掑緟閫�娆�40鈫掑畬缁�50鈫掑叧闂�60/鍙栨秷99锛屽垽瀹�:涓�鑸�/缁翠慨/閫�璐�", "upstream": ["瀹㈡埛鍙嶉(浜哄伐褰曞叆)"], "downstream": ["缁翠慨璁板綍", "閫�璐х敵璇�"], "keywords": "鍞悗 宸ュ崟 ticket 缁翠慨"},
+ {"name": "閫�璐х敵璇�", "module": "鍞悗", "table": "after_sale_return", "doc": "鑽夌0鈫掑凡瀹℃牳20(鑷姩寤篗ES閫�璐у崟)鈫掑凡璐ㄦ40鈫掑凡鍏ュ簱50鈫掑凡閫�娆�60鈫掑叧闂�70锛涚被鍨�:閫�娆鹃��璐�/鎹㈣揣/浠呴��娆�", "upstream": ["鍞悗宸ュ崟"], "downstream": ["閿�鍞��璐у崟", "閫�娆�"], "keywords": "鍞悗閫�璐� return"},
+ {"name": "鍛樺伐", "module": "浜哄姏", "table": "hrm_employee", "doc": "鍦ㄨ亴1/璇曠敤2/绂昏亴3锛屽叆鑱岃嚜鍔ㄥ缓绯荤粺璐﹀彿", "upstream": [], "downstream": ["浜ゆ帴鏄犲皠", "鑰冨嫟", "钖叕"], "keywords": "鍛樺伐 鍏ヨ亴 employee"},
+ {"name": "绂昏亴浜ゆ帴", "module": "浜哄姏", "table": "hrm_user_handover", "doc": "from鈫抰o 鏄犲皠锛屽凡瀹屾垚20 鍚� expandUserIds 鎵╁睍浜ゆ帴浜哄彲瑙佹暟鎹紙褰撳墠鍚勪笟鍔℃ā鍧楀皻鏈疄闄呮帴鍏ヨ皟鐢級", "upstream": ["绂昏亴鐢宠"], "downstream": ["鍚勬ā鍧楁垜鐨勬暟鎹煡璇�"], "keywords": "浜ゆ帴 绂昏亴 handover expandUserIds"},
+ {"name": "鎺掔彮璁″垝", "module": "璁惧", "table": "mes_cal_plan", "doc": "鐝粍脳鐝脳鏃ユ湡鎺掔彮锛屼緵鐢熶骇涓庤�冨嫟寮曠敤", "upstream": [], "downstream": ["鐢熶骇浠诲姟", "鑰冨嫟"], "keywords": "鎺掔彮 鐝粍 鐝 鏃ュ巻"}
+ ]
+}</script>
+<script type="application/json" id="data-flows">{
+ "flows": [
+ {"id": "sales", "name": "閿�鍞祦绋�", "mermaid": "mermaid/02-sales-flow.mmd", "color": "#4f9cff",
+ "summary": "绾跨储杞寲瀹㈡埛 鈫� 鍟嗘満鎺ㄨ繘 鈫� 鎶ヤ环(鍙疉I璇嗗埆) 鈫� 鍚堝悓 BPM 瀹℃壒 鈫� 鐢熸垚 ERP 閿�鍞鍗曞苟瀹℃壒 鈫� 闇�鐢熶骇琛岃嚜鍔ㄥ缓 MPS 鈫� 鍙戣揣閫氱煡 鈫� 閿�鍞嚭搴�(OQC)鍥炲啓 鈫� 寮�绁�(BPM) 鈫� 鍥炴(鍏堝紑绁ㄦ牎楠�)銆�",
+ "steps": [
+ {"stage": "鑾峰", "action": "绾跨储杞寲瀹㈡埛銆佸缓鑱旂郴浜恒�佺珛椤瑰晢鏈�", "roles": ["閿�鍞唴鍕�"]},
+ {"stage": "鎶ヤ环", "action": "鍟嗘満璧㈠崟鍚庡缓鎶ヤ环鍗�(AI OCR 棰勫~)锛岃浆鍚堝悓", "roles": ["閿�鍞唴鍕�"]},
+ {"stage": "绛剧害", "action": "鍚堝悓鎻愪氦 BPM 瀹℃壒(鍙�夋祦绋嬪畾涔�)锛岄�氳繃=20", "roles": ["閿�鍞�", "瀹℃壒浜�"]},
+ {"stage": "鎺ュ崟", "action": "鍚堝悓涓�閿敓鎴愰攢鍞鍗�(XSDD)锛岄攢鍞鍗曞啀璧� BPM锛涘鎵归�氳繃鑷姩涓� needProduction 鏄庣粏鍒涘缓 MPS", "roles": ["閿�鍞�", "璁″垝鍛�"]},
+ {"stage": "浜や粯", "action": "鍙戣揣閫氱煡瀹℃牳(鍗犵敤)鈫� 閿�鍞嚭搴� OQC 鈫� 鍙戣繍 鈫� 鍑哄簱鍥炲啓閮ㄥ垎/鍏ㄩ儴鍑哄簱", "roles": ["浠撶", "璐ㄦ"]},
+ {"stage": "鍥炴", "action": "寮�绁� BPM(绱鈮ゅ悎鍚岄) 鈫� 鍥炴寮哄埗鍏堝紑绁�(绱鈮ゅ悎鍚屽墿浣欎笌寮�绁ㄥ墿浣�)", "roles": ["璐㈠姟", "閿�鍞�"]}]},
+ {"id": "purchase", "name": "閲囪喘娴佺▼", "mermaid": "mermaid/03-purchase-flow.mmd", "color": "#5fc79e",
+ "summary": "SRM 鍑嗗叆/瀹氭爣渚涙簮 鈫� 閲囪喘鐢宠 BPM 鈫� 閲囪喘璁㈠崟 BPM 鈫� 纭鏀惰揣鐢熸垚 MES 鍒拌揣閫氱煡 鈫� IQC(鍚堟牸/鐗归噰鍏ュ簱路閫�璐�/鎶ュ簾) 鈫� 閲囪喘鍏ュ簱鍥炲啓璁㈠崟涓庣敵璇� 鈫� 鏉ョエ(AI OCR) 鈫� 浠樻鍗� BPM銆�",
+ "steps": [
+ {"stage": "瀵绘簮", "action": "渚涘簲鍟嗗噯鍏�(BPM)寤烘。锛涙嫑鏍囧畬鏁寸増鎴栫畝鏄撴瘮浠凤紝瀹氭爣瀹℃壒閫氳繃鑷姩鐢熸垚閲囪喘璁㈠崟", "roles": ["閲囪喘寮�鍙�"]},
+ {"stage": "鐢宠", "action": "閲囪喘鐢宠(CGSQ)鎻愪氦 BPM锛岄┏鍥炲彲閲嶇疆鍥炶崏绋匡紱閫氳繃涓旀湁渚涘簲鍟嗚嚜鍔ㄧ敓鎴愯鍗�", "roles": ["閲囪喘鍛�", "瀹℃壒浜�"]},
+ {"stage": "涓嬪崟", "action": "閲囪喘璁㈠崟(CGDD)鑷姩鎻愪氦 BPM(15鈫�20)", "roles": ["閲囪喘鍛�"]},
+ {"stage": "鏀惰揣", "action": "纭鏀惰揣鐢熸垚鍒拌揣閫氱煡(0鈫掑緟璐ㄦ2/寰呭叆搴�3鈫�4)锛涢渶妫�鐗╂枡鑷姩鍒涘缓 IQC", "roles": ["浠撶", "IQC 璐ㄦ鍛�"]},
+ {"stage": "鍏ュ簱", "action": "IQC 鍚堟牸/鐗归噰鈫掗噰璐叆搴�(寰呬笂鏋垛啋寰呮墽琛屸啋瀹屾垚)搴撳瓨+锛屽洖鍐欒鍗� inCount/inStatus 涓庣敵璇锋槑缁�", "roles": ["浠撶"]},
+ {"stage": "閫�璐�", "action": "IQC 涓嶅悎鏍奸��璐р啋渚涘簲鍟嗛��璐у嚭搴�(閫夋枡閿佸畾鍒拌鍗曡)锛涙姤搴熻蛋 NCR", "roles": ["浠撶"]},
+ {"stage": "浠樻", "action": "閲囪喘鏉ョエ(FPD, AI OCR, 鈮よ鍗曟�讳环) 鈫� 浠樻鍗�(FKD 鍏宠仈鏉ョエ+闄勪欢, 鈮ゆ潵绁ㄩ噾棰�) BPM 瀹℃壒", "roles": ["璐㈠姟", "瀹℃壒浜�"]}]},
+ {"id": "production", "name": "鐢熶骇娴佺▼", "mermaid": "mermaid/04-production-flow.mmd", "color": "#e0b34f",
+ "summary": "閿�鍞鍗曢┍鍔� MPS 鈫� 涓嬪彂宸ュ崟 鈫� 鎸夊伐鑹鸿矾绾挎媶宸ュ簭浠诲姟 鈫� 棰嗘枡/绾胯竟澶囨枡 鈫� 鎶ュ伐(宸ュ簭椤哄簭纭牎楠�+BPM) 鈫� 鍊掑啿娑堣��/浜у嚭鍏ュ簱/IPQC 鈫� 鏈亾宸ュ簭鍥炲啓杩涘害 鈫� 鑷姩瀹屽伐 鈫� ProductionFinishedEvent 鍥炲啓閿�鍞鍗曘��",
+ "steps": [
+ {"stage": "璁″垝", "action": "MPS 鍒涘缓(鎵嬪伐鎴栭攢鍞鍗曡嚜鍔�)鈫掍笅鍙戞垨鍚堝苟涓嬪彂涓哄伐鍗�", "roles": ["璁″垝鍛�"]},
+ {"stage": "娲惧伐", "action": "宸ュ崟纭鎸夊伐鑹鸿矾绾块�愬伐搴忕敓鎴愪换鍔★紝鍙寚娲�/鏆傚仠/鍙栨秷", "roles": ["杞﹂棿涓讳换"]},
+ {"stage": "澶囨枡", "action": "鐢熶骇棰嗘枡鍗曞嚭搴撴垨绾胯竟铏氭嫙搴撳鏂�", "roles": ["浠撶"]},
+ {"stage": "鎶ュ伐", "action": "鎻愪氦鎶ュ伐锛氫笂涓�閬撳伐搴忔湭鎶ユ弧鐩存帴鎷︽埅锛涘惎鐢� BPM 璧板鎵�", "roles": ["鎿嶄綔宸�"]},
+ {"stage": "鑱斿姩", "action": "瀹℃壒閫氳繃鎸夊伐搴忔爣璁�: 鍊掑啿鈫掕嚜鍔ㄧ墿鏂欐秷鑰楁墸绾胯竟搴�(鍏佽璐熷簱瀛�)锛涜川妫�鈫掍骇鍑哄緟妫�琛岀瓑 IPQC锛涘叧閿潪妫�鈫掔洿鎺ヤ骇鍑哄叆搴�", "roles": ["绯荤粺鑷姩"]},
+ {"stage": "瀹屽伐", "action": "浠呮湯閬撳伐搴忓洖鍐欏伐鍗曞凡鐢熶骇鏁伴噺锛岃揪鏍囪嚜鍔ㄥ畬鎴愶紱MPS 绱鍒ゆ柇瀹屾垚骞跺彂浜嬩欢缁欓攢鍞鍗�", "roles": ["绯荤粺鑷姩"]}]},
+ {"id": "quality", "name": "璐ㄩ噺娴佺▼", "mermaid": "mermaid/05-quality-flow.mmd", "color": "#e06c6c",
+ "summary": "鍥涢亾妫�楠岄椄鍙�(IQC/IPQC/OQC/RQC锛屼簩鎬� 0鈫�4) + 鍒ゅ畾鍥涙灉(鍚堟牸/鐗归噰/閫�璐�/鎶ュ簾) + NCR 璇勫澶勭疆鍏抽棴锛汚I 鎻愪緵鍒ゅ畾寤鸿锛汵CR 褰撳墠浠呭彴璐︿笉瑙﹀彂杩斿伐鍗曘��",
+ "steps": [
+ {"stage": "鏉ユ枡", "action": "鍒拌揣閫氱煡/澶栧崗鍏ュ簱鈫扞QC锛岀粨璁哄洖鍐欐帹杩涘緟鍏ュ簱鎴栬Е鍙戦��璐�", "roles": ["IQC 璐ㄦ鍛�"]},
+ {"stage": "杩囩▼", "action": "鎶ュ伐璐ㄦ宸ュ簭浜у嚭琛屸啋IPQC锛屽悎鏍兼媶琛屽叆搴撱�佷笉鍚堟牸鐢熸垚 NCR", "roles": ["IPQC 璐ㄦ鍛�"]},
+ {"stage": "鍑鸿揣", "action": "閿�鍞嚭搴撴彁浜も啋OQC锛屽畬鎴愬悗鍑哄簱鍗曡繘鍏ュ緟鎷h揣", "roles": ["OQC 璐ㄦ鍛�"]},
+ {"stage": "閫�璐�", "action": "閫�鏂�/閿�鍞��璐�/鍞悗閫�璐р啋RQC锛岀粨璁哄洖璋冨崟鎹笌鍞悗", "roles": ["RQC 璐ㄦ鍛�"]},
+ {"stage": "涓嶅悎鏍�", "action": "NCR: 寰呰瘎瀹♀啋璇勫鈫掑缃�(閫�璐�/鎶ュ簾/杩斿伐/璁╂鎺ユ敹/闄嶇骇)鈫掑叧闂�", "roles": ["璐ㄩ噺宸ョ▼甯�"]}]},
+ {"id": "warehouse", "name": "浠撳偍娴佺▼", "mermaid": "mermaid/06-warehouse-flow.mmd", "color": "#7e6bd6",
+ "summary": "15 绫诲崟鎹┍鍔ㄥ簱瀛樺彴璐�(鍏厓缁勩�佸洓閲�)鍙樺姩锛屽叏閮ㄧ粡浜嬪姟娴佹按鐣欑棔锛涙敮鎸佽皟鎷ㄥ湪閫斻�佺洏鐐硅皟鏁淬�佹壒娆�/SN 杩芥函銆佸簱瀛樺崰鐢ㄤ笌鍥涚骇鍐荤粨銆佺嚎杈硅櫄鎷熷簱璐熷簱瀛橈紱瀵瑰 WmsStockApi 渚� ERP 鏀跺彂銆�",
+ "steps": [
+ {"stage": "鍏ュ簱", "action": "閲囪喘鍏ュ簱/鐢熶骇鍏ュ簱/浜у嚭鍏ュ簱/閫�璐у叆搴�/澶栧崗鍏ュ簱/鏉傞」鍏ュ簱 鈫� IN 浜嬪姟锛屾壒娆℃贩鏀炬牎楠屻�佸洓绾у喕缁撴牎楠�", "roles": ["浠撶"]},
+ {"stage": "鍑哄簱", "action": "閿�鍞嚭搴�/棰嗘枡/娑堣��/澶栧崗鍙戞枡/渚涘簲鍟嗛��璐�/鏉傞」鍑哄簱 鈫� OUT 浜嬪姟锛宑heckFlag 鎺у埗鍙惁璐熷簱瀛�", "roles": ["浠撶", "绯荤粺鑷姩"]},
+ {"stage": "绉诲簱", "action": "鍐呴儴/澶栭儴璋冩嫧鎴愬 MOVE 浜嬪姟锛屽湪閫旀暟閲忚窡韪�", "roles": ["浠撶"]},
+ {"stage": "鐩樼偣", "action": "鏂规鈫掍换鍔♀啋鏄庣粏琛屸啋缁撴灉锛岀洏鐩� ADJUST_IN銆佺洏浜� ADJUST_OUT锛屽彲鍐荤粨涓庣洸鐩�", "roles": ["鐩樼偣鍛�"]},
+ {"stage": "杩芥函", "action": "鎵规/SN(uuid)/鏉$爜(18绫�)/瑁呯宓屽鏀拺姝e弽鍚戣拷婧�", "roles": ["璐ㄩ噺", "鍞悗"]}]},
+ {"id": "aftersales", "name": "鍞悗娴佺▼", "mermaid": "mermaid/07-after-sales-flow.mmd", "color": "#c78bd6",
+ "summary": "宸ュ崟(鍏��+闂鍒ゅ畾) 鈫� 缁翠慨涓夌被鍨嬫垨閫�璐х敵璇� 鈫� 瀹℃牳鑷姩寤� MES 閿�鍞��璐у崟 鈫� RQC 璐ㄦ/鍏ュ簱/閫�娆句笁鍥炶皟閫愮骇鎺ㄨ繘 鈫� 宸ュ崟瀹岀粨鍏抽棴銆�",
+ "steps": [
+ {"stage": "鍙楃悊", "action": "浜哄伐褰曞叆宸ュ崟(鍏宠仈瀹㈡埛/璁㈠崟/鍚堝悓)锛屽垎閰嶅鐞嗕汉杩涘叆澶勭悊涓�", "roles": ["瀹㈡湇"]},
+ {"stage": "鍒ゅ畾", "action": "闂鍒ゅ畾: 涓�鑸�/缁翠慨/閫�璐э紝涓ラ噸搴� 0-3", "roles": ["鍞悗宸ョ▼甯�"]},
+ {"stage": "缁翠慨", "action": "鐜板満/杩斿巶/杩滅▼缁翠慨锛岃垂鐢ㄤ笌缁撴灉璁板綍锛屽畬鎴愯仈鍔ㄥ伐鍗曞畬缁�", "roles": ["缁翠慨宸ョ▼甯�"]},
+ {"stage": "閫�璐�", "action": "閫�璐х敵璇峰鏍糕啋鑷姩寤� MES 閿�鍞��璐у崟(RQC)鈫掕川妫�/鍏ュ簱鍥炶皟鈫掗��娆惧洖璋冣啋鍏抽棴", "roles": ["鍞悗", "璐ㄦ", "璐㈠姟"]}]},
+ {"id": "ai", "name": "AI 涓氬姟娴佺▼", "mermaid": "mermaid/11-ai-business-flow.mmd", "color": "#56c8d8",
+ "summary": "缁熶竴妯″紡锛氫笟鍔′晶鏀堕泦涓婁笅鏂�(蹇呰鏃惰皟 MDM/SRM/CRM API 鍙栧悕绉�)鈫掔粍瑁� Prompt鈫抍hat/chatWithImage鈫掕В鏋� JSON鈫掑墠绔濉垨寤鸿锛涙棤 Function Calling锛汻AG 鐭ヨ瘑搴撳凡寤烘垚浣嗘殏鏃犱笟鍔℃秷璐广��",
+ "steps": [
+ {"stage": "褰曞叆鎻愭晥", "action": "鍙戠エ OCR(鍥剧墖澶氭ā鎬�/PDF鏂囨湰)銆佹姤浠峰崟 OCR 鈫� 缁撴瀯鍖栭濉�", "roles": ["閲囪喘鍛�", "閿�鍞�"]},
+ {"stage": "杈呭姪鍒ゅ畾", "action": "璐ㄦ鍗�+鎸囨爣+缂洪櫡 鈫� 寤鸿鍚堟牸/鐗归噰/閫�璐�/鎶ュ簾+鐞嗙敱", "roles": ["璐ㄦ鍛�"]},
+ {"stage": "鍐崇瓥棰勬祴", "action": "缂烘枡/鐢熶骇鏃堕暱/鐢熶骇椋庨櫓/浜や粯鍥涚被棰勬祴渚涜鍒掓帓浜у弬鑰�", "roles": ["璁″垝鍛�"]},
+ {"stage": "鐭ヨ瘑妫�绱�", "action": "鏂囨。鈫掑垏鐗団啋Milvus 鍚戦噺鈫掓绱㈡帴鍙�(棰勭暀)", "roles": ["鈥�"]}]}
+ ]
+}</script>
+<script type="application/json" id="data-roles">{
+ "note": "瀹為檯 system_role 浠� 4 涓湁鏁堣鑹诧紙瓒呯骇绠$悊鍛�/鏅�氳鑹�/CRM绠$悊鍛�/绉熸埛绠$悊鍛橈級+1 娴嬭瘯瑙掕壊锛涗笟鍔″垎宸ヤ富瑕侀�氳繃銆庤彍鍗曟潈闄� + 鏁版嵁鏉冮檺锛堣礋璐d汉鍒讹級銆忓疄鐜帮紝鑰岄潪缁嗗垎瑙掕壊銆備互涓嬩笟鍔¤鑹茬敱鍚勬ā鍧楀姛鑳戒笌鏁版嵁鏉冮檺妯″瀷鎺ㄥ銆�",
+ "systemRoles": [
+ {"name": "瓒呯骇绠$悊鍛�", "code": "super_admin", "desc": "浠g爜鐩磋繑鍏ㄩ儴鑿滃崟"},
+ {"name": "鏅�氳鑹�", "code": "common", "desc": "渚濊禆 system_role_menu 閰嶆潈"},
+ {"name": "CRM 绠$悊鍛�", "code": "crm_admin", "desc": "CRM 鏌ョ湅鍏ㄩ儴鏁版嵁"},
+ {"name": "绉熸埛绠$悊鍛�", "code": "tenant_admin", "desc": "澶氱鎴峰凡鍏抽棴锛岄仐鐣�"}
+ ],
+ "businessRoles": [
+ {"role": "閿�鍞唴鍕�/閿�鍞�", "modules": ["CRM", "ERP"], "operations": ["绾跨储瀹㈡埛鍟嗘満缁存姢", "鎶ヤ环涓庡悎鍚�", "閿�鍞鍗�", "璺熻繘璁板綍"], "data": ["crm_*", "erp_sale_order"], "scope": "璐熻矗浜�(owner)+鏁版嵁鏉冮檺涓夌骇锛氬彧璇�/璇诲啓/璐熻矗浜猴紱鍏捣姹犲彲棰嗗彇锛涗氦鎺ヤ汉搴斿彲閫氳繃 expandUserIds 鐪嬪埌绂昏亴浜烘暟鎹�(鎺ュ彛宸插銆佸緟鎺ュ叆)"},
+ {"role": "閿�鍞粡鐞�", "modules": ["CRM"], "operations": ["鍟嗘満/鍚堝悓瀹℃壒鍙備笌", "閿�鍞洰鏍囧埗瀹�", "涓氱哗鎺掑悕婕忔枟鍒嗘瀽"], "data": ["鍥㈤槦鏁版嵁(涓嬪睘鐢ㄦ埛)"], "scope": "AdminUserApi 涓嬬骇鐢ㄦ埛鎵╁睍"},
+ {"role": "閲囪喘鍛�", "modules": ["ERP", "SRM"], "operations": ["閲囪喘鐢宠/璁㈠崟", "纭鏀惰揣", "鏉ョエ涓庝粯娆惧彂璧�"], "data": ["erp_purchase_*", "srm_*"], "scope": "requestUserId/supplierOwner 褰掑睘"},
+ {"role": "閲囪喘寮�鍙�/渚涘簲鍟嗙鐞嗗憳", "modules": ["SRM"], "operations": ["鍑嗗叆瀹℃壒娴佽浆", "鎷涙爣姣斾环缁勭粐", "缁╂晥璇勪环"], "data": ["srm_supplier_apply", "srm_tender_*"], "scope": "BPM 澶氶儴闂ㄤ細绛�(閲囪喘/璐ㄩ噺/璐㈠姟)"},
+ {"role": "璁″垝鍛�", "modules": ["MES"], "operations": ["MPS 涓庡伐鍗�", "宸ヨ壓璺嚎缁存姢", "AI 棰勬祴鍙傝��"], "data": ["mes_pro_*"], "scope": "杞﹂棿/閮ㄩ棬鏁版嵁鑼冨洿"},
+ {"role": "鎿嶄綔宸�/鐝粍闀�", "modules": ["MES"], "operations": ["浠诲姟鎺ユ敹", "鎶ュ伐鎻愪氦(鍙楀伐搴忛『搴忕害鏉�)", "瀹夌伅"], "data": ["mes_pro_feedback", "mes_pro_task"], "scope": "浠诲姟鎸囨淳浜哄彲瑙�"},
+ {"role": "浠撶鍛�", "modules": ["MES-WM"], "operations": ["15 绫诲嚭鍏ュ簱鍗曟嵁鎵ц", "璋冩嫧", "鐩樼偣", "鏉$爜瑁呯"], "data": ["mes_wm_*"], "scope": "浠撳簱缁村害锛沇MS 鍙寜浠撳簱閰嶇疆鍑哄叆搴�/璋冩嫧/鐩樼偣鏄惁璧� BPM"},
+ {"role": "璐ㄦ鍛�", "modules": ["MES-QC"], "operations": ["IQC/IPQC/OQC/RQC 妫�楠�", "NCR 璇勫澶勭疆"], "data": ["mes_qc_*"], "scope": "inspectorUserId 褰掑睘"},
+ {"role": "璁惧鍛�/缁翠慨宸�", "modules": ["MES-DV"], "operations": ["鐐规淇濆吇", "缁翠慨宸ュ崟", "宸ヨ棰嗙敤"], "data": ["mes_dv_*", "mes_tm_*"], "scope": "chargeUserId 褰掑睘"},
+ {"role": "瀹㈡湇/鍞悗宸ョ▼甯�", "modules": ["鍞悗"], "operations": ["宸ュ崟鍙楃悊娲惧伐", "缁翠慨", "閫�璐х敵璇�"], "data": ["after_sale_*"], "scope": "琛岀骇鏁版嵁鏉冮檺鍥涜鍥撅細鎴戣礋璐�/鎴戝弬涓�/涓嬪睘璐熻矗/鍏ㄩ儴(aftersales:view-all)"},
+ {"role": "璐㈠姟", "modules": ["ERP", "CRM"], "operations": ["鏀舵鍗�", "浠樻鍗�", "寮�绁ㄥ鏍�", "缁撶畻璐︽埛"], "data": ["erp_finance_*", "crm_invoice", "crm_receivable"], "scope": "financeUserId 褰掑睘"},
+ {"role": "HR", "modules": ["HRM"], "operations": ["鍛樺伐妗f鍏ヨ浆璋冪", "鑰冨嫟瑙勫垯鎺掔彮", "钖叕鏍哥畻鍙戞斁", "绂昏亴浜ゆ帴"], "data": ["hrm_*"], "scope": "閮ㄩ棬鑼冨洿 dataScope"},
+ {"role": "绠$悊灞�", "modules": ["BI"], "operations": ["鏌ョ湅閲囪喘閿�鍞�/浠撳簱/鐢熶骇璁惧/璐ㄩ噺/浜哄姏浜斿ぇ涓婚澶у睆"], "data": ["bi_dashboard"], "scope": "鍙"}
+ ]
+}</script>
+<pre style="display:none" class="mmd-src" data-mmd="01-business-mindmap">
+mindmap
+ root((MOM 宸ュ巶鏁板瓧鍖栧钩鍙�))
+ 鍩虹涓绘暟鎹� MDM
+ 鐗╂枡涓嶴KU
+ 鐗╂枡鍒嗙被
+ 璁¢噺鍗曚綅涓庡搧鐗�
+ 浠撳簱涓绘暟鎹�
+ 閿�鍞鐞� CRM
+ 绾跨储
+ 瀹㈡埛涓庤仈绯讳汉
+ 鍟嗘満涓庨樁娈�
+ 鎶ヤ环鍗�
+ 閿�鍞悎鍚�
+ 寮�绁ㄤ笌鍥炴
+ 閿�鍞洰鏍�
+ 鏁版嵁鏉冮檺涓庡叕娴�
+ 渚涘簲鍟嗙鐞� SRM
+ 渚涘簲鍟嗘。妗�
+ 鍑嗗叆瀹℃壒
+ 璧勮川璇佷功
+ 鎷涙爣涓庢瘮浠�
+ 缁╂晥璇勪环
+ 杩涢攢瀛樹笌璐㈠姟 ERP
+ 閲囪喘鐢宠
+ 閲囪喘璁㈠崟
+ 閲囪喘鏉ョエ
+ 閿�鍞鍗�
+ 浠樻鍗�
+ 鏀舵鍗�
+ 缁撶畻璐︽埛
+ 鐢熶骇绠$悊 MES
+ 涓荤敓浜ц鍒� MPS
+ 鐢熶骇宸ュ崟
+ 鐢熶骇浠诲姟
+ 鐢熶骇鎶ュ伐
+ 宸ヨ壓璺嚎涓庡伐搴�
+ 宸ュ崟BOM
+ 鐮斿彂璁捐椤圭洰
+ 瀹夌伅
+ 浠撳偍绠$悊 MES-WM
+ 浠撳簱搴撳尯搴撲綅
+ 鍒拌揣閫氱煡
+ 閲囪喘鍏ュ簱
+ 鐢熶骇棰嗘枡涓庨��鏂�
+ 鐢熶骇鍏ュ簱
+ 閿�鍞嚭搴撲笌閫�璐�
+ 杞Щ璋冩嫧
+ 鐩樼偣
+ 搴撳瓨鍙拌处涓庝簨鍔�
+ 鎵规SN鏉$爜瑁呯
+ 璐ㄩ噺绠$悊 MES-QC
+ IQC 鏉ユ枡妫�楠�
+ IPQC 杩囩▼妫�楠�
+ OQC 鍑鸿揣妫�楠�
+ RQC 閫�璐ф楠�
+ NCR 涓嶅悎鏍煎搧
+ 璐ㄦ鏂规涓庢寚鏍囩己闄�
+ 璁惧涓庢帓鐝�
+ 璁惧鍙拌处
+ 鐐规涓庝繚鍏�
+ 缁翠慨宸ュ崟
+ 宸ヨ澶瑰叿
+ 鐝粍鐝涓庢帓鐝�
+ 鍞悗鏈嶅姟
+ 鍞悗宸ュ崟
+ 缁翠慨璁板綍
+ 閫�璐х敵璇�
+ 鏁版嵁鏉冮檺
+ 浜哄姏璧勬簮 HRM
+ 鍛樺伐妗f
+ 璇峰亣鍔犵彮璋冨矖绂昏亴
+ 绂昏亴浜ゆ帴鏄犲皠
+ 鑰冨嫟鎺掔彮姹囨��
+ 钖叕鏍哥畻涓庡彂鏀�
+ 鍗忓悓瀹℃壒 BPM
+ Flowable 寮曟搸
+ 涓氬姟鐘舵�佸洖璋冪洃鍚�
+ AI 鏅鸿兘
+ 鍙戠エOCR璇嗗埆
+ 鎶ヤ环鍗昈CR璇嗗埆
+ 璐ㄦ缁撴灉鍒ゅ畾
+ 鐗╂枡鐭己棰勬祴
+ 鐢熶骇鏃堕暱涓庨闄╅娴�
+ 浜や粯棰勬祴
+ RAG 鐭ヨ瘑搴�
+ BI 涓庣鐞嗛┚椹惰埍
+ SQL 閰嶇疆寮忓ぇ灞�
+ 閲囪喘閿�鍞簱瀛樼敓浜ц川閲忎汉鍔涗富棰�
+ 绯荤粺搴曞骇
+ 璁よ瘉涓嶳BAC
+ 鏁版嵁鏉冮檺
+ 瀛楀吀
+ 闄勪欢涓績
+ 瀹氭椂浠诲姟涓庢秷鎭�
+</pre>
+<pre style="display:none" class="mmd-src" data-mmd="02-sales-flow">
+flowchart TD
+ A[绾跨储 crm_clue] -->|杞寲路浠呬竴娆 B[瀹㈡埛 crm_customer]
+ B --> C[鑱旂郴浜� crm_contact]
+ B --> D[鍟嗘満 crm_business]
+ D -->|鑷畾涔夐樁娈垫帹杩泑 E{鍟嗘満缁撴潫}
+ E -->|璧㈠崟| F[鎶ヤ环鍗� QT路鑽夌0鈫掑凡杞悎鍚�10]
+ E -->|杈撳崟鎴栨棤鏁坾 X[缁撴潫]
+ F -->|杞悎鍚屄峰甫鍏ュ鎴蜂骇鍝佹姌鎵 G[鍚堝悓 HT路鑽夌0鈫掑鎵逛腑10]
+ D -->|鐩存帴寤哄悎鍚寍 G
+ G -->|BPM瀹℃壒閫氳繃20| H[鐢熸垚 ERP 閿�鍞鍗� XSDD]
+ H -->|鎻愪氦BPM| I[閿�鍞鍗曞鎵孤峰鎵逛腑15鈫掑凡瀹℃牳20]
+ I -->|鏄庣粏闇�鐢熶骇路鑷姩鍒涘缓| J[MES 涓荤敓浜ц鍒� MPS]
+ I --> K[鍙戣揣閫氱煡鍗昡
+ K -->|瀹℃牳閫氳繃| L[閿�鍞嚭搴撳崟路OQC鈫掓嫞璐р啋鍙戣繍鈫掑嚭搴撳畬鎴怾
+ L -->|鍥炲啓鍑哄簱鏁伴噺涓庣姸鎬亅 M[閿�鍞鍗� 閮ㄥ垎鍑哄簱2/鍏ㄩ儴鍑哄簱3]
+ G --> N[鍥炴璁″垝路鎸夋湡鏁板垎鏈焆
+ G -->|鎻愪氦BPM| O[寮�绁� KP路瀹℃壒涓�10鈫掗�氳繃20路绱涓嶈秴鍚堝悓棰漖
+ O -->|鍥炴鍓嶅繀椤诲厛寮�绁▅ P[鍥炴 HK路鍒涘缓鍗冲鎵逛腑10鈫掓墜鍔ㄥ鏍�20]
+ P -->|鏍¢獙鍚堝悓鍓╀綑棰濅笌寮�绁ㄥ墿浣欓| N
+</pre>
+<pre style="display:none" class="mmd-src" data-mmd="03-purchase-flow">
+flowchart TD
+ S0[SRM 鍑嗗叆鐢宠 AP路寰呮彁浜�0鈫掑鎵逛腑10鈫掑凡閫氳繃40] --> S1[渚涘簲鍟嗘。妗� srm_supplier]
+ S1 --> S2[璧勮川璇佷功绠$悊]
+ S1 --> S3[缁╂晥璇勪环路璐ㄩ噺浜や粯浠锋牸鏈嶅姟鍥涚淮]
+ S4[SRM 鎷涙爣姣斾环路鍙戝竷鈫掓姇鏍団啋寮�鏍団啋璇勬爣鈫掑畾鏍嘳 -->|瀹氭爣瀹℃壒閫氳繃鐢熸垚璁㈠崟| C3
+ C1[閲囪喘鐢宠 CGSQ路鑽夌0鈫掑鎵逛腑10] -->|鎻愪氦BPM| C2{瀹℃壒}
+ C2 -->|椹冲洖30鈫掑彲閲嶇疆鍥炶崏绋縷 C1
+ C2 -->|閫氳繃20涓旀湁渚涘簲鍟喡疯嚜鍔ㄧ敓鎴恷 C3[閲囪喘璁㈠崟 CGDD路瀹℃壒涓�15鈫掑凡瀹℃牳20]
+ C2 -->|閫氳繃20鏃犱緵搴斿晢| C4[鎵嬪姩鎸囧畾渚涘簲鍟嗙敓鎴愯鍗昡
+ C4 --> C3
+ C3 -->|纭鏀惰揣| C5[鍒拌揣閫氱煡鍗暵疯崏绋�0鈫掑緟璐ㄦ2鈫掑緟鍏ュ簱3鈫掑畬鎴�4]
+ C5 -->|鐗╂枡闇�妫�楠屄疯嚜鍔ㄥ垱寤簗 C6[IQC 鏉ユ枡妫�楠宂
+ C6 -->|鍚堟牸1鎴栫壒閲�2 鍙叆搴搢 C7[閲囪喘鍏ュ簱鍗暵疯崏绋�0鈫掑緟涓婃灦2鈫掑緟鎵ц3鈫掑畬鎴�4]
+ C6 -->|涓嶅悎鏍奸��璐�3| C8[渚涘簲鍟嗛��璐峰緟鎷h揣鈫掑緟鎵ц鈫掑畬鎴惵峰簱瀛樻墸鍑廬
+ C6 -->|涓嶅悎鏍兼姤搴�4| C9[NCR 涓嶅悎鏍煎搧澶勭疆]
+ C7 -->|鍥炲啓 inCount 涓� inStatus 鏈叆搴�0閮ㄥ垎1鍏ㄩ儴2| C3
+ C7 -->|鍥炲啓鐢宠鏄庣粏 inCount| C1
+ C3 -->|璁㈠崟鎬讳环鎺у埗| C10[閲囪喘鏉ョエ FPD路绱閲戦鈮よ鍗曟�讳环]
+ C10 -->|浠樻鍗曞繀椤诲叧鑱旀潵绁▅ C11[浠樻鍗� FKD路瀹℃壒涓�15鈫掑凡瀹℃牳20路绱浠樻鈮ゆ潵绁ㄩ噾棰漖
+</pre>
+<pre style="display:none" class="mmd-src" data-mmd="04-production-flow">
+flowchart TD
+ P0[閿�鍞鍗曟槑缁� needProduction=1] -->|瀹℃壒閫氳繃鑷姩鍒涘缓| P1[MPS 涓荤敓浜ц鍒捖疯崏绋�0鈫掑凡涓嬪彂1]
+ P1 -->|涓嬪彂鎴栧悎骞朵笅鍙憒 P2[鐢熶骇宸ュ崟路鑽夌0鈫掑凡纭1]
+ P2 -->|鎸夊伐鑹鸿矾绾垮伐搴忚嚜鍔ㄧ敓鎴恷 P3[鐢熶骇浠诲姟脳N路棰勫0鈫掔敓浜т腑1鈫掗儴鍒嗗畬鎴�2鈫掑畬鎴�4路鍙殏鍋�9]
+ P3 --> P4[鐢熶骇棰嗘枡 鎴� 绾胯竟铏氭嫙搴撳鏂橾
+ P4 --> P5[鎶ュ伐鎻愪氦路鑽夌0]
+ P5 -->|鏍¢獙:涓婁竴閬撳伐搴忔湭鎶ユ弧鍒欐嫤鎴獆 P5
+ P5 -->|鍚敤BPM鍒欐彁浜ゅ鎵箌 P6{鎶ュ伐瀹℃壒}
+ P6 -->|椹冲洖| P5
+ P6 -->|閫氳繃涓斿�掑啿宸ュ簭| P7[鎸夊伐鍗旴OM鑷姩鐢熸垚鐗╂枡娑堣�椔锋墸绾胯竟铏氭嫙搴揊IFO鍏佽璐熷簱瀛榏
+ P6 -->|閫氳繃涓旇川妫�宸ュ簭| P8[浜у嚭琛屽緟妫�鈫扞PQC 杩囩▼妫�楠宂
+ P6 -->|閫氳繃涓旈潪璐ㄦ鍏抽敭宸ュ簭| P9[浜у搧浜у嚭鐩存帴瀹屽伐鍏ュ簱]
+ P8 -->|妫�楠屽悎鏍紎 P10[鎷嗗悎鏍间笌涓嶅悎鏍艰鍏ュ簱]
+ P8 -->|涓嶅悎鏍紎 P11[NCR 涓嶅悎鏍煎搧]
+ P9 --> P12[杩涘害鍥炲啓路浠呮渶鍚庝竴閬撳伐搴忔姤宸ユ墠鏇存柊宸ュ崟宸茬敓浜ф暟閲廬
+ P10 --> P12
+ P12 -->|宸茬敓浜ф暟閲忊墺璁″垝鏁伴噺路鑷姩| P13[宸ュ崟瀹屾垚2]
+ P12 -->|绱| P14[MPS 鍥炲啓宸茬敓浜ф暟閲忓苟鍒ゆ柇瀹屾垚2]
+ P14 -->|鍏ㄩ儴瀹屾垚| P15[鍙戝竷 ProductionFinishedEvent鈫掑洖鍐欓攢鍞鍗曠敓浜х姸鎬乚
+</pre>
+<pre style="display:none" class="mmd-src" data-mmd="05-quality-flow">
+flowchart TD
+ T1[鍒拌揣閫氱煡鍗� 鎴� 澶栧崗鍏ュ簱鍗昡 --> A1[IQC 鏉ユ枡妫�楠屄疯崏绋�0鈫掑畬鎴�4]
+ T2[鎶ュ伐璐ㄦ宸ュ簭閫氳繃鍚庝骇鍑鸿] --> A2[IPQC 杩囩▼妫�楠屄疯崏绋�0鈫掑畬鎴�4]
+ T3[閿�鍞嚭搴撳崟鎻愪氦] --> A3[OQC 鍑鸿揣妫�楠屄疯崏绋�0鈫掑畬鎴�4]
+ T4[鐢熶骇閫�鏂欏崟 鎴� 閿�鍞��璐у崟 鎴� 鍞悗閫�璐 --> A4[RQC 閫�璐ф楠屄疯崏绋�0鈫掑畬鎴�4]
+ A1 --> R{妫�楠屽垽瀹� MesQcCheckResultEnum}
+ A2 --> R
+ A3 --> R
+ A4 --> R
+ R -->|1 鍚堟牸| Q1[鍏佽鍏ュ簱路鍥炲啓鏉ユ簮鍗曟嵁鎺ㄨ繘鐘舵�乚
+ R -->|2 鐗归噰| Q2[鍏佽鍏ュ簱路骞剁敓鎴怤CR鐣欑棔]
+ R -->|3 涓嶅悎鏍奸��璐 Q3[鐢熸垚NCR路璧颁緵搴斿晢閫�璐ф垨閿�鍞��璐
+ R -->|4 涓嶅悎鏍兼姤搴焲 Q4[鐢熸垚NCR路璧版姤搴熷嚭搴揮
+ A2 -->|鍚堟牸鏁伴噺| Q5[鎶ュ伐杞畬鎴惵蜂骇鍑烘媶琛屽叆搴揮
+ A3 -->|瀹屾垚| Q6[閿�鍞嚭搴撳崟鎺ㄨ繘寰呮嫞璐
+ A4 -->|瀹屾垚| Q7[閫�璐у崟鎺ㄨ繘涓婃灦鎴栧叆搴撀峰敭鍚庡洖璋冪粨璁篯
+ N1[NCR 寰呰瘎瀹�0] -->|璇勫| N2[宸茶瘎瀹�6]
+ N2 -->|澶勭疆鏂瑰紡:閫�璐�1鎶ュ簾2杩斿伐3璁╂鎺ユ敹4闄嶇骇浣跨敤5| N3[宸插缃�7]
+ N3 -->|鍏抽棴| N4[宸插叧闂�8]
+ Q8[鏀拺鏁版嵁:璐ㄦ鏂规路妫�楠屾寚鏍嚶风己闄峰簱路鎸囨爣缁撴灉] --- A1
+</pre>
+<pre style="display:none" class="mmd-src" data-mmd="06-warehouse-flow">
+flowchart LR
+ subgraph INB [鍏ュ簱路浜嬪姟IN路搴撳瓨鍔燷
+ I1[閲囪喘鍏ュ簱]
+ I2[鐢熶骇鍏ュ簱鍗昡
+ I3[鎶ュ伐浜у嚭鑷姩鍏ュ簱]
+ I4[閿�鍞��璐у叆搴揮
+ I5[澶栧崗鍏ュ簱]
+ I6[鏉傞」鍏ュ簱]
+ end
+ subgraph OUTB [鍑哄簱路浜嬪姟OUT路搴撳瓨鍑廬
+ O1[閿�鍞嚭搴揮
+ O2[鐢熶骇棰嗘枡]
+ O3[鐗╂枡娑堣�楀�掑啿路鍏佽璐熷簱瀛榏
+ O4[澶栧崗鍙戞枡]
+ O5[鐢熶骇閫�鏂欏洖浠揮
+ O6[渚涘簲鍟嗛��璐
+ O7[鏉傞」鍑哄簱路璋冩暣鎴栨姤搴焆
+ end
+ W[(搴撳瓨鍙拌处 mes_wm_material_stock 鐗╂枡脳浠撳簱脳搴撳尯脳搴撲綅脳鎵规脳渚涘簲鍟�)]
+ INB -->|getOrCreate 鍔犳暟閲弢 W
+ OUTB -->|鏍¢獙鍙敤閲忓悗鎵e噺| W
+ W -->|鍗犵敤棰勭暀 reservedQuantity| RES[搴撳瓨鍗犵敤 閿�鍞嚭搴撀烽鏂櫬峰鍗徛锋潅椤孤疯皟鎷╙
+ MV[杞Щ璋冩嫧路鍐呴儴鎴栧閮╙ -->|鎴愬浜嬪姟 MOVE_OUT+MOVE_IN 鍦ㄩ�攟 W
+ ST[鐩樼偣 鏂规鈫掍换鍔♀啋鏄庣粏琛屸啋缁撴灉] -->|鐩樼泩 ADJUST_IN路鐩樹簭 ADJUST_OUT路鍙喕缁撳簱瀛榺 W
+ W --> TX[浜嬪姟娴佹按 mes_wm_transaction 鍙鍏ㄩ噺鐣欑棔]
+ BT[鎵规 mes_wm_batch路SN鐮伮锋潯鐮伮疯绠卞祵濂梋 --- W
+ WIP[[绾胯竟铏氭嫙搴� WIP_VIRTUAL_WAREHOUSE路鎳掑垵濮嬪寲]] --- O3
+ FR[鍥涚骇鍐荤粨:浠撳簱路搴撳尯路搴撲綅路搴撳瓨璁板綍] --- W
+</pre>
+<pre style="display:none" class="mmd-src" data-mmd="07-after-sales-flow">
+flowchart TD
+ F1[瀹㈡埛鍙嶉路鍚庡彴浜哄伐褰曞叆宸ュ崟路鍏宠仈瀹㈡埛鑱旂郴浜洪攢鍞鍗曞悎鍚宂 --> K1[鍞悗宸ュ崟路鑽夌0]
+ K1 -->|assignTicket 鍒嗛厤澶勭悊浜簗 K2[澶勭悊涓�10路闂鍒ゅ畾:涓�鑸�1缁翠慨2閫�璐�3路涓ラ噸搴�0-3]
+ K2 -->|缁翠慨绫粅 R1[缁翠慨璁板綍路寰呭鐞�0鈫掔淮淇腑10鈫掑凡瀹屾垚20鈫掑凡鍏抽棴30路鐜板満杩斿巶杩滅▼]
+ R1 -->|completeRepair| K4[宸插畬缁�50]
+ K2 -->|閫�璐х被鍒涘缓閫�璐х敵璇穦 T1[閫�璐х敵璇仿疯崏绋�0]
+ T1 -->|approveReturn 瀹℃牳閫氳繃| T2[宸插鏍�20路鑷姩鍒涘缓MES閿�鍞��璐у崟]
+ T2 --> T3[MES 閿�鍞��璐疯崏绋库啋寰呮楠孯QC鈫掑緟涓婃灦鈫掑緟鍏ュ簱鈫掑畬鎴怾
+ T3 -->|璐ㄦ缁撹鍥炶皟 onReturnQualityFinished 鍚堟牸鐗归噰閫�璐ф姤搴焲 T4[宸茶川妫�40]
+ T3 -->|鍏ュ簱瀹屾垚鍥炶皟 onReturnInboundFinished| T5[宸插叆搴�50]
+ T5 -->|閫�娆惧畬鎴愬洖璋� onRefundCompleted 璁板綍瀹為檯閫�娆鹃| T6[宸查��娆�60]
+ T6 --> T7[宸插叧闂�70]
+ T2 -.->|鐘舵�佹祦杞腑| T8[瀹℃牳涓�10路棰勭暀鏈惎鐢╙
+ K2 -->|閫�璐ч摼璺仈鍔ㄥ伐鍗晐 K3[寰呭叆搴�30鈫掑緟閫�娆�40]
+ K3 --> K4
+ K2 -->|resolveTicket| K4
+ K4 -->|closeTicket| K5[宸插叧闂�60]
+ K1 -->|cancelTicket| K9[宸插彇娑�99]
+ K2 -->|cancelTicket| K9
+ PM[鏁版嵁鏉冮檺 bizType+bizId+userId+绾у埆 璐熻矗浜哄彧璇昏鍐櫬锋垜璐熻矗鎴戝弬涓庝笅灞炲叏閮ㄥ洓瑙嗗浘] --- K1
+</pre>
+<pre style="display:none" class="mmd-src" data-mmd="08-module-relation">
+flowchart LR
+ MDM[MDM 涓绘暟鎹� 鐗╂枡鍗曚綅浠撳簱鍝佺墝鍒嗙被] --> MES[MES 鐢熶骇路浠撳偍路璐ㄩ噺路璁惧]
+ MDM --> ERP[ERP 閲囪喘路閿�鍞疯储鍔
+ MDM --> CRM
+ CRM[CRM 绾跨储瀹㈡埛鍟嗘満鎶ヤ环鍚堝悓鍥炴] -->|鍚堝悓鐢熸垚閿�鍞鍗晐 ERP
+ SRM[SRM 渚涘簲鍟嗗噯鍏ヨ祫璐ㄨ瘉涔︽嫑鏍囩哗鏁圿 -->|瀹氭爣鐢熸垚閲囪喘璁㈠崟| ERP
+ ERP -->|纭鏀惰揣鐢熸垚鍒拌揣閫氱煡| MES
+ ERP -->|閿�鍞鍗曞鎵圭敓鎴怣PS| MES
+ MES -->|鍏ュ簱鍑哄簱鍥炲啓鍗曟嵁杩涘害| ERP
+ MES -->|ProductionFinishedEvent| ERP
+ MES -->|閫�璐ц川妫�鍏ュ簱鍥炶皟| AS[鍞悗宸ュ崟缁翠慨閫�璐
+ CRM -->|瀹㈡埛涓绘暟鎹畖 AS
+ HRM[HRM 鍛樺伐鍏ヨ浆璋冪浜ゆ帴鑰冨嫟钖叕] -.->|expandUserIds 鏁版嵁鍙鎬ф墿灞暵锋帴鍙e凡灏辩华寰呭悇妯″潡鎺ュ叆| CRM
+ BPM[BPM Flowable 瀹℃壒寮曟搸] -.->|鐘舵�佷簨浠跺洖璋兟�13涓洃鍚櫒| ERP
+ BPM -.-> CRM
+ BPM -.-> SRM
+ BPM -.-> MES
+ BPM -.-> HRM
+ AI[AI 骞冲彴 閫氫箟鍗冮棶+Milvus] -.->|鍙戠エOCR| ERP
+ AI -.->|鎶ヤ环OCR| CRM
+ AI -.->|璐ㄦ鍒ゅ畾涓庣敓浜ч娴媩 MES
+ MES --> BI[BI 绠$悊椹鹃┒鑸� SQL閰嶇疆澶у睆]
+ ERP --> BI
+ CRM --> BI
+ HRM --> BI
+ SYS[绯荤粺搴曞骇 璁よ瘉路RBAC路瀛楀吀路闄勪欢涓績路瀹氭椂浠诲姟] --- MDM
+ SYS --- MES
+ STG[闄勪欢涓績 storage-blob+attachment 鍏ㄦā鍧楃粺涓�鎸傞檮浠禲 --- ERP
+</pre>
+<pre style="display:none" class="mmd-src" data-mmd="09-data-flow">
+flowchart LR
+ subgraph S1 [閿�鍞墠绔� CRM]
+ CL[绾跨储] --> CU[瀹㈡埛]
+ CU --> BU[鍟嗘満]
+ BU --> QU[鎶ヤ环鍗昡
+ QU --> CT[鍚堝悓]
+ CT --> IV[寮�绁╙
+ IV --> RK[鍥炴]
+ CT --> PL[鍥炴璁″垝]
+ end
+ subgraph S2 [鎵ц閾� ERP+MES]
+ SO[閿�鍞鍗昡 --> MP[MPS]
+ MP --> WO[宸ュ崟]
+ WO --> TK[浠诲姟]
+ TK --> FB[鎶ュ伐]
+ FB --> PP[浜у搧浜у嚭]
+ PR[閲囪喘鐢宠] --> PO[閲囪喘璁㈠崟]
+ PO --> AN[鍒拌揣閫氱煡]
+ AN --> IR[閲囪喘鍏ュ簱]
+ end
+ subgraph S3 [浠撳偍涓庤储鍔
+ ST[搴撳瓨鍙拌处]
+ PS[閿�鍞嚭搴揮
+ RC[鏀舵鍗昡
+ PI[閲囪喘鏉ョエ] --> PA[浠樻鍗昡
+ end
+ CT -->|generateSaleOrder 甯﹀叆瀹㈡埛浜у搧鎶樻墸瀹氶噾路鍥炲啓orderId| SO
+ SO -->|瀹℃壒閫氳繃甯﹀叆 saleOrderId 琛孖D 鏁伴噺 瀹㈡埛 浜ゆ湡| MP
+ PO -->|纭鏀惰揣甯﹀叆璁㈠崟琛岀墿鏂欎緵搴斿晢鏁伴噺| AN
+ AN -->|IQC瀹屾垚鍚庣敓鎴惵峰甫鍏ュ悎鏍艰| IR
+ FB -->|BOM鍊掑啿鎵e噺| ST
+ PP -->|IN浜嬪姟鍏ュ簱| ST
+ IR -->|IN浜嬪姟鍏ュ簱路鍥炲啓inCount| PO
+ PS -->|OUT浜嬪姟鍑哄簱路鍥炲啓outCount| SO
+ FB -->|鏈�鍚庝竴閬撳伐搴忓洖鍐欏凡鐢熶骇鏁伴噺| WO
+ FB -->|ProductionFinishedEvent 鍥炲啓鐢熶骇鐘舵�亅 SO
+ IV -->|鍥炴寮哄埗鍏堝紑绁▅ RK
+ RC -->|鍏宠仈CRM瀹㈡埛鏍¢獙| CU
+ PA -->|鍏宠仈鏉ョエ涓庝緵搴斿晢| PI
+</pre>
+<pre style="display:none" class="mmd-src" data-mmd="10-business-object">
+erDiagram
+ crm_customer ||--o{ crm_business : "鎷ユ湁鍟嗘満"
+ crm_business ||--o{ crm_sale_quotation : "褰㈡垚鎶ヤ环"
+ crm_sale_quotation |o--o| crm_contract : "杞负鍚堝悓"
+ crm_contract ||--o| erp_sale_order : "鐢熸垚閿�鍞鍗�"
+ crm_contract ||--o{ crm_receivable_plan : "鍒嗘湡璁″垝"
+ crm_contract ||--o{ crm_invoice : "寮�绁�"
+ crm_invoice ||--o{ crm_receivable : "鍑エ鍥炴"
+ erp_sale_order ||--o{ mes_pro_mps : "闇�鐢熶骇琛岃Е鍙�"
+ mes_pro_mps ||--o{ mes_pro_work_order : "涓嬪彂宸ュ崟"
+ mes_pro_work_order ||--o{ mes_pro_task : "鎸夊伐搴忔媶浠诲姟"
+ mes_pro_task ||--o{ mes_pro_feedback : "鎶ュ伐"
+ mes_pro_work_order ||--o{ mes_pro_work_order_bom : "宸ュ簭鎶曟枡BOM"
+ erp_purchase_request ||--o{ erp_purchase_order : "鐢熸垚閲囪喘璁㈠崟"
+ erp_purchase_order ||--o| mes_wm_arrival_notice : "纭鏀惰揣"
+ mes_wm_arrival_notice ||--o| mes_qc_iqc : "瑙﹀彂IQC"
+ mes_wm_arrival_notice ||--o{ mes_wm_item_receipt : "鐢熸垚閲囪喘鍏ュ簱"
+ erp_sale_order ||--o{ mes_wm_product_sales : "閿�鍞嚭搴�"
+ mes_wm_product_sales ||--o| mes_qc_oqc : "瑙﹀彂OQC"
+ mes_pro_feedback ||--o| mes_qc_ipqc : "璐ㄦ宸ュ簭瑙﹀彂IPQC"
+ mes_pro_feedback ||--o{ mes_wm_product_produce : "浜у嚭鍏ュ簱"
+ mes_pro_feedback ||--o{ mes_wm_item_consume : "BOM鍊掑啿娑堣��"
+ mes_qc_iqc ||--o| mes_qc_ncr : "涓嶅悎鏍肩敓鎴怤CR"
+ mes_wm_item_receipt ||--o{ mes_wm_material_stock : "搴撳瓨澧炲姞"
+ mes_wm_material_stock ||--o{ mes_wm_transaction : "浜嬪姟娴佹按"
+ mes_wm_material_stock }o--|| mes_wm_batch : "鎸夋壒娆�"
+ after_sale_ticket ||--o{ after_sale_return : "閫�璐х敵璇�"
+ after_sale_return ||--o| mes_wm_return_sales : "鐢熸垚MES閫�璐у崟"
+ mdm_item ||--o{ erp_sale_order_items : "閿�鍞槑缁�"
+ mdm_item ||--o{ erp_purchase_order_items : "閲囪喘鏄庣粏"
+ mdm_item ||--o{ mes_wm_material_stock : "搴撳瓨鐗╂枡"
+ srm_supplier ||--o{ erp_purchase_order : "渚涜揣"
+ srm_supplier ||--o{ mes_wm_arrival_notice : "鍒拌揣鏉ユ簮"
+ erp_purchase_order ||--o{ erp_purchase_invoice : "鏉ョエ"
+ erp_purchase_invoice ||--o{ erp_finance_payment : "浠樻"
+ hrm_employee ||--o| hrm_user_handover : "绂昏亴浜ゆ帴鏄犲皠"
+</pre>
+<pre style="display:none" class="mmd-src" data-mmd="11-ai-business-flow">
+flowchart TD
+ U1[閲囪喘鍛樹笂浼犲彂绁ㄦ枃浠� blobId] --> O1{鏂囦欢绫诲瀷}
+ O1 -->|鍥剧墖 png/jpg/gif/bmp| O2[chatWithImage 澶氭ā鎬佽瑙夋ā鍨媇
+ O1 -->|PDF| O3[PDFBox 鎶藉彇鏂囨湰 鈫� chat]
+ O1 -->|txt/csv| O4[鐩磋鏂囨湰 鈫� chat]
+ O2 --> O5[JSON 鍙戠エ鍙� 鎶ご 渚涘簲鍟� 閲戦 绋庣巼 鏃ユ湡]
+ O3 --> O5
+ O4 --> O5
+ O5 --> O6[棰勫~閲囪喘鏉ョエ琛ㄥ崟路浜哄伐纭]
+ Q1[閿�鍞笂浼犳姤浠峰崟 PDF/Word/Excel/鍥剧墖] --> Q2[POI/PDFBox/瑙嗚璇嗗埆]
+ Q2 --> Q3[JSON 鎶ヤ环澶�+浜у搧鏄庣粏琛宂 --> Q4[棰勫~鎶ヤ环鍗曡〃鍗昡
+ J1[璐ㄦ鍗曞ご+鎸囨爣缁撴灉+缂洪櫡璁板綍] --> J2[涓氬姟渚х粍瑁匬rompt 鈫� chat]
+ J2 --> J3[MdmItemApi 鐗╂枡鍚嵚稴rmSupplierApi 渚涘簲鍟嗗悕路CrmCustomerApi 瀹㈡埛鍚� 鎷煎叆涓婁笅鏂嘳
+ J3 --> J4[寤鸿缁撴灉:鍚堟牸/鐗归噰/閫�璐�/鎶ュ簾+鐞嗙敱+瑕佺偣]
+ J4 --> J5[璐ㄦ鍛樺弬鑰冨垽瀹毬稟I涓嶅彲鐢ㄦ椂鎻愮ず浜哄伐鍒ゅ畾]
+ R1[宸ュ崟BOM+搴撳瓨鍙敤閲�+宸叉姇鏂橾 --> R2[鐗╂枡鐭己棰勬祴路椋庨櫓绛夌骇涓庣己鍙f竻鍗昡
+ R3[宸ュ簭鏍囧噯宸ユ椂+璁惧姣忓皬鏃朵骇閲�+浼犻�佸�嶇巼] --> R4[鐢熶骇鏃堕暱棰勬祴]
+ R5[IPQC缂洪櫡鐜�+璁惧淇濆吇鐐规+鐗╂枡鍙敤鐜�+鍏抽敭宸ュ簭] --> R6[鐢熶骇椋庨櫓棰勬祴]
+ R7[杩涘害+鍓╀綑澶╂暟+浠诲姟瀹屾垚鐘舵��+瀹㈡埛浜ゆ湡] --> R8[浜や粯棰勬祴路鑳藉惁鎸夋椂+缃俊搴�+寤惰鍥犵礌]
+ KB1[鐭ヨ瘑搴撴枃妗d笂浼燯RL] --> KB2[POI/Tika鎻愬彇鏂囨湰] --> KB3[鍒囩墖绾�800tokens鈫掑悜閲忓寲鈫扢ilvus]
+ KB3 --> KB4[鍒嗘妫�绱㈡帴鍙� topK+鐩镐技搴﹂槇鍊糫
+ KB4 -.-> KB5[鏆傛湭鎺ュ叆涓氬姟闂瓟娴佺▼路寰呯‘璁
+ MODE[妯″瀷灞�:閫氫箟鍗冮棶涓轰富路棰勭暀DeepSeek/OpenAI/Ollama鏈疄鐜癩 --- O2
+ NOTE[鍏ㄩ」鐩棤Function Calling路AI鍙緭鍑虹粨鏋勫寲JSON鐢变笟鍔′晶瑙f瀽] --- J2
+</pre>
+
+<script type="module">
+const DATA = {};
+async function loadJson(key){
+ try{
+ const r = await fetch('data/' + (key==='business'?'business':key) + '.json', {cache:'no-store'});
+ if(r.ok) return await r.json();
+ }catch(e){}
+ return JSON.parse(document.getElementById('data-'+key).textContent);
+}
+function esc(s){return String(s ?? '').replace(/[&<>"]/g,c=>({'&':'&','<':'<','>':'>','"':'"'}[c]));}
+const mermaid = (await import('https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs')).default;
+mermaid.initialize({startOnLoad:false, theme:'dark', securityLevel:'loose',
+ themeVariables:{fontFamily:'"Segoe UI","Microsoft YaHei",sans-serif',fontSize:'13px'},
+ flowchart:{useMaxWidth:true, htmlLabels:true}});
+
+const mmdSrc = {};
+document.querySelectorAll('pre.mmd-src').forEach(p=>{ mmdSrc[p.dataset.mmd]=p.textContent.trim(); });
+
+const flowColor = {sales:'var(--c-sale)',purchase:'var(--c-erp)',production:'var(--c-prod)',quality:'var(--c-qc)',warehouse:'var(--c-wm)',aftersales:'var(--c-as)',ai:'var(--c-ai)'};
+
+async function boot(){
+ DATA.business = await loadJson('business');
+ DATA.modules = await loadJson('modules');
+ DATA.objects = await loadJson('objects');
+ DATA.flows = await loadJson('flows');
+ DATA.roles = await loadJson('roles');
+ const b = DATA.business.project, s = DATA.business.stats;
+ document.getElementById('hProject').textContent = b.name + ' 路 涓氬姟鍏ㄦ櫙';
+ document.getElementById('hSub').textContent = b.type + ' | ' + b.mainSystem;
+ document.getElementById('footer').innerHTML = DATA.business.analysisBasis + ' 路 鐢熸垚浜� ' + DATA.business.generatedAt + ' 路 缁存姢璇疯蛋鎶�鑳� project-business-analysis';
+ renderOverview(); renderFlows(); renderObjects(); renderRoles(); renderAI(); renderPending();
+ bindNav(); bindSearch(); bindFigToolbar();
+ showPage('overview');
+}
+
+function renderOverview(){
+ const b = DATA.business.project, s = DATA.business.stats;
+ const answers = DATA.business.businessAnswers;
+ let html = `
+ <h2 class="pt">${esc(b.name)}</h2>
+ <p class="desc">${esc(b.description)}</p>
+ <div class="banner">
+ <div class="small muted" style="margin-bottom:4px">鏍稿績涓氬姟涓荤嚎</div>
+ <div class="chain"><b>涓荤嚎</b> ${esc(b.coreChain)}</div>
+ </div>
+ <div class="grid stats">
+ <div class="stat"><b>${s.businessModules}</b><span>涓氬姟妯″潡</span></div>
+ <div class="stat"><b>${s.coreObjects}</b><span>鏍稿績涓氬姟瀵硅薄</span></div>
+ <div class="stat"><b>${s.documentFlows}</b><span>绔埌绔笟鍔℃祦绋�</span></div>
+ <div class="stat"><b>${s.approvalListeners}</b><span>BPM 瀹℃壒鐩戝惉鍣�</span></div>
+ <div class="stat"><b>${s.aiCapabilities}</b><span>AI 鑳藉姏</span></div>
+ <div class="stat"><b>${s.wmBillTypes}</b><span>浠撳偍鍑哄叆搴撳崟鎹被鍨�</span></div>
+ </div>
+ <h3 class="sec">涓氬姟妯″潡</h3>
+ <div class="grid cards">`;
+ const targets = {crm:'flow-sales',erp:'flow-purchase',pro:'flow-production',wm:'flow-warehouse',qc:'flow-quality',aftersales:'flow-aftersales',ai:'ai',srm:'flow-purchase',mdm:'objects',dv:'objects',hrm:'objects',bpm:'relation'};
+ const accs = {mdm:'var(--c-base)',crm:'var(--c-sale)',srm:'var(--c-sup)',erp:'var(--c-erp)',pro:'var(--c-prod)',wm:'var(--c-wm)',qc:'var(--c-qc)',dv:'var(--c-dv)',aftersales:'var(--c-as)',hrm:'var(--c-hrm)',bpm:'var(--c-bpm)',ai:'var(--c-ai)'};
+ DATA.modules.modules.forEach(m=>{
+ html += `<div class="card" style="--acc:${accs[m.key]||'#2c5cff'}" data-goto="${targets[m.key]||'panorama'}">
+ <h3>${esc(m.name)}<span class="tag">${esc(m.tag)}</span></h3>
+ <p>${esc(m.positioning)} 鈥� ${esc(m.problem)}</p>
+ <div class="objs">鏍稿績瀵硅薄锛�${esc(m.objects.slice(0,6).join('銆�'))}${m.objects.length>6?' 绛�':''}</div>
+ <div class="objs">涓婃父 ${esc(m.upstream.join('銆�')||'鈥�')} 鈫� 涓嬫父 ${esc(m.downstream.join('銆�')||'鈥�')}</div>
+ </div>`;
+ });
+ html += `</div><h3 class="sec">涓氬姟鍗侀棶锛堝噯纭�ц嚜妫�锛�</h3><div class="grid cards">`;
+ answers.forEach(([q,a])=>{ html += `<div class="card" style="cursor:default"><h3 style="font-size:13.5px">${esc(q)}</h3><p style="color:#b9c8dc">${esc(a)}</p></div>`; });
+ html += `</div>`;
+ document.getElementById('overview').innerHTML = html;
+ document.querySelectorAll('#overview .card[data-goto]').forEach(c=>c.addEventListener('click',()=>showPage(c.dataset.goto)));
+}
+
+function flowFigHtml(f, name){
+ return `<div class="fig" style="--acc:${flowColor[f.id]||'#2c5cff'}">
+ <div class="bar"><span class="name">${esc(name||f.name)} 路 ${esc(f.mermaid)}</span>
+ <div class="btns"><button data-z="-">锛�</button><button data-z="+">锛�</button><button data-z="0">閲嶇疆</button><button data-fs>鍏ㄥ睆</button></div></div>
+ <div class="canvas"><div class="stage mermaid-wrap"><pre class="mermaid" data-mmd="${f.mermaid.replace(/^mermaid\//,'').replace(/\.mmd$/,'')}"></pre></div></div>
+ </div>`;
+}
+function flowStepsHtml(f){
+ return `<h3 class="sec">姝ラ涓庤鑹�</h3>
+ <table class="steps" style="--acc:${flowColor[f.id]||'#7ea6e8'}"><tr><th>闃舵</th><th>鍔ㄤ綔锛堝惈鐪熷疄鐘舵�佹祦杞級</th><th>瑙掕壊</th></tr>
+ ${f.steps.map(st=>`<tr><td class="stage">${esc(st.stage)}</td><td>${esc(st.action)}</td><td class="role">${esc(st.roles.join('銆�'))}</td></tr>`).join('')}
+ </table>`;
+}
+function renderFlows(){
+ DATA.flows.flows.forEach(f=>{
+ if(f.id==='ai') return;
+ const sec = document.getElementById('flow-'+f.id);
+ if(!sec) return;
+ sec.innerHTML = `<h2 class="pt">${esc(f.name)}</h2><p class="desc">${esc(f.summary)}</p>${flowFigHtml(f)}${flowStepsHtml(f)}`;
+ });
+}
+
+function renderObjects(){
+ const groups = {};
+ DATA.objects.objects.forEach(o=>{ (groups[o.module]=groups[o.module]||[]).push(o); });
+ let html = `<h3 class="sec">瀵硅薄娓呭崟锛�${DATA.objects.objects.length}锛�</h3>
+ <table class="data"><tr><th style="width:120px">瀵硅薄</th><th style="width:110px">鎵�灞炴ā鍧�</th><th>浣滅敤</th><th style="width:190px">琛ㄥ悕</th></tr>`;
+ DATA.objects.objects.forEach((o,i)=>{
+ html += `<tr data-obj="${i}"><td><b style="color:#fff">${esc(o.name)}</b></td><td class="muted">${esc(o.module)}</td><td>${esc(o.doc)}</td><td class="small muted">${esc(o.table||'鈥�')}</td></tr>`;
+ });
+ html += `</table>`;
+ document.getElementById('objGrid').innerHTML = html;
+ document.querySelectorAll('#objGrid tr[data-obj]').forEach(tr=>tr.addEventListener('click',()=>{
+ const o = DATA.objects.objects[+tr.dataset.obj];
+ document.getElementById('objDetail').innerHTML = `
+ <h4>${esc(o.name)} <span class="muted small">路 ${esc(o.module)}${o.table?' 路 琛� '+esc(o.table):''}</span></h4>
+ <div class="kv"><b>浣滅敤</b>${esc(o.doc)}</div>
+ <div class="kv"><b>涓婃父</b>${esc((o.upstream&&o.upstream.length)?o.upstream.join('銆�'):'鈥�')}</div>
+ <div class="kv"><b>涓嬫父</b>${esc((o.downstream&&o.downstream.length)?o.downstream.join('銆�'):'鈥�')}</div>`;
+ document.getElementById('objDetail').scrollIntoView({behavior:'smooth',block:'nearest'});
+ }));
+}
+
+function renderRoles(){
+ const rs = DATA.roles;
+ let html = `<h2 class="pt">瑙掕壊涓庢潈闄�</h2><p class="desc">${esc(rs.note)}</p>
+ <h3 class="sec">涓氬姟瑙掕壊 鈫� 鍙搷浣滀笟鍔� 鈫� 浜х敓鏁版嵁</h3>
+ <table class="data"><tr><th style="width:150px">瑙掕壊</th><th style="width:130px">妯″潡</th><th>鎿嶄綔</th><th style="width:180px">鏁版嵁鑼冨洿/鏈哄埗</th></tr>
+ ${rs.businessRoles.map(r=>`<tr><td><b style="color:#fff">${esc(r.role)}</b></td><td class="muted">${esc(r.modules.join('銆�'))}</td><td>${esc(r.operations.join('锛�'))}</td><td class="small">${esc(r.scope)}</td></tr>`).join('')}
+ </table>
+ <h3 class="sec">搴曞骇鑳藉姏</h3>
+ <div class="grid cards">${DATA.modules.platform.capabilities.map(c=>`<div class="card" style="cursor:default"><p style="color:#b9c8dc">${esc(c)}</p></div>`).join('')}</div>
+ <p class="small muted" style="margin-top:10px">鏈惎鐢ㄦā鍧楋細${esc(DATA.modules.platform.unused.join('锛�'))}</p>`;
+ document.getElementById('roles').innerHTML = html;
+}
+
+function renderAI(){
+ const aiFlow = DATA.flows.flows.find(f=>f.id==='ai');
+ document.getElementById('ai').insertAdjacentHTML('afterbegin',
+ (aiFlow? flowFigHtml(aiFlow) + flowStepsHtml(aiFlow) : '') );
+ document.getElementById('aiGrid').innerHTML = DATA.business.aiCapabilities.map(a=>`
+ <div class="card" style="--acc:var(--c-ai);cursor:default">
+ <h3>${esc(a.name)}<span class="tag">AI</span></h3>
+ <p>${esc(a.flow)}</p>
+ ${a.callsApis&&a.callsApis.length?`<div class="objs">璋冪敤锛�${esc(a.callsApis.join(' 路 '))}</div>`:''}
+ </div>`).join('');
+}
+
+function renderPending(){
+ document.getElementById('pendingList').innerHTML = DATA.business.pendingConfirm.map(p=>`<li>${esc(p)}</li>`).join('');
+}
+
+// 娓叉煋鎺掗槦锛氬悓涓�鏃跺埢鍙窇涓�涓� mermaid.run锛岄伩鍏嶅揩閫熷垏鎹㈠鑸椂鍥捐〃鍦ㄩ殣钘忓鍣ㄩ噷甯冨眬锛堜骇鐢� NaN transform锛�
+let renderQueue = Promise.resolve();
+function showPage(id){
+ document.querySelectorAll('nav a').forEach(a=>a.classList.toggle('active', a.dataset.t===id));
+ document.querySelectorAll('section.page').forEach(s=>s.classList.toggle('on', s.id===id));
+ const sec = document.getElementById(id);
+ const todo = sec ? [...sec.querySelectorAll('pre.mermaid[data-mmd]')].filter(p=>!p.dataset.done) : [];
+ if(todo.length){
+ renderQueue = renderQueue.then(async()=>{
+ if(!sec.classList.contains('on')) return; // 鐢ㄦ埛宸插垏璧帮紝涓嬫杩涘叆鍐嶆覆鏌�
+ todo.forEach(p=>{ if(mmdSrc[p.dataset.mmd]) p.textContent = mmdSrc[p.dataset.mmd]; p.removeAttribute('data-processed'); });
+ try{ await mermaid.run({nodes: todo}); }
+ catch(e){ todo.forEach(p=>p.textContent = 'Mermaid 娓叉煋澶辫触锛�'+e.message); return; }
+ if(sec.classList.contains('on')) todo.forEach(p=>p.dataset.done='1');
+ });
+ }
+ window.scrollTo(0,0);
+}
+function bindNav(){
+ document.querySelectorAll('nav a').forEach(a=>a.addEventListener('click',()=>showPage(a.dataset.t)));
+ document.addEventListener('click',e=>{
+ const card=e.target.closest('.card[data-goto]');
+ if(card) showPage(card.dataset.goto);
+ });
+}
+function bindFigToolbar(){
+ document.addEventListener('click',e=>{
+ const btn=e.target.closest('.fig button');
+ if(!btn) return;
+ const fig=btn.closest('.fig'), stage=fig.querySelector('.stage');
+ let z=parseFloat(stage.dataset.z||'1');
+ if(btn.dataset.z==='+'||btn.dataset.z==='-') z=Math.min(3,Math.max(.4, z + (btn.dataset.z==='+'?.2:-.2)));
+ else if(btn.dataset.z==='0') z=1;
+ stage.dataset.z=z; stage.style.transform='scale('+z+')';
+ if(btn.hasAttribute('data-fs')){
+ if(document.fullscreenElement) document.exitFullscreen();
+ else fig.requestFullscreen();
+ }
+ });
+}
+function bindSearch(){
+ const input=document.getElementById('globalSearch'), box=document.getElementById('searchResult');
+ const items=[];
+ DATA.objects.objects.forEach(o=>items.push({type:'涓氬姟瀵硅薄',name:o.name,meta:o.module+' 路 '+o.doc,go:()=>{showPage('objects');const idx=DATA.objects.objects.indexOf(o);const tr=document.querySelector('#objGrid tr[data-obj="'+idx+'"]');if(tr)tr.click();}}));
+ DATA.flows.flows.forEach(f=>items.push({type:'涓氬姟娴佺▼',name:f.name,meta:f.summary.slice(0,60)+'鈥�',go:()=>showPage('flow-'+f.id)}));
+ DATA.modules.modules.forEach(m=>items.push({type:'涓氬姟妯″潡',name:m.name,meta:m.positioning,go:()=>showPage('overview')}));
+ DATA.roles.businessRoles.forEach(r=>items.push({type:'瑙掕壊',name:r.role,meta:r.modules.join('銆�'),go:()=>showPage('roles')}));
+ input.addEventListener('input',()=>{
+ const q=input.value.trim().toLowerCase();
+ if(!q){box.style.display='none';return;}
+ const hit=items.filter(i=>(i.name+i.meta).toLowerCase().includes(q)).slice(0,15);
+ box.innerHTML = hit.length? hit.map((h,i)=>`<div class="sr-item" data-i="${i}"><div>${esc(h.name)} <span class="sr-type">${esc(h.type)}</span></div><div class="sr-meta">${esc(h.meta)}</div></div>`).join('') : '<div class="sr-item"><span class="muted">鏃犲尮閰嶇粨鏋�</span></div>';
+ box.style.display='block';
+ box.querySelectorAll('.sr-item[data-i]').forEach(el=>el.addEventListener('click',()=>{hit[+el.dataset.i].go();box.style.display='none';input.value='';}));
+ });
+ document.addEventListener('click',e=>{ if(!e.target.closest('#globalSearchWrap')) box.style.display='none'; });
+}
+await boot();
+</script>
+</body>
+</html>
diff --git a/docs/project-business/mermaid/01-business-mindmap.mmd b/docs/project-business/mermaid/01-business-mindmap.mmd
new file mode 100644
index 0000000..c27d91f
--- /dev/null
+++ b/docs/project-business/mermaid/01-business-mindmap.mmd
@@ -0,0 +1,94 @@
+mindmap
+ root((MOM 宸ュ巶鏁板瓧鍖栧钩鍙�))
+ 鍩虹涓绘暟鎹� MDM
+ 鐗╂枡涓嶴KU
+ 鐗╂枡鍒嗙被
+ 璁¢噺鍗曚綅涓庡搧鐗�
+ 浠撳簱涓绘暟鎹�
+ 閿�鍞鐞� CRM
+ 绾跨储
+ 瀹㈡埛涓庤仈绯讳汉
+ 鍟嗘満涓庨樁娈�
+ 鎶ヤ环鍗�
+ 閿�鍞悎鍚�
+ 寮�绁ㄤ笌鍥炴
+ 閿�鍞洰鏍�
+ 鏁版嵁鏉冮檺涓庡叕娴�
+ 渚涘簲鍟嗙鐞� SRM
+ 渚涘簲鍟嗘。妗�
+ 鍑嗗叆瀹℃壒
+ 璧勮川璇佷功
+ 鎷涙爣涓庢瘮浠�
+ 缁╂晥璇勪环
+ 杩涢攢瀛樹笌璐㈠姟 ERP
+ 閲囪喘鐢宠
+ 閲囪喘璁㈠崟
+ 閲囪喘鏉ョエ
+ 閿�鍞鍗�
+ 浠樻鍗�
+ 鏀舵鍗�
+ 缁撶畻璐︽埛
+ 鐢熶骇绠$悊 MES
+ 涓荤敓浜ц鍒� MPS
+ 鐢熶骇宸ュ崟
+ 鐢熶骇浠诲姟
+ 鐢熶骇鎶ュ伐
+ 宸ヨ壓璺嚎涓庡伐搴�
+ 宸ュ崟BOM
+ 鐮斿彂璁捐椤圭洰
+ 瀹夌伅
+ 浠撳偍绠$悊 MES-WM
+ 浠撳簱搴撳尯搴撲綅
+ 鍒拌揣閫氱煡
+ 閲囪喘鍏ュ簱
+ 鐢熶骇棰嗘枡涓庨��鏂�
+ 鐢熶骇鍏ュ簱
+ 閿�鍞嚭搴撲笌閫�璐�
+ 杞Щ璋冩嫧
+ 鐩樼偣
+ 搴撳瓨鍙拌处涓庝簨鍔�
+ 鎵规SN鏉$爜瑁呯
+ 璐ㄩ噺绠$悊 MES-QC
+ IQC 鏉ユ枡妫�楠�
+ IPQC 杩囩▼妫�楠�
+ OQC 鍑鸿揣妫�楠�
+ RQC 閫�璐ф楠�
+ NCR 涓嶅悎鏍煎搧
+ 璐ㄦ鏂规涓庢寚鏍囩己闄�
+ 璁惧涓庢帓鐝�
+ 璁惧鍙拌处
+ 鐐规涓庝繚鍏�
+ 缁翠慨宸ュ崟
+ 宸ヨ澶瑰叿
+ 鐝粍鐝涓庢帓鐝�
+ 鍞悗鏈嶅姟
+ 鍞悗宸ュ崟
+ 缁翠慨璁板綍
+ 閫�璐х敵璇�
+ 鏁版嵁鏉冮檺
+ 浜哄姏璧勬簮 HRM
+ 鍛樺伐妗f
+ 璇峰亣鍔犵彮璋冨矖绂昏亴
+ 绂昏亴浜ゆ帴鏄犲皠
+ 鑰冨嫟鎺掔彮姹囨��
+ 钖叕鏍哥畻涓庡彂鏀�
+ 鍗忓悓瀹℃壒 BPM
+ Flowable 寮曟搸
+ 涓氬姟鐘舵�佸洖璋冪洃鍚�
+ AI 鏅鸿兘
+ 鍙戠エOCR璇嗗埆
+ 鎶ヤ环鍗昈CR璇嗗埆
+ 璐ㄦ缁撴灉鍒ゅ畾
+ 鐗╂枡鐭己棰勬祴
+ 鐢熶骇鏃堕暱涓庨闄╅娴�
+ 浜や粯棰勬祴
+ RAG 鐭ヨ瘑搴�
+ BI 涓庣鐞嗛┚椹惰埍
+ SQL 閰嶇疆寮忓ぇ灞�
+ 閲囪喘閿�鍞簱瀛樼敓浜ц川閲忎汉鍔涗富棰�
+ 绯荤粺搴曞骇
+ 璁よ瘉涓嶳BAC
+ 鏁版嵁鏉冮檺
+ 瀛楀吀
+ 闄勪欢涓績
+ 瀹氭椂浠诲姟涓庢秷鎭�
diff --git a/docs/project-business/mermaid/02-sales-flow.mmd b/docs/project-business/mermaid/02-sales-flow.mmd
new file mode 100644
index 0000000..8424ee3
--- /dev/null
+++ b/docs/project-business/mermaid/02-sales-flow.mmd
@@ -0,0 +1,19 @@
+flowchart TD
+ A[绾跨储 crm_clue] -->|杞寲路浠呬竴娆 B[瀹㈡埛 crm_customer]
+ B --> C[鑱旂郴浜� crm_contact]
+ B --> D[鍟嗘満 crm_business]
+ D -->|鑷畾涔夐樁娈垫帹杩泑 E{鍟嗘満缁撴潫}
+ E -->|璧㈠崟| F[鎶ヤ环鍗� QT路鑽夌0鈫掑凡杞悎鍚�10]
+ E -->|杈撳崟鎴栨棤鏁坾 X[缁撴潫]
+ F -->|杞悎鍚屄峰甫鍏ュ鎴蜂骇鍝佹姌鎵 G[鍚堝悓 HT路鑽夌0鈫掑鎵逛腑10]
+ D -->|鐩存帴寤哄悎鍚寍 G
+ G -->|BPM瀹℃壒閫氳繃20| H[鐢熸垚 ERP 閿�鍞鍗� XSDD]
+ H -->|鎻愪氦BPM| I[閿�鍞鍗曞鎵孤峰鎵逛腑15鈫掑凡瀹℃牳20]
+ I -->|鏄庣粏闇�鐢熶骇路鑷姩鍒涘缓| J[MES 涓荤敓浜ц鍒� MPS]
+ I --> K[鍙戣揣閫氱煡鍗昡
+ K -->|瀹℃牳閫氳繃| L[閿�鍞嚭搴撳崟路OQC鈫掓嫞璐р啋鍙戣繍鈫掑嚭搴撳畬鎴怾
+ L -->|鍥炲啓鍑哄簱鏁伴噺涓庣姸鎬亅 M[閿�鍞鍗� 閮ㄥ垎鍑哄簱2/鍏ㄩ儴鍑哄簱3]
+ G --> N[鍥炴璁″垝路鎸夋湡鏁板垎鏈焆
+ G -->|鎻愪氦BPM| O[寮�绁� KP路瀹℃壒涓�10鈫掗�氳繃20路绱涓嶈秴鍚堝悓棰漖
+ O -->|鍥炴鍓嶅繀椤诲厛寮�绁▅ P[鍥炴 HK路鍒涘缓鍗冲鎵逛腑10鈫掓墜鍔ㄥ鏍�20]
+ P -->|鏍¢獙鍚堝悓鍓╀綑棰濅笌寮�绁ㄥ墿浣欓| N
diff --git a/docs/project-business/mermaid/03-purchase-flow.mmd b/docs/project-business/mermaid/03-purchase-flow.mmd
new file mode 100644
index 0000000..44bdfdb
--- /dev/null
+++ b/docs/project-business/mermaid/03-purchase-flow.mmd
@@ -0,0 +1,19 @@
+flowchart TD
+ S0[SRM 鍑嗗叆鐢宠 AP路寰呮彁浜�0鈫掑鎵逛腑10鈫掑凡閫氳繃40] --> S1[渚涘簲鍟嗘。妗� srm_supplier]
+ S1 --> S2[璧勮川璇佷功绠$悊]
+ S1 --> S3[缁╂晥璇勪环路璐ㄩ噺浜や粯浠锋牸鏈嶅姟鍥涚淮]
+ S4[SRM 鎷涙爣姣斾环路鍙戝竷鈫掓姇鏍団啋寮�鏍団啋璇勬爣鈫掑畾鏍嘳 -->|瀹氭爣瀹℃壒閫氳繃鐢熸垚璁㈠崟| C3
+ C1[閲囪喘鐢宠 CGSQ路鑽夌0鈫掑鎵逛腑10] -->|鎻愪氦BPM| C2{瀹℃壒}
+ C2 -->|椹冲洖30鈫掑彲閲嶇疆鍥炶崏绋縷 C1
+ C2 -->|閫氳繃20涓旀湁渚涘簲鍟喡疯嚜鍔ㄧ敓鎴恷 C3[閲囪喘璁㈠崟 CGDD路瀹℃壒涓�15鈫掑凡瀹℃牳20]
+ C2 -->|閫氳繃20鏃犱緵搴斿晢| C4[鎵嬪姩鎸囧畾渚涘簲鍟嗙敓鎴愯鍗昡
+ C4 --> C3
+ C3 -->|纭鏀惰揣| C5[鍒拌揣閫氱煡鍗暵疯崏绋�0鈫掑緟璐ㄦ2鈫掑緟鍏ュ簱3鈫掑畬鎴�4]
+ C5 -->|鐗╂枡闇�妫�楠屄疯嚜鍔ㄥ垱寤簗 C6[IQC 鏉ユ枡妫�楠宂
+ C6 -->|鍚堟牸1鎴栫壒閲�2 鍙叆搴搢 C7[閲囪喘鍏ュ簱鍗暵疯崏绋�0鈫掑緟涓婃灦2鈫掑緟鎵ц3鈫掑畬鎴�4]
+ C6 -->|涓嶅悎鏍奸��璐�3| C8[渚涘簲鍟嗛��璐峰緟鎷h揣鈫掑緟鎵ц鈫掑畬鎴惵峰簱瀛樻墸鍑廬
+ C6 -->|涓嶅悎鏍兼姤搴�4| C9[NCR 涓嶅悎鏍煎搧澶勭疆]
+ C7 -->|鍥炲啓 inCount 涓� inStatus 鏈叆搴�0閮ㄥ垎1鍏ㄩ儴2| C3
+ C7 -->|鍥炲啓鐢宠鏄庣粏 inCount| C1
+ C3 -->|璁㈠崟鎬讳环鎺у埗| C10[閲囪喘鏉ョエ FPD路绱閲戦鈮よ鍗曟�讳环]
+ C10 -->|浠樻鍗曞繀椤诲叧鑱旀潵绁▅ C11[浠樻鍗� FKD路瀹℃壒涓�15鈫掑凡瀹℃牳20路绱浠樻鈮ゆ潵绁ㄩ噾棰漖
diff --git a/docs/project-business/mermaid/04-production-flow.mmd b/docs/project-business/mermaid/04-production-flow.mmd
new file mode 100644
index 0000000..fe2c845
--- /dev/null
+++ b/docs/project-business/mermaid/04-production-flow.mmd
@@ -0,0 +1,19 @@
+flowchart TD
+ P0[閿�鍞鍗曟槑缁� needProduction=1] -->|瀹℃壒閫氳繃鑷姩鍒涘缓| P1[MPS 涓荤敓浜ц鍒捖疯崏绋�0鈫掑凡涓嬪彂1]
+ P1 -->|涓嬪彂鎴栧悎骞朵笅鍙憒 P2[鐢熶骇宸ュ崟路鑽夌0鈫掑凡纭1]
+ P2 -->|鎸夊伐鑹鸿矾绾垮伐搴忚嚜鍔ㄧ敓鎴恷 P3[鐢熶骇浠诲姟脳N路棰勫0鈫掔敓浜т腑1鈫掗儴鍒嗗畬鎴�2鈫掑畬鎴�4路鍙殏鍋�9]
+ P3 --> P4[鐢熶骇棰嗘枡 鎴� 绾胯竟铏氭嫙搴撳鏂橾
+ P4 --> P5[鎶ュ伐鎻愪氦路鑽夌0]
+ P5 -->|鏍¢獙:涓婁竴閬撳伐搴忔湭鎶ユ弧鍒欐嫤鎴獆 P5
+ P5 -->|鍚敤BPM鍒欐彁浜ゅ鎵箌 P6{鎶ュ伐瀹℃壒}
+ P6 -->|椹冲洖| P5
+ P6 -->|閫氳繃涓斿�掑啿宸ュ簭| P7[鎸夊伐鍗旴OM鑷姩鐢熸垚鐗╂枡娑堣�椔锋墸绾胯竟铏氭嫙搴揊IFO鍏佽璐熷簱瀛榏
+ P6 -->|閫氳繃涓旇川妫�宸ュ簭| P8[浜у嚭琛屽緟妫�鈫扞PQC 杩囩▼妫�楠宂
+ P6 -->|閫氳繃涓旈潪璐ㄦ鍏抽敭宸ュ簭| P9[浜у搧浜у嚭鐩存帴瀹屽伐鍏ュ簱]
+ P8 -->|妫�楠屽悎鏍紎 P10[鎷嗗悎鏍间笌涓嶅悎鏍艰鍏ュ簱]
+ P8 -->|涓嶅悎鏍紎 P11[NCR 涓嶅悎鏍煎搧]
+ P9 --> P12[杩涘害鍥炲啓路浠呮渶鍚庝竴閬撳伐搴忔姤宸ユ墠鏇存柊宸ュ崟宸茬敓浜ф暟閲廬
+ P10 --> P12
+ P12 -->|宸茬敓浜ф暟閲忊墺璁″垝鏁伴噺路鑷姩| P13[宸ュ崟瀹屾垚2]
+ P12 -->|绱| P14[MPS 鍥炲啓宸茬敓浜ф暟閲忓苟鍒ゆ柇瀹屾垚2]
+ P14 -->|鍏ㄩ儴瀹屾垚| P15[鍙戝竷 ProductionFinishedEvent鈫掑洖鍐欓攢鍞鍗曠敓浜х姸鎬乚
diff --git a/docs/project-business/mermaid/05-quality-flow.mmd b/docs/project-business/mermaid/05-quality-flow.mmd
new file mode 100644
index 0000000..d34e8f7
--- /dev/null
+++ b/docs/project-business/mermaid/05-quality-flow.mmd
@@ -0,0 +1,20 @@
+flowchart TD
+ T1[鍒拌揣閫氱煡鍗� 鎴� 澶栧崗鍏ュ簱鍗昡 --> A1[IQC 鏉ユ枡妫�楠屄疯崏绋�0鈫掑畬鎴�4]
+ T2[鎶ュ伐璐ㄦ宸ュ簭閫氳繃鍚庝骇鍑鸿] --> A2[IPQC 杩囩▼妫�楠屄疯崏绋�0鈫掑畬鎴�4]
+ T3[閿�鍞嚭搴撳崟鎻愪氦] --> A3[OQC 鍑鸿揣妫�楠屄疯崏绋�0鈫掑畬鎴�4]
+ T4[鐢熶骇閫�鏂欏崟 鎴� 閿�鍞��璐у崟 鎴� 鍞悗閫�璐 --> A4[RQC 閫�璐ф楠屄疯崏绋�0鈫掑畬鎴�4]
+ A1 --> R{妫�楠屽垽瀹� MesQcCheckResultEnum}
+ A2 --> R
+ A3 --> R
+ A4 --> R
+ R -->|1 鍚堟牸| Q1[鍏佽鍏ュ簱路鍥炲啓鏉ユ簮鍗曟嵁鎺ㄨ繘鐘舵�乚
+ R -->|2 鐗归噰| Q2[鍏佽鍏ュ簱路骞剁敓鎴怤CR鐣欑棔]
+ R -->|3 涓嶅悎鏍奸��璐 Q3[鐢熸垚NCR路璧颁緵搴斿晢閫�璐ф垨閿�鍞��璐
+ R -->|4 涓嶅悎鏍兼姤搴焲 Q4[鐢熸垚NCR路璧版姤搴熷嚭搴揮
+ A2 -->|鍚堟牸鏁伴噺| Q5[鎶ュ伐杞畬鎴惵蜂骇鍑烘媶琛屽叆搴揮
+ A3 -->|瀹屾垚| Q6[閿�鍞嚭搴撳崟鎺ㄨ繘寰呮嫞璐
+ A4 -->|瀹屾垚| Q7[閫�璐у崟鎺ㄨ繘涓婃灦鎴栧叆搴撀峰敭鍚庡洖璋冪粨璁篯
+ N1[NCR 寰呰瘎瀹�0] -->|璇勫| N2[宸茶瘎瀹�6]
+ N2 -->|澶勭疆鏂瑰紡:閫�璐�1鎶ュ簾2杩斿伐3璁╂鎺ユ敹4闄嶇骇浣跨敤5| N3[宸插缃�7]
+ N3 -->|鍏抽棴| N4[宸插叧闂�8]
+ Q8[鏀拺鏁版嵁:璐ㄦ鏂规路妫�楠屾寚鏍嚶风己闄峰簱路鎸囨爣缁撴灉] --- A1
diff --git a/docs/project-business/mermaid/06-warehouse-flow.mmd b/docs/project-business/mermaid/06-warehouse-flow.mmd
new file mode 100644
index 0000000..d0e34c1
--- /dev/null
+++ b/docs/project-business/mermaid/06-warehouse-flow.mmd
@@ -0,0 +1,28 @@
+flowchart LR
+ subgraph INB [鍏ュ簱路浜嬪姟IN路搴撳瓨鍔燷
+ I1[閲囪喘鍏ュ簱]
+ I2[鐢熶骇鍏ュ簱鍗昡
+ I3[鎶ュ伐浜у嚭鑷姩鍏ュ簱]
+ I4[閿�鍞��璐у叆搴揮
+ I5[澶栧崗鍏ュ簱]
+ I6[鏉傞」鍏ュ簱]
+ end
+ subgraph OUTB [鍑哄簱路浜嬪姟OUT路搴撳瓨鍑廬
+ O1[閿�鍞嚭搴揮
+ O2[鐢熶骇棰嗘枡]
+ O3[鐗╂枡娑堣�楀�掑啿路鍏佽璐熷簱瀛榏
+ O4[澶栧崗鍙戞枡]
+ O5[鐢熶骇閫�鏂欏洖浠揮
+ O6[渚涘簲鍟嗛��璐
+ O7[鏉傞」鍑哄簱路璋冩暣鎴栨姤搴焆
+ end
+ W[(搴撳瓨鍙拌处 mes_wm_material_stock 鐗╂枡脳浠撳簱脳搴撳尯脳搴撲綅脳鎵规脳渚涘簲鍟�)]
+ INB -->|getOrCreate 鍔犳暟閲弢 W
+ OUTB -->|鏍¢獙鍙敤閲忓悗鎵e噺| W
+ W -->|鍗犵敤棰勭暀 reservedQuantity| RES[搴撳瓨鍗犵敤 閿�鍞嚭搴撀烽鏂櫬峰鍗徛锋潅椤孤疯皟鎷╙
+ MV[杞Щ璋冩嫧路鍐呴儴鎴栧閮╙ -->|鎴愬浜嬪姟 MOVE_OUT+MOVE_IN 鍦ㄩ�攟 W
+ ST[鐩樼偣 鏂规鈫掍换鍔♀啋鏄庣粏琛屸啋缁撴灉] -->|鐩樼泩 ADJUST_IN路鐩樹簭 ADJUST_OUT路鍙喕缁撳簱瀛榺 W
+ W --> TX[浜嬪姟娴佹按 mes_wm_transaction 鍙鍏ㄩ噺鐣欑棔]
+ BT[鎵规 mes_wm_batch路SN鐮伮锋潯鐮伮疯绠卞祵濂梋 --- W
+ WIP[[绾胯竟铏氭嫙搴� WIP_VIRTUAL_WAREHOUSE路鎳掑垵濮嬪寲]] --- O3
+ FR[鍥涚骇鍐荤粨:浠撳簱路搴撳尯路搴撲綅路搴撳瓨璁板綍] --- W
diff --git a/docs/project-business/mermaid/07-after-sales-flow.mmd b/docs/project-business/mermaid/07-after-sales-flow.mmd
new file mode 100644
index 0000000..b9a8530
--- /dev/null
+++ b/docs/project-business/mermaid/07-after-sales-flow.mmd
@@ -0,0 +1,20 @@
+flowchart TD
+ F1[瀹㈡埛鍙嶉路鍚庡彴浜哄伐褰曞叆宸ュ崟路鍏宠仈瀹㈡埛鑱旂郴浜洪攢鍞鍗曞悎鍚宂 --> K1[鍞悗宸ュ崟路鑽夌0]
+ K1 -->|assignTicket 鍒嗛厤澶勭悊浜簗 K2[澶勭悊涓�10路闂鍒ゅ畾:涓�鑸�1缁翠慨2閫�璐�3路涓ラ噸搴�0-3]
+ K2 -->|缁翠慨绫粅 R1[缁翠慨璁板綍路寰呭鐞�0鈫掔淮淇腑10鈫掑凡瀹屾垚20鈫掑凡鍏抽棴30路鐜板満杩斿巶杩滅▼]
+ R1 -->|completeRepair| K4[宸插畬缁�50]
+ K2 -->|閫�璐х被鍒涘缓閫�璐х敵璇穦 T1[閫�璐х敵璇仿疯崏绋�0]
+ T1 -->|approveReturn 瀹℃牳閫氳繃| T2[宸插鏍�20路鑷姩鍒涘缓MES閿�鍞��璐у崟]
+ T2 --> T3[MES 閿�鍞��璐疯崏绋库啋寰呮楠孯QC鈫掑緟涓婃灦鈫掑緟鍏ュ簱鈫掑畬鎴怾
+ T3 -->|璐ㄦ缁撹鍥炶皟 onReturnQualityFinished 鍚堟牸鐗归噰閫�璐ф姤搴焲 T4[宸茶川妫�40]
+ T3 -->|鍏ュ簱瀹屾垚鍥炶皟 onReturnInboundFinished| T5[宸插叆搴�50]
+ T5 -->|閫�娆惧畬鎴愬洖璋� onRefundCompleted 璁板綍瀹為檯閫�娆鹃| T6[宸查��娆�60]
+ T6 --> T7[宸插叧闂�70]
+ T2 -.->|鐘舵�佹祦杞腑| T8[瀹℃牳涓�10路棰勭暀鏈惎鐢╙
+ K2 -->|閫�璐ч摼璺仈鍔ㄥ伐鍗晐 K3[寰呭叆搴�30鈫掑緟閫�娆�40]
+ K3 --> K4
+ K2 -->|resolveTicket| K4
+ K4 -->|closeTicket| K5[宸插叧闂�60]
+ K1 -->|cancelTicket| K9[宸插彇娑�99]
+ K2 -->|cancelTicket| K9
+ PM[鏁版嵁鏉冮檺 bizType+bizId+userId+绾у埆 璐熻矗浜哄彧璇昏鍐櫬锋垜璐熻矗鎴戝弬涓庝笅灞炲叏閮ㄥ洓瑙嗗浘] --- K1
diff --git a/docs/project-business/mermaid/08-module-relation.mmd b/docs/project-business/mermaid/08-module-relation.mmd
new file mode 100644
index 0000000..0cd30bd
--- /dev/null
+++ b/docs/project-business/mermaid/08-module-relation.mmd
@@ -0,0 +1,28 @@
+flowchart LR
+ MDM[MDM 涓绘暟鎹� 鐗╂枡鍗曚綅浠撳簱鍝佺墝鍒嗙被] --> MES[MES 鐢熶骇路浠撳偍路璐ㄩ噺路璁惧]
+ MDM --> ERP[ERP 閲囪喘路閿�鍞疯储鍔
+ MDM --> CRM
+ CRM[CRM 绾跨储瀹㈡埛鍟嗘満鎶ヤ环鍚堝悓鍥炴] -->|鍚堝悓鐢熸垚閿�鍞鍗晐 ERP
+ SRM[SRM 渚涘簲鍟嗗噯鍏ヨ祫璐ㄨ瘉涔︽嫑鏍囩哗鏁圿 -->|瀹氭爣鐢熸垚閲囪喘璁㈠崟| ERP
+ ERP -->|纭鏀惰揣鐢熸垚鍒拌揣閫氱煡| MES
+ ERP -->|閿�鍞鍗曞鎵圭敓鎴怣PS| MES
+ MES -->|鍏ュ簱鍑哄簱鍥炲啓鍗曟嵁杩涘害| ERP
+ MES -->|ProductionFinishedEvent| ERP
+ MES -->|閫�璐ц川妫�鍏ュ簱鍥炶皟| AS[鍞悗宸ュ崟缁翠慨閫�璐
+ CRM -->|瀹㈡埛涓绘暟鎹畖 AS
+ HRM[HRM 鍛樺伐鍏ヨ浆璋冪浜ゆ帴鑰冨嫟钖叕] -.->|expandUserIds 鏁版嵁鍙鎬ф墿灞暵锋帴鍙e凡灏辩华寰呭悇妯″潡鎺ュ叆| CRM
+ BPM[BPM Flowable 瀹℃壒寮曟搸] -.->|鐘舵�佷簨浠跺洖璋兟�13涓洃鍚櫒| ERP
+ BPM -.-> CRM
+ BPM -.-> SRM
+ BPM -.-> MES
+ BPM -.-> HRM
+ AI[AI 骞冲彴 閫氫箟鍗冮棶+Milvus] -.->|鍙戠エOCR| ERP
+ AI -.->|鎶ヤ环OCR| CRM
+ AI -.->|璐ㄦ鍒ゅ畾涓庣敓浜ч娴媩 MES
+ MES --> BI[BI 绠$悊椹鹃┒鑸� SQL閰嶇疆澶у睆]
+ ERP --> BI
+ CRM --> BI
+ HRM --> BI
+ SYS[绯荤粺搴曞骇 璁よ瘉路RBAC路瀛楀吀路闄勪欢涓績路瀹氭椂浠诲姟] --- MDM
+ SYS --- MES
+ STG[闄勪欢涓績 storage-blob+attachment 鍏ㄦā鍧楃粺涓�鎸傞檮浠禲 --- ERP
diff --git a/docs/project-business/mermaid/09-data-flow.mmd b/docs/project-business/mermaid/09-data-flow.mmd
new file mode 100644
index 0000000..71f8cba
--- /dev/null
+++ b/docs/project-business/mermaid/09-data-flow.mmd
@@ -0,0 +1,39 @@
+flowchart LR
+ subgraph S1 [閿�鍞墠绔� CRM]
+ CL[绾跨储] --> CU[瀹㈡埛]
+ CU --> BU[鍟嗘満]
+ BU --> QU[鎶ヤ环鍗昡
+ QU --> CT[鍚堝悓]
+ CT --> IV[寮�绁╙
+ IV --> RK[鍥炴]
+ CT --> PL[鍥炴璁″垝]
+ end
+ subgraph S2 [鎵ц閾� ERP+MES]
+ SO[閿�鍞鍗昡 --> MP[MPS]
+ MP --> WO[宸ュ崟]
+ WO --> TK[浠诲姟]
+ TK --> FB[鎶ュ伐]
+ FB --> PP[浜у搧浜у嚭]
+ PR[閲囪喘鐢宠] --> PO[閲囪喘璁㈠崟]
+ PO --> AN[鍒拌揣閫氱煡]
+ AN --> IR[閲囪喘鍏ュ簱]
+ end
+ subgraph S3 [浠撳偍涓庤储鍔
+ ST[搴撳瓨鍙拌处]
+ PS[閿�鍞嚭搴揮
+ RC[鏀舵鍗昡
+ PI[閲囪喘鏉ョエ] --> PA[浠樻鍗昡
+ end
+ CT -->|generateSaleOrder 甯﹀叆瀹㈡埛浜у搧鎶樻墸瀹氶噾路鍥炲啓orderId| SO
+ SO -->|瀹℃壒閫氳繃甯﹀叆 saleOrderId 琛孖D 鏁伴噺 瀹㈡埛 浜ゆ湡| MP
+ PO -->|纭鏀惰揣甯﹀叆璁㈠崟琛岀墿鏂欎緵搴斿晢鏁伴噺| AN
+ AN -->|IQC瀹屾垚鍚庣敓鎴惵峰甫鍏ュ悎鏍艰| IR
+ FB -->|BOM鍊掑啿鎵e噺| ST
+ PP -->|IN浜嬪姟鍏ュ簱| ST
+ IR -->|IN浜嬪姟鍏ュ簱路鍥炲啓inCount| PO
+ PS -->|OUT浜嬪姟鍑哄簱路鍥炲啓outCount| SO
+ FB -->|鏈�鍚庝竴閬撳伐搴忓洖鍐欏凡鐢熶骇鏁伴噺| WO
+ FB -->|ProductionFinishedEvent 鍥炲啓鐢熶骇鐘舵�亅 SO
+ IV -->|鍥炴寮哄埗鍏堝紑绁▅ RK
+ RC -->|鍏宠仈CRM瀹㈡埛鏍¢獙| CU
+ PA -->|鍏宠仈鏉ョエ涓庝緵搴斿晢| PI
diff --git a/docs/project-business/mermaid/10-business-object.mmd b/docs/project-business/mermaid/10-business-object.mmd
new file mode 100644
index 0000000..a4cb793
--- /dev/null
+++ b/docs/project-business/mermaid/10-business-object.mmd
@@ -0,0 +1,36 @@
+erDiagram
+ crm_customer ||--o{ crm_business : "鎷ユ湁鍟嗘満"
+ crm_business ||--o{ crm_sale_quotation : "褰㈡垚鎶ヤ环"
+ crm_sale_quotation |o--o| crm_contract : "杞负鍚堝悓"
+ crm_contract ||--o| erp_sale_order : "鐢熸垚閿�鍞鍗�"
+ crm_contract ||--o{ crm_receivable_plan : "鍒嗘湡璁″垝"
+ crm_contract ||--o{ crm_invoice : "寮�绁�"
+ crm_invoice ||--o{ crm_receivable : "鍑エ鍥炴"
+ erp_sale_order ||--o{ mes_pro_mps : "闇�鐢熶骇琛岃Е鍙�"
+ mes_pro_mps ||--o{ mes_pro_work_order : "涓嬪彂宸ュ崟"
+ mes_pro_work_order ||--o{ mes_pro_task : "鎸夊伐搴忔媶浠诲姟"
+ mes_pro_task ||--o{ mes_pro_feedback : "鎶ュ伐"
+ mes_pro_work_order ||--o{ mes_pro_work_order_bom : "宸ュ簭鎶曟枡BOM"
+ erp_purchase_request ||--o{ erp_purchase_order : "鐢熸垚閲囪喘璁㈠崟"
+ erp_purchase_order ||--o| mes_wm_arrival_notice : "纭鏀惰揣"
+ mes_wm_arrival_notice ||--o| mes_qc_iqc : "瑙﹀彂IQC"
+ mes_wm_arrival_notice ||--o{ mes_wm_item_receipt : "鐢熸垚閲囪喘鍏ュ簱"
+ erp_sale_order ||--o{ mes_wm_product_sales : "閿�鍞嚭搴�"
+ mes_wm_product_sales ||--o| mes_qc_oqc : "瑙﹀彂OQC"
+ mes_pro_feedback ||--o| mes_qc_ipqc : "璐ㄦ宸ュ簭瑙﹀彂IPQC"
+ mes_pro_feedback ||--o{ mes_wm_product_produce : "浜у嚭鍏ュ簱"
+ mes_pro_feedback ||--o{ mes_wm_item_consume : "BOM鍊掑啿娑堣��"
+ mes_qc_iqc ||--o| mes_qc_ncr : "涓嶅悎鏍肩敓鎴怤CR"
+ mes_wm_item_receipt ||--o{ mes_wm_material_stock : "搴撳瓨澧炲姞"
+ mes_wm_material_stock ||--o{ mes_wm_transaction : "浜嬪姟娴佹按"
+ mes_wm_material_stock }o--|| mes_wm_batch : "鎸夋壒娆�"
+ after_sale_ticket ||--o{ after_sale_return : "閫�璐х敵璇�"
+ after_sale_return ||--o| mes_wm_return_sales : "鐢熸垚MES閫�璐у崟"
+ mdm_item ||--o{ erp_sale_order_items : "閿�鍞槑缁�"
+ mdm_item ||--o{ erp_purchase_order_items : "閲囪喘鏄庣粏"
+ mdm_item ||--o{ mes_wm_material_stock : "搴撳瓨鐗╂枡"
+ srm_supplier ||--o{ erp_purchase_order : "渚涜揣"
+ srm_supplier ||--o{ mes_wm_arrival_notice : "鍒拌揣鏉ユ簮"
+ erp_purchase_order ||--o{ erp_purchase_invoice : "鏉ョエ"
+ erp_purchase_invoice ||--o{ erp_finance_payment : "浠樻"
+ hrm_employee ||--o| hrm_user_handover : "绂昏亴浜ゆ帴鏄犲皠"
diff --git a/docs/project-business/mermaid/11-ai-business-flow.mmd b/docs/project-business/mermaid/11-ai-business-flow.mmd
new file mode 100644
index 0000000..947d2eb
--- /dev/null
+++ b/docs/project-business/mermaid/11-ai-business-flow.mmd
@@ -0,0 +1,24 @@
+flowchart TD
+ U1[閲囪喘鍛樹笂浼犲彂绁ㄦ枃浠� blobId] --> O1{鏂囦欢绫诲瀷}
+ O1 -->|鍥剧墖 png/jpg/gif/bmp| O2[chatWithImage 澶氭ā鎬佽瑙夋ā鍨媇
+ O1 -->|PDF| O3[PDFBox 鎶藉彇鏂囨湰 鈫� chat]
+ O1 -->|txt/csv| O4[鐩磋鏂囨湰 鈫� chat]
+ O2 --> O5[JSON 鍙戠エ鍙� 鎶ご 渚涘簲鍟� 閲戦 绋庣巼 鏃ユ湡]
+ O3 --> O5
+ O4 --> O5
+ O5 --> O6[棰勫~閲囪喘鏉ョエ琛ㄥ崟路浜哄伐纭]
+ Q1[閿�鍞笂浼犳姤浠峰崟 PDF/Word/Excel/鍥剧墖] --> Q2[POI/PDFBox/瑙嗚璇嗗埆]
+ Q2 --> Q3[JSON 鎶ヤ环澶�+浜у搧鏄庣粏琛宂 --> Q4[棰勫~鎶ヤ环鍗曡〃鍗昡
+ J1[璐ㄦ鍗曞ご+鎸囨爣缁撴灉+缂洪櫡璁板綍] --> J2[涓氬姟渚х粍瑁匬rompt 鈫� chat]
+ J2 --> J3[MdmItemApi 鐗╂枡鍚嵚稴rmSupplierApi 渚涘簲鍟嗗悕路CrmCustomerApi 瀹㈡埛鍚� 鎷煎叆涓婁笅鏂嘳
+ J3 --> J4[寤鸿缁撴灉:鍚堟牸/鐗归噰/閫�璐�/鎶ュ簾+鐞嗙敱+瑕佺偣]
+ J4 --> J5[璐ㄦ鍛樺弬鑰冨垽瀹毬稟I涓嶅彲鐢ㄦ椂鎻愮ず浜哄伐鍒ゅ畾]
+ R1[宸ュ崟BOM+搴撳瓨鍙敤閲�+宸叉姇鏂橾 --> R2[鐗╂枡鐭己棰勬祴路椋庨櫓绛夌骇涓庣己鍙f竻鍗昡
+ R3[宸ュ簭鏍囧噯宸ユ椂+璁惧姣忓皬鏃朵骇閲�+浼犻�佸�嶇巼] --> R4[鐢熶骇鏃堕暱棰勬祴]
+ R5[IPQC缂洪櫡鐜�+璁惧淇濆吇鐐规+鐗╂枡鍙敤鐜�+鍏抽敭宸ュ簭] --> R6[鐢熶骇椋庨櫓棰勬祴]
+ R7[杩涘害+鍓╀綑澶╂暟+浠诲姟瀹屾垚鐘舵��+瀹㈡埛浜ゆ湡] --> R8[浜や粯棰勬祴路鑳藉惁鎸夋椂+缃俊搴�+寤惰鍥犵礌]
+ KB1[鐭ヨ瘑搴撴枃妗d笂浼燯RL] --> KB2[POI/Tika鎻愬彇鏂囨湰] --> KB3[鍒囩墖绾�800tokens鈫掑悜閲忓寲鈫扢ilvus]
+ KB3 --> KB4[鍒嗘妫�绱㈡帴鍙� topK+鐩镐技搴﹂槇鍊糫
+ KB4 -.-> KB5[鏆傛湭鎺ュ叆涓氬姟闂瓟娴佺▼路寰呯‘璁
+ MODE[妯″瀷灞�:閫氫箟鍗冮棶涓轰富路棰勭暀DeepSeek/OpenAI/Ollama鏈疄鐜癩 --- O2
+ NOTE[鍏ㄩ」鐩棤Function Calling路AI鍙緭鍑虹粨鏋勫寲JSON鐢变笟鍔′晶瑙f瀽] --- J2
--
Gitblit v1.9.3