DELIMITER //

CREATE OR REPLACE PROCEDURE bpm_sign_history (
  IN p_token VARCHAR(100),
  IN p_functiontag VARCHAR(100),  -- 來源單別
  IN p_sourceid VARCHAR(100)      -- 原單單號
)
/*
  Function   : 配合 amis 的 bpm, 取得 [某表單的簽核歷程]
  Description: 
  Build Date : 2022/11/23
  
  Modify History
    Item Who        Date       Modify Docs
    ==== ========== ========== ================================================
    1    Michael    2022/11/23
	
*/
BEGIN
  -- token 轉 userid
  DECLARE v_userid VARCHAR(20);

  -- 根據傳入的 token 取得 userid, 並會判斷 token 是否仍有效(無效傳回空白)
  main_block: BEGIN
	  IF v_userid = '' THEN 
	    LEAVE main_block;  -- 結束程序
	  END IF;

	  -- 回傳狀態
	  SELECT 0 AS code, 'ok' AS msg;
	  
	  SELECT 
		A.id, A.sourceid, A.signerid, P.personcname,
		A.sign_status, KV.keyvalue AS sign_status_name, A.sign_note, 
		cloud_addtime(A.create_date) AS create_date
	  FROM bpm_flow_sign_log A
	  LEFT JOIN bpm_list B ON A.flow_id = B.flow_id
	  LEFT JOIN basperson P ON P.personid = A.signerid
	  LEFT JOIN zen_keyvalue KV ON KV.fieldname = 'sign_status' AND KV.keyid = A.sign_status 
	  WHERE B.functiontag = p_functiontag AND sourceid = p_sourceid;
  END;
END //

DELIMITER ;