first commit

This commit is contained in:
2026-02-06 23:26:59 +08:00
parent 0f3f1467b8
commit 6cf8248b2d
34 changed files with 2348 additions and 0 deletions
+99
View File
@@ -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 ;