first commit
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
DELIMITER //
|
||||
|
||||
CREATE OR REPLACE PROCEDURE eip_Calendar_crud (
|
||||
IN p_functiontag VARCHAR(100),
|
||||
IN p_id VARCHAR(100),
|
||||
IN p_title NVARCHAR(100),
|
||||
IN p_start_time VARCHAR(30),
|
||||
IN p_end_time VARCHAR(30),
|
||||
IN p_userid VARCHAR(20)
|
||||
)
|
||||
/*
|
||||
Function : 行事曆資料的新增及修改, 並考慮雲端時間差問題
|
||||
Description: 使用 Vue+FullCalendar 開發行事曆, 並用 iFrame 崁入 amis 環境
|
||||
編輯行事曆: eip_Calendar_crud (本 sp)
|
||||
讀取行事曆: eip_getCalendar
|
||||
刪除行事曆: eip_Calendar_delete
|
||||
原本是傳入 tablename, 目前統一都改傳入 functiontag, 擴充彈性較大(盡量不動 Vue+FullCalendar)
|
||||
Build Date : 2023/07/19 (轉換為 MariaDB 版本)
|
||||
|
||||
Modify History
|
||||
Item Who Date Modify Docs
|
||||
==== ========== ========== ================================================
|
||||
1 Michael 2024/03/11 傳入參數由 tablename 改為 functiontag
|
||||
2 Michael 2025/07/20 改寫為 MariaDB 並最佳化(ChatGPT+DeepSeek)
|
||||
*/
|
||||
BEGIN
|
||||
DECLARE v_adjusted_start DATETIME;
|
||||
DECLARE v_adjusted_end DATETIME;
|
||||
|
||||
-- 調整雲端時間 (假設 cloud_adjusttime 函數已存在)
|
||||
-- SET v_adjusted_start = cloud_adjusttime(p_start_time, 1);
|
||||
-- SET v_adjusted_end = cloud_adjusttime(p_end_time, 1);
|
||||
-- Michael 2025-11-21
|
||||
SET v_adjusted_start = STR_TO_DATE( REPLACE(REPLACE(p_start_time, 'T', ' '), '.000Z', ''), '%Y-%m-%d %H:%i:%s');
|
||||
SET v_adjusted_end = STR_TO_DATE( REPLACE(REPLACE(p_end_time, 'T', ' '), '.000Z', ''), '%Y-%m-%d %H:%i:%s');
|
||||
|
||||
-- 根據不同的 functiontag 處理不同的表
|
||||
CASE p_functiontag
|
||||
WHEN 'eipm15' THEN -- 會議室預約
|
||||
UPDATE eipplace_fc SET
|
||||
response_desc = p_title,
|
||||
startdate = DATE(v_adjusted_start),
|
||||
starttime = TIME(v_adjusted_start),
|
||||
end_date = DATE(v_adjusted_end),
|
||||
endtime = TIME(v_adjusted_end)
|
||||
WHERE uniqueno = p_id;
|
||||
|
||||
WHEN 'eipm13' THEN -- 會議通知
|
||||
UPDATE eipmeetingrec_m SET
|
||||
meeting_title = p_title,
|
||||
startdate = DATE(v_adjusted_start),
|
||||
starttime = TIME(v_adjusted_start),
|
||||
end_date = DATE(v_adjusted_end),
|
||||
end_time = TIME(v_adjusted_end)
|
||||
WHERE uniqueno = p_id;
|
||||
|
||||
WHEN 'eipm02' THEN -- 行程管理
|
||||
UPDATE eip_new_calendar SET
|
||||
title = p_title,
|
||||
start_time = v_adjusted_start,
|
||||
end_time = v_adjusted_end,
|
||||
s_date = DATE(v_adjusted_start),
|
||||
s_time = TIME_FORMAT(v_adjusted_start, '%H:%i'),
|
||||
e_date = DATE(v_adjusted_end),
|
||||
e_time = TIME_FORMAT(v_adjusted_end, '%H:%i')
|
||||
WHERE uuid = p_id;
|
||||
|
||||
ELSE -- 默認處理 eip_core_calendar
|
||||
IF p_id = '-1' AND p_userid IS NOT NULL AND p_userid != '' THEN
|
||||
-- 新增記錄
|
||||
INSERT INTO eip_core_calendar (
|
||||
title, start_time, end_time, personid,
|
||||
s_date, s_time, e_date, e_time
|
||||
) VALUES (
|
||||
p_title, v_adjusted_start, v_adjusted_end, p_userid,
|
||||
DATE(v_adjusted_start),
|
||||
TIME_FORMAT(v_adjusted_start, '%H:%i'),
|
||||
DATE(v_adjusted_end),
|
||||
TIME_FORMAT(v_adjusted_end, '%H:%i')
|
||||
);
|
||||
ELSE
|
||||
-- 更新記錄
|
||||
UPDATE eip_core_calendar SET
|
||||
title = p_title,
|
||||
start_time = v_adjusted_start,
|
||||
end_time = v_adjusted_end,
|
||||
s_date = DATE(v_adjusted_start),
|
||||
s_time = TIME_FORMAT(v_adjusted_start, '%H:%i'),
|
||||
e_date = DATE(v_adjusted_end),
|
||||
e_time = TIME_FORMAT(v_adjusted_end, '%H:%i')
|
||||
WHERE id = p_id;
|
||||
END IF;
|
||||
END CASE;
|
||||
|
||||
-- 返回成功結果
|
||||
SELECT 0 AS code, 'ok' AS msg;
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user