Files
Omni_app.db/response_issue_status.txt
2026-02-06 23:26:59 +08:00

71 lines
2.4 KiB
Plaintext

DELIMITER //
CREATE OR REPLACE PROCEDURE response_issue_status(
IN p_token VARCHAR(100),
IN p_functiontag VARCHAR(100),
IN p_id INT,
IN p_assign_user VARCHAR(10),
IN p_new_status VARCHAR(100),
IN p_ok_rate SMALLINT,
IN p_release_readme TEXT
)
/*
Function : 處理問題狀態變更和指派
Description: 根據不同的功能標籤處理不同類型的問題狀態更新
Build Date : 2023/07/19 (MariaDB 版本)
*/
BEGIN
DECLARE v_userid VARCHAR(10);
DECLARE v_org_userid VARCHAR(10);
DECLARE v_err_code SMALLINT;
DECLARE v_seq INT;
DECLARE v_err_msg VARCHAR(100);
SET v_err_code = 0;
SET v_err_msg = '操作成功';
-- 根據token獲取userid
SELECT userid INTO v_userid FROM sys_users WHERE token = p_token LIMIT 1;
IF v_userid IS NULL OR v_userid = '' THEN
SET v_err_code = 4;
SET v_err_msg = '認證失敗,請重新登錄';
ELSE
-- 根據功能標籤處理不同類型的問題
IF p_functiontag = 'pmsm11' THEN -- Product Backlog Item
-- 獲取原始負責人和當前最大序號
SELECT controller INTO v_org_userid FROM pms_pbi WHERE pbiid = p_id;
SELECT IFNULL(MAX(seqno), 0) INTO v_seq FROM pms_pbi_log WHERE pbiid = p_id;
-- 寫入日誌
INSERT INTO pms_pbi_log (pbiid, response_date, response_by, assign_user, response, pbi_status, pbi_rate, seqno)
VALUES (p_id, NOW(), v_userid, p_assign_user, p_release_readme, p_new_status, p_ok_rate, v_seq+1);
-- 更新主表狀態
UPDATE pms_pbi
SET pbi_status = IFNULL(p_new_status, pbi_status),
controller = IFNULL(v_userid, controller),
pbi_rate = IFNULL(p_ok_rate, pbi_rate)
WHERE pbiid = p_id;
ELSEIF p_functiontag = 'pmsm12' THEN -- Issue Log 維護作業
-- 獲取當前最大序號
SELECT IFNULL(MAX(seqno), 0) INTO v_seq FROM pms_issuelog_d WHERE issueid = p_id;
-- 寫入日誌
INSERT INTO pms_issuelog_d (issueid, raised_date, raised_by, assign_user, response, issue_status, seqno)
VALUES (p_id, NOW(), v_userid, p_assign_user, p_release_readme, p_new_status, v_seq+1);
-- 更新主表狀態
UPDATE pms_issuelog
SET issue_status = IFNULL(p_new_status, issue_status),
responsible = IFNULL(p_assign_user, responsible)
WHERE issueid = p_id;
END IF;
END IF;
SELECT v_err_code AS code, v_err_msg AS msg;
END //
DELIMITER ;