95 lines
3.6 KiB
Plaintext
95 lines
3.6 KiB
Plaintext
DELIMITER //
|
|
|
|
CREATE OR REPLACE PROCEDURE zen_create_json_reset_codeid(
|
|
IN p_uuid VARCHAR(100),
|
|
IN p_FunctionTag VARCHAR(100),
|
|
IN p_code_id VARCHAR(100),
|
|
IN p_query_type VARCHAR(100)
|
|
)
|
|
/*
|
|
function : 判斷傳入的 FunctionTag, 重新設定 FunctionTag_org/FunctionTag/code_id
|
|
description: 此段程式是因為 Wizard 除了支援完整 crud 的程式外, 也一併支援 view only, insert only 等不完全程式, 所以才會有此段程式
|
|
Build Date : 2023/12/20
|
|
|
|
Modify History
|
|
Item Who Date Modify Docs
|
|
==== ========== ========== ================================================
|
|
1 Michael 2023/12/20 根據 v1.0 重構
|
|
*/
|
|
BEGIN
|
|
DECLARE v_FunctionTag VARCHAR(100);
|
|
DECLARE v_code_id VARCHAR(100);
|
|
|
|
-- 通用寫法
|
|
SET v_FunctionTag = p_FunctionTag;
|
|
SET v_code_id = p_code_id;
|
|
|
|
/*
|
|
@FunctionTag = crmm02 產生查詢專用的 ViewForm
|
|
@FunctionTag_org = crmm02_V
|
|
*/
|
|
IF RIGHT(v_FunctionTag, 2) = '_V' THEN
|
|
SET v_FunctionTag = SUBSTRING(v_FunctionTag, 1, LENGTH(v_FunctionTag)-2);
|
|
|
|
-- 特別判斷一下 Template(先處理 MD, Single 暫時先不處理)
|
|
IF v_code_id LIKE '%MasterDetail%' THEN
|
|
SET v_code_id = 'MasterDetail-View';
|
|
ELSEIF v_code_id LIKE '%Single%' THEN
|
|
-- Single 也一併支援了吧(ok)
|
|
SET v_code_id = 'singleEntry-View';
|
|
END IF;
|
|
END IF;
|
|
|
|
/*
|
|
最單純的 SingleGridView(通常是被開窗查詢用) 2022-09-24
|
|
*/
|
|
IF RIGHT(v_FunctionTag, 3) = '_gv' THEN
|
|
SET v_FunctionTag = SUBSTRING(v_FunctionTag, 1, LENGTH(v_FunctionTag)-3);
|
|
|
|
-- 適用於所有的表單
|
|
SET v_code_id = 'SingleGridView';
|
|
END IF;
|
|
|
|
-- MD 的 Detail Insert(開發中...)
|
|
IF RIGHT(v_FunctionTag, 3) = '_DI' THEN
|
|
SET v_FunctionTag = SUBSTRING(v_FunctionTag, 1, LENGTH(v_FunctionTag)-3);
|
|
|
|
-- 特別判斷一下 Template(先處理 MD, Single 暫時先不處理)
|
|
IF v_code_id LIKE '%MasterDetail%' THEN
|
|
SET v_code_id = 'MasterDetail-Detail-Insert';
|
|
END IF;
|
|
END IF;
|
|
|
|
IF RIGHT(v_FunctionTag, 2) = '_I' THEN
|
|
SET v_FunctionTag = SUBSTRING(v_FunctionTag, 1, LENGTH(v_FunctionTag)-2);
|
|
|
|
-- 特別判斷一下 Template(先處理 MD, Single 暫時先不處理)
|
|
IF v_code_id LIKE '%Single%' THEN
|
|
SET v_code_id = 'singleEntry-Insert';
|
|
ELSEIF v_code_id LIKE '%MasterDetail%' THEN
|
|
-- MasterDetail 也一併支援了吧, 但是只會產生 Master 的 Insert(ok)
|
|
SET v_code_id = 'MasterDetail-Insert';
|
|
END IF;
|
|
END IF;
|
|
|
|
-- 將傳入的 json 寫入暫存表方便處理
|
|
INSERT INTO zen_wizard_tmp (uuid,zen_key,zen_value,create_date) VALUES (p_uuid, 'FunctionTag', v_FunctionTag, NOW());
|
|
INSERT INTO zen_wizard_tmp (uuid,zen_key,zen_value,create_date) VALUES (p_uuid, 'code_id', v_code_id, NOW());
|
|
|
|
-- 一些簡單的 update 也放此處
|
|
/*
|
|
新增 query_type=C 複雜的多欄位Query
|
|
E 簡單的單欄查詢
|
|
*/
|
|
UPDATE zen_function SET query_type='E' WHERE IFNULL(query_type,'')='';
|
|
UPDATE zen_function SET op_width=100 WHERE op_width IS NULL;
|
|
UPDATE zen_function SET is_bpm='N' WHERE is_bpm IS NULL;
|
|
UPDATE zen_function SET is_extend='N' WHERE is_extend IS NULL;
|
|
|
|
/*
|
|
處理一下 zen_fields 的 null 值
|
|
fieldchecknull,fieldro
|
|
*/
|
|
UPDATE zen_fields SET fieldchecknull = 'N' WHERE IFNULL(fieldchecknull,'') = '';
|
|
UPDATE zen_fields SET fieldro = 'N' WHERE IFNULL(fieldro,'') = '';
|
|
END // |