first commit

This commit is contained in:
DATAEXPRESS\4734
2026-02-06 14:44:08 +08:00
commit 3b3e190726
42 changed files with 5385 additions and 0 deletions
+121
View File
@@ -0,0 +1,121 @@
DELIMITER //
CREATE OR REPLACE FUNCTION zen_bpm_define (
p_FunctionTag VARCHAR(100),
p_FunctionTag_org VARCHAR(100),
p_pk VARCHAR(100),
p_ip VARCHAR(100), -- 建議由外部傳入或設定預設值,MariaDB 參數不支援直接用變數當預設值
p_db VARCHAR(100)
)
RETURNS LONGTEXT
LANGUAGE SQL
DETERMINISTIC
BEGIN
DECLARE v_rets LONGTEXT;
DECLARE v_crlf CHAR(1);
DECLARE v_type CHAR(1);
-- 設定換行符號 [cite: 3, 4]
SET v_crlf = CHAR(10);
-- 判斷是否為簽核用 view
IF INSTR(p_FunctionTag_org, '_') > 0 THEN
SET v_type = 'Y';
ELSE
SET v_type = 'N';
END IF;
-- 開始組合 JSON 字串 [cite: 5]
SET v_rets = CONCAT(
' {', v_crlf,
' "type": "button-toolbar",', v_crlf,
' "buttons": [', v_crlf
);
-- 根據 @type 決定按鈕內容 [cite: 5]
IF v_type = 'N' THEN
-- 上呈按鈕 [cite: 5, 6]
SET v_rets = CONCAT(v_rets,
' {', v_crlf,
' "type": "button",', v_crlf,
' "label": "上呈",', v_crlf,
' "actionType": "ajax",', v_crlf,
' "confirmText": "確定要上呈表單?",', v_crlf,
' "disabledOn": "${flow_status != ''N''}",', v_crlf,
' "api": {', v_crlf,
' "method": "post",', v_crlf,
' "url": "${ls:base_ip}/xapi/v3/${ls:base_db}/bpmm02_spread/1/",', v_crlf,
' "data": {', v_crlf,
' "para01": "', p_FunctionTag, '",', v_crlf,
' "para02": "${personid}",', v_crlf,
' "para03": "${', p_pk, '}"', v_crlf,
' },', v_crlf,
' "dataType": "form"', v_crlf,
' },', v_crlf,
' "level": "primary"', v_crlf,
' },', v_crlf
);
ELSE
-- 同意、駁回、作廢按鈕 (簽核模式) [cite: 10, 15, 20]
SET v_rets = CONCAT(v_rets,
-- 同意 [cite: 11, 12]
' {', v_crlf,
' "type": "button", "label": "同意", "actionType": "dialog", "level": "success",', v_crlf,
' "disabledOn": "${ls:bpm_signable == 0}",', v_crlf,
' "dialog": { "title": "同意", "size": "lg", "body": { "type": "service", "schemaApi": {', v_crlf,
' "method": "post", "url": "${ls:base_ip}/xapi/v3/${ls:wizard_db}/zen_showsource/0/",', v_crlf,
' "data": { "para01": "bpmm11_i", "para02": "beta@${', p_pk, '}" }, "dataType": "form"', v_crlf,
' } } }', v_crlf,
' },', v_crlf,
-- 駁回 [cite: 15, 16, 17]
' {', v_crlf,
' "type": "button", "label": "駁回", "actionType": "dialog", "level": "danger",', v_crlf,
' "disabledOn": "${ls:bpm_signable == 0}",', v_crlf,
' "dialog": { "title": "駁回", "size": "lg", "body": { "type": "service", "schemaApi": {', v_crlf,
' "method": "post", "url": "${ls:base_ip}/xapi/v3/${ls:wizard_db}/zen_showsource/0/",', v_crlf,
' "data": { "para01": "bpmm12_i", "para02": "beta@${', p_pk, '}" }, "dataType": "form"', v_crlf,
' } } }', v_crlf,
' },', v_crlf,
-- 作廢 [cite: 20, 21, 22]
' {', v_crlf,
' "type": "button", "label": "作廢", "actionType": "dialog", "level": "dark",', v_crlf,
' "disabledOn": "${ls:bpm_cancelable > 0}",', v_crlf,
' "dialog": { "title": "作廢", "size": "lg", "body": { "type": "service", "schemaApi": {', v_crlf,
' "method": "post", "url": "${ls:base_ip}/xapi/v3/${ls:wizard_db}/zen_showsource/0/",', v_crlf,
' "data": { "para01": "bpmm13_i", "para02": "beta@${', p_pk, '}" }, "dataType": "form"', v_crlf,
' } } }', v_crlf,
' },', v_crlf
);
END IF;
-- 簽核歷程 [cite: 25, 26, 27]
SET v_rets = CONCAT(v_rets,
' {', v_crlf,
' "type": "button", "label": "簽核歷程", "actionType": "dialog", "level": "warning",', v_crlf,
' "dialog": { "title": "簽核歷程", "size": "lg", "body": { "type": "service", "schemaApi": {', v_crlf,
' "method": "post", "url": "${ls:base_ip}/xapi/v3/${ls:wizard_db}/zen_showsource/0/",', v_crlf,
' "data": { "para01": "bpmq11", "para02": "beta@${', p_pk, '}", "_tag": "', p_FunctionTag, '" },', v_crlf,
' "dataType": "form", "requestAdaptor": "local_set_params(51, api.data._tag); return { ...api, data: { ...api.data }};"', v_crlf,
' } } }', v_crlf,
' },', v_crlf
);
-- 檢視流程簽核人 [cite: 30, 31, 32]
SET v_rets = CONCAT(v_rets,
' {', v_crlf,
' "type": "button", "label": "檢視流程簽核人", "actionType": "dialog", "level": "secondary",', v_crlf,
' "dialog": { "title": "檢視流程簽核人", "size": "lg", "body": { "type": "service", "schemaApi": {', v_crlf,
' "method": "post", "url": "${ls:base_ip}/xapi/v3/${ls:wizard_db}/zen_showsource/0/",', v_crlf,
' "data": { "para01": "bpmq12", "para02": "beta@${', p_pk, '}", "_tag": "', p_FunctionTag, '" },', v_crlf,
' "dataType": "form", "requestAdaptor": "local_set_params(51, api.data._tag); return { ...api, data: { ...api.data }};"', v_crlf,
' } } }', v_crlf,
' }', v_crlf,
' ]', v_crlf,
' },', v_crlf,
' { "type": "divider" },', v_crlf
);
RETURN v_rets;
END //
DELIMITER ;