first commit
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
DELIMITER //
|
||||
|
||||
CREATE OR REPLACE PROCEDURE bpm_sign_pass (
|
||||
IN p_token VARCHAR(100),
|
||||
IN p_functiontag VARCHAR(100), -- 單別(* 表示全部)
|
||||
IN p_sdate VARCHAR(10), -- 日期區間(* 表示全部)
|
||||
IN p_edate VARCHAR(10)
|
||||
)
|
||||
/*
|
||||
Function : 配合 amis 的 bpm, 取得 [經辦事項清單]
|
||||
Description: 所有曾經簽核過, 但是尚未結案的 flow
|
||||
Build Date : 2022/11/16
|
||||
|
||||
Modify History
|
||||
Item Who Date Modify Docs
|
||||
==== ========== ========== ================================================
|
||||
1 Michael 2022/11/16
|
||||
2 Michael 2022/12/04 新增 @functiontag 的 where filter
|
||||
|
||||
*/
|
||||
BEGIN
|
||||
-- token 轉 userid
|
||||
DECLARE v_userid VARCHAR(20);
|
||||
|
||||
-- 根據傳入的 token 取得 userid, 並會判斷 token 是否仍有效(無效傳回空白)
|
||||
main_block: BEGIN
|
||||
IF v_userid = '' THEN
|
||||
LEAVE main_block; -- 結束程序
|
||||
END IF;
|
||||
|
||||
-- 處理參數(TDB)
|
||||
IF IFNULL(p_functiontag, '') = '' THEN
|
||||
SET p_functiontag = '*';
|
||||
END IF;
|
||||
|
||||
-- 回傳狀態
|
||||
SELECT 0 AS code, 'ok' AS msg;
|
||||
|
||||
-- 判斷原單已結案? 沒有 P 應該就是已結案
|
||||
WITH data AS (
|
||||
SELECT flow_id, sourceid, COUNT(*) AS not_end
|
||||
FROM bpm_flow_sign
|
||||
WHERE sign_status = 'P'
|
||||
GROUP BY flow_id, sourceid
|
||||
)
|
||||
SELECT
|
||||
b.functiontag, b.flow_name, a.sourceid, a.sourceid AS billno, a.sign_note,
|
||||
a.sign_status, KV.keyvalue AS sign_status_name, d.departmentcname,
|
||||
a.signerid, p.personcname, a.stepName, cloud_addtime(a.create_date) AS create_date
|
||||
FROM bpm_flow_sign A
|
||||
LEFT JOIN bpm_list B ON A.flow_id = B.flow_id
|
||||
LEFT JOIN basperson P ON A.signerid = P.personid
|
||||
LEFT JOIN basdepartment D ON D.departmentid = P.departmentid
|
||||
LEFT JOIN zen_keyvalue KV ON KV.fieldname = 'sign_status' AND KV.keyid = A.sign_status
|
||||
LEFT JOIN data X ON X.flow_id = A.flow_id AND X.sourceid = A.sourceid
|
||||
WHERE FIND_IN_SET(a.sign_status, 'A,R,C') > 0 -- 已簽核過, 但尚未結案
|
||||
AND CASE WHEN p_functiontag = '*' THEN p_functiontag ELSE b.functiontag END = p_functiontag
|
||||
AND IFNULL(x.not_end, 0) > 0
|
||||
AND a.signerid = v_userid;
|
||||
END;
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user