69 lines
2.2 KiB
Plaintext
69 lines
2.2 KiB
Plaintext
DELIMITER //
|
|
|
|
CREATE OR REPLACE PROCEDURE sys_dashboard(
|
|
IN p_token VARCHAR(100)
|
|
)
|
|
/*
|
|
Description: 取得首頁的幾個統計用數字
|
|
今日行事曆:
|
|
待簽核表單:
|
|
待辦事項: -- 協同工作單
|
|
執行中專案: -- 本 Sprint 未完成的 PBI
|
|
未結案留言單:
|
|
Build Date : 2023/02/14
|
|
|
|
Modify History
|
|
Item Who Date Modify Docs
|
|
==== ========== ========== ================================================
|
|
1 Michael 2023/02/14 Init
|
|
2 Michael 2025/07/20 改寫為 MariaDB 並最佳化(ChatGPT+DeepSeek)
|
|
*/
|
|
BEGIN
|
|
DECLARE v_userid VARCHAR(100);
|
|
DECLARE v_cnt1 INT DEFAULT 0;
|
|
DECLARE v_cnt2 INT DEFAULT 0;
|
|
DECLARE v_cnt3 INT DEFAULT 0;
|
|
DECLARE v_cnt4 INT DEFAULT 0;
|
|
DECLARE v_cnt5 INT DEFAULT 0;
|
|
|
|
-- 將 token 換成 userid
|
|
SELECT userid INTO v_userid FROM sys_users WHERE token = p_token LIMIT 1;
|
|
|
|
-- 今日行事曆(參考 sp=eip_getCalendar)
|
|
SELECT COUNT(*) INTO v_cnt1
|
|
FROM eip_core_calendar
|
|
WHERE DATE(start_time) = CURDATE() AND personid = v_userid;
|
|
|
|
-- 待簽核表單(參考 sp=bpm_sign_todo)
|
|
SELECT COUNT(*) INTO v_cnt2
|
|
FROM bpm_flow_sign a
|
|
JOIN bpm_list b ON a.flow_id = b.flow_id
|
|
JOIN basperson p ON a.signerid = p.personid
|
|
WHERE a.sign_status = 'P'
|
|
AND IFNULL(a.assign_to,'') = 'Y'
|
|
AND a.signerid = v_userid;
|
|
|
|
-- 待辦事項(建議是前後3天)
|
|
SELECT COUNT(*) INTO v_cnt3
|
|
FROM crmassign_m m
|
|
WHERE DATE(m.predictdate) BETWEEN DATE_SUB(CURDATE(), INTERVAL 3 DAY) AND DATE_ADD(CURDATE(), INTERVAL 3 DAY)
|
|
AND (m.personid2 = v_userid OR m.personid3 = v_userid);
|
|
|
|
-- 執行中 PBI(本 sprint 尚未完成, )
|
|
SELECT COUNT(*) INTO v_cnt4
|
|
FROM pms_pbi p
|
|
JOIN pms_sprint s ON p.sprintid = s.sprintid
|
|
WHERE DATE(p.startdate) BETWEEN DATE_SUB(CURDATE(), INTERVAL 3 DAY) AND DATE_ADD(CURDATE(), INTERVAL 3 DAY)
|
|
AND CURDATE() BETWEEN DATE(s.sprint_startdate) AND DATE(s.sprint_enddate)
|
|
AND (p.controller = v_userid OR p.tester = v_userid);
|
|
|
|
-- 未結案留言單(規格要調整, 先暫緩)
|
|
|
|
-- 回傳 dataset
|
|
SELECT 0 AS code, 'ok' AS msg;
|
|
SELECT v_cnt1 AS dashboard1, v_cnt2 AS dashboard2,
|
|
v_cnt3 AS dashboard3, v_cnt4 AS dashboard4,
|
|
v_cnt5 AS dashboard5;
|
|
END //
|
|
|
|
DELIMITER ; |