From d9180a4ac3a0aa56181df4e4bbab0aa6fc989d43 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 30 九月 2026 15:43:34 +0800
Subject: [PATCH] docs(wxcp): 修正默认角色菜单条数笔误,并说清「首页」为何不在菜单树里
---
docs/project-business/index.html | 445 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 427 insertions(+), 18 deletions(-)
diff --git a/docs/project-business/index.html b/docs/project-business/index.html
index 72f2500..a46b01c 100644
--- a/docs/project-business/index.html
+++ b/docs/project-business/index.html
@@ -10,7 +10,7 @@
--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;
+ --c-as:#c78bd6; --c-hrm:#9db85a; --c-bpm:#e6a23c; --c-ai:#56c8d8; --c-fin:#3ec9a7; --c-ums:#d6955c; --c-res:#e070a8; --c-arch:#7fb3d5;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
@@ -111,6 +111,10 @@
<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>
+ <a data-t="flow-finance"><span class="dot" style="background:var(--c-fin)"></span>璐㈠姟鎶ラ攢娴佺▼</a>
+ <a data-t="flow-ums"><span class="dot" style="background:var(--c-ums)"></span>浼氬憳鍏ヤ細娴佺▼</a>
+ <a data-t="flow-research"><span class="dot" style="background:var(--c-res)"></span>璇鹃绠$悊娴佺▼</a>
+ <a data-t="flow-archive"><span class="dot" style="background:var(--c-arch)"></span>妗f绠$悊娴佺▼</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>
@@ -137,6 +141,10 @@
<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="flow-finance"></section>
+<section class="page" id="flow-ums"></section>
+<section class="page" id="flow-research"></section>
+<section class="page" id="flow-archive"></section>
<section class="page" id="relation">
<h2 class="pt">绯荤粺鍏崇郴</h2>
<p class="desc">妯″潡涔嬮棿鐨勮皟鐢ㄤ笌鏁版嵁渚濊禆锛氬疄绾�=鍗曟嵁/鏁版嵁娴佸悜锛岃櫄绾�=瀹℃壒鍥炶皟涓庤緟鍔╄兘鍔涖��</p>
@@ -186,6 +194,10 @@
"subSystems": [
"MES锛堢敓浜蜂粨鍌疯川閲徛疯澶囷級",
"ERP锛堣繘閿�瀛樎疯储鍔★級",
+ "FIN锛堝彂绁ㄦ姤閿�锛岀嫭绔嬫ā鍧楋級",
+ "UMS锛堝浼氫細鍛橈紝鐙珛妯″潡锛�",
+ "RES锛堢鐮旇棰橈紝鐙珛妯″潡锛�",
+ "ARC锛堟。妗堢鐞嗭紝鐙珛妯″潡锛�",
"CRM锛堝鎴峰叧绯伙級",
"SRM锛堜緵搴斿晢鍏崇郴锛�",
"HRM锛堜汉鍔涜祫婧愶級",
@@ -197,14 +209,14 @@
"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_* 涓氬姟琛級锛屽绉熸埛宸插叧闂�",
+ "database": "MySQL 8.4锛岃繍琛屽簱 mom-jssm 鍏� 430 寮犺〃锛堝惈 system_*銆乥pm_*銆乤ct_* 搴曞骇琛ㄤ笌 mes_*/erp_*/crm_*/srm_*/hrm_*/mdm_*/ai_*/finance_*/ums_*/research_*/archive_* 涓氬姟琛級锛屽绉熸埛宸插叧闂�",
"frontend": "mom-pro2-before锛圴ue3 绠$悊鍚庡彴锛屽悓浠撳簱瀛樻斁锛屽彧璇诲弬鑰冿級"
},
"stats": {
- "businessModules": 13,
- "coreObjects": 48,
- "documentFlows": 6,
- "approvalListeners": 13,
+ "businessModules": 17,
+ "coreObjects": 59,
+ "documentFlows": 10,
+ "approvalListeners": 24,
"aiCapabilities": 8,
"wmBillTypes": 15
},
@@ -323,10 +335,30 @@
"MesWmSnDO 鏂板鐨� uuid 瀛楁鐢熸垚/娑堣垂閫昏緫鏈湪鏍稿績 Service 涓‘璁�",
"杞鐢宠(hrm_regularize_application)銆佸煿璁瘉涔︾瓑浠呮湁 SQL 涓庤彍鍗曞垵濮嬪寲锛孞ava 渚� Service/Controller 鏈疄鐜�",
"NCR 澶勭疆缁撴灉锛堣繑宸�/閫�璐э級鏈洖鍐欒Е鍙戞簮鍗曟嵁锛屼粎鍙拌处璁板綍",
- "MPS 鐘舵�佹灇涓剧嫭绔嬬紪鍙�(0/1/2/3)锛屼笌閫氱敤鍗曟嵁甯搁噺(0/1/4/5)涓嶄竴鑷�"
+ "MPS 鐘舵�佹灇涓剧嫭绔嬬紪鍙�(0/1/2/3)锛屼笌閫氱敤鍗曟嵁甯搁噺(0/1/4/5)涓嶄竴鑷�",
+ "璐㈠姟鎶ラ攢锛氳彍鍗曚粎鎺堜簣 super_admin锛堣秴绠$敱浠g爜鐩磋繑鍏ㄩ儴鑿滃崟锛夛紝鏅�氳鑹叉湭閰� system_role_menu锛岄潪瓒呯鐧诲綍鐪嬩笉鍒般�屾姤閿�鍗曘�嶈彍鍗曘�愬緟纭鏄惁琛ユ巿鏉冦��",
+ "浼氬憳绠$悊锛氫細鍛樼鐞嗚彍鍗�(1075490~1075503)浠� super_admin 鍙锛屾櫘閫氳鑹叉湭閰� system_role_menu锛岄潪瓒呯鐧诲綍鐪嬩笉鍒颁細鍛樼鐞嗙洰褰曘�愬緟纭鏄惁琛ユ巿鏉冦��",
+ "浼氬憳绠$悊锛氬鎵归�氳繃鑷姩寤虹郴缁熻处鍙风敤銆岃仈绯荤數璇濄�嶅悓鏃朵綔鐢ㄦ埛鍚嶄笌鍒濆瀵嗙爜锛岃嫢鑱旂郴鐢佃瘽涓虹┖浼氱敤瀛楅潰閲� unknown 鍏滃簳锛屽瓨鍦ㄥ急鍙d护涓庨噸鍚嶉闄┿�愬緟纭鏄惁鏀归�犮��",
+ "浼氬憳绠$悊锛氳嚜鍔ㄥ缓妗d笉鎼繍 contactUser/unitIntro/expireDate锛坲ms_application 鏃犲搴斿瓧娈碉級锛屽崟浣嶄細鍛樼殑銆岃仈绯讳汉/鍗曚綅绠�浠�/鏈夋晥鏈熴�嶅彧鑳藉湪浼氬憳鍒楄〃鎵嬪伐琛ュ綍銆愬緟纭鏄惁闇�瑕佺敵璇峰崟澧炲瓧娈点��",
+ "浼氬憳绠$悊锛氬崟浣嶄細鍛樼殑绛夌骇瀛楀吀 ums_unit_grade 浠呭埌銆屼細闀垮崟浣嶃��(4)锛屼絾鏍¢獙閫昏緫棰濆纭紪鐮佺姝㈠崟浣嶉�夈�岀悊浜嬮暱銆�(grade=5)鈥斺�旇鍊兼湰涓嶅湪鍗曚綅瀛楀吀鍐咃紝灞為槻寰℃�у啑浣欐牎楠屻�愬緟纭鏄惁绮剧畝銆�",
+ "璇鹃绠$悊锛氫笓瀹惰瘎鍒嗘潈閲嶏紙閫夐0.3/鏂规0.3/鍥㈤槦0.2/鎴愭灉0.2锛変笌銆屽姞鏉冨潎鍒嗏墺60 涓� 澶氭暟缁撹涓烘帹鑽愮珛椤广�嶇殑閫氳繃闃堝�兼槸鍗犱綅瑙勫垯锛岄渶瀛︿細鏈�缁堢‘璁わ紱宸查泦涓负甯搁噺渚夸簬璋冩暣銆愬緟纭锛屾敼鍔ㄥ彧闇�鏀瑰父閲忋��",
+ "璇鹃绠$悊锛氱粡璐规嫧浠樺凡瀵规帴璐㈠姟鎶ラ攢锛�1:1 鐢熸垚 finance_reimbursement 骞惰嚜鍔ㄦ彁浜ゅ鎵癸級锛屼絾鍙拌处涓庢姤閿�鍗曟槸杞叧鑱旓紙鏃犲閿紝浠呴潬 reimbursement_id锛夛紝璐㈠姟渚х洿鎺ュ垹闄ゆ姤閿�鍗曚細鐣欎笅鍙拌处鐨勬偓绌� reimbursement_id锛涘凡鐢� FUND_REIMBURSEMENT_NOT_EXISTS 绮剧‘鎻愮ず鍏滃簳锛屼笉鍋氭暟鎹簱绾х害鏉熴�愬凡鎺ュ彈鐨勯闄┿��",
+ "璇鹃绠$悊锛氭柊寤虹殑璐㈠姟鎶ラ攢瀹℃壒娴佺▼ finance_reimbursement_approve 涓� 2 鑺傜偣锛堣储鍔″鏍� 鈫� 璐㈠姟涓荤瀹℃壒锛夛紝鑺傜偣榛樿瀹℃壒浜虹瓥鐣ヤ负銆岃鑹� = 瓒呯骇绠$悊鍛�(1)銆佷緷娆″鎵广�嶏紱涓婄嚎鍓嶉渶鍦� BPM 璁捐鍣ㄤ腑鎸夊浼�/璐㈠姟瀹為檯瀹℃壒浜鸿皟鏁达紝鍚﹀垯璇ヨ鑹蹭笅澶氱敤鎴蜂細鍙樻垚閫愪汉浼氱銆愮幆澧冮厤缃」锛岄潪浠g爜缂洪櫡銆�",
+ "璇鹃绠$悊锛氱粡璐规嫧浠樺彴璐︾殑銆屽凡鎷ㄤ粯(20)銆嶇瓑浠蜂簬鎶ラ攢鍗曘�屽凡閫氳繃(20)銆嶏紝涓嶅惈鍑虹撼瀹為檯浠樻鍔ㄤ綔锛涜嫢鏃ュ悗闇�瑕佺嫭绔嬬殑銆屽凡浠樻銆嶇姸鎬侊紝闇�鍙﹀鐘舵�佷笌瀹℃壒鑺傜偣銆愪簩鏈熷彲鎵╁睍銆�",
+ "璇鹃绠$悊锛氱敵鎶ュ崟涓� ums_member 鏄蒋鍏宠仈锛堟棤澶栭敭锛夛紝浼氬憳琚垹闄ゅ悗鐢虫姤鍗曚細鐣欎笅鎮┖ memberId锛涙垚鍛樺垪琛ㄩ渶瀹归敊灞曠ず銆屼細鍛樺凡鍒犻櫎銆嶃�愬緟纭鏄惁鍔犲閿垨鍒犻櫎淇濇姢銆�",
+ "璇鹃绠$悊锛欱PM 娴佺▼ research_topic_approve 涓夎妭鐐归粯璁ゅ鎵逛汉涓恒�岃鑹�=瓒呯骇绠$悊鍛�(1) + 渚濇瀹℃壒銆嶏紝璇� dev 搴撹秴绾х鐞嗗憳瑙掕壊涓嬫湁 4 涓敤鎴凤紙admin/寮犲/椹姵/椹礊锛夛紝姣忎釜鑺傜偣闇� 4 浜轰細绛炬墠鎺ㄨ繘锛涘叏鏂板畨瑁呭簱璇ヨ鑹蹭粎 admin 涓�浜恒�佹祦绋嬪彲寮�绠卞嵆鐢ㄣ�俤ev 搴撻渶鍑忓皯瓒呯骇绠$悊鍛樼敤鎴锋垨鏀瑰湪 BPM 璁捐鍣ㄤ腑涓烘瘡鑺傜偣鎸囧畾瀹℃壒浜恒�愮幆澧冮厤缃」锛岄潪浠g爜缂洪櫡銆�",
+ "璇鹃绠$悊锛氱珛椤归�氱煡澶嶇敤 system_notice 绯荤粺鍏憡锛屼笉鏂板 system_notify_template銆佷笉鍙戠珯鍐呬俊锛涘闇�鐭俊/绔欏唴淇″畾鍚戦�氱煡闇�鍙﹁閰嶇疆銆愬緟纭閫氱煡娓犻亾銆�",
+ "妗f绠$悊锛氭。妗堝�熼槄 BPM 娴佺▼ archive_borrow_approve 涓烘墜宸ュ鍑洪儴缃蹭骇鐗╋紙_archive_bpm_export.sql 鍐� act_*/bpm 琛ㄧ殑 UUID 涓庢椂闂存埑鍙兘鍦ㄩ儴缃叉椂鐢熸垚锛屾棤娉曢鍐欙級锛屽繀椤诲厛鍦� BPM 妯″瀷閮ㄧ讲鍐嶅鍑哄啀鍚堝苟杩� config_export_all 闃舵涓�锛涢『搴忛敊浼氬鑷存柊搴撳垵濮嬪寲鏃惰娴佺▼缂哄け銆愰儴缃查『搴忕‖绾︽潫锛屽凡鍦ㄦ枃浠跺ご涓� README 鍙岄噸鏍囨敞銆�",
+ "妗f绠$悊锛氳彍鍗� 1075600~1075699 涓庡悇 archive:* 鏉冮檺鐐逛粎鍦ㄥ綊妗h剼鏈腑锛屾櫘閫氳鑹叉湭閰� system_role_menu锛岄潪瓒呯鐧诲綍鐪嬩笉鍒般�屾。妗堢鐞嗐�嶇洰褰曘�愬緟纭鏄惁琛ユ巿鏉冿紝涓庤储鍔℃姤閿�/浼氬憳绠$悊鍚岀被闂銆�",
+ "妗f绠$悊锛氭。妗堜笌鏉ユ簮鍗曟嵁锛堣棰樼敵鎶ヤ功/浼氬憳/鎶ラ攢鍗曪級涓鸿蒋鍏宠仈锛屾潵婧愬崟鎹鍒犻櫎鍚庢。妗堢殑 source_id/source_no 浼氭垚涓烘偓绌哄揩鐓э紱妗f鏈韩涓嶉殢鏉ユ簮鍗曟嵁鍒犻櫎鑰屽垹闄ゃ�愬緟纭鏄惁闇�瑕佸垹闄や繚鎶ゆ垨澶栭敭銆�",
+ "妗f绠$悊锛氶渶姹備腑鐨勩�屽浼氭枃浠躲�佷細璁邯瑕併�佽皟鐮旀姤鍛娿�佸鏈鏂囥�佸悎鍚屽崗璁�嶇瓑鐢靛瓙鏂囨。鐢便�屾枃涔︽。妗堛�嶅垎绫绘壙杞斤紝绯荤粺鍐呮棤瀵瑰簲鏉ユ簮妯″潡锛屼粎鏀寔鎵嬪伐褰曞叆骞舵寕鐢靛瓙闄勪欢锛涘悎鍚屾。妗堟湭绾冲叆鑷姩褰掓。锛堢敤鎴锋槑纭帓闄わ級銆愬凡纭鐨勮竟鐣屻��",
+ "妗f绠$悊锛氶�炬湡鎻愰啋鎸夌敤鎴峰喅绛栦粎鏌ヨ鏃跺疄鏃惰绠楋紙涓嶅缓 infra_job銆佷笉鍙戠珯鍐呬俊锛夛紝鍊熼槄鍒楄〃銆岄�炬湡銆嶅垪涓� /overdue-page 鐙珛鍏ュ彛鍛堢幇锛涜嫢鏃ュ悗闇�瑕佸埌鏈熶富鍔ㄦ帹閫侊紝闇�鍙﹀姞瀹氭椂浠诲姟涓庨�氱煡娓犻亾銆愮敤鎴峰凡纭鐨勭畝鍖栵紝浜屾湡鍙墿灞曘��",
+ "妗f绠$悊锛氥�屽悓涓�妗f浠呭厑璁镐竴鏉℃湭褰掕繕鍊熼槄鍗曘�嶇敱搴旂敤灞� submit 鏍¢獙 + 瀹℃壒閫氳繃鏃舵潯浠舵洿鏂帮紙UPDATE ... WHERE status=10锛夊叡鍚屼繚璇侊紝MySQL 鏃犳硶瀵广�岄儴鍒嗙姸鎬佸敮涓�銆嶅缓绾︽潫锛涙牎楠屼笌鏇存柊涔嬮棿鐨勭悊璁虹獥鍙e凡鏀舵暃涓哄彲鎰熺煡鐨勫啿绐佹姤閿欙紙妗f宸茶鍗犵敤锛夎�岄潪鑴忔暟鎹�愬凡鎺ュ彈鐨勯闄┿��",
+ "妗f绠$悊锛氭。妗堢粺璁℃寜鍒嗙被/瀵嗙骇/杞戒綋涓夌粍 GROUP BY 鑱氬悎锛堟棤 N+1锛夛紝褰撳墠閲忕骇鍙帴鍙楋紱妗f杩囦竾鍚庨渶鏀逛负缂撳瓨鎴栫墿鍖栫粺璁¤〃銆愭湰鏈熶笉鍋氥��",
+ "妗f绠$悊锛氳法妯″潡鏀硅〃鈥斺�攔esearch_application / ums_member / finance_reimbursement 鍚勬柊澧炲彲绌哄垪 archive_document_id锛坅rchive_module_migration.sql 鐢� information_schema 瀹堝崼淇濊瘉骞傜瓑锛夛紝闇�涓庝笁鏂规ā鍧楃‘璁ゅ彉鏇寸獥鍙c�愯法妯″潡鏀硅〃锛屾棤鐮村潖鎬с��"
],
- "generatedAt": "2026-09-10",
- "analysisBasis": "鍩轰簬 dev_business 鍒嗘敮 87bf4a99 婧愮爜锛�6 缁勫苟琛屾簮鐮佽蛋璇伙紙MES 鐢熶骇璐ㄩ噺 / MES 浠撳偍 / ERP / CRM+SRM / 鍞悗+HRM / AI+BI+MDM+BPM+搴曞骇锛�"
+ "generatedAt": "2026-09-29",
+ "analysisBasis": "鍩轰簬 dev_business 鍒嗘敮 87bf4a99 婧愮爜锛�6 缁勫苟琛屾簮鐮佽蛋璇伙紙MES 鐢熶骇璐ㄩ噺 / MES 浠撳偍 / ERP / CRM+SRM / 鍞悗+HRM / AI+BI+MDM+BPM+搴曞骇锛夛紱2026-09-28 澧為噺琛ュ厖 yudao-module-finance 鐙珛璐㈠姟鎶ラ攢妯″潡锛堟姤閿�鍗� + 鏄庣粏 + 鍙戠エ闄勪欢 + BPM 瀹℃壒 + 褰掓。锛変笌 yudao-module-ums 鐙珛浼氬憳绠$悊妯″潡锛堝叆浼氱敵璇� + BPM 涓ょ骇瀹℃壒 + 瀹℃壒閫氳繃鑷姩寤轰細鍛樹笌鐧诲綍璐﹀彿 + 浼氬憳鍒楄〃/閫氳褰曪級锛�2026-09-28 澧為噺锛欱PM 娴佺▼瀹氫箟 ums_membership_approve锛堝叆浼氬鎵癸級宸插湪 mom-jssm 閮ㄧ讲骞跺苟鍏� config_export_all 闃舵涓�锛堝垎绫� ums_membership_approve锛岀涔﹀鍒濆 鈫� 鐞嗕簨浼氬璁紝涓よ妭鐐瑰鎵逛汉鍧囦负銆岃鑹层�嶇瓥鐣ャ�佽鑹�=瓒呯骇绠$悊鍛�(1) 鍏滃簳锛岃〃鍗曠被鍨�=鑷畾涔夎〃鍗曪紝鏌ョ湅璺緞 /ums/application/detail/approve/index.vue锛夛紱鍚屾椂淇 mom-jssm 鐢� CREATE TABLE ... LIKE 鍏嬮殕瀵艰嚧鐨� 47 涓寚鍚� ruoyi-vue-pro 鐨� act_*/flw_* 璺ㄥ簱澶栭敭锛堥噸寤轰负鎸囧悜 mom-jssm 鑷韩锛屽鍎胯棰勬涓� 0锛夛紱2026-09-28 澧為噺锛氭柊澧� yudao-module-research 鐙珛绉戠爺璇鹃妯″潡涓�鏈燂紙璇鹃鎸囧崡鍙戝竷 + 鍦ㄧ嚎鐢虫姤 + 涓撳璇勫鏄庣粏 + BPM 涓夌骇绔嬮」瀹℃壒 + 绔嬮」閫氱煡鍏憡 + 缁忚垂鎷ㄤ粯璁板綍锛�4 寮� research_* 琛� / 5 涓瓧鍏� / bpm_category id=8002 / 娴佺▼ research_topic_approve / 鑿滃崟 1075510~1075553锛夛紝骞跺苟鍏� config_export_all_20260928 闃舵涓�锛涚敵鎶ヤ汉鍙� ums_member锛堣蒋鍏宠仈锛夈�佺珛椤归�氱煡澶嶇敤 system_notice 鍏憡銆佹嫧娆惧嚟璇佽蛋 system 闄勪欢涓績 recordType=research_fund_record锛�2026-09-29 澧為噺锛氳棰樼粡璐规嫧浠樺鎺ヨ储鍔℃姤閿�鈥斺�旀柊寤� yudao-module-finance-api锛團inanceReimbursementApi锛氬缓鍗�+鎻愪氦/鏀瑰崟+閲嶆彁/鍒犻櫎/鏌ヨ鍥涙柟娉曪紝鏈湴 Spring Bean 璋冪敤锛屾棤闇� Feign锛夛紝璇鹃渚х櫥璁版嫧娆炬椂 1:1 鑷姩鐢熸垚 finance_reimbursement锛堢郴缁熺敓鎴� 1 琛屾槑缁嗭細璐圭敤绫诲瀷=鍏朵粬 5銆佸彂绁ㄩ噾棰�=鎷ㄤ粯閲戦銆佸彂绁ㄦ棩鏈�=鎷ㄤ粯鏃ユ湡銆佽鏄�=銆岃棰樸�斿悕銆曠 N 鏈熸嫧娆俱�嶏級骞剁珛鍗虫彁浜� BPM锛屽洖鍐� reimbursement_id/reimbursement_no銆佸彴璐︾疆銆屾姤閿�瀹℃壒涓�(15)銆嶏紱鍑瘉鏀逛负鐧昏鏃跺繀濉苟鍙岀粦锛坮esearch_fund_record + finance_reimbursement锛夛紱鏂板 ResearchFundStatusListener锛堢 15 涓笟鍔$洃鍚櫒锛屼笌 finance 鑷繁鐨� FinanceReimbursementStatusListener 璁㈤槄鍚屼竴娴佺▼ key 骞惰瑙﹀彂锛夋寜瀹℃壒缁撴灉鍥炲啓鍙拌处锛氶�氳繃鈫掑凡鎷ㄤ粯(20)銆侀┏鍥炩啋宸查┏鍥�(30)+椹冲洖鍘熷洜/鏃堕棿銆佸彇娑堟祦绋嬧啋閫�鍥炲緟鎷ㄤ粯(0)鍙敼鍚庡彲閲嶆柊鍙戣捣锛堝彂璧蜂汉鎾ゅ洖鍙妸瀹炰緥閫�鍥炲彂璧疯妭鐐广�佹祦绋嬫湭缁撴潫锛屼笉瑙﹀彂鍥炲啓锛屽彴璐︿繚鎸� 15锛夛紱鏂伴�� 2 鑺傜偣 BPMN docs/sql/finance_reimbursement_approve.bpmn锛堣储鍔″鏍� 鈫� 璐㈠姟涓荤瀹℃壒锛宑ategory id=216 宸插瓨鍦級锛�2026-09-29 宸插湪 mom-jssm 閮ㄧ讲涓虹増鏈� 1锛坒orm_type=20銆佽嚜瀹氫箟琛ㄥ崟鍒涘缓璺緞 /finance/reimbursement/index銆佹煡鐪嬭矾寰� /finance/reimbursement/detail/approve/index.vue锛夊苟骞跺叆 config_export_all_20260929 闃舵涓�锛屼袱绾у鎵瑰叏閫氳繃/椹冲洖/鍙栨秷涓夋潯鍥炲啓閾捐矾鍧囧凡绔埌绔獙璇侊紱2026-09-29 澧為噺锛氭柊澧� yudao-module-archive 鐙珛妗f绠$悊妯″潡 + yudao-module-archive-api锛圓rchiveDocumentApi锛歛rchiveBySource 鎸� sourceType+sourceId 骞傜瓑褰掓。 / isArchived / getBySource 涓夋柟娉曪紝鏈湴 Spring Bean 璋冪敤锛屾棤 Feign锛夛紝瑕嗙洊涔︽灦鍒嗙被锛坅rchive_category 鏍戝舰銆乧ode 鍞竴銆乨efaultSecretLevel 榛樿瀵嗙骇銆�6 鏉″垵濮嬪垎绫伙細浼氬憳/璇鹃/浼氳/璐㈠姟/鏂囦功/鍏氬缓锛岃储鍔¢粯璁ゅ瘑绾�=淇濆瘑 3锛夈�佹。妗堢鐞嗭紙archive_document锛欴A+yyyyMMdd+6 浣嶆祦姘寸紪鍙枫�佸瘑绾т笁妗� 1 鍏紑 2 鍐呴儴 3 淇濆瘑銆佽浇浣撲笁鍨� 1 鐢靛瓙 2 瀹炰綋 3 鐢靛瓙+瀹炰綋銆佸疄浣撲綅缃洓瀛楁 shelfNo/layerNo/columnNo/boxNo + storePlace銆佹潵婧愬洓绫� sourceType 1 鎵嬪伐 2 璇鹃 3 浼氬憳 4 璐㈠姟甯� sourceNo/sourceId/sourceTitle 鍐椾綑蹇収銆佺姸鎬� 10 鍦ㄥ簱 20 鍊熷嚭涓�佺數瀛愰檮浠惰蛋 system 闄勪欢涓績 recordType=archive_document銆乤rchiveBySource 骞傜瓑鐭矾 + 涓夋柟琛� archive_document_id 鍥炲啓浣滀负宸插綊妗g‖鏍囪锛岄噸澶嶅綊妗g敱鏉ユ簮渚ч敊璇爜鎷︽埅涓� archive 渚� DOCUMENT_DUPLICATE_SOURCE 鍏滃簳锛夈�佸�熼槄鐧昏涓庡鎵癸紙archive_borrow锛欽Y+鍚岀骇娴佹按缂栧彿銆佸�熼槄浜轰俊鎭�/鍊熼槄鐩殑/褰掕繕鏈熼檺銆佺姸鎬� 0 鑽夌 15 瀹℃壒涓� 20 鍊熷嚭涓� 30 宸插綊杩� 35 宸查┏鍥烇紝浠� 0/35 鍙敼鍙噸鎻愩�佷粎 0 鍙垹銆佷粎 20 鍙櫥璁板綊杩橈紱submit 鍓嶆牎楠屽悓妗f涓嶅緱宸叉湁 15/20 鍦ㄩ�斿�熼槄锛屽厛瑙f瀽娴佺▼鍐嶅缓鍗曟潨缁濆鍎胯崏绋匡紱BPM 娴佺▼ archive_borrow_approve 涓ょ骇锛氭。妗堢鐞嗗憳瀹℃牳 鈫� 鍒嗙棰嗗瀹℃壒锛涚洃鍚櫒 ArchiveBorrowStatusListener 鎸� businessKey 鍥炲啓 20+approveTime / 35+椹冲洖鍘熷洜鏃堕棿 / 閫�鍥� 0锛屽鎵归�氳繃鏃舵潯浠舵洿鏂版。妗� SET status=20 WHERE status=10锛�0 琛屽垯鎶ユ。妗堝凡琚崰鐢ㄥ苟鍥炴粴锛夈�佸綊杩樼櫥璁帮紙鏉′欢鏇存柊 20鈫�30 + returnTime/褰掕繕纭浜猴紝鍐嶆妸妗f鏉′欢鏇存柊鍥� 10锛屽舰鎴愰棴鐜級銆侀�炬湡瀹炴椂璁$畻锛坥verdue=status==20 涓� returnDeadline<浠婂ぉ锛屼笉寤� infra_job 涓嶅彂绔欏唴淇★紝鍒楄〃銆岄�炬湡銆嶅垪 + /archive/borrow/overdue-page 鐙珛鍏ュ彛锛夈�佹。妗堢粺璁★紙4 鍗$墖锛氭�绘暟/鍦ㄥ簱/鍊熷嚭/閫炬湡 + 鍒嗙被/瀵嗙骇/杞戒綋涓夌粍 GROUP BY 鑱氬悎锛屾棤 N+1锛夛紱鏁忔劅妗f鐢ㄥ瘑绾у瓧娈� + 鐙珛鏉冮檺鐐� archive:document:sensitive锛�/get 瓒婃潈鎶� DOCUMENT_SENSITIVE_NO_PERMISSION銆�/page 涓� /export-excel 寮哄埗杩囨护 secret_level<>3锛岀粺涓�璧� applySecretLevelFilter / validateSecretLevelVisible 涓ょ鏈夋柟娉曪紱鏂板 3 寮犺〃 archive_category/archive_document/archive_borrow銆�6 涓瓧鍏革紙82000~82005锛夈�乥pm_category id=8003 + 鎵嬪啓 docs/sql/archive_borrow_approve.bpmn锛坈ategory=archive_borrow_approve銆乫orm_type=20銆佸垱寤鸿矾寰� /archive/borrow/index銆佹煡鐪嬭矾寰� /archive/borrow/detail/approve/index.vue锛夊凡鍦� mom-jssm 閮ㄧ讲涓虹増鏈� 1銆佽彍鍗� 1075600~1075699锛涗笁鏂瑰綊妗h仈鍔ㄤ负鍒楄〃椤垫墜鍔ㄣ�屽綊妗c�嶆寜閽紙闈炰簨浠堕┍鍔紝褰掓。涓嶅洖鍐欐潵婧愪笟鍔$姸鎬侊級锛氳棰� research_application status=20 宸茬珛椤� 鈫� sourceType=2 瀵嗙骇 2 鍐呴儴 sourceNo=绔嬮」缂栧彿锛涗細鍛� ums_member status=1 姝e父 鈫� sourceType=3锛涜储鍔� finance_reimbursement status=20 鈫� sourceType=4 瀵嗙骇 3 淇濆瘑锛屼笌鏃㈡湁 20鈫�40 + archiveTime 鍚屼簨鍔″彔鍔狅紱涓夊紶鏉ユ簮琛ㄥ悇鏂板鍙┖鍒� archive_document_id锛坅rchive_module_migration.sql 鐢� information_schema 瀹堝崼淇濊瘉骞傜瓑锛夈�傚叏搴撹〃鏁� 427鈫�430锛涗笟鍔$姸鎬佺洃鍚櫒瀹為檯璁℃暟淇涓� 24 涓� *StatusListener锛�14 涓户鎵� BpmProcessInstanceStatusEventListener锛夈�傛湰妯″潡涓嶅弽鍚戜緷璧� ums/finance/research锛屼粎鎻愪緵 -api 瀛愭ā鍧楃敱涓夋柟鎵嬪姩璋冪敤锛涗緷璧栨柟鍚� research/ums/finance 鈫� archive-api锛屾棤鐜�傛湰娆″悓姝ユ洿鏂扮殑涓氬姟鍙鍖栦骇鐗╋細鏂板 mermaid/15-archive-flow.mmd锛屽閲忎慨璁� 01-business-mindmap / 08-module-relation / 09-data-flow / 10-business-object锛屼互鍙� data/modules.json锛堟柊澧� arc 妯″潡銆乥pm 鐩戝惉鍣ㄨ鏁� 15鈫�24锛夈�乷bjects.json锛堟柊澧炴。妗堝垎绫�/妗f/鍊熼槄鍗� 3 瀵硅薄 + 璇鹃鐢虫姤涔�/浼氬憳/鎶ラ攢鍗曞悇琛� archive_document_id锛夈�乫lows.json锛堟柊澧� archive 娴佺▼ 9 姝ワ級銆乺oles.json锛堟柊澧炴。妗堢鐞嗗憳/鍊熼槄浜�/鍊熼槄瀹℃壒浜�/褰掓。缁忓姙浜� 4 瑙掕壊锛夈�乥usiness.json"
}</script>
<script type="application/json" id="data-modules">{
"modules": [
@@ -362,6 +394,14 @@
"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": "fin", "name": "璐㈠姟鎶ラ攢锛堢嫭绔嬶級", "color": "#3ec9a7", "tag": "FIN", "flow": "finance",
+ "positioning": "鐙珛鐨勫彂绁ㄦ姤閿�鍗曟嵁涓庡綊妗�",
+ "problem": "绾歌川鍙戠エ闅惧綊闆嗐�佹姤閿�瀹℃壒鏃犵暀鐥曘�佸綊妗e悗鏃犳硶杩芥函",
+ "features": ["鎶ラ攢鍗�(涓昏〃 + 1..n 鏄庣粏琛�)", "鍙戠エ闄勪欢澶氭枃浠朵笂浼�(闄勪欢涓績澶氭�佸叧鑱� storage_attachment)", "鍗曞彿 Redis 鐢熸垚 BX+yyyyMMdd+6浣嶆祦姘绰锋瘡鏃ラ噸缃�", "鏄庣粏闅忎富琛ㄤ竴娆℃�ф彁浜�(鍏堝垹鍚庡鍏ㄩ噺瑕嗙洊)", "BPM 瀹℃壒(閫氳繃20/椹冲洖35/鍙栨秷閫�鍥炶崏绋�0)", "宸查┏鍥炲彲鏀瑰彂绁ㄥ悗閲嶆柊鎻愪氦", "褰掓。缁堟�� 40 骞惰褰曞綊妗f椂闂�", "璐圭敤绫诲瀷/鎶ラ攢鐘舵�佸弻瀛楀吀 + Excel 瀵煎嚭", "瀵瑰鎻愪緵 FinanceReimbursementApi(yudao-module-finance-api)渚涜棰樼鐞嗙粡璐规嫧浠樿嚜鍔ㄥ缓鍗曞苟鎻愪氦(1 琛屾槑缁喡疯垂鐢ㄧ被鍨�=鍏朵粬路閲戦涓�鑷�)"],
+ "objects": ["鎶ラ攢鍗�", "鎶ラ攢鏄庣粏"],
+ "roles": ["鎶ラ攢浜�", "璐㈠姟", "瀹℃壒浜�"],
+ "upstream": ["璇鹃绠$悊(缁忚垂鎷ㄤ粯 1:1 鑷姩鐢熸垚鎶ラ攢鍗暵疯蛋 yudao-module-finance-api路鏈湴 Bean 璋冪敤)"], "downstream": [],
+ "coreTables": ["finance_reimbursement", "finance_reimbursement_item"]},
{"key": "pro", "name": "鐢熶骇绠$悊", "color": "#e0b34f", "tag": "MES-PRO", "flow": "production",
"positioning": "鐢熶骇鎵ц鏍稿績锛氳鍒�-宸ュ崟-浠诲姟-鎶ュ伐",
"problem": "璁㈠崟鍒拌溅闂存墽琛岀殑閫愬眰鎷嗚В涓庤繃绋嬪彲鎺�",
@@ -418,10 +458,36 @@
"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": "ums", "name": "浼氬憳绠$悊锛堢嫭绔嬶級", "color": "#d6955c", "tag": "UMS", "flow": "ums",
+ "positioning": "瀛︿細/鍗忎細鍨嬩細鍛樺叏鐢熷懡鍛ㄦ湡锛氬叆浼氱敵璇峰鎵� 鈫� 鑷姩寤烘。 鈫� 浼氬憳鍒楄〃涓庨�氳褰�",
+ "problem": "浼氬憳鍏ヤ細闈犵嚎涓嬭〃鏍间笌浜哄伐寤烘。锛屼細鍛樼瓑绾у彛寰勬贩涔憋紝浼氬憳淇℃伅鏃犳硶鎸夊湴鍖�/琛屼笟妫�绱�",
+ "features": ["鍏ヤ細鐢宠鍗�(涓汉/鍗曚綅浜屽瀷路瀛楁鍒嗗弶)", "鐢宠绛夌骇涓ょ骇鍙e緞(涓汉 ums_personal_grade / 鍗曚綅 ums_unit_grade)", "鐢宠缂栧彿 SQ+yyyyMMdd+6浣嶆祦姘绰蜂細鍛樼紪鍙� HY+鍚屾棩娴佹按(Redis 姣忔棩閲嶇疆)", "BPM 涓ょ骇瀹℃壒(绉樹功澶勫垵瀹♀啋鐞嗕簨浼氬璁�)路鐘舵�� 0鑽夌/15瀹℃壒涓�/20宸查�氳繃/35宸查┏鍥�", "瀹℃壒閫氳繃鑷姩寤轰細鍛� + 鑷姩寤虹郴缁熺櫥褰曡处鍙�(AdminUserApi.createUser路鐢ㄦ埛鍚嶄笌鍒濆瀵嗙爜=鑱旂郴鐢佃瘽)", "浼氬憳绛夌骇涓庣被鍨嬪尮閰嶆牎楠�(鍗曚綅浼氬憳涓嶅彲閫夈�庣悊浜嬮暱銆�)", "浼氬憳閫氳褰曞彧璇绘绱�(鎸夊湴鍖虹紪鐮�/琛屼笟)", "璇佹槑鏉愭枡璧� system 闄勪欢涓績(recordType=ums_application / ums_member)"],
+ "objects": ["鍏ヤ細鐢宠鍗�", "浼氬憳"],
+ "roles": ["鍏ヤ細鐢宠浜�", "浼氬憳绠$悊鍛�", "绉樹功澶�(鍒濆)", "鐞嗕簨浼�(瀹¤)"],
+ "upstream": [], "downstream": ["system(鑷姩鍒涘缓鐧诲綍璐﹀彿)"],
+ "coreTables": ["ums_application", "ums_member"]},
+ {"key": "res", "name": "璇鹃绠$悊锛堢嫭绔嬶級", "color": "#e070a8", "tag": "RES", "flow": "research",
+ "positioning": "瀛︿細/鍗忎細鍨嬬鐮旇棰樺叏鐢熷懡鍛ㄦ湡锛氭寚鍗楀彂甯� 鈫� 鍦ㄧ嚎鐢虫姤 鈫� 涓撳璇勫 鈫� 绔嬮」瀹℃壒 鈫� 缁忚垂鎷ㄤ粯锛堢珛椤归�氱煡璧扮郴缁熷叕鍛婏級",
+ "problem": "璇鹃鎸囧崡闈犵嚎涓嬪彂甯冦�佺敵鎶ヤ功闈犵焊璐ㄦ垨閭欢鏀堕泦銆佷笓瀹惰瘎鍒嗘暎钀藉湪琛ㄦ牸閲屾棤娉曡嚜鍔ㄦ眹鎬绘帓鍚嶃�佺珛椤逛笌鎷ㄦ鏃犵暀鐥�",
+ "features": ["璇鹃鎸囧崡(閲嶇偣1/涓�鑸�2 鍒嗙被鏍囨敞)", "鎸囧崡鐘舵�� 0鑽夌/20宸插彂甯�/30宸叉埅姝⒙峰彂甯�/鎴涓や釜鍔ㄤ綔", "鎸囧崡缂栧彿 GL+yyyyMMdd+6浣嶆祦姘�(Redis 姣忔棩閲嶇疆)", "鍦ㄧ嚎鐢虫姤涔�(閫夋寚鍗�+閫変細鍛樺甫鍑虹敵鎶ヤ汉淇℃伅+璇鹃缁勬垚鍛�+鐢宠缁忚垂+鐢虫姤涔︽鏂�)", "鐢虫姤缂栧彿 SB+鍚屾棩娴佹按路绫诲埆鍐椾綑鑷寚鍗椾笉淇′换鍓嶇", "鐢虫姤鐘舵�� 0鑽夌/15瀹℃壒涓�/20宸茬珛椤�/35宸查┏鍥�", "鎻愪氦鍓嶆牎楠屾寚鍗楀凡鍙戝竷涓斿湪鐢虫姤鏈熷唴(閫愭潯鎶ュ叿浣撶淮搴︿笌鏃堕棿)", "涓撳璇勫鏄庣粏瀛愯〃(涓�浣嶄笓瀹朵竴琛屄峰洓椤瑰姞鏉� 0.3/0.3/0.2/0.2)", "鍚庣鑷姩閲嶇畻鍔犳潈鍚堣涓庢帓鍚嵚峰洖鍐欎富鍗曞潎鍒嗕笌鎺ㄨ崘缁撹", "BPM 涓夌骇瀹℃壒 research_topic_approve(绉樹功澶勫舰寮忓鏌モ啋涓撳璇勫鈫掑浼氱珛椤瑰鎵�)", "瀹℃壒閫氳繃鐢熸垚绔嬮」缂栧彿 LX+鍚屾棩娴佹按 涓庣珛椤规椂闂�(骞傜瓑)", "鍙戝竷绔嬮」閫氱煡(鐢熸垚 system_notice 鍏憡路鍐欏洖 noticeId 闃查噸澶�)", "缁忚垂鎷ㄤ粯璁板綍(鎵规/閲戦/鏃ユ湡/鏀舵鍗曚綅/澶囨敞/鍑瘉闄勪欢)路鍑瘉蹇呭~路閲戦涓嶅緱瓒呯敵璇风粡璐�", "缁忚垂鎷ㄤ粯 1:1 鑷姩鐢熸垚骞舵彁浜よ储鍔℃姤閿�鍗�(FinanceReimbursementApi路1 琛屾槑缁喡疯垂鐢ㄧ被鍨�=鍏朵粬)", "鎷ㄤ粯鐘舵�� 0寰呮嫧浠�/15鎶ラ攢瀹℃壒涓�/20宸叉嫧浠�/30宸查┏鍥灺风敱 BPM 鐩戝惉鍣ㄥ洖鍐�(鍚┏鍥炲師鍥犱笌鏃堕棿)", "宸查┏鍥炲彲鏀归噾棰�/鍑瘉鍚庨噸鏂板彂璧锋姤閿�路寰呮嫧浠樺彲鍒犲苟鑱斿姩娓呯悊璐㈠姟渚ц崏绋挎姤閿�鍗�", "闄勪欢璧� system 闄勪欢涓績(recordType=research_guideline / research_application / research_fund_record)"],
+ "objects": ["璇鹃鎸囧崡", "璇鹃鐢虫姤涔�", "涓撳璇勫鏄庣粏", "缁忚垂鎷ㄤ粯璁板綍"],
+ "roles": ["璇鹃鐢虫姤浜�(浼氬憳)", "璇鹃绠$悊鍛�", "璇勫涓撳", "瀛︿細绉樹功澶�", "瀛︿細鐞嗕簨浼�", "瀛︿細璐㈠姟"],
+ "upstream": ["浼氬憳绠$悊(ums_member 鍙栫敵鎶ヤ汉濮撳悕/鍗曚綅/鑱岀О/鐢佃瘽)", "BPM(娴佺▼瀹氫箟 research_topic_approve / finance_reimbursement_approve)"],
+ "downstream": ["system(system_notice 绔嬮」閫氱煡鍏憡)", "system(闄勪欢涓績)", "璐㈠姟(缁忚垂鎷ㄤ粯鐢熸垚 finance_reimbursement 鎶ラ攢鍗暵峰凡瀵规帴)"],
+ "coreTables": ["research_guideline", "research_application", "research_topic_review", "research_fund_record"]},
+ {"key": "arc", "name": "妗f绠$悊锛堢嫭绔嬶級", "color": "#7fb3d5", "tag": "ARC", "flow": "archive",
+ "positioning": "瀛︿細/鍗忎細鍨嬪疄浣撲笌鐢靛瓙妗f鍏ㄧ敓鍛藉懆鏈燂細鍒嗙被涔︽灦瑙勬暣 鈫� 妗f鐧昏涓庢绱� 鈫� 鍊熼槄瀹℃壒 鈫� 褰掕繕闂幆 鈫� 瀛橀噺涓庢祦杞粺璁★紝骞舵帴鏀惰棰�/浼氬憳/璐㈠姟涓夋柟鐨勫綊妗h仈鍔�",
+ "problem": "璇鹃鏉愭枡銆佷細鍛樻潗鏂欍�佽储鍔″嚟璇佹暎钀藉悇妯″潡鏃犲褰掗泦锛涚焊璐ㄦ。妗堝瓨鏀句綅缃潬绾夸笅鍙拌处锛屽�熼槄涓庡綊杩樻棤鐣欑棔銆侀�炬湡鏃犱汉绠★紱璐㈠姟绛夋晱鎰熸。妗堟棤瀵嗙骇绠℃帶",
+ "features": ["妗f鍒嗙被鏍�(涔︽灦路鍒嗗眰鍒嗗垪)锛氫細鍛�/璇鹃/浼氳/璐㈠姟/鏂囦功/鍏氬缓 6 鏉″垵濮嬪垎绫宦风紪鐮佸敮涓�路鏀寔鐖跺瓙灞傜骇", "鍒嗙被榛樿瀵嗙骇(璐㈠姟鍒嗙被=淇濆瘑)路鍒嗙被鏈夊瓙鍒嗙被鎴栦笅鏈夋。妗堢鍒�", "妗f涓昏〃锛氱數瀛愰檮浠� + 瀹炰綋浣嶇疆鍥涘瓧娈�(涔︽灦鍙�/灞傚彿/鍒楀彿/鍐屽彿妗f鐩�)+瀛樻斁浣嶇疆鎻忚堪", "妗f缂栧彿 DA+yyyyMMdd+6浣嶆祦姘�(Redis 姣忔棩閲嶇疆)路鍊熼槄鍗曞彿 JY+鍚屾棩娴佹按", "瀵嗙骇涓夋。 鍏紑1/鍐呴儴2/淇濆瘑3 + 鐙珛鏉冮檺鐐� archive:document:sensitive(鏃犳潈闄愭椂鍒楄〃涓庡鍑哄己鍒惰繃婊ゃ�佽鎯呮姤閿�)", "杞戒綋涓夊瀷 鐢靛瓙1/瀹炰綋2/鐢靛瓙+瀹炰綋3", "鏉ユ簮鍥涚被 鎵嬪伐1/璇鹃2/浼氬憳3/璐㈠姟4(璁板綍鏉ユ簮鍗曞彿/ID/鏍囬蹇収渚夸簬妫�绱�)", "鍏ㄥ瓧娈垫绱細鏍囬/鍏抽敭璇� tags/鏉ユ簮鍗曞彿/鍒嗙被/瀵嗙骇/杞戒綋/鐘舵��/褰掓。鏃ユ湡鍖洪棿 + Excel 瀵煎嚭", "鍊熼槄鐧昏(鍊熼槄浜�/閮ㄩ棬/鐢佃瘽/鏃ユ湡/鐩殑/褰掕繕鏈熼檺)+BPM 涓ょ骇瀹℃壒(妗f绠$悊鍛樺鏍糕啋鍒嗙棰嗗瀹℃壒)路娴佺▼ key=archive_borrow_approve", "褰掕繕鐧昏锛氬疄鏃舵洿鏂版。妗堢姸鎬佸洖銆屽湪搴撱�嶏紝褰㈡垚瀹屾暣娴佽浆闂幆", "閫炬湡鏈繕浠呮煡璇㈡椂瀹炴椂璁$畻(overdueDays)路鍒楄〃绾㈣壊銆岄�炬湡 N 澶┿�峊ag + /overdue-page 鐙珛鍏ュ彛 + 銆屽彧鐪嬮�炬湡銆嶅垏鎹⒙蜂笉寤� infra_job 涓嶅彂绔欏唴淇�", "妗f缁熻锛氭�绘暟/鍦ㄥ簱/鍊熷嚭涓�/閫炬湡鏈繕 + 鎸夊垎绫�/瀵嗙骇/杞戒綋涓夌粍鍒嗗竷(4 鍗$墖 + 3 鍥捐〃)", "瀵瑰鎻愪緵 yudao-module-archive-api(ArchiveDocumentApi锛歛rchiveBySource 骞傜瓑/ isArchived / getBySource)渚涜棰樎蜂細鍛樎疯储鍔′笁鏂规墜鍔ㄥ綊妗�", "闄勪欢璧� system 闄勪欢涓績(recordType=archive_document / archive_borrow)"],
+ "objects": ["妗f鍒嗙被", "妗f", "鍊熼槄鍗�"],
+ "roles": ["妗f绠$悊鍛�", "鍒嗙棰嗗(鍊熼槄瀹℃壒)", "鍊熼槄浜�", "褰掓。缁忓姙浜�(璇鹃/浼氬憳/璐㈠姟)"],
+ "upstream": ["璇鹃绠$悊(宸茬珛椤圭敵鎶ヤ功路archiveApplication)", "浼氬憳绠$悊(姝e父浼氬憳路archiveMember)", "璐㈠姟鎶ラ攢(宸查�氳繃鎶ラ攢鍗暵锋棦鏈� archive 鍙犲姞)", "BPM(娴佺▼瀹氫箟 archive_borrow_approve)"],
+ "downstream": ["system(闄勪欢涓績 storage_attachment)", "鏉ユ簮琛ㄥ洖鍐� archive_document_id"],
+ "coreTables": ["archive_category", "archive_document", "archive_borrow"]},
{"key": "bpm", "name": "鍗忓悓瀹℃壒", "color": "#e6a23c", "tag": "BPM", "flow": null,
"positioning": "鍏ㄧ郴缁熷崟鎹鎵逛腑鏋紙Flowable锛�",
"problem": "澶氭ā鍧楀崟鎹渶瑕佺伒娲诲彲閰嶇殑澶氱骇瀹℃壒",
- "features": ["BPMN+閽夐拤椋庢牸鍙岃璁″櫒", "娴佺▼瀹氫箟閮ㄧ讲", "瀹℃壒浜嬩欢缁熶竴鍥炶皟(BpmProcessInstanceStatusEvent)", "13涓笟鍔$洃鍚櫒", "琛ㄥ崟路鐢ㄦ埛缁劼锋妱閫伮峰姞绛�"],
+ "features": ["BPMN+閽夐拤椋庢牸鍙岃璁″櫒", "娴佺▼瀹氫箟閮ㄧ讲", "瀹℃壒浜嬩欢缁熶竴鍥炶皟(BpmProcessInstanceStatusEvent)", "24涓笟鍔$姸鎬佺洃鍚櫒(*StatusListener路鍚屼竴娴佺▼ key 鍏佽澶氫釜鐩戝惉鍣ㄥ苟琛屄峰悇鑷寜 key 杩囨护路妗f鍊熼槄 ArchiveBorrowStatusListener 涓庤储鍔�/璇鹃鐩戝惉鍣ㄨ闃呬笉鍚� key 浜掍笉骞叉壈)", "琛ㄥ崟路鐢ㄦ埛缁劼锋妱閫伮峰姞绛�"],
"objects": ["娴佺▼妯″瀷", "娴佺▼瀹炰緥", "瀹℃壒浠诲姟"],
"roles": ["瀹℃壒浜�(鎸夋祦绋嬮厤缃�)", "娴佺▼绠$悊鍛�"],
"upstream": ["鍚勪笟鍔℃彁浜ゅ鎵�"], "downstream": ["鍥炶皟鏇存柊鍚勪笟鍔″崟鎹姸鎬�"],
@@ -438,7 +504,7 @@
"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绔細鍛橈紝閬楃暀)"]
+ "unused": ["im 妯″潡(IM/RTC锛屼笟鍔℃湭娑堣垂)", "member 妯″潡(C绔晢鍩庝細鍛橈紝閬楃暀锛涗笌 UMS 瀛︿細浼氬憳鏃犲叧锛屽嬁娣风敤)"]
}
}</script>
<script type="application/json" id="data-objects">{
@@ -490,7 +556,18 @@
{"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": "鎺掔彮 鐝粍 鐝 鏃ュ巻"},
{"name": "鎶ュ憡妯℃澘", "module": "璐ㄦ鎶ュ憡", "table": "qc_report_template", "doc": "鏅鸿兘璐ㄦ鎶ュ憡妯℃澘锛屽惎鐢�0/鍋滅敤1锛涚敾甯冨唴瀹瑰瓨鍦� qc_report_template_version锛堣崏绋�0/宸插彂甯�1/宸插仠鐢�2锛屽凡鍙戝竷涓嶅彲瑕嗙洊锛夛紝currentVersion 鎸囧悜褰撳墠宸插彂甯冪増鏈紱婧愭枃浠剁粡 AI 瀵煎叆璇嗗埆鎴愯崏绋垮悗鐢变汉宸ョ‘璁ゆ墠鎴愪负鐗堟湰锛涘悓涓�妯℃澘閲嶅瀵煎叆鎸夈�愭浛鎹€�戝鐞嗏�斺�斿厛鍒犳棫闄勪欢锛堣繛甯� blob 琛屼笌纾佺洏鏂囦欢锛夊啀缁戞柊鐨勶紝涓嶇暀瀛ゅ効鏂囦欢锛涘垹闄ゆā鏉夸細杩炲甫娓呴檮浠�", "upstream": ["浜哄伐璁捐(GrapesJS 璁捐鍣�)", "AI 瀵煎叆鑽夌(qc-report/ai-import/draft)"], "downstream": ["妯℃澘鐗堟湰", "鎶ュ憡瀹炰緥"], "keywords": "鎶ュ憡妯℃澘 璐ㄦ鎶ュ憡 template 璁捐鍣� 鐗堟湰 AI瀵煎叆 璇嗗埆 鑽夌 婧愭枃浠舵浛鎹�"},
- {"name": "鎶ュ憡瀹炰緥", "module": "璐ㄦ鎶ュ憡", "table": "qc_report_instance", "doc": "鍑轰欢浜х墿锛岀紪鍙� QR+yyyyMMdd+4浣嶆祦姘存寜澶╃嫭绔嬩笖涓氬姟鍞竴锛屽彲鏄惧紡鎸囧畾瑕嗙洊锛堟敞鎰� uk_report_no 涓嶅尯鍒嗚蒋鍒犻櫎锛屽垹鎺夌殑鍙蜂笉鍥炴敹锛夛紱涓ゆ潯鍑轰欢鍏ュ彛锛氶�氱敤 generate锛堣皟鐢ㄦ柟鑷甫 context锛変笌 generate-from-qc锛堟暟鎹粠 MES 璐ㄦ鍗曞彇锛屾潈闄愮爜 qc-report:instance:generate 宸插叆 system_menu id=1075416锛屼簲閬撴牎楠屾寜涓氬姟浼樺厛绾у彧鎶ョ涓�澶勶細105_000 绫诲瀷闈炴硶 / 105_001 鍗曟嵁涓嶅瓨鍦� / 105_002 鏈畬鎴� / 105_003 鏈垽瀹� / 105_005 妯℃澘绫诲瀷涓嶇 / 105_006 鏃犲彲鐢ㄦ楠岄」锛涘洓寮犺川妫�鍗曞垪琛ㄧ殑琛屾搷浣溿�屽嚭鎶ュ憡銆嶄粎鍦� status=宸插畬鎴愭椂鍙锛屽脊绐楀彧鍒� reportType 涓�鑷淬�佹ā鏉垮惎鐢ㄣ�佷笖 currentVersion 鎸囧悜鐨勭増鏈凡鍙戝竷鐨勬ā鏉匡紙鍚庣 /qc-report/template/selectable 鍒ゅ畾鈥斺�斿仠鐢ㄧ増鏈笉娓呯┖ currentVersion锛屽墠绔嬁鍒嗛〉缁撴灉鑷繁鎺ㄥ浼氭紡锛夛紝缁撴灉灏卞湴灞曠ず骞惰烦鏈〉鍒楄〃锛夛紱鍐荤粨 data_snapshot锛堝垽瀹氬悗鏁版嵁锛屽惈鍚庣绠楀ソ鐨� PASS/FAIL 涓庡悎鏍肩巼锛変笌 render_html锛況egenerate 鍙噸娓叉帓鐗堛�佹暟鎹笌缂栧彿涓嶅彉锛沚usiness_id/business_type 瀛� MES 琛ㄥ悕锛坢es_qc_iqc 绛夛級涓庡崟鎹� ID锛屽彲鍙嶆煡銆佷竴鍗曞彲鍑哄浠斤紱鎶ュ憡澶村彟甯﹀崟鎹師鍒ゅ畾 qcResult(鏁�)/qcResultText(涓枃锛屽悎鏍�/鐗归噰/涓嶅悎鏍奸��璐�/涓嶅悎鏍兼姤搴�)锛屼笌寮曟搸涓夋�佸垽瀹氬苟瀛樹簰涓嶈鐩栵紱鍝嶅簲甯� undecidableCount=蹇収涓� result 涓虹┖涓茬殑椤规暟涓� warnings锛堝垎缁勬爣棰樿烦杩�/鎸囨爣宸插垹/鏈綍瀹炴祴鍊�/鏍峰搧瓒�3锛夛紝涓よ�呴兘涓嶈惤搴撱�佷簨鍚庣湅涓嶅埌", "upstream": ["鎶ュ憡妯℃澘鐗堟湰", "璐ㄦ鍗曚笂涓嬫枃(閫氱敤 generate 鐢辫皟鐢ㄦ柟浼犲叆)", "MES 璐ㄦ鍗� IQC/IPQC/OQC/RQC(generate-from-qc 缁� MesQcReportApi 鍙栨暟)"], "downstream": ["鍓嶇瀹炰緥椤� /qc/report-instance(鍒楄〃路iframe棰勮路蹇収椤电路瀵煎嚭PDF)", "PDF褰掓。(system_storage_attachment recordType=qc_report_instance)"], "keywords": "鎶ュ憡瀹炰緥 鍑轰欢 QR缂栧彿 蹇収 澶嶇幇 regenerate PDF褰掓。 鎶ュ憡瀹炰緥椤� 瀵煎嚭PDF generate-from-qc 璐ㄦ鍗曞嚭鎶ュ憡 鍑烘姤鍛婂脊绐� qcResult undecidableCount warnings 寰呭垽瀹� 鍙嶆煡 涓氬姟鍗曟嵁绛涢��"}
+ {"name": "鎶ュ憡瀹炰緥", "module": "璐ㄦ鎶ュ憡", "table": "qc_report_instance", "doc": "鍑轰欢浜х墿锛岀紪鍙� QR+yyyyMMdd+4浣嶆祦姘存寜澶╃嫭绔嬩笖涓氬姟鍞竴锛屽彲鏄惧紡鎸囧畾瑕嗙洊锛堟敞鎰� uk_report_no 涓嶅尯鍒嗚蒋鍒犻櫎锛屽垹鎺夌殑鍙蜂笉鍥炴敹锛夛紱涓ゆ潯鍑轰欢鍏ュ彛锛氶�氱敤 generate锛堣皟鐢ㄦ柟鑷甫 context锛変笌 generate-from-qc锛堟暟鎹粠 MES 璐ㄦ鍗曞彇锛屾潈闄愮爜 qc-report:instance:generate 宸插叆 system_menu id=1075416锛屼簲閬撴牎楠屾寜涓氬姟浼樺厛绾у彧鎶ョ涓�澶勶細105_000 绫诲瀷闈炴硶 / 105_001 鍗曟嵁涓嶅瓨鍦� / 105_002 鏈畬鎴� / 105_003 鏈垽瀹� / 105_005 妯℃澘绫诲瀷涓嶇 / 105_006 鏃犲彲鐢ㄦ楠岄」锛涘洓寮犺川妫�鍗曞垪琛ㄧ殑琛屾搷浣溿�屽嚭鎶ュ憡銆嶄粎鍦� status=宸插畬鎴愭椂鍙锛屽脊绐楀彧鍒� reportType 涓�鑷淬�佹ā鏉垮惎鐢ㄣ�佷笖 currentVersion 鎸囧悜鐨勭増鏈凡鍙戝竷鐨勬ā鏉匡紙鍚庣 /qc-report/template/selectable 鍒ゅ畾鈥斺�斿仠鐢ㄧ増鏈笉娓呯┖ currentVersion锛屽墠绔嬁鍒嗛〉缁撴灉鑷繁鎺ㄥ浼氭紡锛夛紝缁撴灉灏卞湴灞曠ず骞惰烦鏈〉鍒楄〃锛夛紱鍐荤粨 data_snapshot锛堝垽瀹氬悗鏁版嵁锛屽惈鍚庣绠楀ソ鐨� PASS/FAIL 涓庡悎鏍肩巼锛変笌 render_html锛況egenerate 鍙噸娓叉帓鐗堛�佹暟鎹笌缂栧彿涓嶅彉锛沚usiness_id/business_type 瀛� MES 琛ㄥ悕锛坢es_qc_iqc 绛夛級涓庡崟鎹� ID锛屽彲鍙嶆煡銆佷竴鍗曞彲鍑哄浠斤紱鎶ュ憡澶村彟甯﹀崟鎹師鍒ゅ畾 qcResult(鏁�)/qcResultText(涓枃锛屽悎鏍�/鐗归噰/涓嶅悎鏍奸��璐�/涓嶅悎鏍兼姤搴�)锛屼笌寮曟搸涓夋�佸垽瀹氬苟瀛樹簰涓嶈鐩栵紱鍝嶅簲甯� undecidableCount=蹇収涓� result 涓虹┖涓茬殑椤规暟涓� warnings锛堝垎缁勬爣棰樿烦杩�/鎸囨爣宸插垹/鏈綍瀹炴祴鍊�/鏍峰搧瓒�3锛夛紝涓よ�呴兘涓嶈惤搴撱�佷簨鍚庣湅涓嶅埌", "upstream": ["鎶ュ憡妯℃澘鐗堟湰", "璐ㄦ鍗曚笂涓嬫枃(閫氱敤 generate 鐢辫皟鐢ㄦ柟浼犲叆)", "MES 璐ㄦ鍗� IQC/IPQC/OQC/RQC(generate-from-qc 缁� MesQcReportApi 鍙栨暟)"], "downstream": ["鍓嶇瀹炰緥椤� /qc/report-instance(鍒楄〃路iframe棰勮路蹇収椤电路瀵煎嚭PDF)", "PDF褰掓。(system_storage_attachment recordType=qc_report_instance)"], "keywords": "鎶ュ憡瀹炰緥 鍑轰欢 QR缂栧彿 蹇収 澶嶇幇 regenerate PDF褰掓。 鎶ュ憡瀹炰緥椤� 瀵煎嚭PDF generate-from-qc 璐ㄦ鍗曞嚭鎶ュ憡 鍑烘姤鍛婂脊绐� qcResult undecidableCount warnings 寰呭垽瀹� 鍙嶆煡 涓氬姟鍗曟嵁绛涢��"},
+ {"name": "鎶ラ攢鍗�", "module": "璐㈠姟鎶ラ攢", "table": "finance_reimbursement", "doc": "鍗曞彿鍙嚜瀹氫箟(涓棿涓嶅厑璁哥┖鏍硷紝涓庡凡鏈夊崟鍙烽噸澶嶅垯鎶ラ敊)锛涙柊澧炴椂鐣欑┖鎴栫函绌烘牸鐢辩郴缁熺敓鎴� BX+yyyyMMdd+6浣嶆祦姘�(Redis 姣忔棩閲嶇疆)锛屼慨鏀规椂鐣欑┖琛ㄧず淇濇寔涓嶅彉銆俿tatus: 0鑽夌/15瀹℃壒涓�/20宸查�氳繃/35宸查┏鍥�/40宸插綊妗o紱浠呰崏绋垮彲鍒犮�佽崏绋夸笌宸查┏鍥炲彲鏀广�佷粎宸查�氳繃鍙綊妗o紱鎻愪氦鍚庣敱 BPM 鐩戝惉鍣ㄦ寜缁撴灉鍥炲啓鐘舵��(鍙栨秷閫�鍥炶崏绋�)锛屽鎵逛腑 processInstanceId 琚洖鍐欍�傛潵婧愪袱鏉★細鈶� 璐㈠姟妯″潡椤甸潰浜哄伐濉姤 鈶¤棰樼鐞嗐�岀粡璐规嫧浠樸�嶇粡 FinanceReimbursementApi(yudao-module-finance-api)鑷姩寤哄崟骞剁珛鍗虫彁浜�(1:1銆侀噾棰濅竴鑷淬�佺郴缁熷浐瀹� 1 琛屾槑缁喡疯垂鐢ㄧ被鍨�=鍏朵粬)鈥斺�斿悗鑰呯殑瀹℃壒缁撴灉鐢辫棰樹晶 ResearchFundStatusListener 璁㈤槄鍚屼竴娴佺▼鍥炲啓鎷ㄦ鍙拌处锛屾姤閿�鍗曟湰韬笉鍥炲啓浠讳綍澶栭儴鍗曟嵁锛沘rchive_document_id 闈炵┖琛ㄧず宸插綊妗�", "upstream": ["璇鹃绠$悊(缁忚垂鎷ㄤ粯路缁� FinanceReimbursementApi 鑷姩寤哄崟)", "浜哄伐濉姤"], "downstream": ["鎶ラ攢鏄庣粏", "鍙戠エ闄勪欢(storage_attachment路recordType=finance_reimbursement)", "璇鹃鎷ㄦ鍙拌处(浠呯粡 BPM 浜嬩欢鍥炲啓鐘舵��)", "妗f绠$悊(鏃㈡湁褰掓。鍔ㄤ綔鍚屼簨鍔″彔鍔犅风敓鎴愩�屼繚瀵� 3銆嶇骇璐㈠姟妗f骞跺洖鍐� archive_document_id)"], "keywords": "鎶ラ攢鍗� 鎶ラ攢 鍙戠エ reimbursement BX 褰掓。 璐㈠姟 璐圭敤 鑷畾涔夊崟鍙� 璇鹃缁忚垂鎷ㄤ粯 鑷姩寤哄崟 FinanceReimbursementApi 璐㈠姟妗f 淇濆瘑 archive_document_id"},
+ {"name": "鎶ラ攢鏄庣粏", "module": "璐㈠姟鎶ラ攢", "table": "finance_reimbursement_item", "doc": "鎶ラ攢鍗曠殑璐圭敤琛岋細璐圭敤绫诲瀷(1宸梾/2鍔炲叕/3鎷涘緟/4浜ら��/5鍏朵粬)銆佸彂绁ㄥ彿鐮併�佸彂绁ㄩ噾棰濄�佸彂绁ㄦ棩鏈熴�佸紑绁ㄦ柟銆佽垂鐢ㄨ鏄庯紱闅忎富琛ㄤ竴娆℃�ф彁浜�(鍏堝垹鍚庡鍏ㄩ噺瑕嗙洊)锛屾彁浜ゆ椂蹇呴』鍓ユ帀琛� id 涓� reimbursementId 鈥斺�� 鏄庣粏鍒犻櫎鏄蒋鍒狅紝鍥炰紶鍘� id 浼氫笌宸茶蒋鍒犺涓婚敭鍐茬獊", "upstream": ["鎶ラ攢鍗�"], "downstream": [], "keywords": "鎶ラ攢鏄庣粏 璐圭敤鏄庣粏 璐圭敤绫诲瀷 鍙戠エ閲戦 item 鏄庣粏琛� 宸梾"},
+ {"name": "鍏ヤ細鐢宠鍗�", "module": "浼氬憳绠$悊", "table": "ums_application", "doc": "鍗曞彿 SQ+yyyyMMdd+6浣嶆祦姘�(Redis 姣忔棩閲嶇疆)锛屽悗绔敓鎴愪笉鍙嚜瀹氫箟锛沵emberType 1涓汉/2鍗曚綅鍐冲畾瀛楁鍒嗗弶(涓汉鐢� workUnit/title锛屽崟浣嶇敤 legalPerson/organizationCode)锛沵emberGrade 鎸夌被鍨嬪彇涓嶅悓瀛楀吀锛泂tatus: 0鑽夌/15瀹℃壒涓�/20宸查�氳繃/35宸查┏鍥炪�備粎鑽夌鍙垹(杩炲甫娓呴檮浠�)銆佽崏绋夸笌宸查┏鍥炲彲鏀瑰彲閲嶆彁锛涙彁浜ゅ悗鐢� BPM 鐩戝惉鍣ㄦ寜缁撴灉鍥炲啓(鍙栨秷閫�鍥炶崏绋�)锛屽鎵逛腑鍥炲啓 processInstanceId锛涘鎵归�氳繃瑙﹀彂鑷姩寤轰細鍛樹笌绯荤粺璐﹀彿銆傜嫭绔嬫ā鍧楋紝涓嶄笌鍏跺畠涓氬姟妯″潡浜х敓鍗曟嵁鍏宠仈", "upstream": ["浜哄伐濉姤(鐢宠浜�)", "璇佹槑鏉愭枡闄勪欢(storage_attachment路recordType=ums_application)"], "downstream": ["浼氬憳(瀹℃壒閫氳繃鑷姩鍒涘缓)", "BPM 娴佺▼瀹炰緥(ums_membership_approve 鍒嗙被)"], "keywords": "鍏ヤ細鐢宠 鍏ヤ細 浼氬憳鐢宠 application SQ 绉樹功澶� 鐞嗕簨浼� 瀹℃壒 浼氬憳绫诲瀷 涓汉 鍗曚綅 娉曞畾浠h〃浜� 鐮旂┒鏂瑰悜 鐢宠绛夌骇"},
+ {"name": "浼氬憳", "module": "浼氬憳绠$悊", "table": "ums_member", "doc": "鍗曞彿 HY+yyyyMMdd+6浣嶆祦姘�(Redis 姣忔棩閲嶇疆)锛涗袱涓潵婧愶細鈶犲叆浼氱敵璇峰鎵归�氳繃鑷姩鍒涘缓(鍥炲~ applicationId 涓� userName/绯荤粺璐﹀彿) 鈶′細鍛樺垪琛ㄦ墜宸ユ柊澧炪�俿tatus: 1姝e父/0鏆傚仠锛沵emberGrade 鎸� memberType 鍙栧搴斿瓧鍏革紝鏍¢獙瑙勫垯鏄崟浣嶄細鍛�(type=2)涓嶅彲閫夈�庣悊浜嬮暱銆�(grade=5)銆傝嚜鍔ㄥ缓妗f椂鍏ヤ細鏃ユ湡=褰撳ぉ銆佷笉鎼繍 contactUser/unitIntro/expireDate(鐢宠鍗曟棤瀵瑰簲瀛楁)锛涜嚜鍔ㄥ缓鐨勭郴缁熻处鍙风敤鎴峰悕涓鸿仈绯荤數璇濅笖鍒濆瀵嗙爜鍚屼负鑱旂郴鐢佃瘽锛岄儴闂ㄥ浐瀹氫负銆屽浼氫細鍛樸�嶏紱鎵嬫満鍙烽噸澶嶄細鏄庣‘鎶ラ敊涓旀暣鍗曚簨鍔″洖婊氾紱archive_document_id 闈炵┖琛ㄧず宸插綊妗o紙褰掓。鍚庡垪琛ㄩ〉闅愯棌銆屽綊妗c�嶆寜閽級", "upstream": ["鍏ヤ細鐢宠鍗�(瀹℃壒閫氳繃)", "浜哄伐鏂板", "闄勪欢(storage_attachment路recordType=ums_member)"], "downstream": ["浼氬憳閫氳褰�(鎸� regionCode/industry 妫�绱�)", "妗f绠$悊(鎵嬪姩銆屽綊妗c�嵚蜂粎姝e父鐘舵�佸彲褰掓。路缁� yudao-module-archive-api 鐢熸垚妗f骞跺洖鍐� archive_document_id)", "system_users(鐧诲綍璐﹀彿)"], "keywords": "浼氬憳 member HY 浼氬憳缂栧彿 浼氬憳绛夌骇 浼氬憳绫诲瀷 閫氳褰� 鍦板尯 琛屼笟 鍏ヤ細鏃ユ湡 鏈夋晥鏈� 褰掓。 archive_document_id"},
+ {"name": "璇鹃鎸囧崡", "module": "璇鹃绠$悊", "table": "research_guideline", "doc": "鎸囧崡缂栧彿 GL+yyyyMMdd+6浣嶆祦姘�(Redis 姣忔棩閲嶇疆)锛沜ategory 1閲嶇偣璇鹃/2涓�鑸棰橈紱publishStatus 0鑽夌/20宸插彂甯�/30宸叉埅姝紝浠呰崏绋垮彲鏀瑰彲鍒狅紝publish 鍙戝竷鍥炲啓 publishTime锛宑lose 鎴缃� 30锛涘凡浜х敓鐢虫姤鍗�(applicationMapper.selectCountByGuidelineId 澶т簬 0)鐨勬寚鍗楃姝㈠垹闄ゅ苟鍦ㄦ彁绀轰腑鎶ュ嚭璇ユ寚鍗椾笅宸叉湁澶氬皯寮犵敵鎶ュ崟锛涙鏂� content 涓洪暱鏂囨湰锛涢檮浠� recordType=research_guideline", "upstream": ["浜哄伐缁存姢(瀛︿細绉樹功澶�)", "鎸囧崡闄勪欢(storage_attachment路recordType=research_guideline)"], "downstream": ["璇鹃鐢虫姤涔�(鐢虫姤鏃跺紩鐢ㄤ笖蹇呴』宸插彂甯冨苟鍦ㄧ敵鎶ユ湡鍐�)"], "keywords": "璇鹃鎸囧崡 鎸囧崡 鍙戝竷 鎴 閲嶇偣璇鹃 涓�鑸棰� GL 鎸囧崡缂栧彿 鐢虫姤鏈� 鐢虫姤璧锋"},
+ {"name": "璇鹃鐢虫姤涔�", "module": "璇鹃绠$悊", "table": "research_application", "doc": "鐢虫姤缂栧彿 SB+yyyyMMdd+6浣嶆祦姘�(Redis 姣忔棩閲嶇疆)锛沢uidelineId 鍏宠仈鎸囧崡銆乵emberId 鍏宠仈 ums_member(杞叧鑱旀棤澶栭敭锛屼細鍛樺垹闄ゅ悗浼氱暀涓嬫偓绌� memberId 闇�瀹归敊鏄剧ず)锛沘pplicantName/workUnit/jobTitle/contactPhone/contactEmail 鐢遍�変細鍛樿嚜鍔ㄥ甫鍑哄彲鎵嬫敼锛沜ategory 鍐椾綑鑷寚鍗椾笖涓嶄俊浠诲墠绔紶鍊硷紱budgetAmount 鐢宠缁忚垂涓烘嫧浠樹笂闄愶紱status: 0鑽夌/15瀹℃壒涓�/20宸茬珛椤�/35宸查┏鍥炪�備粎鑽夌鍙垹(杩炲甫娓呴檮浠�)銆佽崏绋夸笌宸查┏鍥炲彲鏀瑰彲閲嶆彁锛泂ubmit 鍓嶉�愭潯鏍¢獙銆屾寚鍗楀凡鍙戝竷銆嶄笌銆岀幇鍦ㄥ湪鐢虫姤鏈熷唴銆嶏紝浠讳竴涓嶆弧瓒冲嵆鎷掔粷骞舵寜缁村害缁欏嚭鎸囧崡鍚嶄笌瀹為檯鍊硷紱瀹℃壒閫氳繃鐢辩洃鍚櫒鐢熸垚绔嬮」缂栧彿 researchNo(LX+鍚屾棩娴佹按)涓� approveTime(宸叉湁缂栧彿骞傜瓑璺宠繃)锛況eviewAvgScore/reviewPass 涓鸿瘎瀹℃眹鎬诲洖鍐欏�硷紝鏄庣粏鍒犵┖鏃舵竻鎴愭湭姹囨�伙紱noticeId 璁板綍宸插彂甯冪殑绔嬮」閫氱煡鍏憡锛岄噸澶嶅彂甯冭鎷︽埅锛沘rchive_document_id 闈炵┖琛ㄧず宸插綊妗o紙褰掓。鍚庡垪琛ㄩ〉闅愯棌銆屽綊妗c�嶆寜閽級", "upstream": ["璇鹃鎸囧崡(蹇呴』宸插彂甯冧笖鍦ㄧ敵鎶ユ湡鍐�)", "浼氬憳(ums_member路甯﹀嚭鐢虫姤浜轰俊鎭�)", "鐢虫姤闄勪欢(storage_attachment路recordType=research_application)"], "downstream": ["涓撳璇勫鏄庣粏", "缁忚垂鎷ㄤ粯璁板綍", "绔嬮」閫氱煡(system_notice 鍏憡)", "BPM 娴佺▼瀹炰緥(research_topic_approve 鍒嗙被)", "妗f绠$悊(鎵嬪姩銆屽綊妗c�嵚蜂粎宸茬珛椤瑰彲褰掓。路缁� yudao-module-archive-api 鐢熸垚妗f骞跺洖鍐� archive_document_id)", "闄勪欢涓績"], "keywords": "璇鹃鐢虫姤 鐢虫姤涔� 鐢虫姤鍗� SB 鐢虫姤缂栧彿 绔嬮」 绔嬮」缂栧彿 LX 鐢宠缁忚垂 鐢虫姤涔︽鏂� 璇鹃缁勬垚鍛� 涓撳璇勫 璇勫姹囨�� 绔嬮」閫氱煡 鍙戝竷閫氱煡 鎻愪氦瀹℃壒 椹冲洖 閲嶆彁 褰掓。 archive_document_id"},
+ {"name": "涓撳璇勫鏄庣粏", "module": "璇鹃绠$悊", "table": "research_topic_review", "doc": "涓�浣嶄笓瀹朵竴琛岀殑涓�涓诲琛屽瓙琛細evaluatorName/evaluatorUnit/evaluatorTitle + topicScore 閫夐浠峰�间笌鎰忎箟(鏉冮噸0.3) + planScore 鐮旂┒鏂规鍙鎬�(0.3) + teamScore 鍥㈤槦涓庣爺绌跺熀纭�(0.2) + resultScore 棰勬湡鎴愭灉涓庢晥鐩�(0.2) + conclusion 1鎺ㄨ崘绔嬮」/2涓嶆帹鑽愮珛椤� + opinion 璇勫鎰忚 + reviewTime銆俢ompositeScore 鐢卞悗绔� weightedScore 璁$畻銆乺anking 鐢卞悗绔寜鍔犳潈鍒嗛檷搴忛噸鎺掞紝鍧囦笉鎺ュ彈鍓嶇浼犲�硷紱姣忔澧炲垹鏀瑰悗璋� recalculate 鍥炲啓涓诲崟 reviewAvgScore(鍏ㄩ儴涓撳鍔犳潈鍒嗗潎鍊悸蜂繚鐣�2浣�)涓� reviewPass(鍧囧垎杈炬爣 涓� 澶氭暟缁撹涓烘帹鑽愮珛椤规椂涓� 1)锛涘洓椤瑰垎鍊艰秴鍑� 0~100 鏃舵彁绀烘寚鍑哄叿浣撶淮搴︿笌瀹為檯鍊硷紱浠呭湪鐢虫姤鍗� status=15 瀹℃壒涓彲澧炲垹鏀�", "upstream": ["璇鹃鐢虫姤涔�(浠呭鎵逛腑鍙啓)"], "downstream": ["璇鹃鐢虫姤涔�(鍥炲啓 reviewAvgScore/reviewPass)"], "keywords": "涓撳璇勫 璇勫鏄庣粏 璇勫垎 鍔犳潈 鏉冮噸 鎺掑悕 ranking compositeScore 鎺ㄨ崘绔嬮」 璇勫鎰忚 鍧囧垎"},
+ {"name": "妗f鍒嗙被", "module": "妗f绠$悊", "table": "archive_category", "doc": "鏍戝舰涔︽灦鍒嗙被(parentId路0=椤剁骇)锛屾壙杞姐�屽垎灞傚垎鍒椼�嶈鏁达細6 鏉″垵濮嬪垎绫� 浼氬憳妗f member / 璇鹃妗f research / 浼氳妗f meeting / 璐㈠姟妗f finance / 鏂囦功妗f document / 鍏氬缓妗f party锛沜ode 鍏ㄥ眬鍞竴 uk_code锛沝efaultSecretLevel 涓鸿鍒嗙被涓嬫。妗堢殑榛樿瀵嗙骇(1鍏紑/2鍐呴儴/3淇濆瘑锛岃储鍔″垎绫�=3)锛泂tatus 0鍚敤/1鍋滅敤銆備粎鍙敼鍙垹锛屾湁瀛愬垎绫荤鍒犮�佽鍒嗙被涓嬫湁妗f绂佸垹銆佺埗鍒嗙被涓嶈兘璁句负鑷韩鎴栧叾瀛愬垎绫汇�備細璁�/鍏氬缓妗f绯荤粺鍐呮棤鏉ユ簮妯″潡锛屼粎鏀寔鎵嬪伐褰曞叆妗f", "upstream": ["浜哄伐缁存姢(妗f绠$悊鍛�)"], "downstream": ["妗f(鏂板鏃跺甫鍑洪粯璁ゅ瘑绾�)"], "keywords": "妗f鍒嗙被 涔︽灦 鍒嗗眰鍒嗗垪 浼氬憳妗f 璇鹃妗f 浼氳妗f 璐㈠姟妗f 鏂囦功妗f 鍏氬缓妗f category 榛樿瀵嗙骇"},
+ {"name": "妗f", "module": "妗f绠$悊", "table": "archive_document", "doc": "妗f涓昏〃锛岀紪鍙� DA+yyyyMMdd+6浣嶆祦姘�(Redis 姣忔棩閲嶇疆)銆傜數瀛愪笌瀹炰綋鍏煎叿锛氱數瀛愯蛋 system 闄勪欢涓績 recordType=archive_document(琛ㄥ唴涓嶅瓨鏂囦欢鍦板潃)銆佸疄浣撹 shelfNo 涔︽灦鍙�/layerNo 灞傚彿/columnNo 鍒楀彿/boxNo 鍐屽彿妗f鐩� + storePlace 瀛樻斁浣嶇疆鎻忚堪銆俢arrierType 1鐢靛瓙/2瀹炰綋/3鐢靛瓙+瀹炰綋锛泂ecretLevel 1鍏紑/2鍐呴儴/3淇濆瘑(涓� 3 涓斿綋鍓嶇敤鎴锋棤 archive:document:sensitive 鏃惰鎯呮姤閿欍�佸垪琛ㄤ笌瀵煎嚭寮哄埗杩囨护)锛泂ourceType 1鎵嬪伐/2璇鹃/3浼氬憳/4璐㈠姟 + sourceNo/sourceId/sourceTitle 璁板綍鏉ユ簮蹇収浠ヤ究妫�绱紱status 10鍦ㄥ簱/20鍊熷嚭涓�(鍊熷嚭涓鏀广�佸瓨鍦ㄦ湭褰掕繕鍊熼槄鍗曟椂绂佸垹)銆傛潵婧愪负 2/3/4 鐨勬。妗堢敱涓夋柟鍒楄〃椤点�屽綊妗c�嶆寜閽粡 ArchiveDocumentApi.archiveBySource 鐢熸垚(骞傜瓑)锛屽苟鍥炲啓鏉ユ簮琛� archive_document_id", "upstream": ["妗f鍒嗙被", "妗f鐧昏(浜哄伐)", "璇鹃褰掓。(宸茬珛椤圭敵鎶ヤ功)", "浼氬憳褰掓。(姝e父浼氬憳)", "璐㈠姟褰掓。(宸查�氳繃鎶ラ攢鍗�)"], "downstream": ["鍊熼槄鍗�", "闄勪欢涓績(recordType=archive_document)", "鏉ユ簮琛� archive_document_id 鍥炲啓"], "keywords": "妗f 鏂囨。 document DA 妗f缂栧彿 瀵嗙骇 淇濆瘑 鍏紑 鍐呴儴 鏁忔劅妗f 杞戒綋 鐢靛瓙 瀹炰綋 涔︽灦鍙� 灞傚彿 鍒楀彿 鍐屽彿 妗f鐩� 褰掓。鏃ユ湡 鍦ㄥ簱 鍊熷嚭涓� 妫�绱� 鍏抽敭璇� tags 鏉ユ簮鍗曞彿 褰掓。鑱斿姩"},
+ {"name": "鍊熼槄鍗�", "module": "妗f绠$悊", "table": "archive_borrow", "doc": "鍊熼槄涓庡綊杩樺悎涓�锛岀紪鍙� JY+yyyyMMdd+6浣嶆祦姘�(Redis 姣忔棩閲嶇疆)銆傝褰曞�熼槄浜�/閮ㄩ棬/鐢佃瘽銆佸�熼槄鏃ユ湡銆佸�熼槄鐩殑銆佸綊杩樻湡闄�(returnDeadline路閫炬湡瀹炴椂璁$畻鍩哄噯)锛沝ocumentNo/documentTitle 涓烘。妗堝揩鐓с�俿tatus 0鑽夌/15瀹℃壒涓�/20鍊熷嚭涓�/30宸插綊杩�/35宸查┏鍥烇細浠� 0 涓� 35 鍙敼鍙噸鎻愩�佷粎 0 鍙垹銆佷粎 20 鍙櫥璁板綊杩樸�俿ubmit 鍓嶆牎楠屽悓涓�妗f涓嶅緱宸叉湁 15/20 鐨勫�熼槄鍗�(鍛戒腑鎶ュ凡鍊熺敤骞跺甫妗f鍚嶄笌宸插瓨鍦ㄥ�熼槄鍗曞彿)锛涙祦绋� key archive_borrow_approve 涓ょ骇(妗f绠$悊鍛樺鏍糕啋鍒嗙棰嗗瀹℃壒)锛屽墠绔笉鍐欐 key銆傚鎵归�氳繃鐢� ArchiveBorrowStatusListener 鍥炲啓 20+approveTime 骞舵潯浠舵洿鏂版。妗� SET status=20 WHERE status=10(褰卞搷 0 琛屾姤妗f宸茶鍗犵敤骞跺洖婊�)锛涘綊杩樼櫥璁版潯浠舵洿鏂� 20鈫�30 骞跺洖鍐� returnTime/褰掕繕纭浜恒�傞�炬湡涓嶈惤搴擄紝鏌ヨ鏃跺疄鏃剁畻 overdueDays 骞跺湪鍒楄〃娓叉煋绾㈣壊銆岄�炬湡 N 澶┿�嶏紝鍙︽湁 /overdue-page 鐙珛鍏ュ彛", "upstream": ["妗f(浠� 鍦ㄥ簱 10 鍙��)", "BPM(娴佺▼ archive_borrow_approve)", "浜哄伐鐧昏"], "downstream": ["妗f(鐘舵�� 20 鍊熷嚭涓� / 褰掕繕鍥� 10 鍦ㄥ簱)"], "keywords": "鍊熼槄 鍊熼槄鍗� 鍊熼槄鐧昏 褰掕繕 褰掕繕鐧昏 閫炬湡 閫炬湡鏈繕 鍊熼槄浜� 鍊熼槄鐩殑 褰掕繕鏈熼檺 JY 鍊熼槄鍗曞彿 妗f绠$悊鍛樺鏍� 鍒嗙棰嗗瀹℃壒 娴佽浆闂幆"},
+ {"name": "缁忚垂鎷ㄤ粯璁板綍", "module": "璇鹃绠$悊", "table": "research_fund_record", "doc": "涓�涓诲琛岀殑鎷ㄦ鍙拌处锛歜atchName 鎵规鍚嶇О/amount 鎷ㄤ粯閲戦/payDate 鎷ㄤ粯鏃ユ湡/payee 鏀舵鍗曚綅/remark锛屽嚟璇侀檮浠惰蛋 system 闄勪欢涓績 recordType=research_fund_record(琛ㄥ唴涓嶅瓨鏂囦欢鍦板潃)銆俿tatus: 0寰呮嫧浠�/15鎶ラ攢瀹℃壒涓�/20宸叉嫧浠�/30宸查┏鍥烇紝鐢辩郴缁熶笌 BPM 椹卞姩锛屾柊澧�/淇敼鎺ュ彛宸茬Щ闄� status 鍏ュ弬(闃蹭吉閫犮�屽凡鎷ㄤ粯銆�)銆傜櫥璁板嵆涓�鏉¢緳锛氳惤鍙拌处 鈫� 鍚屼竴鎵� blob 鍙岀粦 鈫� 缁� FinanceReimbursementApi 鑷姩鐢熸垚 1:1 鐨� finance_reimbursement 骞剁珛鍗虫彁浜� BPM 鈫� 鍥炲啓 reimbursement_id/reimbursement_no 骞剁疆 15锛涘鎵圭粨鏋滅敱鐩戝惉鍣ㄥ洖鍐欙細閫氳繃鈫�20銆侀┏鍥炩啋30(+reject_reason/reject_time)銆佸彇娑堟祦绋嬧啋閫�鍥� 0锛堝彂璧蜂汉鎾ゅ洖鍙��鍥炲彂璧疯妭鐐广�佹祦绋嬫湭缁撴潫锛岀姸鎬佷笉鍙橈級銆備粎鐢虫姤鍗� status=20 宸茬珛椤瑰彲鐧昏锛涘嚟璇佸繀濉紱閲戦鏍¢獙锛氬凡鐧昏閲戦(璇ュ崟鍏ㄩ儴璁板綍姹傚拰) + 鏈閲戦 涓嶅緱瓒呭嚭鐢虫姤鍗� budgetAmount锛岃秴鍑烘椂鎻愮ず鎶ュ嚭鏈銆佸凡鐧昏銆佸悎璁°�侀绠楀洓椤规暟鍊硷紱浠呫�屽緟鎷ㄤ粯銆嶅彲鍒�(鑱斿姩鍒犻櫎璐㈠姟渚ц崏绋挎姤閿�鍗曪紝闈炶崏绋垮垯鎷掔粷)锛屻�屽緟鎷ㄤ粯銆嶃�屽凡椹冲洖銆嶅彲鏀瑰苟閲嶆柊鍙戣捣鎶ラ攢(宸查┏鍥炴敼鍚庢竻绌� reject_reason/reject_time)锛岀紪杈戞椂鎶婃湰琛岄噾棰濆姞鍥炲彲鐢ㄤ綑棰濆睍绀洪伩鍏嶈瑙c�備笌鎶ラ攢鍗曚负杞叧鑱�(鏃犲閿�)锛岃储鍔′晶鐩存帴鍒犲崟浼氱暀涓嬫偓绌� reimbursement_id锛屾鏃朵慨鏀规姤銆屾姤閿�鍗曞凡涓嶅瓨鍦紝璇峰垹闄ゆ湰鏉¤褰曞悗閲嶆柊鐧昏銆�", "upstream": ["璇鹃鐢虫姤涔�(蹇呴』宸茬珛椤�)", "璐㈠姟鎶ラ攢鍗�(1:1 鑷姩鐢熸垚路杞叧鑱� reimbursement_id)"], "downstream": ["鎷ㄤ粯鍑瘉(storage_attachment路recordType=research_fund_record)", "璐㈠姟鎶ラ攢鍗�(鐢熸垚骞舵彁浜ゅ嚭璐β峰鎵圭粨鏋滃洖鍐欐湰鍙拌处)"], "keywords": "缁忚垂鎷ㄤ粯 鎷ㄦ 鎷ㄤ粯璁板綍 鎵规 鎷ㄤ粯閲戦 鍑瘉 寰呮嫧浠� 鎶ラ攢瀹℃壒涓� 宸叉嫧浠� 宸查┏鍥� 椹冲洖鍘熷洜 璐㈠姟鎶ラ攢鍗曞彿 reimbursement_id 鏀舵鍗曚綅 璧勫姪閲戦 棰勭畻 瓒呴 閲嶆柊鍙戣捣鎶ラ攢"}
]
}</script>
<script type="application/json" id="data-flows">{
@@ -548,6 +625,48 @@
{"stage": "鍒ゅ畾", "action": "闂鍒ゅ畾: 涓�鑸�/缁翠慨/閫�璐э紝涓ラ噸搴� 0-3", "roles": ["鍞悗宸ョ▼甯�"]},
{"stage": "缁翠慨", "action": "鐜板満/杩斿巶/杩滅▼缁翠慨锛岃垂鐢ㄤ笌缁撴灉璁板綍锛屽畬鎴愯仈鍔ㄥ伐鍗曞畬缁�", "roles": ["缁翠慨宸ョ▼甯�"]},
{"stage": "閫�璐�", "action": "閫�璐х敵璇峰鏍糕啋鑷姩寤� MES 閿�鍞��璐у崟(RQC)鈫掕川妫�/鍏ュ簱鍥炶皟鈫掗��娆惧洖璋冣啋鍏抽棴", "roles": ["鍞悗", "璐ㄦ", "璐㈠姟"]}]},
+ {"id": "finance", "name": "璐㈠姟鎶ラ攢娴佺▼", "mermaid": "mermaid/12-finance-flow.mmd", "color": "#3ec9a7",
+ "summary": "鐙珛璐㈠姟妯″潡锛坹udao-module-finance锛夛細鎶ラ攢鍗�(涓昏〃 + 1..n 鏄庣粏琛� + 鍙戠エ闄勪欢) 涓�娆℃�т繚瀛� 鈫� 鎻愪氦 BPM 瀹℃壒 鈫� 閫氳繃鍚庡綊妗g粓鎬侊紱椹冲洖鍙敼鍙戠エ閲嶆柊鎻愪氦銆傞檮浠惰蛋 system 闄勪欢涓績鎸� recordType=finance_reimbursement 缁戝畾锛屾ā鍧椾笉涓庡叾浠栦笟鍔℃ā鍧椾骇鐢熶换浣曞崟鎹叧鑱旀垨瀛楁甯﹀叆銆�",
+ "steps": [
+ {"stage": "濉姤", "action": "涓昏〃(鎶ラ攢鏍囬/鎶ラ攢鎬婚噾棰�/鐢宠鏃ユ湡/澶囨敞) + 鑷冲皯 1 琛屾槑缁�(璐圭敤绫诲瀷/鍙戠エ鍙风爜/鍙戠エ閲戦/鍙戠エ鏃ユ湡/寮�绁ㄦ柟/璐圭敤璇存槑)锛涙�婚噾棰濈敱鏄庣粏姹傚拰鍥炲~锛岀敤鎴峰彲鎵嬫敼锛屽悗绔笉鏍¢獙涓�鑷存��", "roles": ["鎶ラ攢浜�"]},
+ {"stage": "闄勪欢", "action": "鍙戠エ鍏堣皟 /system/storage-blob/upload 鍙� blobId锛涗繚瀛樻椂鎶婅鍗曞綋鍓嶅叏閮� blobId 鏀捐繘 blobIds 涓�璧锋彁浜わ紙鍏ㄩ噺鏇挎崲璇箟锛屼紶绌烘暟缁�=娓呯┖锛屼笉浼�=涓嶅姩锛�", "roles": ["鎶ラ攢浜�"]},
+ {"stage": "淇濆瓨", "action": "create 鐢� Redis 鐢熸垚鍗曞彿 BX+yyyyMMdd+6浣嶆祦姘�(姣忔棩閲嶇疆)锛涙槑缁嗗厛鍒犲悗澧炲叏閲忚鐩栦笖鎻愪氦鍓ユ帀琛� id锛泂tatus=0 鑽夌", "roles": ["鎶ラ攢浜�"]},
+ {"stage": "淇敼", "action": "update 浠呮斁琛� status=0 鑽夌 涓� status=35 宸查┏鍥烇紱delete 浠呮斁琛岃崏绋匡紙杩炲甫娓呯悊鏄庣粏涓庡彂绁ㄩ檮浠讹級", "roles": ["鎶ラ攢浜�"]},
+ {"stage": "瀹℃壒", "action": "submit 浼� id 涓� processDefinitionKey锛坬uery 鍙傛暟锛岃姹備綋涓虹┖锛夆啋 status=15 瀹℃壒涓� 骞跺洖鍐� processInstanceId锛汢PM 鐩戝惉鍣ㄦ寜缁撴灉鍥炲啓锛氶�氳繃鈫�20 宸查�氳繃銆侀┏鍥炩啋35 宸查┏鍥炪�佸彇娑堚啋閫�鍥� 0 鑽夌锛涙祦绋� key 鍙� approve-process-list 瀹炴椂鍒楄〃涓嶅啓姝�", "roles": ["鎶ラ攢浜�", "瀹℃壒浜�"]},
+ {"stage": "褰掓。", "action": "archive 浠呮斁琛� status=20 宸查�氳繃 鈫� status=40 宸插綊妗o紙缁堟�侊級骞跺啓鍏� archiveTime", "roles": ["璐㈠姟"]}]},
+ {"id": "ums", "name": "浼氬憳鍏ヤ細娴佺▼", "mermaid": "mermaid/13-ums-membership-flow.mmd", "color": "#d6955c",
+ "summary": "鐙珛浼氬憳妯″潡锛坹udao-module-ums锛夛細鍏ヤ細鐢宠鍗�(涓汉/鍗曚綅浜屽瀷 + 鐢宠绛夌骇 + 璇佹槑鏉愭枡闄勪欢) 鑽夌 鈫� 鎻愪氦 BPM 涓ょ骇瀹℃壒锛堢涔﹀鍒濆 鈫� 鐞嗕簨浼氬璁級鈫� 閫氳繃鍚庤嚜鍔ㄥ垱寤虹郴缁熺櫥褰曡处鍙蜂笌浼氬憳璁板綍 鈫� 浼氬憳杩涘叆鍒楄〃涓庨�氳褰曪紙鎸夊湴鍖�/琛屼笟妫�绱級銆傞┏鍥炲彲鏀瑰悗閲嶆彁锛屽彇娑堥��鍥炶崏绋裤�傛ā鍧椾笉涓庡叾浠栦笟鍔℃ā鍧椾骇鐢熷崟鎹叧鑱旓紝浠呭鐢� BPM 涓� system 闄勪欢涓績銆�",
+ "steps": [
+ {"stage": "濉姤", "action": "閫変細鍛樼被鍨� 1涓汉 / 2鍗曚綅锛�**闈炵鎴峰绫诲瀷锛岃�屾槸涓ゅ瀛楁**锛夛細涓汉濉� 濮撳悕/宸ヤ綔鍗曚綅/鑱岀О锛涘崟浣嶅~ 鍗曚綅鍚嶇О/娉曞畾浠h〃浜�/缁熶竴绀句細淇$敤浠g爜锛涘叡鏈� 鐮旂┒鏂瑰悜/鑱旂郴鐢佃瘽/閭/琛屼笟/鍦板尯缂栫爜/澶囨敞", "roles": ["鍏ヤ細鐢宠浜�", "浼氬憳绠$悊鍛�"]},
+ {"stage": "瀹氱骇", "action": "閫夌敵璇风瓑绾э紱绛夌骇瀛楀吀闅忎細鍛樼被鍨嬪垏鎹紙涓汉 ums_personal_grade / 鍗曚綅 ums_unit_grade锛夛紝鍓嶇鍒囨崲绫诲瀷鏃舵竻绌哄凡閫夌瓑绾�", "roles": ["鍏ヤ細鐢宠浜�"]},
+ {"stage": "闄勪欢", "action": "璇佹槑鏉愭枡鍏堣皟 /system/storage-blob/upload 鍙� blobId锛岄殢淇濆瓨璇锋眰鐨� blobIds 涓�璧锋彁浜わ紱缁戝畾 recordType=ums_application锛堜細鍛樹晶涓� ums_member锛�", "roles": ["鍏ヤ細鐢宠浜�"]},
+ {"stage": "淇濆瓨", "action": "create 鐢� Redis 鐢熸垚鐢宠缂栧彿 SQ+yyyyMMdd+6浣嶆祦姘达紙姣忔棩閲嶇疆锛夛紝鍚庣鐢熸垚涓嶅彲鑷畾涔夛紱status=0 鑽夌锛岃〃鍗曚笉濉姸鎬�", "roles": ["鍏ヤ細鐢宠浜�"]},
+ {"stage": "淇敼", "action": "update 浠呮斁琛� status=0 鑽夌 涓� status=35 宸查┏鍥烇紙椹冲洖鏃舵彁绀哄甫鐢宠缂栧彿锛夛紱delete 浠呮斁琛岃崏绋匡紝涓旇繛甯︽竻鐞嗚鍗曢檮浠�", "roles": ["鍏ヤ細鐢宠浜�", "浼氬憳绠$悊鍛�"]},
+ {"stage": "瀹℃壒", "action": "submit 浼� id 涓� processDefinitionKey锛坬uery 鍙傛暟锛夆啋 status=15 瀹℃壒涓苟鍥炲啓 processInstanceId锛汢PM 鐩戝惉鍣� UmsApplicationStatusListener 鎸夌粨鏋滃洖鍐欙細閫氳繃鈫�20銆侀┏鍥炩啋35銆佸彇娑堚啋閫�鍥� 0锛涙祦绋嬪垪琛ㄧ敱 approve-process-list 瀹炴椂鍙栵紙鍏堟牎楠� BPM 鍒嗙被 ums_membership_approve 瀛樺湪锛屽啀鎸� key 鍙栨湭鎸傝捣鐨勬渶楂樼増鏈級锛屼笉鍐欐 key", "roles": ["鍏ヤ細鐢宠浜�", "绉樹功澶勶紙鍒濆锛�", "鐞嗕簨浼氾紙瀹¤锛�"]},
+ {"stage": "寤烘。", "action": "瀹℃壒閫氳繃閽╁瓙鑷姩寤轰細鍛橈細鈶犵敓鎴愪細鍛樼紪鍙� HY+yyyyMMdd+6浣嶆祦姘� 鈶dminUserApi.createUser 寤虹郴缁熻处鍙凤紙鐢ㄦ埛鍚嶄笌鍒濆瀵嗙爜=鑱旂郴鐢佃瘽銆佹樀绉�=鐢宠浜哄鍚嶃�侀儴闂�=瀛︿細浼氬憳锛夆憿浼氬憳钀藉簱锛堝叆浼氭棩鏈�=褰撳ぉ銆佺姸鎬� 1 姝e父銆乤pplicationId 鍥炲~鏉ユ簮鐢宠鍗曪級锛涙墜鏈哄彿閲嶅浼氭槑纭姤閿�", "roles": ["绯荤粺鑷姩"]},
+ {"stage": "绠$悊涓庢绱�", "action": "浼氬憳鍒楄〃鏀寔鎵嬪伐鏂板/缂栬緫/鍒犻櫎锛堢瓑绾т笌绫诲瀷鏍¢獙锛氬崟浣嶄細鍛樹笉鍙�夈�庣悊浜嬮暱銆忥級锛涗細鍛橀�氳褰曚负鍙椤碉紝鎸夊湴鍖虹紪鐮佷笌琛屼笟妫�绱�", "roles": ["浼氬憳绠$悊鍛�", "鍏ㄤ綋鍙煡閫氳褰�"]}]},
+ {"id": "research", "name": "璇鹃绠$悊娴佺▼", "mermaid": "mermaid/14-research-flow.mmd", "color": "#e070a8",
+ "summary": "鐙珛绉戠爺妯″潡锛坹udao-module-research锛夛細瀛︿細鍙戝竷璇鹃鎸囧崡锛堥噸鐐�/涓�鑸垎绫伙級鈫� 浼氬憳鍦ㄧ嚎鎻愪氦璇鹃鐢虫姤涔� 鈫� 鎻愪氦 BPM 涓夌骇瀹℃壒锛堢涔﹀褰㈠紡瀹℃煡 鈫� 涓撳璇勫 鈫� 瀛︿細绔嬮」瀹℃壒锛夛紝涓撳璇勫垎浠ョ粨鏋勫寲鏄庣粏瀛愯〃璁板綍骞剁敱鍚庣鑷姩姹囨�诲姞鏉冨潎鍒嗐�佹帓鍚嶄笌鎺ㄨ崘缁撹 鈫� 瀹℃壒閫氳繃鐢熸垚绔嬮」缂栧彿骞跺彂甯冪郴缁熷叕鍛� 鈫� 鎸夋壒娆$櫥璁扮粡璐规嫧浠橈紙鍑瘉蹇呭~锛夛紝姣忔潯鎷ㄦ璁板綍鑷姩鐢熸垚骞舵彁浜や竴寮� 1:1 鐨勮储鍔℃姤閿�鍗曪紙finance_reimbursement锛夛紝璧� BPM 涓ょ骇瀹℃壒鍚庣敱鐩戝惉鍣ㄦ妸缁撴灉鍥炲啓鍙拌处銆傞櫌绾т簩鏈熷啀琛ョ粨椤归獙鏀朵笌鎴愭灉褰掓。銆�",
+ "steps": [
+ {"stage": "鍙戝竷鎸囧崡", "action": "鏂板缓鎸囧崡閫夌被鍒� 1閲嶇偣璇鹃 / 2涓�鑸棰橈紝濉敵鎶ヨ捣姝㈡椂闂翠笌鎸囧崡姝f枃锛涚紪鍙� GL+yyyyMMdd+6浣嶆祦姘达紙Redis 姣忔棩閲嶇疆锛夛紱status: 0鑽夌/20宸插彂甯�/30宸叉埅姝€�備粎鑽夌鍙敼鍙垹锛屽彂甯冨悗鍗冲喕缁擄紱宸蹭骇鐢熺敵鎶ュ崟鐨勬寚鍗楃姝㈠垹闄わ紙鎻愮ず璇ユ寚鍗椾笅宸叉湁 N 寮犵敵鎶ュ崟锛�", "roles": ["瀛︿細绉樹功澶�", "璇鹃绠$悊鍛�"]},
+ {"stage": "鍦ㄧ嚎鐢虫姤", "action": "浠庡凡鍙戝竷涓斿湪鐢虫姤鏈熷唴鐨勬寚鍗楁柊寤虹敵鎶ヤ功锛涢�変細鍛橈紙ums_member锛夎嚜鍔ㄥ甫鍑哄鍚�/宸ヤ綔鍗曚綅/鑱岀О/鑱旂郴鐢佃瘽/閭锛屽彲鏀癸紱濉棰樺悕绉般�佽棰樼粍鎴愬憳銆佺敵璇风粡璐广�佺敵鎶ヤ功姝f枃锛涚紪鍙� SB+yyyyMMdd+6浣嶆祦姘达紱绫诲埆鍐椾綑鑷寚鍗楋紝涓嶄俊浠诲墠绔紶鍊硷紱status: 0鑽夌", "roles": ["璇鹃鐢虫姤浜猴紙浼氬憳锛�", "璇鹃绠$悊鍛�"]},
+ {"stage": "鎻愪氦瀹℃壒", "action": "submit 浼� id 涓� processDefinitionKey锛坬uery 鍙傛暟锛夆啋 status=15 瀹℃壒涓苟鍥炲啓 processInstanceId銆傛彁浜ゅ墠閫愭潯鏍¢獙锛氣憼 鎸囧崡蹇呴』宸插彂甯� 鈶� 褰撳墠鏃堕棿蹇呴』鍦ㄧ敵鎶ヨ捣姝㈡湡鍐呪�斺�斾换涓�涓嶆弧瓒冲嵆鎷掔粷锛屾彁绀哄甫鎸囧崡鍚嶄笌瀹為檯鐘舵�佹垨璧锋鏃堕棿锛涗粎鑽夌涓庡凡椹冲洖鍙敼鍙噸鎻愶紝浠呰崏绋垮彲鍒狅紙杩炲甫娓呴檮浠讹級", "roles": ["璇鹃鐢虫姤浜�"]},
+ {"stage": "涓撳璇勫", "action": "鐢虫姤鍗曞浜庡鎵逛腑(15)鏃跺綍鍏ヤ笓瀹惰瘎鍒嗘槑缁嗭紙涓�浣嶄笓瀹朵竴琛岋細濮撳悕/鍗曚綅/鑱岀О + 閫夐浠峰��0.3/鐮旂┒鏂规0.3/鍥㈤槦鍩虹0.2/棰勬湡鎴愭灉0.2 鍥涢」鍒嗗�� + 缁撹 + 鎰忚锛夛紱鍚庣姣忔澧炲垹鏀瑰悗閲嶇畻 compositeScore 鍔犳潈鍚堣銆佹寜鍔犳潈鍒嗛檷搴忛噸鎺� ranking锛屽苟鍥炲啓涓诲崟 reviewAvgScore锛堝叏閮ㄤ笓瀹跺潎鍒嗭級涓� reviewPass锛堝潎鍒嗚揪鏍囦笖澶氭暟缁撹涓烘帹鑽愮珛椤癸級锛涙槑缁嗗叏閮ㄥ垹闄ゆ椂姹囨�诲�兼竻绌轰负鏈眹鎬伙紱鍥涢」鍒嗗�煎潎鍦� 0~100 涔嬪鏃舵彁绀烘寚鍑哄叿浣撶淮搴︿笌瀹為檯鍊�", "roles": ["璇勫涓撳", "瀛︿細绉樹功澶�", "璇鹃绠$悊鍛�"]},
+ {"stage": "绔嬮」瀹℃壒", "action": "BPM 娴佺▼ research_topic_approve 椤哄簭璧颁笁鑺傜偣锛氱涔﹀褰㈠紡瀹℃煡 鈫� 涓撳璇勫 鈫� 瀛︿細绔嬮」瀹℃壒銆傚鎵规柟娉曚笌瀹℃壒浜哄湪娴佺▼瀹氫箟鍐呴厤缃紝閮ㄧ讲鍚庣敱绠$悊鍛樺湪 BPM 娴佺▼璁捐鍣ㄦ寜瀛︿細瀹為檯缁勭粐璋冩暣锛涘鎵逛腑蹇冨唴鐨勮嚜瀹氫箟琛ㄥ崟鍙鍥炴樉鐢虫姤鍗� + 璇勫鏄庣粏 + 鎷ㄤ粯璁板綍銆傞�氳繃鈫�20 宸茬珛椤广�侀┏鍥炩啋35 宸查┏鍥炪�佸彇娑堚啋閫�鍥� 0 鑽夌", "roles": ["瀛︿細绉樹功澶勶紙褰㈠紡瀹℃煡锛�", "璇勫涓撳锛堣瘎瀹¤妭鐐癸級", "瀛︿細鐞嗕簨浼氾紙绔嬮」瀹℃壒锛�"]},
+ {"stage": "绔嬮」涓庨�氱煡", "action": "鐩戝惉鍣� ResearchApplicationStatusListener 鍏堝洖鍐欏鎵圭姸鎬侊紝瀹℃壒閫氳繃鍚庡啀璋� approveApplication锛氱敓鎴愮珛椤圭紪鍙� LX+yyyyMMdd+6浣嶆祦姘� 涓� approveTime锛堝凡鏈夌紪鍙峰垯骞傜瓑璺宠繃锛夈�傜偣銆屽彂甯冪珛椤归�氱煡銆嶇敓鎴� system_notice 鍏憡锛堟爣棰樸�庡叧浜庡叕甯冪珛椤硅棰樼殑閫氱煡銆忥紝姝f枃鍚棰樺悕/绔嬮」缂栧彿/绫诲埆/鐢虫姤浜�/鍗曚綅/璧勫姪閲戦锛夛紝鍐欏洖 noticeId 闃查噸澶嶁�斺�旈噸澶嶇偣鍑绘寜宸插彂甯冩嫤鎴苟鍛婄煡涓婃鍙戝竷鏃堕棿", "roles": ["璇鹃绠$悊鍛�", "瀛︿細绉樹功澶�"]},
+ {"stage": "缁忚垂鎷ㄤ粯", "action": "浠呫�屽凡绔嬮」(20)銆嶇殑鐢虫姤鍗曞彲鐧昏鎷ㄦ璁板綍锛堟壒娆″悕绉�/鎷ㄤ粯閲戦/鎷ㄤ粯鏃ユ湡/鏀舵鍗曚綅/澶囨敞/鍑瘉闄勪欢锛夛紝鍑瘉蹇呭~銆傜櫥璁版椂涓�鏉¢緳瀹屾垚锛氣憼 璇鹃渚ц惤 research_fund_record 鍙拌处锛堝厛缃緟鎷ㄤ粯锛夆憽 鍚屼竴鎵� blob 鍙岀粦鍒拌棰樺彴璐︿笌璐㈠姟鎶ラ攢鍗� 鈶� 缁� yudao-module-finance-api 鑷姩鐢熸垚 1:1 鐨� finance_reimbursement 鎶ラ攢鍗曪紙1 琛屾槑缁嗭細璐圭敤绫诲瀷=鍏朵粬銆佸彂绁ㄩ噾棰�=鎷ㄤ粯閲戦銆佸彂绁ㄦ棩鏈�=鎷ㄤ粯鏃ユ湡銆佽垂鐢ㄨ鏄�=銆岃棰樸�旇棰樺悕銆曠N鏈�/绗琋娆$粡璐规嫧娆俱�嶏級鈶� 绔嬪嵆鎻愪氦 BPM 鎶ラ攢瀹℃壒 鈶� 鍙拌处鍥炲啓鎶ラ攢鍗曞彿骞剁疆銆屾姤閿�瀹℃壒涓�(15)銆嶃�傞噾棰濇牎楠岋細宸茬櫥璁伴噾棰� + 鏈閲戦 涓嶅緱瓒呭嚭璇ュ崟鐢宠缁忚垂锛岃秴鍑烘椂鎻愮ず鎶ュ嚭鏈銆佸凡鐧昏銆佸悎璁°�侀绠楀洓椤规暟鍊笺�傜姸鎬佺敱绯荤粺椹卞姩锛�0寰呮嫧浠�/15鎶ラ攢瀹℃壒涓�/20宸叉嫧浠�/30宸查┏鍥烇紱鍙湁銆屽緟鎷ㄤ粯銆嶅彲鍒狅紙鍒犻櫎鑱斿姩娓呯悊璐㈠姟渚ц崏绋挎姤閿�鍗曪級锛屻�屽緟鎷ㄤ粯銆嶃�屽凡椹冲洖銆嶅彲鏀瑰苟閲嶆柊鍙戣捣鎶ラ攢锛堝凡椹冲洖鏀瑰悗娓呯┖椹冲洖鍘熷洜涓庢椂闂达級锛涘彇娑堟祦绋嬪垯閫�鍥炪�屽緟鎷ㄤ粯(0)銆嶏紙鍙戣捣浜烘挙鍥炲彧鎶婂疄渚嬮��鍥炲彂璧疯妭鐐广�佹祦绋嬫湭缁撴潫锛屽彴璐︿繚鎸併�屾姤閿�瀹℃壒涓�(15)銆嶏紝闇�閲嶆柊鎻愪氦鍚庢墠缁х画璧板鎵癸級銆傝储鍔″鎵瑰垎绫讳笅娌℃湁宸插彂甯冩祦绋嬫椂鐩存帴鎶ラ敊涓斾笉寤哄崟锛屼笉鐣欏鍎胯崏绋挎姤閿�鍗�", "roles": ["瀛︿細璐㈠姟", "璇鹃绠$悊鍛�", "璐㈠姟瀹℃牳浜�", "璐㈠姟涓荤"]}]},
+ {"id": "archive", "name": "妗f绠$悊娴佺▼", "mermaid": "mermaid/15-archive-flow.mmd", "color": "#7fb3d5",
+ "summary": "鐙珛妗f妯″潡锛坹udao-module-archive锛夛細涔︽灦鍒嗙被锛堝垎灞傚垎鍒楋級瑙勬暣 鈫� 妗f鐧昏锛堢數瀛愰檮浠� + 瀹炰綋浣嶇疆鍥涘瓧娈碉紝瀵嗙骇涓夋。锛夆啋 鍊熼槄鐧昏璧� BPM 涓ょ骇瀹℃壒锛堟。妗堢鐞嗗憳瀹℃牳 鈫� 鍒嗙棰嗗瀹℃壒锛夆啋 瀹℃壒閫氳繃妗f杞�屽�熷嚭涓�嶁啋 褰掕繕鐧昏鍥炪�屽湪搴撱�嶅舰鎴愭祦杞棴鐜� 鈫� 閫炬湡鏈繕鏌ヨ鏃跺疄鏃惰绠楀苟鍦ㄥ垪琛ㄦ爣绾� 鈫� 瀛橀噺涓庢祦杞粺璁★紙鎬绘暟/鍦ㄥ簱/鍊熷嚭涓�/閫炬湡 + 鍒嗙被路瀵嗙骇路杞戒綋涓夌粍鍒嗗竷锛夈�傚悓鏃舵帴鏀惰棰橈紙宸茬珛椤癸級銆佷細鍛橈紙姝e父锛夈�佽储鍔★紙宸查�氳繃锛変笁鏂圭殑銆屽綊妗c�嶈仈鍔紝缁忔柊寤虹殑 yudao-module-archive-api 鐢熸垚妗f骞跺洖鍐欐潵婧愯〃 archive_document_id銆備細璁�/鍏氬缓妗f绯荤粺鍐呮棤鏉ユ簮妯″潡锛屼粎鎵嬪伐褰曞叆銆�",
+ "steps": [
+ {"stage": "寤哄垎绫�", "action": "鏂板缓鍒嗙被鍙寕鐖跺垎绫诲舰鎴愬垎绫绘爲锛堢紪鐮� code 鍏ㄥ眬鍞竴锛夛紝璁炬帓搴忋�佽鏄庛�侀粯璁ゅ瘑绾т笌鍚敤鐘舵�侊紱6 鏉″垵濮嬪垎绫伙細浼氬憳妗f/璇鹃妗f/浼氳妗f/璐㈠姟妗f锛堥粯璁ゅ瘑绾�=淇濆瘑 3锛�/鏂囦功妗f/鍏氬缓妗f銆傛湁瀛愬垎绫绘垨璇ュ垎绫讳笅宸叉湁妗f鏃剁姝㈠垹闄わ紱鐖跺垎绫讳笉鑳借涓鸿嚜韬垨鍏跺瓙鍒嗙被", "roles": ["妗f绠$悊鍛�"]},
+ {"stage": "鐧昏妗f", "action": "濉爣棰樸�佸垎绫汇�佸瘑绾э紙1鍏紑/2鍐呴儴/3淇濆瘑锛夈�佽浇浣擄紙1鐢靛瓙/2瀹炰綋/3鐢靛瓙+瀹炰綋锛夈�佸綊妗f棩鏈熴�佹憳瑕併�佸叧閿瘝锛涢�夌數瀛愬垯涓婁紶闄勪欢锛堣蛋 system 闄勪欢涓績锛宺ecordType=archive_document锛屽厛 /system/storage-blob/upload 鍙� blobId 鍐嶉殢淇濆瓨璇锋眰鐨� blobIds 鎻愪氦锛屽叏閲忔浛鎹㈣涔夛級锛岄�夊疄浣撳垯濉功鏋跺彿/灞傚彿/鍒楀彿/鍐屽彿妗f鐩掍笌瀛樻斁浣嶇疆鎻忚堪锛涘悗绔敓鎴愭。妗堢紪鍙� DA+yyyyMMdd+6浣嶆祦姘达紙Redis 姣忔棩閲嶇疆锛夛紝鐘舵�併�屽湪搴�(10)銆�", "roles": ["妗f绠$悊鍛�"]},
+ {"stage": "妫�绱�", "action": "鎸夋。妗堢紪鍙�/鏍囬/鍏抽敭璇� tags/鏉ユ簮鍗曞彿/鍒嗙被/瀵嗙骇/杞戒綋/鐘舵��/褰掓。鏃ユ湡鍖洪棿澶氭潯浠舵绱紝鏀寔 Excel 瀵煎嚭銆傚瘑绾�=淇濆瘑(3) 鐨勬。妗堬細褰撳墠鐢ㄦ埛鏃� archive:document:sensitive 鏃跺垪琛ㄤ笌瀵煎嚭寮哄埗杩囨护鎺夈�佺洿杩炶鎯呮帴鍙f姤鏃犳潈闄愰敊璇�", "roles": ["妗f绠$悊鍛�", "鍏ㄥ憳鍙煡鍏紑妗�"]},
+ {"stage": "涓夋柟褰掓。", "action": "璇鹃鐢虫姤涔︼紙浠呭凡绔嬮」 20锛夈�佷細鍛橈紙浠呮甯� 1锛夈�佽储鍔℃姤閿�鍗曪紙浠呭凡閫氳繃 20锛夌殑鍒楄〃椤靛悇鏈変竴涓�屽綊妗c�嶆寜閽紝缁� yudao-module-archive-api 鐨� archiveBySource 鎸夈�屾潵婧愮被鍨� + 鏉ユ簮鍗曟嵁 ID銆嶅箓绛夌敓鎴愭。妗堬紙鏉ユ簮鍗曞彿/鏍囬浣滀负蹇収瀛樺叆妗f锛屾簮鍗曢檮浠朵竴骞跺甫鍏ユ。妗堬紱璐㈠姟妗f瀵嗙骇鍥哄畾涓恒�屼繚瀵嗐�嶏級锛屽苟鍥炲啓鏉ユ簮琛� archive_document_id 浣滀负宸插綊妗g‖鏍囪锛涢噸澶嶇偣鍑荤敱鏉ユ簮渚ф嫤鎴苟鎻愮ず宸茬敓鎴愮殑妗f缂栧彿銆傝储鍔′晶銆屽綊妗c�嶄笌鍏舵棦鏈� 20鈫�40 鐘舵�佹帹杩涘湪鍚屼竴浜嬪姟鍐呭彔鍔犳墽琛�", "roles": ["璇鹃绠$悊鍛�", "浼氬憳绠$悊鍛�", "璐㈠姟"]},
+ {"stage": "鍊熼槄鐧昏", "action": "閫夋。妗堬紙浠呫�屽湪搴�(10)銆嶅彲閫夛級銆佸~鍊熼槄浜�/閮ㄩ棬/鑱旂郴鐢佃瘽銆佸�熼槄鏃ユ湡銆佸�熼槄鐩殑銆佸綊杩樻湡闄愶紱鐢熸垚鍊熼槄鍗曞彿 JY+yyyyMMdd+6浣嶆祦姘达紝鐘舵�併�岃崏绋�(0)銆嶃�傛彁浜ゅ墠鏍¢獙鍚屼竴妗f涓嶅緱瀛樺湪銆屽鎵逛腑(15)銆嶆垨銆屽�熷嚭涓�(20)銆嶇殑鍊熼槄鍗曪紝鍛戒腑鏃舵寜宸插瓨鍦ㄧ殑鍊熼槄鍗曞彿绮剧‘鎶ラ敊锛泂ubmit 鍏堣В鏋愭祦绋嬪垪琛紙鏃犲凡鍙戝竷娴佺▼鐩存帴鎶ラ敊銆佷笉鐣欏鍎胯崏绋匡級鍐嶅缓鍗曪紝鍥炲啓 processInstanceId 骞剁疆銆屽鎵逛腑(15)銆�", "roles": ["鍊熼槄浜�", "妗f绠$悊鍛�"]},
+ {"stage": "鍊熼槄瀹℃壒", "action": "BPM 娴佺▼ archive_borrow_approve 涓ょ骇椤哄簭瀹℃壒锛氭。妗堢鐞嗗憳瀹℃牳 鈫� 鍒嗙棰嗗瀹℃壒锛堝鎵规柟娉曚笌瀹℃壒浜哄湪娴佺▼瀹氫箟鍐呴厤缃紝鍓嶇鍙�夋祦绋嬩笉鍐欐 key锛涘鎵逛腑蹇冪粡鑷畾涔夎〃鍗曟煡鐪嬭矾寰� /archive/borrow/detail/approve/index.vue 鍙鍥炴樉鍊熼槄鍗曚笌妗f淇℃伅锛夈�傚鎵归�氳繃鐢� ArchiveBorrowStatusListener 缃�屽�熷嚭涓�(20)銆嶅苟鍥炲啓 approveTime锛屽悓鏃舵潯浠舵洿鏂版。妗堢姸鎬佷负銆屽�熷嚭涓�嶏紙褰卞搷 0 琛岃鏄庢。妗堝凡琚叾瀹冩祦绋嬪崰鐢� 鈫� 鎶ラ敊骞跺洖婊氾紝淇濊瘉鍚屼竴妗f涓嶄細琚袱鏉℃祦绋嬪悓鏃跺�熷嚭锛夛紱椹冲洖缃�屽凡椹冲洖(35)銆嶅苟鍥炲啓椹冲洖鍘熷洜涓庢椂闂达紝淇敼鍚庡彲閲嶆柊鎻愪氦锛涘彇娑堟祦绋嬮��鍥炪�岃崏绋�(0)銆�", "roles": ["妗f绠$悊鍛橈紙瀹℃牳锛�", "鍒嗙棰嗗锛堝鎵癸級"]},
+ {"stage": "褰掕繕鐧昏", "action": "浠呫�屽�熷嚭涓�(20)銆嶅彲鐧昏褰掕繕锛氬~褰掕繕澶囨敞 鈫� 鏉′欢鏇存柊鍊熼槄鍗曠姸鎬佸埌銆屽凡褰掕繕(30)銆嶅苟鍥炲啓 returnTime 涓庡綊杩樼‘璁や汉锛屽悓鏃舵潯浠舵洿鏂版。妗堝洖銆屽湪搴�(10)銆嶏紝褰㈡垚瀹屾暣娴佽浆闂幆锛涙洿鏂� 0 琛岃鏄庣姸鎬佸凡鍙樺寲锛屾姤鏄庣‘閿欒", "roles": ["妗f绠$悊鍛�"]},
+ {"stage": "閫炬湡鎻愰啋", "action": "涓嶅缓瀹氭椂浠诲姟銆佷笉鍙戠珯鍐呬俊锛氶�炬湡浠呭湪鏌ヨ鏃跺疄鏃惰绠楋紙鐘舵��=鍊熷嚭涓� 涓� 褰掕繕鏈熼檺鏃╀簬浠婂ぉ锛岄�炬湡澶╂暟=浠婂ぉ鈭掑綊杩樻湡闄愶級锛屽�熼槄鍒楄〃鐨勩�岄�炬湡銆嶅垪娓叉煋绾㈣壊銆岄�炬湡 N 澶┿�嶆爣绛撅紱鍙︽彁渚� /archive/borrow/overdue-page 鐙珛鍏ュ彛锛屽垪琛ㄩ〉鏈夈�屽彧鐪嬮�炬湡銆嶅垏鎹㈠湪 /page 涓� /overdue-page 涔嬮棿鍒囨崲鏁版嵁婧�", "roles": ["妗f绠$悊鍛�"]},
+ {"stage": "妗f缁熻", "action": "缁熻椤靛睍绀烘。妗堟�绘暟銆佸湪搴撴暟銆佸�熷嚭涓暟銆侀�炬湡鏈繕鏁板洓寮犲崱鐗囷紝浠ュ強鎸夊垎绫诲垎甯冿紙楗煎浘锛夈�佹寜瀵嗙骇鍒嗗竷锛堟煴鍥撅級銆佹寜杞戒綋鍒嗗竷锛堥ゼ鍥撅級涓夌粍鍒嗗竷锛屾暟鎹潵鑷� /archive/stat/overview 鐨勫崟娆¤仛鍚堟煡璇�", "roles": ["妗f绠$悊鍛�", "绠$悊灞�"]}]},
{"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": [
@@ -579,7 +698,15 @@
{"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": "鍙"}
+ {"role": "绠$悊灞�", "modules": ["BI"], "operations": ["鏌ョ湅閲囪喘閿�鍞�/浠撳簱/鐢熶骇璁惧/璐ㄩ噺/浜哄姏浜斿ぇ涓婚澶у睆"], "data": ["bi_dashboard"], "scope": "鍙"},
+ {"role": "鍏ヤ細鐢宠浜�/浼氬憳绠$悊鍛�", "modules": ["UMS"], "operations": ["濉姤涓庝慨鏀瑰叆浼氱敵璇�(涓汉/鍗曚綅)", "涓婁紶璇佹槑鏉愭枡闄勪欢", "鎻愪氦 BPM 瀹℃壒", "浼氬憳鍒楄〃缁存姢涓庝細鍛橀�氳褰曟绱�"], "data": ["ums_application", "ums_member"], "scope": "鏉冮檺鐮� ums:application:create/update/delete/submit 路 ums:member:create/update/delete/query 路 ums:member:directory锛涙棤鏁版嵁鏉冮檺闅旂(鍏ㄥ憳鍙煡閫氳褰曪紝缁存姢绫绘寜閽彟鍑潈闄愮爜)"},
+ {"role": "绉樹功澶�/鐞嗕簨浼�(瀹℃壒浜�)", "modules": ["UMS", "BPM"], "operations": ["鍏ヤ細鐢宠涓ょ骇瀹℃壒锛氱涔﹀鍒濆 鈫� 鐞嗕簨浼氬璁�"], "data": ["ums_application(鐘舵�佸洖鍐�)", "bpm_task"], "scope": "瀹℃壒浜虹敱 BPM 娴佺▼瀹氫箟閰嶇疆锛屽悗绔笉鍐欐锛涢�氳繃鍚庣郴缁熻嚜鍔ㄥ缓浼氬憳涓庣櫥褰曡处鍙�"},
+ {"role": "璇鹃鐢虫姤浜�/璇鹃绠$悊鍛�", "modules": ["RES"], "operations": ["璇鹃鎸囧崡鍙戝竷涓庢埅姝�(璇鹃绠$悊鍛�)", "鏂板缓涓庝慨鏀硅棰樼敵鎶ヤ功(閫変細鍛樺甫鍑虹敵鎶ヤ汉淇℃伅銆佷笂浼犵敵鎶ラ檮浠�)", "鎻愪氦 BPM 瀹℃壒銆侀┏鍥炲悗淇敼閲嶆彁", "姣忔湀/姣忔壒娆$櫥璁扮粡璐规嫧浠樿褰曚笌鍑瘉", "鍙戝竷绔嬮」閫氱煡"], "data": ["research_guideline", "research_application", "research_topic_review", "research_fund_record"], "scope": "鏉冮檺鐮� research:guideline:create/update/delete/publish 路 research:application:create/update/delete/submit/notice 路 research:review:create/update/delete 路 research:fund:create/update/delete锛涙棤鏁版嵁鏉冮檺闅旂(鍒楄〃涓嶆寜鐢宠浜鸿繃婊�)锛屾寜閽嚟鏉冮檺鐮佹帶鍒�"},
+ {"role": "妗f绠$悊鍛�", "modules": ["ARC"], "operations": ["妗f鍒嗙被(涔︽灦)缁存姢锛氬垎灞傚缓绫汇�佽榛樿瀵嗙骇銆佸惎鐢ㄥ仠鐢�", "妗f鐧昏涓庡鏉′欢妫�绱�/瀵煎嚭锛堢數瀛愰檮浠� + 瀹炰綋浣嶇疆鍥涘瓧娈点�佸瘑绾т笁妗o級", "鍊熼槄鐧昏銆佹彁浜ゅ鎵�", "褰掕繕鐧昏涓庡綊杩樺娉�", "鏌ョ湅妗f缁熻锛堝瓨閲忎笌娴佽浆锛�"], "data": ["archive_category", "archive_document", "archive_borrow"], "scope": "鏉冮檺鐮� archive:category:create/update/delete/query 路 archive:document:create/update/delete/query/export 路 archive:borrow:create/update/delete/query/submit/return 路 archive:stat:query锛涘瘑绾�=淇濆瘑(3) 鐨勬。妗堝彟闇� archive:document:sensitive 鎵嶈兘鏌ョ湅锛屾棤璇ユ潈闄愭椂鍒楄〃涓庡鍑哄己鍒惰繃婊わ紱鏃犳暟鎹潈闄愰殧绂�(鍒楄〃涓嶆寜浜鸿繃婊�)锛屾寜閽嚟鏉冮檺鐮佹帶鍒�"},
+ {"role": "鍊熼槄浜�", "modules": ["ARC"], "operations": ["鐧昏鍊熼槄鍗曪紙閫夊湪搴撴。妗堛�佸~鍊熼槄浜轰俊鎭�/鍊熼槄鏃ユ湡/鍊熼槄鐩殑/褰掕繕鏈熼檺锛�", "鎻愪氦 BPM 鍊熼槄瀹℃壒", "鏌ョ湅鍊熼槄杩涘害锛堣烦 BPM 娴佺▼瀹炰緥璇︽儏锛�"], "data": ["archive_borrow", "archive_document(浠� 鍦ㄥ簱 10 鍙��)"], "scope": "鏉冮檺鐮� archive:borrow:create/query/submit锛涗粎鑽夌(0)涓庡凡椹冲洖(35)鍙敼鍙噸鎻愩�佷粎鑽夌鍙垹锛涘悓涓�妗f涓嶅緱鍚屾椂瀛樺湪瀹℃壒涓�(15)鎴栧�熷嚭涓�(20)鐨勫�熼槄鍗�"},
+ {"role": "妗f绠$悊鍛�/鍒嗙棰嗗(鍊熼槄瀹℃壒浜�)", "modules": ["ARC", "BPM"], "operations": ["鍊熼槄瀹℃壒涓ょ骇锛氭。妗堢鐞嗗憳瀹℃牳 鈫� 鍒嗙棰嗗瀹℃壒", "鍦ㄥ鎵逛腑蹇冮�氳繃鑷畾涔夎〃鍗曞彧璇绘煡鐪嬪�熼槄鍗曚笌妗f淇℃伅"], "data": ["archive_borrow(鐘舵�佸洖鍐�)", "archive_document(鐘舵�侀殢瀹℃壒缁撴灉鏉′欢鏇存柊)", "bpm_task"], "scope": "瀹℃壒浜轰笌瀹℃壒鏂规硶鍦� BPM 娴佺▼瀹氫箟 archive_borrow_approve 鍐呴厤缃�(榛樿渚濇瀹℃壒路瑙掕壊鍏滃簳)锛屽悗绔笉鍐欐瀹℃壒浜猴紝閮ㄧ讲鍚庣敱绠$悊鍛樺湪娴佺▼璁捐鍣ㄦ寜瀹為檯缁勭粐璋冩暣"},
+ {"role": "褰掓。缁忓姙浜�(璇鹃/浼氬憳/璐㈠姟)", "modules": ["ARC", "RES", "UMS", "FIN"], "operations": ["鍦ㄨ棰樼敵鎶ヤ功鍒楄〃瀵广�屽凡绔嬮」銆嶅崟鎹偣銆屽綊妗c��", "鍦ㄤ細鍛樺垪琛ㄥ銆屾甯搞�嶄細鍛樼偣銆屽綊妗c��", "鍦ㄦ姤閿�鍗曞垪琛ㄥ銆屽凡閫氳繃銆嶅崟鎹偣銆屽綊妗c��(涓庡叾鏃㈡湁 20鈫�40 褰掓。鍚屼簨鍔″彔鍔�)"], "data": ["archive_document(鐢熸垚)", "research_application / ums_member / finance_reimbursement(鍥炲啓 archive_document_id)"], "scope": "鏉冮檺鐮� research:application:archive 路 ums:member:archive 路 finance:reimbursement:archive锛涜皟鐢� yudao-module-archive-api 鐨� archiveBySource 骞傜瓑鐢熸垚妗f锛岄噸澶嶇偣鍑荤敱鏉ユ簮渚ф寜閿欒鐮佹嫤鎴苟缁欏嚭宸茬敓鎴愭。妗堢紪鍙�"},
+ {"role": "璇勫涓撳/瀛︿細绉樹功澶劼风悊浜嬩細(璇鹃瀹℃壒浜�)", "modules": ["RES", "BPM"], "operations": ["鍦ㄥ鎵逛腑(15)褰曞叆鏈汉鐨勪笓瀹惰瘎鍒嗘槑缁�(鍥涢」鍒嗗�� + 缁撹 + 鎰忚)", "绉樹功澶勫舰寮忓鏌� 鈫� 涓撳璇勫 鈫� 瀛︿細绔嬮」瀹℃壒 涓夎妭鐐归『搴忓鎵�", "鍦ㄥ鎵逛腑蹇冮�氳繃鑷畾涔夎〃鍗曞彧璇绘煡鐪嬬敵鎶ヤ功姝f枃銆佽瘎瀹℃槑缁嗕笌鎷ㄤ粯璁板綍"], "data": ["research_topic_review", "research_application(鐘舵�佸洖鍐�)", "bpm_task"], "scope": "璇勫垎褰曞叆瑕佹眰鐢虫姤鍗曞浜庡鎵逛腑(15)路鐢辫棰樼鐞嗗憳鎴栦笓瀹朵緷鎹� research:review:* 鏉冮檺鐮佹墽琛岋紱瀹℃壒浜轰笌瀹℃壒鏂规硶鍦� BPM 娴佺▼瀹氫箟 research_topic_approve 鍐呴厤缃�(榛樿渚濇瀹℃壒路瑙掕壊鍏滃簳)锛屽悗绔笉鍐欐瀹℃壒浜猴紝閮ㄧ讲鍚庣敱绠$悊鍛樺湪娴佺▼璁捐鍣ㄦ寜瀛︿細瀹為檯缁勭粐璋冩暣"}
]
}</script>
<pre style="display:none" class="mmd-src" data-mmd="01-business-mindmap">
@@ -613,6 +740,40 @@
浠樻鍗�
鏀舵鍗�
缁撶畻璐︽埛
+ 璐㈠姟鎶ラ攢 FIN 鐙珛
+ 鎶ラ攢鍗曚富琛�
+ 鎶ラ攢鏄庣粏琛�
+ 鍙戠エ闄勪欢涓婁紶
+ 鎻愪氦瀹℃壒涓庨┏鍥為噸鎻�
+ 褰掓。缁堟��
+ 浼氬憳绠$悊 UMS 鐙珛
+ 鍏ヤ細鐢宠鍗�
+ 涓汉涓庡崟浣嶄簩鍨嬪瓧娈�
+ 浼氬憳绛夌骇涓汉涓庡崟浣嶄袱濂�
+ 绉樹功澶勭悊浜嬩細涓ょ骇瀹℃壒
+ 瀹℃壒閫氳繃鑷姩寤轰細鍛�
+ 鑷姩鍒涘缓绯荤粺鐧诲綍璐﹀彿
+ 浼氬憳鍒楄〃涓庨�氳褰曟绱�
+ 璇鹃绠$悊 RES 鐙珛
+ 璇鹃鎸囧崡鍙戝竷
+ 閲嶇偣涓庝竴鑸棰樺垎绫�
+ 鎸囧鐢虫姤鏈熶笌鎴
+ 鍦ㄧ嚎璇鹃鐢虫姤涔�
+ 浠庝細鍛樺甫鍑虹敵鎶ヤ汉淇℃伅
+ 涓撳璇勫鏄庣粏涓庡姞鏉冩帓鍚�
+ 绉樹功澶勭悊浜嬩細涓夌骇瀹℃壒
+ 绔嬮」缂栧彿涓庣珛椤归�氱煡鍏憡
+ 缁忚垂鎷ㄤ粯璁板綍涓庡嚟璇�
+ 妗f绠$悊 ARCHIVE 鐙珛
+ 妗f鍒嗙被涔︽灦鍒嗗眰鍒嗗垪
+ 妗f鏂囨。闆嗕腑瀛樺偍涓庢绱�
+ 鐢靛瓙闄勪欢涓庡疄浣撲綅缃吋鍏�
+ 瀵嗙骇绠℃帶涓庢晱鎰熸潈闄�
+ 鍊熼槄鐧昏涓庝袱绾у鎵�
+ 褰掕繕鐧昏涓庢祦杞棴鐜�
+ 閫炬湡鏈繕瀹炴椂鎻愰啋
+ 妗f瀛橀噺涓庢祦杞粺璁�
+ 璇鹃浼氬憳璐㈠姟涓夋柟褰掓。鑱斿姩
鐢熶骇绠$悊 MES
涓荤敓浜ц鍒� MPS
鐢熶骇宸ュ崟
@@ -808,7 +969,7 @@
RCTX --> RCITEM[妫�楠岄」=鏍峰搧脳鎸囨爣浜ゅ弶灞曞紑路鍏ㄦ寚鏍囪繘涓嶈繃婊ぢ峰鏍峰搧鏃舵牱鍝佸彿鎶樿繘 remark]
RCTX --> RCQC[鎼哄甫鍗曟嵁鍘熷垽瀹� qcResult 鏁奥穛cResultText 涓枃路涓庡紩鎿庡垽瀹氬苟瀛樹簰涓嶈鐩朷
MESMAP -->|鍒嗙粍椤� item_type=2 涓庡畠鐨勫瓙椤规寜 parent_id 杩樺師涓ゅ眰路褰掑睘涓嶇湅 type 涔熶笉鐪嬭搴弢 RCTXG
- RCTXG["鍒嗙粍杩樺師路缁勫ご琛岃儗缁勫悕涓� formula_text 鍏紡路缁勫唴绗竴琛岃儗 span=璇ョ粍鎬昏鏁奥峰悓缁勫叾浣欒 span=1 涓� hidden 璁╀綅路鍙悎骞舵楠岄」鐩竴鍒�"] --- RCTX
+ RCTXG["鍒嗙粍杩樺師路缁勫ご琛岃儗缁勫悕涓� formula_text 鍏紡路缁勫唴绗竴琛岃儗 span=璇ョ粍鎬昏鏁奥峰悓缁勫叾浣欒 span=1 涓� hidden 璁╀綅路鍚堝苟鐨勬槸妯℃澘 columns 閲屽甫 # 鐨勯偅涓�鍒楋紙榛樿鍒楀嵆妫�楠岄」鐩級路鍚堝苟琛屾暟鏄湰鍗曡缁勫疄闄呰鏁拌�岄潪涓绘暟鎹瓙椤规暟路璇ョ粍鏈崟鏃犲瓙椤硅鍒欎笉鍚堝苟"] --- RCTX
MESMAP -.->|鍒嗙粍椤规湰鍗曟病鏈夊睘浜庡畠鐨勫瓙椤� / 缁勫ご鏈崟娌℃湁琛岀敱鍚庣琛ヤ竴琛寍 RCWARN
MESMAP -.->|鎸囨爣宸插垹 / 鏈綍瀹炴祴鍊硷紙缁勫ご閿氱偣琛屾寜瀹氫箟鏃犲�悸蜂笉鎶ワ級 / 鏍峰搧瓒� 3 涓疯繘 warnings| RCWARN
RCWARN[warnings 杞彁绀郝蜂笉钀藉簱路浜嬪悗鐪嬩笉鍒伴渶鑷鐣欑棔] --- RCTX
@@ -899,7 +1060,7 @@
MES -->|閫�璐ц川妫�鍏ュ簱鍥炶皟| AS[鍞悗宸ュ崟缁翠慨閫�璐
CRM -->|瀹㈡埛涓绘暟鎹畖 AS
HRM[HRM 鍛樺伐鍏ヨ浆璋冪浜ゆ帴鑰冨嫟钖叕] -.->|expandUserIds 鏁版嵁鍙鎬ф墿灞暵锋帴鍙e凡灏辩华寰呭悇妯″潡鎺ュ叆| CRM
- BPM[BPM Flowable 瀹℃壒寮曟搸] -.->|鐘舵�佷簨浠跺洖璋兟�13涓洃鍚櫒| ERP
+ BPM[BPM Flowable 瀹℃壒寮曟搸] -.->|鐘舵�佷簨浠跺洖璋兟�15涓洃鍚櫒| ERP
BPM -.-> CRM
BPM -.-> SRM
BPM -.-> MES
@@ -916,6 +1077,25 @@
SYS[绯荤粺搴曞骇 璁よ瘉路RBAC路瀛楀吀路闄勪欢涓績路瀹氭椂浠诲姟] --- MDM
SYS --- MES
STG[闄勪欢涓績 storage-blob+attachment 鍏ㄦā鍧楃粺涓�鎸傞檮浠禲 --- ERP
+ FIN[璐㈠姟鎶ラ攢 鐙珛妯″潡 yudao-module-finance 鎶ラ攢鍗� 鏄庣粏 鍙戠エ闄勪欢] -.->|澶嶇敤 BPM 瀹℃壒涓庣姸鎬佸洖璋億 BPM
+ FIN -.->|鍙戠エ璧伴檮浠朵腑蹇� recordType=finance_reimbursement| STG
+ FIN -.->|"瀵瑰浠呮彁渚� yudao-module-finance-api(FinanceReimbursementApi)渚涗粬妯″潡寤哄崟"| ERP
+ UMS[浼氬憳绠$悊 鐙珛妯″潡 yudao-module-ums 鍏ヤ細鐢宠 浼氬憳 閫氳褰昡 -.->|澶嶇敤 BPM 涓ょ骇瀹℃壒涓庣姸鎬佸洖璋億 BPM
+ UMS -.->|璇佹槑鏉愭枡璧伴檮浠朵腑蹇� recordType=ums_application / ums_member| STG
+ UMS -.->|瀹℃壒閫氳繃缁� AdminUserApi.createUser 寤虹郴缁熺櫥褰曡处鍙穦 SYS
+ UMS -.->|鐙珛妯″潡路涓嶄笌鍏跺畠涓氬姟妯″潡浜х敓鍗曟嵁鎴栨暟鎹叧鑱攟 ERP
+ RES[璇鹃绠$悊 鐙珛妯″潡 yudao-module-research 鎸囧崡 鐢虫姤涔� 涓撳璇勫 缁忚垂鎷ㄤ粯] -.->|澶嶇敤 BPM 涓夌骇瀹℃壒涓庣姸鎬佸洖璋兟锋祦绋� key=research_topic_approve| BPM
+ RES -.->|闄勪欢璧伴檮浠朵腑蹇� recordType=research_guideline / research_application / research_fund_record| STG
+ RES -->|閫変細鍛樺彇鐢虫姤浜哄鍚� 宸ヤ綔鍗曚綅 鑱岀О 鑱旂郴鐢佃瘽| UMS
+ RES -->|绔嬮」閫氱煡鍐� system_notice 鍏憡| SYS
+ RES -->|缁忚垂鎷ㄤ粯 1:1 鑷姩鐢熸垚 finance_reimbursement 鎶ラ攢鍗曞苟鎻愪氦瀹℃壒路璧版柊寤虹殑 yudao-module-finance-api| FIN
+ FIN -.->|鎶ラ攢瀹℃壒缁撴灉缁� BPM 浜嬩欢鍥炶皟 ResearchFundStatusListener 鍥炲啓璇鹃鎷ㄦ鍙拌处| RES
+ ARC[妗f绠$悊 鐙珛妯″潡 yudao-module-archive 鍒嗙被 妗f 鍊熼槄 褰掕繕 缁熻] -.->|澶嶇敤 BPM 涓ょ骇瀹℃壒涓庣姸鎬佸洖璋兟锋祦绋� key=archive_borrow_approve| BPM
+ ARC -.->|妗f鐢靛瓙闄勪欢璧伴檮浠朵腑蹇� recordType=archive_document / archive_borrow| STG
+ RES -->|宸茬珛椤圭敵鎶ュ崟褰掓。路缁� yudao-module-archive-api 鐢熸垚妗f骞跺洖鍐� archive_document_id| ARC
+ UMS -->|姝e父鐘舵�佷細鍛樺綊妗B风粡 yudao-module-archive-api 鐢熸垚妗f骞跺洖鍐� archive_document_id| ARC
+ FIN -->|宸查�氳繃鎶ラ攢鍗曞綊妗B峰悓浜嬪姟鍙犲姞鐢熸垚銆屼繚瀵嗐�嶆。妗堝苟鍥炲啓 archive_document_id| ARC
+ ARC -.->|涓嶅弽鍚戜緷璧� ums / finance / research路浠呮彁渚� -api 瀛愭ā鍧楃敱涓夋柟鎵嬪姩璋冨綊妗 RES
</pre>
<pre style="display:none" class="mmd-src" data-mmd="09-data-flow">
flowchart LR
@@ -990,6 +1170,61 @@
UIREP -.->|缁撴灉灏卞湴灞曠ず reportNo itemCount 涓� undecidableCount 鍛婅| QCFE
QCFE -.->|杩涘叆鏃跺甫 businessType+businessId 璺敱 query路棰勫~鎼滅储琛ㄥ崟鐨勩�屼笟鍔″崟鎹�嶅瓧娈祙 UIREP
RPT -.->|鏉冮檺鐮� qc-report:template:ai-import 宸插叆 system_menu| SYS1
+ subgraph S5 [鐙珛璐㈠姟鎶ラ攢 finance]
+ RBM[鎶ラ攢鍗� finance_reimbursement] --> RBI[鎶ラ攢鏄庣粏 finance_reimbursement_item]
+ RBM --> RBA[鍙戠エ闄勪欢 recordType=finance_reimbursement]
+ RBM --> RBS[鐘舵�� 鑽夌0 瀹℃壒涓�15 宸查�氳繃20 宸查┏鍥�35 宸插綊妗�40]
+ end
+ RBM -->|create 甯︿富琛ㄤ笌 items 鏁扮粍涓� blobIds 涓�娆℃�ф彁浜 RBI
+ RBI -.->|invoiceAmount 姹傚拰鍥炲~ totalAmount路鐢ㄦ埛鍙墜鏀孤峰悗绔笉鏍¢獙涓�鑷存� RBM
+ RBM -->|submit 甯� id 涓� processDefinitionKey 璧� query| RBS
+ RBS -.->|BPM 鐩戝惉鍣ㄧ粨鏋滃洖鍐� 閫氳繃20 椹冲洖35 鍙栨秷閫�鍥�0| RBM
+ RBA -.->|涓婁紶涓庝繚瀛樺垎绂宦风鍦ㄤ笟鍔¤〃瀛樻枃浠跺湴鍧�| PDFARCH
+ FINNOTE[鐙珛妯″潡路閿�鍞噰璐摼鏉′换鎰忓崟鎹潎涓嶇敓鎴愭姤閿�鍗暵锋姤閿�鍗曚害涓嶅洖鍐欎换浣曞閮ㄥ崟鎹峰敮涓�渚嬪鏄棰樼粡璐规嫧浠榏 -.-> RBM
+ subgraph S6 [鐙珛璇鹃绠$悊 research]
+ RGL[璇鹃鎸囧崡 research_guideline] --> RAP[璇鹃鐢虫姤涔� research_application]
+ RAP --> RRV[涓撳璇勫鏄庣粏 research_topic_review]
+ RAP --> RFR[缁忚垂鎷ㄤ粯璁板綍 research_fund_record]
+ RAP --> RST[鐘舵�� 鑽夌0 瀹℃壒涓�15 宸茬珛椤�20 宸查┏鍥�35]
+ end
+ UMSM[浼氬憳 ums_member] -->|"閫変細鍛樺甫鍑� applicantName workUnit jobTitle contactPhone contactEmail路杞叧鑱旀棤澶栭敭"| RAP
+ RGL -->|"鐢虫姤鏃跺紩鐢疯姹� publishStatus=宸插彂甯�20 涓� 鐜板湪鍦� applyStartTime 鑷� applyEndTime 鍐�"| RAP
+ RAP -->|"category 鍐椾綑鑷寚鍗椔蜂笉淇′换鍓嶇浼犲��"| RAP
+ RAP -->|"submit 甯� id 涓� processDefinitionKey 璧� query路鍥炲啓 processInstanceId"| RST
+ RST -.->|"BPM 鐩戝惉鍣� ResearchApplicationStatusListener 鍥炲啓 閫氳繃20 椹冲洖35 鍙栨秷閫�鍥�0"| RAP
+ RAP -->|"瀹℃壒閫氳繃鍚� approveApplication 鐢熸垚 researchNo LX 涓� approveTime路宸叉湁缂栧彿骞傜瓑璺宠繃"| RAP
+ RRV -->|"recalculate: compositeScore 鍔犳潈 0.3/0.3/0.2/0.2 鈫� ranking 闄嶅簭閲嶆帓 鈫� 涓诲崟 reviewAvgScore 涓� reviewPass"| RAP
+ RRV -.->|"鏄庣粏鍒犵┖鏃朵富鍗曟眹鎬绘竻涓� null"| RAP
+ RAP -->|"publishNotice 鐢熸垚 system_notice 鍏憡骞跺洖鍐� noticeId路閲嶅鍙戝竷鎷︽埅"| SYS2[system_notice 绯荤粺鍏憡]
+ RFR -->|"閲戦鏍¢獙 宸茬櫥璁� + 鏈 涓嶅緱瓒呭嚭 budgetAmount 鐢宠缁忚垂"| RAP
+ RFR -.->|"鍑瘉璧伴檮浠朵腑蹇� recordType=research_fund_record路鍚屼竴鎵� blob 鍙岀粦 finance_reimbursement路琛ㄥ唴涓嶅瓨鏂囦欢鍦板潃"| PDFARCH
+ RAP -.->|"鐢虫姤闄勪欢 recordType=research_application"| PDFARCH
+ RGL -.->|"鎸囧崡闄勪欢 recordType=research_guideline"| PDFARCH
+ RFR -->|"1:1 鐢熸垚鎶ラ攢鍗暵风粡 FinanceReimbursementApi 鏈湴 Bean 寤哄崟骞剁珛鍗� submit路鍥炲啓 reimbursement_id/reimbursement_no路鍙拌处缃� 15 鎶ラ攢瀹℃壒涓�"| RBM
+ RBM -->|"鎶ラ攢鍗曡繘鍏ュ悓涓�鏉� BPM 娴佺▼ finance_reimbursement_approve(璐㈠姟瀹℃牳 鈫� 璐㈠姟涓荤瀹℃壒)路businessKey=鎶ラ攢鍗� ID"| RBS
+ RBS -.->|"BPM 鐩戝惉鍣� ResearchFundStatusListener 鍥炲啓璇鹃鍙拌处 閫氳繃20 椹冲洖30(+椹冲洖鍘熷洜/鏃堕棿) 鎾ゅ洖0"| RFR
+ RESNOTE[涓�鏈熷凡瀵规帴璐㈠姟路璇鹃鍙拌处涓烘嫧娆惧彴璐β锋姤閿�鍗曚负璐㈠姟鍑鸿处鍑瘉路涓よ竟浠� reimbursement_id 杞叧鑱旀棤澶栭敭路璐㈠姟渚х洿鎺ュ垹鍗曚細鐣欎笅鎮┖ ID 鐢变笟鍔℃姤閿欏厹搴昡 -.-> RFR
+ subgraph S7 [鐙珛妗f绠$悊 archive]
+ ACD[妗f鍒嗙被 archive_category 鏍戝舰] --> ADO[妗f archive_document]
+ ADO --> ABR[鍊熼槄鍗� archive_borrow]
+ ADO --> AST[妗f鐘舵�� 10鍦ㄥ簱 20鍊熷嚭涓璢
+ ABR --> ABS[鍊熼槄鐘舵�� 0鑽夌 15瀹℃壒涓� 20鍊熷嚭涓� 30宸插綊杩� 35宸查┏鍥瀅
+ end
+ ACD -->|"鏂板缓妗f鎸夊垎绫诲甫鍑� default_secret_level 榛樿瀵嗙骇路璐㈠姟鍒嗙被=3 淇濆瘑"| ADO
+ ADO -.->|"鐢靛瓙闄勪欢 recordType=archive_document路琛ㄥ唴涓嶅瓨鏂囦欢鍦板潃"| PDFARCH
+ ADO -->|"妗f缂栧彿 DA + yyyyMMdd + 6浣嶆祦姘�(Redis路姣忔棩閲嶇疆)路鍊熼槄鍗曞彿 JY + 鍚屾棩娴佹按"| ADO
+ RAP -->|"鎵嬪姩銆屽綊妗c�嶇粡 yudao-module-archive-api.archiveBySource(sourceType=2路瀵嗙骇 2鍐呴儴路sourceNo=绔嬮」缂栧彿路blobIds=鐢虫姤涔﹂檮浠�)路骞傜瓑"| ADO
+ UMSM -->|"鎵嬪姩銆屽綊妗c��(sourceType=3路瀵嗙骇 2鍐呴儴路sourceNo=浼氬憳缂栧彿路blobIds=浼氬憳鏉愭枡)"| ADO
+ RBM -->|"鏃㈡湁 archive 褰掓。鍚屼簨鍔″彔鍔� archiveBySource(sourceType=4路瀵嗙骇 3淇濆瘑路sourceNo=鎶ラ攢鍗曞彿路blobIds=鍙戠エ闄勪欢)路鎶ラ攢鍗� 20鈫�40 涓庣敓鎴愭。妗堜袱琛ㄥ苟鍐�"| ADO
+ ADO -->|"鍥炲啓鏉ユ簮琛� archive_document_id 浣滀负宸插綊妗g‖鏍囪路鏉ユ簮渚ч噸澶嶇偣褰掓。鎸夊叾閿欒鐮佹嫤鎴苟缁欏嚭宸茬敓鎴愭。妗堢紪鍙�"| RAP
+ ADO -->|"鍥炲啓 archive_document_id"| RBM
+ ABR -->|"submit 鍓嶆牎楠�: 鍚屼竴妗f涓嶅緱宸叉湁 瀹℃壒涓� 15 鎴� 鍊熷嚭涓� 20 鐨勫�熼槄鍗暵峰懡涓姤宸插�熺敤(甯︽。妗堝悕涓庡凡瀛樺湪鍊熼槄鍗曞彿)"| ABS
+ ABS -.->|"BPM 鐩戝惉鍣� ArchiveBorrowStatusListener 鍥炲啓 閫氳繃20 椹冲洖35 鍙栨秷閫�鍥�0"| ABR
+ ABS -->|"涓氬姟鍔ㄤ綔: 褰掕繕鐧昏 浠呮斁琛� 20 鍊熷嚭涓� 鈫� 30 宸插綊杩樎峰洖鍐� returnTime 涓庡綊杩樼‘璁や汉"| ABR
+ ABR -->|"瀹℃壒閫氳繃鏉′欢鏇存柊 archive_document SET status=20 WHERE status=10路褰掕繕鏉′欢鏇存柊鍥� 10路褰卞搷 0 琛屽嵆鎶ュ啿绐佸苟鍥炴粴"| AST
+ ABR -.->|"閫炬湡涓嶈惤搴撀锋煡璇㈡椂瀹炴椂璁$畻 status=20 涓� return_deadline 鏃╀簬浠婂ぉ路overdue-page 涓虹嫭绔嬪叆鍙i潪鏌ヨ鍙傛暟"| ABS
+ ADO -.->|"瀵嗙骇=3 淇濆瘑 涓旀棤 archive:document:sensitive 鏃堵疯鎯呮姤閿櫬峰垪琛ㄤ笌瀵煎嚭寮哄埗杩囨护 secret_level 涓嶇瓑浜� 3"| SEC3[鏉冮檺鐐� archive:document:sensitive]
+ ARCNOTE[鐙珛妯″潡路涓夋柟褰掓。涓哄垪琛ㄩ〉鎵嬪姩鎸夐挳鑰岄潪浜嬩欢椹卞姩路褰掓。鍙敓鎴愭。妗堜笉鍥炲啓鏉ユ簮鍗曟嵁涓氬姟鐘舵��(璐㈠姟渚� 20鈫�40 鏄棦鏈夐�昏緫路鏈ā鍧椾粎鍙犲姞)] -.-> ADO
</pre>
<pre style="display:none" class="mmd-src" data-mmd="10-business-object">
erDiagram
@@ -1027,9 +1262,21 @@
srm_supplier ||--o{ mes_wm_arrival_notice : "鍒拌揣鏉ユ簮"
erp_purchase_order ||--o{ erp_purchase_invoice : "鏉ョエ"
erp_purchase_invoice ||--o{ erp_finance_payment : "浠樻"
+ ums_application ||--o| ums_member : "瀹℃壒閫氳繃鑷姩寤烘。"
hrm_employee ||--o| hrm_user_handover : "绂昏亴浜ゆ帴鏄犲皠"
qc_report_template ||--o{ qc_report_template_version : "澶氱増鏈�"
qc_report_template_version ||--o{ qc_report_instance : "鍐荤粨鍑轰欢鐗堟湰"
+ finance_reimbursement ||--o{ finance_reimbursement_item : "璐圭敤鏄庣粏"
+ research_guideline ||--o{ research_application : "琚敵鎶ュ紩鐢�"
+ research_application ||--o{ research_topic_review : "涓撳璇勫垎鏄庣粏"
+ research_application ||--o{ research_fund_record : "缁忚垂鎷ㄤ粯璁板綍"
+ research_fund_record ||--|| finance_reimbursement : "1:1 鐢熸垚鍑鸿处鎶ラ攢鍗�(杞叧鑱� reimbursement_id)"
+ ums_member ||--o{ research_application : "鐢虫姤浜�(杞叧鑱旀棤澶栭敭)"
+ archive_category ||--o{ archive_document : "鍒嗙被褰掓。(鏍戝舰涔︽灦)"
+ archive_document ||--o{ archive_borrow : "鍊熼槄鐧昏"
+ research_application ||--o| archive_document : "宸茬珛椤瑰綊妗�(archive_document_id)"
+ ums_member ||--o| archive_document : "姝e父浼氬憳褰掓。(archive_document_id)"
+ finance_reimbursement ||--o| archive_document : "宸查�氳繃鎶ラ攢褰掓。(archive_document_id)"
</pre>
<pre style="display:none" class="mmd-src" data-mmd="11-ai-business-flow">
flowchart TD
@@ -1074,6 +1321,168 @@
MODE[妯″瀷灞�:閫氫箟鍗冮棶涓轰富路棰勭暀DeepSeek/OpenAI/Ollama鏈疄鐜癩 --- O2
NOTE[鍏ㄩ」鐩棤Function Calling路AI鍙緭鍑虹粨鏋勫寲JSON鐢变笟鍔′晶瑙f瀽] --- J2
</pre>
+<pre style="display:none" class="mmd-src" data-mmd="12-finance-flow">
+flowchart TD
+ U1["鎶ラ攢浜哄~鎶ユ姤閿�鍗暵蜂富琛�: 鎶ラ攢鍗曞彿(閫夊~) 鎶ラ攢鏍囬 鎶ラ攢鎬婚噾棰� 鐢宠鏃ユ湡 澶囨敞"] --> U2["褰曞叆鎶ラ攢鏄庣粏 1..n 琛�: 璐圭敤绫诲瀷 鍙戠エ鍙风爜 鍙戠エ閲戦 鍙戠エ鏃ユ湡 寮�绁ㄦ柟 璐圭敤璇存槑"]
+ U2 --> U3[鍙戠エ闄勪欢: 鍥剧墖鎴� PDF 鍏堜紶 system storage-blob upload 鍙� blobId]
+ U3 --> S1[淇濆瓨 create路涓昏〃涓庢槑缁嗕笌鍏ㄩ儴 blobIds 涓�娆℃�ф彁浜
+ S1 --> G1["鎶ラ攢鍗曞彿锛氬彲鑷畾涔夛紱鐣欑┖(鍚函绌烘牸)鍒欑敱鍚庣鐢熸垚 BX + yyyyMMdd + 6浣嶆祦姘�(Redis路姣忔棩閲嶇疆)"]
+ G1 --> B1["鏄庣粏鍏堝垹鍚庡鍏ㄩ噺瑕嗙洊路鎻愪氦鍓ユ帀琛� id(杞垹鍚庨噸鎻掗伩鍏嶄富閿啿绐�)"]
+ B1 --> A1["闄勪欢缁戝畾 recordType = finance_reimbursement路鎸夎鍗曞叏閮� blobId 鍏ㄩ噺鏇挎崲"]
+ A1 --> K1[鑽夌 0]
+ K1 -->|update 淇敼涓昏〃 鏄庣粏 闄勪欢| K1
+ K1 -->|submit 閫夊鎵规祦绋� processDefinitionKey| K2[瀹℃壒涓� 15路鍥炲啓 processInstanceId]
+ K2 -->|BPM 瀹℃壒閫氳繃| K3[宸查�氳繃 20]
+ K2 -->|BPM 瀹℃壒椹冲洖| K4[宸查┏鍥� 35]
+ K2 -->|BPM 瀹℃壒鍙栨秷| K1
+ K4 -->|鏀瑰彂绁ㄥ悗閲嶆柊 submit| K2
+ K3 -->|archive 褰掓。| K5[宸插綊妗� 40路缁堟�伮峰啓鍏� archiveTime]
+ D1["浠呰崏绋� 0 鍙� delete路杩炲甫娓呯悊鏄庣粏涓庡彂绁ㄩ檮浠�"] -.-> K1
+ E1["浠呰崏绋� 0 涓庡凡椹冲洖 35 鍙� update路鍏朵綑鐘舵�佸彧璇�"] -.-> K4
+ N1["鐙珛妯″潡路涓庨攢鍞噰璐摼鏉′换浣曞崟鎹潎鏃犲叧鑱旓紱鍞竴渚嬪鏄璇鹃缁忚垂鎷ㄤ粯 1:1 鑷姩鐢熸垚(缁� yudao-module-finance-api)"] --- K1
+</pre>
+<pre style="display:none" class="mmd-src" data-mmd="13-ums-membership-flow">
+flowchart TD
+ A1[濉姤鍏ヤ細鐢宠路閫変細鍛樼被鍨� 1涓汉 / 2鍗曚綅] --> A2[涓汉鍒嗘敮: 濮撳悕 鑱旂郴鐢佃瘽 閭 宸ヤ綔鍗曚綅 鑱岀О 鐮旂┒鏂瑰悜 琛屼笟 鍦板尯]
+ A1 --> A3[鍗曚綅鍒嗘敮: 鍗曚綅鍚嶇О 娉曞畾浠h〃浜� 缁熶竴绀句細淇$敤浠g爜 鐮旂┒鏂瑰悜 琛屼笟 鍦板尯]
+ A2 --> A4[閫夌敵璇风瓑绾锋寜浼氬憳绫诲瀷鍒囨崲瀛楀吀 ums_personal_grade / ums_unit_grade]
+ A3 --> A4
+ A4 --> A5[璇佹槑鏉愭枡闄勪欢: 鍏堜紶 system storage-blob upload 鍙� blobId]
+ A5 --> S1[淇濆瓨 create路闄勪欢鎸夎鍗曞叏閮� blobIds 缁戝畾]
+ S1 --> G1["鐢宠缂栧彿 SQ + yyyyMMdd + 6浣嶆祦姘�(Redis路姣忔棩閲嶇疆)路鍚庣鐢熸垚涓嶅彲鏀�"]
+ G1 --> K1[鑽夌 0]
+ K1 -->|update 淇敼鐢宠| K1
+ K1 -->|submit 閫夊鎵规祦绋� processDefinitionKey| K2[瀹℃壒涓� 15路鍥炲啓 processInstanceId]
+ K2 -->|BPM 瀹℃壒閫氳繃| K3[宸查�氳繃 20]
+ K2 -->|BPM 瀹℃壒椹冲洖| K4[宸查┏鍥� 35]
+ K2 -->|BPM 瀹℃壒鍙栨秷| K1
+ K4 -->|淇敼鍚庨噸鏂� submit| K2
+ K3 --> M1["瀹℃壒閫氳繃閽╁瓙: 鑷姩鍒涘缓浼氬憳 ums_member (鍐呴儴鍏堟煡鐘舵�佺‘涓哄凡閫氳繃鎵嶆墽琛�)"]
+ M1 --> M2["浼氬憳缂栧彿 HY + yyyyMMdd + 6浣嶆祦姘�(Redis)"]
+ M2 --> M3["鍒涘缓绯荤粺鐧诲綍璐﹀彿 AdminUserApi.createUser路鐢ㄦ埛鍚嶄笌鍒濆瀵嗙爜=鑱旂郴鐢佃瘽路鏄电О=鐢宠浜哄鍚嵚烽儴闂�=瀛︿細浼氬憳"]
+ M3 --> M4[浼氬憳钀藉簱路鍏ヤ細鏃ユ湡=褰撳ぉ路鐘舵�� 1姝e父路鏉ユ簮鐢宠鍗� applicationId 鍥炲~]
+ M4 --> D2[浼氬憳鍒楄〃路鍙墜宸� create / update / delete]
+ D2 --> V1["绛夌骇绫诲瀷鏍¢獙: 鍗曚綅浼氬憳(memberType=2) 涓嶅彲閫夈�庣悊浜嬮暱銆�(memberGrade=5) 鐩存帴鎷掔粷"]
+ M4 --> D1[浼氬憳閫氳褰暵峰彧璇宦锋寜鍦板尯 regionCode 涓庤涓� industry 妫�绱
+ ATT1["闄勪欢 recordType = ums_application"] -.-> K1
+ ATT2["闄勪欢 recordType = ums_member"] -.-> M4
+ RES1["浠呰崏绋� 0 鍙� delete路杩炲甫娓呯悊闄勪欢"] -.-> K1
+ RES2["浠呰崏绋� 0 涓庡凡椹冲洖 35 鍙� update路鍏朵綑鐘舵�佸彧璇�"] -.-> K4
+ ROL["瀹℃壒閾�: BPM 娴佺▼瀹氫箟 ums_membership_approve(褰掑睘鍒嗙被 ums_membership_approve) 绉樹功澶勫垵瀹� 鈫� 鐞嗕簨浼氬璁蜂袱鑺傜偣瀹℃壒浜�=瑙掕壊绛栫暐(瓒呯瑙掕壊鍏滃簳)路鍚庣鎸夊垎绫诲疄鏃跺彇娴佺▼銆佷笉鍐欐 key"] -.-> K2
+ F1["瀹℃壒涓績鐪嬪崟: 娴佺▼瀹氫箟琛ㄥ崟绫诲瀷=鑷畾涔夎〃鍗暵锋煡鐪嬭矾寰� /ums/application/detail/approve/index.vue路鎸� businessKey 鍥炴樉鐢宠鍗�"] -.-> K2
+ N1["鐙珛妯″潡路涓嶄笌鍏朵粬涓氬姟妯″潡浜х敓鍗曟嵁鍏宠仈路浠呭鐢� BPM 瀹℃壒涓� system 闄勪欢涓績"] --- K1
+</pre>
+
+<pre style="display:none" class="mmd-src" data-mmd="14-research-flow">
+flowchart TD
+ subgraph P1 [璇鹃鎸囧崡鍙戝竷]
+ G0[鏂板缓鎸囧崡路閫夌被鍒� 1閲嶇偣璇鹃 / 2涓�鑸棰榏 --> G1[濉寚鍗楀悕绉� 鐢虫姤璧锋鏃堕棿 鎸囧崡姝f枃 闄勪欢]
+ G1 --> G2["鎸囧崡缂栧彿 GL + yyyyMMdd + 6浣嶆祦姘�(Redis路姣忔棩閲嶇疆)"]
+ G2 --> G3[鑽夌 0路浠呰崏绋垮彲鏀瑰彲鍒燷
+ G3 -->|宸蹭骇鐢熺敵鎶ュ崟鍒欑姝㈠垹闄 G3B["鎻愮ず璇ユ寚鍗椾笅宸叉湁 N 寮犵敵鎶ュ崟路闇�鍏堝鐞嗙敵鎶ュ崟"]
+ G3 -->|publish 鍙戝竷| G4["宸插彂甯� 20路鍥炲啓 publishTime"]
+ G4 -->|close 鎴| G5[宸叉埅姝� 30]
+ end
+ G4 -->|"鎸囧崡宸插彂甯冩墠鍙綔涓虹敵鎶ュ墠鎻�"| A1
+ subgraph P2 [鍦ㄧ嚎鐢虫姤]
+ A1[閫夋寚鍗椔疯姹傚凡鍙戝竷 涓斿湪鐢虫姤鏈熷唴] --> A2[閫変細鍛� ums_member 鑷姩甯﹀嚭 濮撳悕 宸ヤ綔鍗曚綅 鑱岀О 鐢佃瘽 閭]
+ A2 --> A3[濉棰樺悕绉� 璇鹃缁勬垚鍛� 鐢宠缁忚垂 鐢虫姤涔︽鏂� 鐢虫姤闄勪欢]
+ A3 --> A4["鐢虫姤缂栧彿 SB + yyyyMMdd + 6浣嶆祦姘绰风被鍒啑浣欒嚜鎸囧崡涓嶄俊浠诲墠绔紶鍊�"]
+ A4 --> K1[鑽夌 0]
+ end
+ K1 -->|update 淇敼路浠呰崏绋� 0 涓庡凡椹冲洖 35 鏀捐| K1
+ K1 -->|delete 鍒犻櫎路浠呰崏绋� 0 鏀捐路杩炲甫娓呯悊闄勪欢| K1
+ K1 -->|submit 閫夊鎵规祦绋� processDefinitionKey| K2["瀹℃壒涓� 15路鍥炲啓 processInstanceId"]
+ K1 -->|"submit 鍓嶉�愭潯鏍¢獙: 鈶� 鎸囧崡蹇呴』宸插彂甯� 鈶� 褰撳墠鏃堕棿蹇呴』鍦ㄧ敵鎶ヨ捣姝㈡湡鍐�"| KERR["浠讳竴涓嶆弧瓒冲嵆鎷掔粷鎻愪氦路鎻愮ず甯︽寚鍗楀悕涓庡疄闄呯姸鎬佹垨璧锋鏃堕棿"]
+ K2 -->|"浠呭鎵逛腑鍙鍒犳敼涓撳璇勫垎"| RK[涓撳璇勫鏄庣粏 research_topic_review路涓�浣嶄笓瀹朵竴琛宂
+ RK -->|"鍚庣閫愯閲嶇畻 compositeScore = 閫夐0.3 + 鏂规0.3 + 鍥㈤槦0.2 + 鎴愭灉0.2"| RC[鎸夊姞鏉冨垎闄嶅簭閲嶆帓鍚嶆 ranking]
+ RC -->|"鍥炲啓涓诲崟: reviewAvgScore=鍏ㄩ儴涓撳鍧囧垎 路 reviewPass=鍧囧垎杈炬爣 涓� 澶氭暟缁撹涓烘帹鑽愮珛椤�"| SUM[鐢虫姤鍗曡瘎瀹℃眹鎬宦峰垹闄ゆ渶鍚庝竴鏉℃槑缁嗘椂娓呯┖姹囨�籡
+ SUM -->|"绉樹功澶勬眹鎬荤敵鎶ヤ功涓庤瘎瀹$粨鏋�"| K3
+ K2 --> K3
+ subgraph P3 [绔嬮」瀹℃壒 BPM research_topic_approve]
+ K3["涓夎妭鐐归『搴徛峰鎵规柟娉曚笌瀹℃壒浜哄湪娴佺▼瀹氫箟鍐呴厤缃�"] --> KA[Activity_secretariat_review 绉樹功澶勫舰寮忓鏌
+ KA -->|閫氳繃| KB[Activity_expert_review 涓撳璇勫]
+ KB -->|閫氳繃| KC[Activity_council_approve 瀛︿細绔嬮」瀹℃壒]
+ end
+ KC -->|BPM 瀹℃壒閫氳繃| K4["宸茬珛椤� 20路鐩戝惉鍣ㄧ敓鎴� 绔嬮」缂栧彿 LX + yyyyMMdd + 6浣嶆祦姘� 涓� approveTime路宸叉湁缂栧彿鍒欏箓绛夎烦杩�"]
+ KC -->|BPM 瀹℃壒椹冲洖| K5[宸查┏鍥� 35]
+ KC -->|BPM 瀹℃壒鍙栨秷| K1
+ KA -->|椹冲洖| K5
+ K5 -->|淇敼鍚庨噸鏂� submit| K2
+ K4 -->|publishNotice 鍙戝竷绔嬮」閫氱煡| N1["system_notice 鍏憡路鏍囬銆庡叧浜庡叕甯冪珛椤硅棰樼殑閫氱煡銆徛锋鏂囧惈璇鹃鍚� 绔嬮」缂栧彿 绫诲埆 鐢虫姤浜� 鍗曚綅 璧勫姪閲戦路鍥炲啓 noticeId路閲嶅鍙戝竷琚嫤鎴�"]
+ K4 -->|鐧昏鎷ㄦ璁板綍 research_fund_record| F1[濉壒娆″悕绉� 鎷ㄤ粯閲戦 鎷ㄤ粯鏃ユ湡 鏀舵鍗曚綅 澶囨敞路鍑瘉闄勪欢蹇呭~]
+ F1 -->|"閲戦鏍¢獙: 宸茬櫥璁伴噾棰� + 鏈閲戦 涓嶅緱瓒呭嚭鐢虫姤鍗曠敵璇风粡璐孤疯秴鍑烘椂鎶ュ嚭鏈 宸茬櫥璁� 鍚堣 棰勭畻鍥涢」鏁板��"| FGEN["鑷姩鐢熸垚 1:1 璐㈠姟鎶ラ攢鍗� finance_reimbursement(1 琛屾槑缁�: 璐圭敤绫诲瀷=鍏朵粬 鍙戠エ閲戦=鎷ㄤ粯閲戦 鍙戠エ鏃ユ湡=鎷ㄤ粯鏃ユ湡 璐圭敤璇存槑=璇鹃鍚�+鎵规)路闄勫悓涓�鎵瑰嚟璇伮风珛鍗虫彁浜� BPM路鍥炲啓鎶ラ攢鍗曞彿"]
+ FGEN -->|鍥炲啓鍙拌处鐘舵�亅 F3[鎶ラ攢瀹℃壒涓� 15]
+ F3 -->|"璐㈠姟瀹℃牳 Activity_finance_review"| FAPP[璐㈠姟涓荤瀹℃壒 Activity_finance_approve]
+ FAPP -->|BPM 瀹℃壒閫氳繃| F4[宸叉嫧浠� 20]
+ FAPP -->|BPM 瀹℃壒椹冲洖| F5["宸查┏鍥� 30路鍥炲啓椹冲洖鍘熷洜涓庨┏鍥炴椂闂�"]
+ F5 -->|"淇敼閲戦鎴栧嚟璇佸悗閲嶆柊鍙戣捣鎶ラ攢"| F3
+ FAPP -->|"鍙戣捣浜�/绠$悊鍛樺彇娑堟祦绋�"| F2["寰呮嫧浠� 0路鍙紪杈戝彲鍒犻櫎"]
+ F2 -->|"浠呭緟鎷ㄤ粯 0 鍙敼鍙垹路鍒犻櫎鏃惰仈鍔ㄦ竻鐞嗚储鍔′晶鑽夌鎶ラ攢鍗�"| F2
+ F2 -->|"淇敼鍚庨噸鏂板彂璧锋姤閿�"| F3
+ ATT1["闄勪欢 recordType = research_guideline"] -.-> G3
+ ATT2["闄勪欢 recordType = research_application"] -.-> K1
+ ATT3["闄勪欢 recordType = research_fund_record路鍚屼竴鎵� blob 鍙岀粦 finance_reimbursement(鎸� recordType+recordId 闅旂浜掍笉褰卞搷)"] -.-> F1
+ ROL["瀹℃壒涓績鐪嬪崟: 娴佺▼瀹氫箟琛ㄥ崟绫诲瀷=鑷畾涔夎〃鍗暵峰垱寤鸿矾寰� /research/application/index 路 鏌ョ湅璺緞 /research/application/detail/approve/index.vue路鎸� businessKey 鍥炴樉鐢虫姤鍗�"] -.-> K3
+ ROL2["瀹℃壒浜哄彇鍊�: 涓夎妭鐐瑰湪娴佺▼瀹氫箟鍐呴厤濂藉鎵规柟娉�(渚濇瀹℃壒)涓庡鎵逛汉绛栫暐路閮ㄧ讲鍚庣敱绠$悊鍛樺湪 BPM 娴佺▼璁捐鍣ㄦ寜瀛︿細瀹為檯缁勭粐璋冩暣路鎻愪氦鏃跺墠绔彧璁╅�夋祦绋嬩笉閫夊鎵逛汉"] -.-> K3
+ LIS2["鐩戝惉鍣� ResearchFundStatusListener(娴佺▼ key=finance_reimbursement_approve路businessKey=鎶ラ攢鍗� ID): 閫氳繃鈫掑彴璐﹀凡鎷ㄤ粯 20路椹冲洖鈫掑凡椹冲洖 30+鍘熷洜涓庢椂闂绰峰彇娑堟祦绋嬧啋閫�鍥炲緟鎷ㄤ粯 0(鍙戣捣浜烘挙鍥炰粎閫�鍥炲彂璧疯妭鐐广�佹祦绋嬫湭缁撴潫锛屼笉瑙﹀彂鍥炲啓)路涓� finance 鑷繁鐨勭洃鍚櫒璁㈤槄鍚屼竴 key 骞惰瑙﹀彂"] -.-> F3
+ FINAPI["璺ㄦā鍧楄蛋鏂板缓鐨� yudao-module-finance-api(FinanceReimbursementApi路鏈湴 Bean 闈� HTTP): 鏃犲凡鍙戝竷鎶ラ攢瀹℃壒娴佺▼鏃跺厛瑙f瀽鍗虫姤閿櫬蜂笉寤哄崟路閬垮厤鐣欎笅瀛ゅ効鑽夌鎶ラ攢鍗�"] -.-> FGEN
+ RES1["涓�鏈熷凡瀵规帴璐㈠姟: 鎷ㄦ蹇呴』璧� finance_reimbursement 鎶ラ攢鍗曞嚭璐β疯棰樹晶鍙拌处=鎷ㄦ鍙拌处路璐㈠姟鎶ラ攢鍗�=鍑鸿处鍑瘉路涓よ竟浠� reimbursement_id 杞叧鑱�(鏃犲閿�)路璐㈠姟瀹℃壒缁撴灉鑷姩鍥炲啓鏈彴璐�"] -.-> F1
+ RES2["浜屾湡鑼冨洿(鏈浘鏈鐩�): 缁撻」楠屾敹 缁撻」璇佷功 鎴愭灉褰掓。鐭ヨ瘑搴� 閲囩撼鎯呭喌涓庣ぞ浼氭晥鐩婃爣娉�"] -.-> K4
+ BOUND["鐙珛妯″潡 yudao-module-research路瀵� ums_member 涓鸿蒋鍏宠仈(鏃犲閿�)路瀵硅储鍔℃ā鍧楄蛋 -api 瀛愭ā鍧楁湰鍦拌皟鐢蜂粎澶嶇敤 BPM 瀹℃壒銆乻ystem 鍏憡涓庨檮浠朵腑蹇�"] --- K1
+</pre>
+
+<pre style="display:none" class="mmd-src" data-mmd="15-archive-flow">
+flowchart TD
+ subgraph P1 [妗f鍒嗙被路涔︽灦绠$悊 archive_category]
+ C1[鏂板缓鍒嗙被路鍙�夌埗鍒嗙被褰㈡垚鍒嗙被鏍慮 --> C2["濉� 鍒嗙被鍚嶇О 路 缂栫爜 code 路 鎺掑簭 路 鍒嗙被璇存槑 路 榛樿瀵嗙骇 路 鐘舵��"]
+ C2 --> C3["缂栫爜鍏ㄥ眬鍞竴 uk_code 路 鐘舵�� 0鍚敤 1鍋滅敤 路 榛樿瀵嗙骇 1鍏紑 2鍐呴儴 3淇濆瘑"]
+ C3 --> C4["鍒濆 6 鏉″垎绫�: 浼氬憳妗f member 路 璇鹃妗f research 路 浼氳妗f meeting 路 璐㈠姟妗f finance(榛樿瀵嗙骇=淇濆瘑 3) 路 鏂囦功妗f document 路 鍏氬缓妗f party"]
+ C4 --> C5["鍙敼鍙垹 路 鏈夊瓙鍒嗙被绂佸垹 路 璇ュ垎绫讳笅鏈夋。妗堢鍒� 路 鐖跺垎绫讳笉鑳芥槸鑷韩鎴栧叾瀛愬垎绫� 路 鍋滅敤鍒嗙被涓嶈兘鏂板妗f"]
+ end
+ subgraph P2 [妗f绠$悊 archive_document]
+ D1["鏂板缓妗f: 鏍囬 路 鍒嗙被 路 瀵嗙骇 路 杞戒綋(1鐢靛瓙 2瀹炰綋 3鐢靛瓙+瀹炰綋) 路 褰掓。鏃ユ湡 路 鎽樿 路 鍏抽敭璇� tags"] --> D2["瀹炰綋浣嶇疆鍥涘瓧娈�: 涔︽灦鍙� shelfNo 路 灞傚彿 layerNo 路 鍒楀彿 columnNo 路 鍐屽彿妗f鐩� boxNo 路 瀛樻斁浣嶇疆鎻忚堪 storePlace"]
+ D2 --> D3["鐢靛瓙闄勪欢璧� system 闄勪欢涓績 路 recordType=archive_document 路 琛ㄥ唴涓嶅瓨鏂囦欢鍦板潃 路 blobIds 涓哄叏閲忔浛鎹㈣涔�"]
+ D3 --> D4["妗f缂栧彿 DA + yyyyMMdd + 6浣嶆祦姘� (Redis路姣忔棩閲嶇疆)"]
+ D4 --> D5["鐘舵�� 10 鍦ㄥ簱 路 鍙敼鍙垹"]
+ D5 -->|"鍊熼槄瀹℃壒閫氳繃"| D6["鐘舵�� 20 鍊熷嚭涓� 路 绂佹敼 路 瀛樺湪鏈綊杩樺�熼槄鍗曟椂绂佸垹"]
+ D6 -->|"褰掕繕鐧昏"| D5
+ end
+ subgraph P3 [涓夋柟褰掓。鑱斿姩路鍒楄〃椤垫墜鍔ㄣ�屽綊妗c�嶆寜閽啋yudao-module-archive-api]
+ AD["ArchiveDocumentApi.archiveBySource 骞傜瓑: 鍏堟寜 source_type + source_id 鏌� 路 鍛戒腑鐩存帴杩斿洖鏃㈡湁妗f ID"]
+ AD2["鎸� categoryCode 鍙栧垎绫�(member / research / finance) 路 鍒嗙被涓嶅瓨鍦ㄦ姤 DOCUMENT_SOURCE_CATEGORY_NOT_EXISTS"]
+ AD3["鐢熸垚 DA 缂栧彿 + 钀藉簱 + bindAttachments(recordType=archive_document)"]
+ AD4["鍥炲啓鏉ユ簮琛� archive_document_id 浣滀负宸插綊妗g‖鏍囪 路 鏉ユ簮渚ч噸澶嶅綊妗f寜鍏惰嚜韬敊璇爜鎷︽埅骞剁粰鍑哄凡鐢熸垚妗f缂栧彿(archive 渚� DOCUMENT_DUPLICATE_SOURCE 涓哄厹搴�)"]
+ R1["璇鹃鐢虫姤涔� research_application 路 浠� status=20 宸茬珛椤� 路 鏉冮檺 research:application:archive"] -->|"sourceType=2 路 瀵嗙骇 2鍐呴儴 路 sourceNo=绔嬮」缂栧彿 路 blobIds=鐢虫姤涔﹂檮浠�"| AD
+ M1["浼氬憳 ums_member 路 浠� status=1 姝e父 路 鏉冮檺 ums:member:archive"] -->|"sourceType=3 路 瀵嗙骇 2鍐呴儴 路 sourceNo=浼氬憳缂栧彿"| AD
+ F1["璐㈠姟鎶ラ攢鍗� finance_reimbursement 路 浠� status=20 宸查�氳繃 路 鏉冮檺 finance:reimbursement:archive"] -->|"sourceType=4 路 瀵嗙骇 3淇濆瘑 路 sourceNo=鎶ラ攢鍗曞彿 路 blobIds=鍙戠エ闄勪欢 路 涓庢棦鏈� 20鈫�40 褰掓。鍚屼簨鍔″彔鍔�"| AD
+ AD --> AD2
+ AD2 --> AD3
+ AD3 --> AD4
+ end
+ AD3 -->|"褰掓。缁撴灉: 鏂版。妗堢洿鎺ヨ惤涓� 鍦ㄥ簱 10"| D5
+ subgraph P4 [鍊熼槄鐧昏涓庡鎵� archive_borrow]
+ B1["鐧昏鍊熼槄: 閫夋。妗�(浠� 鍦ㄥ簱 10 鍙��) 路 鍊熼槄浜� 路 閮ㄩ棬 路 鑱旂郴鐢佃瘽 路 鍊熼槄鏃ユ湡 路 鍊熼槄鐩殑 路 褰掕繕鏈熼檺"] --> B2["鍊熼槄鍗曞彿 JY + yyyyMMdd + 6浣嶆祦姘� (Redis路姣忔棩閲嶇疆) 路 鐘舵�� 0 鑽夌"]
+ B2 --> B3["submit 鍓嶆牎楠�: 鍚屼竴妗f涓嶅緱瀛樺湪 瀹℃壒涓� 15 鎴� 鍊熷嚭涓� 20 鐨勫�熼槄鍗� 路 鍛戒腑鎶� 宸插�熺敤(甯︽。妗堝悕涓庡凡瀛樺湪鍊熼槄鍗曞彿)"]
+ B3 --> B4["submit 浼� id 涓� processDefinitionKey (query 鍙傛暟) 路 鍏堣В鏋愭祦绋嬪垪琛ㄥ啀寤哄崟(鏃犲凡鍙戝竷娴佺▼鍒欑洿鎺ユ姤閿櫬蜂笉鐣欏鍎胯崏绋�) 路 鐘舵�� 15 瀹℃壒涓� 路 鍥炲啓 processInstanceId"]
+ B4 --> B5["BPM 娴佺▼ archive_borrow_approve 涓ょ骇: 妗f绠$悊鍛樺鏍� 鈫� 鍒嗙棰嗗瀹℃壒"]
+ end
+ B5 -->|"瀹℃壒閫氳繃"| B6["鐘舵�� 20 鍊熷嚭涓� 路 鍥炲啓 approveTime 路 鏉′欢鏇存柊妗f SET status=20 WHERE status=10(褰卞搷 0 琛屽垯鎶� 妗f宸茶鍗犵敤 骞跺洖婊�)"]
+ B5 -->|"瀹℃壒椹冲洖"| B7["鐘舵�� 35 宸查┏鍥� 路 鍥炲啓椹冲洖鍘熷洜涓庢椂闂� 路 淇敼鍚庡彲閲嶆柊 submit"]
+ B5 -->|"鍙栨秷娴佺▼"| B2
+ B6 -->|"褰掕繕鐧昏 return 路 鏉′欢鏇存柊 status=20 鈫� 30"| B8["鐘舵�� 30 宸插綊杩� 路 鍥炲啓 returnTime 涓庡綊杩樼‘璁や汉 路 褰掕繕澶囨敞"]
+ B8 -->|"鏉′欢鏇存柊妗f SET status=10 WHERE status=20"| D5
+ B6 -->|"浠� 0 鑽夌 涓� 35 宸查┏鍥� 鍙敼鍙噸鎻� 路 浠� 0 鑽夌 鍙垹"| B2
+ B6 -->|"浠� 20 鍊熷嚭涓� 鍙櫥璁板綊杩�"| B8
+ OV["閫炬湡涓嶈惤搴撀锋煡璇㈡椂瀹炴椂璁$畻: status=20 涓� return_deadline 鏃╀簬浠婂ぉ 路 overdueDays = 浠婂ぉ 鍑� 褰掕繕鏈熼檺"] -.-> B6
+ OVP["GET /archive/borrow/overdue-page 鐙珛鍏ュ彛(闈炴煡璇㈠弬鏁�) 路 鍒楄〃銆岄�炬湡銆嶅垪娓叉煋绾㈣壊銆岄�炬湡 N 澶┿�� 路 涓嶅缓 infra_job 涓嶅彂绔欏唴淇� 路 鍒楄〃椤靛彟鏈夈�屽彧鐪嬮�炬湡銆嶅垏鎹�"] -.-> OV
+ ST["妗f缁熻 GET /archive/stat/overview: 妗f鎬绘暟 路 鍦ㄥ簱鏁� 路 鍊熷嚭涓暟 路 閫炬湡鏈繕鏁� + 鎸夊垎绫�/鎸夊瘑绾�/鎸夎浇浣� 涓夌粍鍒嗗竷"] -.-> D5
+ SEC["鏁忔劅妗f绠℃帶: 瀵嗙骇=3 淇濆瘑 涓斿綋鍓嶇敤鎴锋棤 archive:document:sensitive 鏃� 路 璇︽儏鎺ュ彛鐩存帴鎶ラ敊 路 鍒楄〃涓庡鍑哄己鍒惰繃婊� secret_level 涓嶇瓑浜� 3"] -.-> D1
+ ATT["闄勪欢 recordType = archive_document / archive_borrow"] -.-> D3
+ ROL["瀹℃壒涓績鐪嬪崟: 娴佺▼瀹氫箟琛ㄥ崟绫诲瀷=鑷畾涔夎〃鍗� 路 鍒涘缓璺緞 /archive/borrow/index 路 鏌ョ湅璺緞 /archive/borrow/detail/approve/index.vue 路 鎸� businessKey 鍥炴樉鍊熼槄鍗�"] -.-> B5
+ LIS["鐩戝惉鍣� ArchiveBorrowStatusListener(娴佺▼ key=archive_borrow_approve 路 businessKey=鍊熼槄鍗� ID): 閫氳繃鈫�20 鍊熷嚭涓� + approveTime 骞舵潯浠舵洿鏂版。妗� 鈫� 20 路 椹冲洖鈫�35 + 鍘熷洜涓庢椂闂� 路 鍙栨秷鈫掗��鍥� 0 路 涓� finance/research 鐩戝惉鍣ㄨ闃呬笉鍚� key 浜掍笉骞叉壈"] -.-> B5
+ BOUND["鐙珛妯″潡 yudao-module-archive(鍚� -api 瀛愭ā鍧�)路渚濊禆 system/bpm路涓嶅弽鍚戜緷璧� ums/finance/research(閬垮厤寰幆渚濊禆)路涓夋柟浠呬緷璧� archive-api 鎵嬪姩璋冨綊妗�"] --- D1
+</pre>
<script type="module">
const DATA = {};
@@ -1093,7 +1502,7 @@
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)'};
+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)',finance:'var(--c-fin)',ums:'var(--c-ums)',research:'var(--c-res)',archive:'var(--c-arch)',ai:'var(--c-ai)'};
async function boot(){
DATA.business = await loadJson('business');
@@ -1130,8 +1539,8 @@
</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)'};
+ const targets = {crm:'flow-sales',erp:'flow-purchase',pro:'flow-production',wm:'flow-warehouse',qc:'flow-quality',aftersales:'flow-aftersales',fin:'flow-finance',ums:'flow-ums',res:'flow-research',arc:'flow-archive',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)',fin:'var(--c-fin)',ums:'var(--c-ums)',res:'var(--c-res)',arc:'var(--c-arch)',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>
--
Gitblit v1.9.3