From 89047691ffb3b503e484606e1781d48577b9935d Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 28 九月 2026 18:14:12 +0800
Subject: [PATCH] docs(project-business): 更新项目业务文档增加财务报销会员管理和课题管理模块
---
docs/project-business/index.html | 297 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 279 insertions(+), 18 deletions(-)
diff --git a/docs/project-business/index.html b/docs/project-business/index.html
index 72f2500..36d2fe7 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;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
@@ -111,6 +111,9 @@
<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>
<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 +140,9 @@
<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="relation">
<h2 class="pt">绯荤粺鍏崇郴</h2>
<p class="desc">妯″潡涔嬮棿鐨勮皟鐢ㄤ笌鏁版嵁渚濊禆锛氬疄绾�=鍗曟嵁/鏁版嵁娴佸悜锛岃櫄绾�=瀹℃壒鍥炶皟涓庤緟鍔╄兘鍔涖��</p>
@@ -186,6 +192,9 @@
"subSystems": [
"MES锛堢敓浜蜂粨鍌疯川閲徛疯澶囷級",
"ERP锛堣繘閿�瀛樎疯储鍔★級",
+ "FIN锛堝彂绁ㄦ姤閿�锛岀嫭绔嬫ā鍧楋級",
+ "UMS锛堝浼氫細鍛橈紝鐙珛妯″潡锛�",
+ "RES锛堢鐮旇棰橈紝鐙珛妯″潡锛�",
"CRM锛堝鎴峰叧绯伙級",
"SRM锛堜緵搴斿晢鍏崇郴锛�",
"HRM锛堜汉鍔涜祫婧愶級",
@@ -197,14 +206,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 鍏� 427 寮犺〃锛堝惈 system_*銆乥pm_*銆乤ct_* 搴曞骇琛ㄤ笌 mes_*/erp_*/crm_*/srm_*/hrm_*/mdm_*/ai_*/finance_*/ums_*/research_* 涓氬姟琛級锛屽绉熸埛宸插叧闂�",
"frontend": "mom-pro2-before锛圴ue3 绠$悊鍚庡彴锛屽悓浠撳簱瀛樻斁锛屽彧璇诲弬鑰冿級"
},
"stats": {
- "businessModules": 13,
- "coreObjects": 48,
- "documentFlows": 6,
- "approvalListeners": 13,
+ "businessModules": 16,
+ "coreObjects": 56,
+ "documentFlows": 9,
+ "approvalListeners": 14,
"aiCapabilities": 8,
"wmBillTypes": 15
},
@@ -323,10 +332,21 @@
"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)涓嶄竴鑷�",
+ "璐㈠姟鎶ラ攢锛欱PM 鍒嗙被 finance_reimbursement_approve 涓嬪皻鏃犲凡鍙戝竷鐨勬祦绋嬪畾涔夛紙act_re_cprocdef 涓虹┖锛夛紝涓旀祦绋嬮渶鎶娿�岃嚜瀹氫箟琛ㄥ崟璺緞銆嶉厤涓� /finance/reimbursement/detail/approve/index.vue锛屽惁鍒欏墠绔�屾彁浜ゅ鎵广�嶈绂佺敤銆佸鎵逛腑蹇冪湅涓嶅埌鎶ラ攢鍗曞唴瀹广�愰渶 BPM 璁捐鍣ㄤ晶閰嶇疆銆�",
+ "璐㈠姟鎶ラ攢锛氳彍鍗曚粎鎺堜簣 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 涓� 澶氭暟缁撹涓烘帹鑽愮珛椤广�嶇殑閫氳繃闃堝�兼槸鍗犱綅瑙勫垯锛岄渶瀛︿細鏈�缁堢‘璁わ紱宸查泦涓负甯搁噺渚夸簬璋冩暣銆愬緟纭锛屾敼鍔ㄥ彧闇�鏀瑰父閲忋��",
+ "璇鹃绠$悊锛氫竴鏈熺粡璐规嫧浠樺彧鍦ㄦ湰妯″潡钀芥嫧娆捐褰曪紝涓庤储鍔℃ā鍧楁棤浠讳綍鏁版嵁鍚屾锛屽悓涓�绗旈挶鍦ㄤ袱澶勮褰曞瓨鍦ㄤ笉涓�鑷撮闄╋紱浜屾湡瀵规帴鏃堕渶鏄庣‘浠ュ摢渚т负鍑嗐�愬緟纭銆�",
+ "璇鹃绠$悊锛氱敵鎶ュ崟涓� ums_member 鏄蒋鍏宠仈锛堟棤澶栭敭锛夛紝浼氬憳琚垹闄ゅ悗鐢虫姤鍗曚細鐣欎笅鎮┖ memberId锛涙垚鍛樺垪琛ㄩ渶瀹归敊灞曠ず銆屼細鍛樺凡鍒犻櫎銆嶃�愬緟纭鏄惁鍔犲閿垨鍒犻櫎淇濇姢銆�",
+ "璇鹃绠$悊锛欱PM 娴佺▼ research_topic_approve 涓夎妭鐐归粯璁ゅ鎵逛汉涓恒�岃鑹�=瓒呯骇绠$悊鍛�(1) + 渚濇瀹℃壒銆嶏紝璇� dev 搴撹秴绾х鐞嗗憳瑙掕壊涓嬫湁 4 涓敤鎴凤紙admin/寮犲/椹姵/椹礊锛夛紝姣忎釜鑺傜偣闇� 4 浜轰細绛炬墠鎺ㄨ繘锛涘叏鏂板畨瑁呭簱璇ヨ鑹蹭粎 admin 涓�浜恒�佹祦绋嬪彲寮�绠卞嵆鐢ㄣ�俤ev 搴撻渶鍑忓皯瓒呯骇绠$悊鍛樼敤鎴锋垨鏀瑰湪 BPM 璁捐鍣ㄤ腑涓烘瘡鑺傜偣鎸囧畾瀹℃壒浜恒�愮幆澧冮厤缃」锛岄潪浠g爜缂洪櫡銆�",
+ "璇鹃绠$悊锛氱珛椤归�氱煡澶嶇敤 system_notice 绯荤粺鍏憡锛屼笉鏂板 system_notify_template銆佷笉鍙戠珯鍐呬俊锛涘闇�鐭俊/绔欏唴淇″畾鍚戦�氱煡闇�鍙﹁閰嶇疆銆愬緟纭閫氱煡娓犻亾銆�"
],
- "generatedAt": "2026-09-10",
- "analysisBasis": "鍩轰簬 dev_business 鍒嗘敮 87bf4a99 婧愮爜锛�6 缁勫苟琛屾簮鐮佽蛋璇伙紙MES 鐢熶骇璐ㄩ噺 / MES 浠撳偍 / ERP / CRM+SRM / 鍞悗+HRM / AI+BI+MDM+BPM+搴曞骇锛�"
+ "generatedAt": "2026-09-28",
+ "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"
}</script>
<script type="application/json" id="data-modules">{
"modules": [
@@ -362,6 +382,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 瀵煎嚭"],
+ "objects": ["鎶ラ攢鍗�", "鎶ラ攢鏄庣粏"],
+ "roles": ["鎶ラ攢浜�", "璐㈠姟", "瀹℃壒浜�"],
+ "upstream": [], "downstream": [],
+ "coreTables": ["finance_reimbursement", "finance_reimbursement_item"]},
{"key": "pro", "name": "鐢熶骇绠$悊", "color": "#e0b34f", "tag": "MES-PRO", "flow": "production",
"positioning": "鐢熶骇鎵ц鏍稿績锛氳鍒�-宸ュ崟-浠诲姟-鎶ュ伐",
"problem": "璁㈠崟鍒拌溅闂存墽琛岀殑閫愬眰鎷嗚В涓庤繃绋嬪彲鎺�",
@@ -418,10 +446,27 @@
"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 闃查噸澶�)", "缁忚垂鎷ㄤ粯璁板綍(鎵规/閲戦/鏃ユ湡/鏀舵鍗曚綅/鐘舵��/鍑瘉闄勪欢)路閲戦涓嶅緱瓒呯敵璇风粡璐�", "闄勪欢璧� system 闄勪欢涓績(recordType=research_guideline / research_application / research_fund_record)"],
+ "objects": ["璇鹃鎸囧崡", "璇鹃鐢虫姤涔�", "涓撳璇勫鏄庣粏", "缁忚垂鎷ㄤ粯璁板綍"],
+ "roles": ["璇鹃鐢虫姤浜�(浼氬憳)", "璇鹃绠$悊鍛�", "璇勫涓撳", "瀛︿細绉樹功澶�", "瀛︿細鐞嗕簨浼�"],
+ "upstream": ["浼氬憳绠$悊(ums_member 鍙栫敵鎶ヤ汉濮撳悕/鍗曚綅/鑱岀О/鐢佃瘽)", "BPM(娴佺▼瀹氫箟 research_topic_approve)"],
+ "downstream": ["system(system_notice 绔嬮」閫氱煡鍏憡)", "system(闄勪欢涓績)", "璐㈠姟(浜屾湡棰勬湡寰呭鎺ヂ蜂竴鏈熶笉鎺�)"],
+ "coreTables": ["research_guideline", "research_application", "research_topic_review", "research_fund_record"]},
{"key": "bpm", "name": "鍗忓悓瀹℃壒", "color": "#e6a23c", "tag": "BPM", "flow": null,
"positioning": "鍏ㄧ郴缁熷崟鎹鎵逛腑鏋紙Flowable锛�",
"problem": "澶氭ā鍧楀崟鎹渶瑕佺伒娲诲彲閰嶇殑澶氱骇瀹℃壒",
- "features": ["BPMN+閽夐拤椋庢牸鍙岃璁″櫒", "娴佺▼瀹氫箟閮ㄧ讲", "瀹℃壒浜嬩欢缁熶竴鍥炶皟(BpmProcessInstanceStatusEvent)", "13涓笟鍔$洃鍚櫒", "琛ㄥ崟路鐢ㄦ埛缁劼锋妱閫伮峰姞绛�"],
+ "features": ["BPMN+閽夐拤椋庢牸鍙岃璁″櫒", "娴佺▼瀹氫箟閮ㄧ讲", "瀹℃壒浜嬩欢缁熶竴鍥炶皟(BpmProcessInstanceStatusEvent)", "14涓笟鍔$洃鍚櫒", "琛ㄥ崟路鐢ㄦ埛缁劼锋妱閫伮峰姞绛�"],
"objects": ["娴佺▼妯″瀷", "娴佺▼瀹炰緥", "瀹℃壒浠诲姟"],
"roles": ["瀹℃壒浜�(鎸夋祦绋嬮厤缃�)", "娴佺▼绠$悊鍛�"],
"upstream": ["鍚勪笟鍔℃彁浜ゅ鎵�"], "downstream": ["鍥炶皟鏇存柊鍚勪笟鍔″崟鎹姸鎬�"],
@@ -438,7 +483,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 +535,15 @@
{"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 琚洖鍐欙紱鐙珛妯″潡锛屼笉涓庡叾瀹冧笟鍔℃ā鍧椾骇鐢熷崟鎹叧鑱�", "upstream": [], "downstream": ["鎶ラ攢鏄庣粏", "鍙戠エ闄勪欢(storage_attachment路recordType=finance_reimbursement)"], "keywords": "鎶ラ攢鍗� 鎶ラ攢 鍙戠エ reimbursement BX 褰掓。 璐㈠姟 璐圭敤 鑷畾涔夊崟鍙�"},
+ {"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(鐢宠鍗曟棤瀵瑰簲瀛楁)锛涜嚜鍔ㄥ缓鐨勭郴缁熻处鍙风敤鎴峰悕涓鸿仈绯荤數璇濅笖鍒濆瀵嗙爜鍚屼负鑱旂郴鐢佃瘽锛岄儴闂ㄥ浐瀹氫负銆屽浼氫細鍛樸�嶏紱鎵嬫満鍙烽噸澶嶄細鏄庣‘鎶ラ敊涓旀暣鍗曚簨鍔″洖婊�", "upstream": ["鍏ヤ細鐢宠鍗�(瀹℃壒閫氳繃)", "浜哄伐鏂板", "闄勪欢(storage_attachment路recordType=ums_member)"], "downstream": ["浼氬憳閫氳褰�(鎸� regionCode/industry 妫�绱�)", "system_users(鐧诲綍璐﹀彿)"], "keywords": "浼氬憳 member HY 浼氬憳缂栧彿 浼氬憳绛夌骇 浼氬憳绫诲瀷 閫氳褰� 鍦板尯 琛屼笟 鍏ヤ細鏃ユ湡 鏈夋晥鏈�"},
+ {"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 璁板綍宸插彂甯冪殑绔嬮」閫氱煡鍏憡锛岄噸澶嶅彂甯冭鎷︽埅", "upstream": ["璇鹃鎸囧崡(蹇呴』宸插彂甯冧笖鍦ㄧ敵鎶ユ湡鍐�)", "浼氬憳(ums_member路甯﹀嚭鐢虫姤浜轰俊鎭�)", "鐢虫姤闄勪欢(storage_attachment路recordType=research_application)"], "downstream": ["涓撳璇勫鏄庣粏", "缁忚垂鎷ㄤ粯璁板綍", "绔嬮」閫氱煡(system_notice 鍏憡)", "BPM 娴佺▼瀹炰緥(research_topic_approve 鍒嗙被)", "闄勪欢涓績"], "keywords": "璇鹃鐢虫姤 鐢虫姤涔� 鐢虫姤鍗� SB 鐢虫姤缂栧彿 绔嬮」 绔嬮」缂栧彿 LX 鐢宠缁忚垂 鐢虫姤涔︽鏂� 璇鹃缁勬垚鍛� 涓撳璇勫 璇勫姹囨�� 绔嬮」閫氱煡 鍙戝竷閫氱煡 鎻愪氦瀹℃壒 椹冲洖 閲嶆彁"},
+ {"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": "缁忚垂鎷ㄤ粯璁板綍", "module": "璇鹃绠$悊", "table": "research_fund_record", "doc": "涓�涓诲琛岀殑鎷ㄦ璁板綍锛歜atchName 鎵规鍚嶇О/amount 鎷ㄤ粯閲戦/payDate 鎷ㄤ粯鏃ユ湡/payee 鏀舵鍗曚綅/status 0寰呮嫧浠� 20宸叉嫧浠�/remark锛屽嚟璇侀檮浠惰蛋 system 闄勪欢涓績 recordType=research_fund_record(琛ㄥ唴涓嶅瓨鏂囦欢鍦板潃)銆備粎鐢虫姤鍗� status=20 宸茬珛椤瑰彲鐧昏锛涢噾棰濇牎楠岋細宸茬櫥璁伴噾棰�(璇ュ崟鍏ㄩ儴璁板綍姹傚拰) + 鏈閲戦 涓嶅緱瓒呭嚭鐢虫姤鍗� budgetAmount锛岃秴鍑烘椂鎻愮ず鎶ュ嚭鏈銆佸凡鐧昏銆佸悎璁°�侀绠楀洓椤规暟鍊硷紱status=20 宸叉嫧浠� 鏃跺嚟璇侀檮浠跺繀濉�(鍓嶇鍏堣鎷︽埅锛屽悗绔� validateVoucherRequired 鍏滃簳)锛涗粎寰呮嫧浠樼姸鎬佸彲鏀瑰彲鍒狅紝缂栬緫鏃舵妸鏈閲戦鍔犲洖鍙敤浣欓灞曠ず閬垮厤璇В", "upstream": ["璇鹃鐢虫姤涔�(蹇呴』宸茬珛椤�)"], "downstream": ["鎷ㄤ粯鍑瘉(storage_attachment路recordType=research_fund_record)", "璐㈠姟(浜屾湡棰勬湡寰呭鎺ヂ蜂竴鏈熶笉鎺�)"], "keywords": "缁忚垂鎷ㄤ粯 鎷ㄦ 鎷ㄤ粯璁板綍 鎵规 鎷ㄤ粯閲戦 鍑瘉 寰呮嫧浠� 宸叉嫧浠� 鏀舵鍗曚綅 璧勫姪閲戦 棰勭畻 瓒呴"}
]
}</script>
<script type="application/json" id="data-flows">{
@@ -548,6 +601,36 @@
{"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 涓夌骇瀹℃壒锛堢涔﹀褰㈠紡瀹℃煡 鈫� 涓撳璇勫 鈫� 瀛︿細绔嬮」瀹℃壒锛夛紝涓撳璇勫垎浠ョ粨鏋勫寲鏄庣粏瀛愯〃璁板綍骞剁敱鍚庣鑷姩姹囨�诲姞鏉冨潎鍒嗐�佹帓鍚嶄笌鎺ㄨ崘缁撹 鈫� 瀹℃壒閫氳繃鐢熸垚绔嬮」缂栧彿骞跺彂甯冪郴缁熷叕鍛� 鈫� 鎸夋壒娆$櫥璁扮粡璐规嫧浠樿褰曪紙鍚嚟璇侀檮浠讹級銆傞櫌绾т簩鏈熷啀琛ョ粨椤归獙鏀朵笌鎴愭灉褰掓。銆�",
+ "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)銆嶇殑鐢虫姤鍗曞彲鐧昏鎷ㄦ璁板綍锛堟壒娆″悕绉�/鎷ㄤ粯閲戦/鎷ㄤ粯鏃ユ湡/鏀舵鍗曚綅/鐘舵��/澶囨敞/鍑瘉闄勪欢锛夛紱閲戦鏍¢獙锛氬凡鐧昏閲戦 + 鏈閲戦 涓嶅緱瓒呭嚭璇ュ崟鐢宠缁忚垂锛岃秴鍑烘椂鎻愮ず鎶ュ嚭鏈銆佸凡鐧昏銆佸悎璁°�侀绠楀洓椤规暟鍊硷紱status: 0寰呮嫧浠�/20宸叉嫧浠橈紝鍑瘉鏄庣粏璧� system 闄勪欢涓績 recordType=research_fund_record锛岀姸鎬佹敼涓哄凡鎷ㄤ粯鏃跺嚟璇佸繀濉紱浠呭緟鎷ㄤ粯鐘舵�佸彲鏀瑰彲鍒狅紝缂栬緫鏃朵細鎶婃湰琛岄噾棰濆姞鍥炰綑棰濇樉绀�", "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": [
@@ -579,7 +662,11 @@
{"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": "璇勫涓撳/瀛︿細绉樹功澶劼风悊浜嬩細(璇鹃瀹℃壒浜�)", "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 +700,30 @@
浠樻鍗�
鏀舵鍗�
缁撶畻璐︽埛
+ 璐㈠姟鎶ラ攢 FIN 鐙珛
+ 鎶ラ攢鍗曚富琛�
+ 鎶ラ攢鏄庣粏琛�
+ 鍙戠エ闄勪欢涓婁紶
+ 鎻愪氦瀹℃壒涓庨┏鍥為噸鎻�
+ 褰掓。缁堟��
+ 浼氬憳绠$悊 UMS 鐙珛
+ 鍏ヤ細鐢宠鍗�
+ 涓汉涓庡崟浣嶄簩鍨嬪瓧娈�
+ 浼氬憳绛夌骇涓汉涓庡崟浣嶄袱濂�
+ 绉樹功澶勭悊浜嬩細涓ょ骇瀹℃壒
+ 瀹℃壒閫氳繃鑷姩寤轰細鍛�
+ 鑷姩鍒涘缓绯荤粺鐧诲綍璐﹀彿
+ 浼氬憳鍒楄〃涓庨�氳褰曟绱�
+ 璇鹃绠$悊 RES 鐙珛
+ 璇鹃鎸囧崡鍙戝竷
+ 閲嶇偣涓庝竴鑸棰樺垎绫�
+ 鎸囧鐢虫姤鏈熶笌鎴
+ 鍦ㄧ嚎璇鹃鐢虫姤涔�
+ 浠庝細鍛樺甫鍑虹敵鎶ヤ汉淇℃伅
+ 涓撳璇勫鏄庣粏涓庡姞鏉冩帓鍚�
+ 绉樹功澶勭悊浜嬩細涓夌骇瀹℃壒
+ 绔嬮」缂栧彿涓庣珛椤归�氱煡鍏憡
+ 缁忚垂鎷ㄤ粯璁板綍涓庡嚟璇�
鐢熶骇绠$悊 MES
涓荤敓浜ц鍒� MPS
鐢熶骇宸ュ崟
@@ -808,7 +919,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 +1010,7 @@
MES -->|閫�璐ц川妫�鍏ュ簱鍥炶皟| AS[鍞悗宸ュ崟缁翠慨閫�璐
CRM -->|瀹㈡埛涓绘暟鎹畖 AS
HRM[HRM 鍛樺伐鍏ヨ浆璋冪浜ゆ帴鑰冨嫟钖叕] -.->|expandUserIds 鏁版嵁鍙鎬ф墿灞暵锋帴鍙e凡灏辩华寰呭悇妯″潡鎺ュ叆| CRM
- BPM[BPM Flowable 瀹℃壒寮曟搸] -.->|鐘舵�佷簨浠跺洖璋兟�13涓洃鍚櫒| ERP
+ BPM[BPM Flowable 瀹℃壒寮曟搸] -.->|鐘舵�佷簨浠跺洖璋兟�14涓洃鍚櫒| ERP
BPM -.-> CRM
BPM -.-> SRM
BPM -.-> MES
@@ -916,6 +1027,17 @@
SYS[绯荤粺搴曞骇 璁よ瘉路RBAC路瀛楀吀路闄勪欢涓績路瀹氭椂浠诲姟] --- MDM
SYS --- MES
STG[闄勪欢涓績 storage-blob+attachment 鍏ㄦā鍧楃粺涓�鎸傞檮浠禲 --- ERP
+ FIN[璐㈠姟鎶ラ攢 鐙珛妯″潡 yudao-module-finance 鎶ラ攢鍗� 鏄庣粏 鍙戠エ闄勪欢] -.->|澶嶇敤 BPM 瀹℃壒涓庣姸鎬佸洖璋億 BPM
+ FIN -.->|鍙戠エ璧伴檮浠朵腑蹇� recordType=finance_reimbursement| STG
+ FIN -.->|鐙珛妯″潡路涓嶄笌鍏跺畠涓氬姟妯″潡浜х敓鍗曟嵁鎴栨暟鎹叧鑱攟 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
</pre>
<pre style="display:none" class="mmd-src" data-mmd="09-data-flow">
flowchart LR
@@ -990,6 +1112,37 @@
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路琛ㄥ唴涓嶅瓨鏂囦欢鍦板潃"| PDFARCH
+ RAP -.->|"鐢虫姤闄勪欢 recordType=research_application"| PDFARCH
+ RGL -.->|"鎸囧崡闄勪欢 recordType=research_guideline"| PDFARCH
+ RESNOTE[鐙珛妯″潡路涓�鏈熺粡璐规嫧浠樺彧鍦ㄦ湰妯″潡钀借褰暵蜂笌璐㈠姟妯″潡鏃犳暟鎹悓姝ヂ蜂簩鏈熷啀瀵规帴] -.-> RFR
</pre>
<pre style="display:none" class="mmd-src" data-mmd="10-business-object">
erDiagram
@@ -1027,9 +1180,15 @@
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 : "缁忚垂鎷ㄤ粯璁板綍"
+ ums_member ||--o{ research_application : "鐢虫姤浜�(杞叧鑱旀棤澶栭敭)"
</pre>
<pre style="display:none" class="mmd-src" data-mmd="11-ai-business-flow">
flowchart TD
@@ -1074,6 +1233,108 @@
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["鐙珛妯″潡路涓嶄笌鍏朵粬涓氬姟妯″潡浜х敓鍗曟嵁鎴栧瓧娈靛甫鍏�"] --- 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 -->|"閲戦鏍¢獙: 宸茬櫥璁伴噾棰� + 鏈閲戦 涓嶅緱瓒呭嚭鐢虫姤鍗曠敵璇风粡璐孤疯秴鍑烘椂鎶ュ嚭鏈 宸茬櫥璁� 鍚堣 棰勭畻鍥涢」鏁板��"| F2[寰呮嫧浠� 0]
+ F2 -->|"浠呭緟鎷ㄤ粯 0 鍙敼鍙垹"| F2
+ F2 -->|"鐘舵�佹敼涓哄凡鎷ㄤ粯鏃跺繀椤诲凡鏈夊嚟璇侀檮浠�"| F3[宸叉嫧浠� 20]
+ ATT1["闄勪欢 recordType = research_guideline"] -.-> G3
+ ATT2["闄勪欢 recordType = research_application"] -.-> K1
+ ATT3["闄勪欢 recordType = research_fund_record"] -.-> F1
+ ROL["瀹℃壒涓績鐪嬪崟: 娴佺▼瀹氫箟琛ㄥ崟绫诲瀷=鑷畾涔夎〃鍗暵峰垱寤鸿矾寰� /research/application/index 路 鏌ョ湅璺緞 /research/application/detail/approve/index.vue路鎸� businessKey 鍥炴樉鐢虫姤鍗�"] -.-> K3
+ ROL2["瀹℃壒浜哄彇鍊�: 涓夎妭鐐瑰湪娴佺▼瀹氫箟鍐呴厤濂藉鎵规柟娉�(渚濇瀹℃壒)涓庡鎵逛汉绛栫暐路閮ㄧ讲鍚庣敱绠$悊鍛樺湪 BPM 娴佺▼璁捐鍣ㄦ寜瀛︿細瀹為檯缁勭粐璋冩暣路鎻愪氦鏃跺墠绔彧璁╅�夋祦绋嬩笉閫夊鎵逛汉"] -.-> K3
+ RES1["涓�鏈熻竟鐣�: 缁忚垂鎷ㄤ粯鍙湪鏈ā鍧楄惤鎷ㄦ璁板綍路涓庤储鍔℃ā鍧楁棤鏁版嵁鍚屾(涓嶅仛璺ㄦā鍧楀鎺�)"] -.-> F1
+ RES2["浜屾湡鑼冨洿(鏈浘鏈鐩�): 缁撻」楠屾敹 缁撻」璇佷功 鎴愭灉褰掓。鐭ヨ瘑搴� 閲囩撼鎯呭喌涓庣ぞ浼氭晥鐩婃爣娉�"] -.-> K4
+ BOUND["鐙珛妯″潡 yudao-module-research路瀵� ums_member 涓鸿蒋鍏宠仈(鏃犲閿�)路浠呭鐢� BPM 瀹℃壒銆乻ystem 鍏憡涓庨檮浠朵腑蹇�"] --- K1
+</pre>
<script type="module">
const DATA = {};
@@ -1093,7 +1354,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)',ai:'var(--c-ai)'};
async function boot(){
DATA.business = await loadJson('business');
@@ -1130,8 +1391,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',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)',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