-- ---------------------------- -- BMS 计费字典:计费方式 / 币种 -- charset: utf8mb4 -- 幂等:dict_type 唯一键 + WHERE NOT EXISTS,可重复执行 -- 默认值:计费方式 = FIXED(固定金额),币种 = CNY(人民币) -- ---------------------------- -- 1) 字典类型 INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark) SELECT '计费方式', 'bms_charge_type', '0', 'admin', sysdate(), '计费方式 FIXED固定金额/WEIGHT按重量/RATE按比例' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'bms_charge_type'); INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark) SELECT '币种', 'bms_currency', '0', 'admin', sysdate(), '计费币种' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'bms_currency'); -- 2) 计费方式字典数据(默认 FIXED 固定金额) INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 1, '固定金额(每票)', 'FIXED', 'bms_charge_type', 'Y', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_charge_type' AND dict_value = 'FIXED'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 2, '按重量(每KG)', 'WEIGHT', 'bms_charge_type', 'N', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_charge_type' AND dict_value = 'WEIGHT'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 3, '按比例(%)', 'RATE', 'bms_charge_type', 'N', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_charge_type' AND dict_value = 'RATE'); -- 3) 币种字典数据(默认 CNY 人民币) INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 1, '人民币', 'CNY', 'bms_currency', 'Y', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_currency' AND dict_value = 'CNY'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 2, '美元', 'USD', 'bms_currency', 'N', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_currency' AND dict_value = 'USD'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 3, '欧元', 'EUR', 'bms_currency', 'N', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_currency' AND dict_value = 'EUR'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 4, '英镑', 'GBP', 'bms_currency', 'N', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_currency' AND dict_value = 'GBP'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 5, '日元', 'JPY', 'bms_currency', 'N', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_currency' AND dict_value = 'JPY'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 6, '港币', 'HKD', 'bms_currency', 'N', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_currency' AND dict_value = 'HKD'); -- 4) 幂等修正默认值(数据已存在时强制对齐) UPDATE sys_dict_data SET is_default = 'N' WHERE dict_type = 'bms_charge_type' AND dict_value <> 'FIXED'; UPDATE sys_dict_data SET is_default = 'Y' WHERE dict_type = 'bms_charge_type' AND dict_value = 'FIXED'; UPDATE sys_dict_data SET is_default = 'N' WHERE dict_type = 'bms_currency' AND dict_value <> 'CNY'; UPDATE sys_dict_data SET is_default = 'Y' WHERE dict_type = 'bms_currency' AND dict_value = 'CNY';