-- ---------------------------- -- BMS 计费字典:取值方式 / 费用类型 -- charset: utf8mb4 -- 幂等:dict_type 唯一键 + WHERE NOT EXISTS,可重复执行 -- 默认值:费用类型 = SURCHARGE(附加费),取值方式 = HALF_UP(四舍五入) -- ---------------------------- -- 1) 字典类型 INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark) SELECT '取值方式', 'bms_round_mode', '0', 'admin', sysdate(), '计费金额取值方式' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'bms_round_mode'); INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark) SELECT '费用类型', 'bms_fee_type', '0', 'admin', sysdate(), '计费费用类型' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'bms_fee_type'); -- 2) 取值方式字典数据(默认 HALF_UP 四舍五入) INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 1, '向上取值', 'UP', 'bms_round_mode', 'N', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_round_mode' AND dict_value = 'UP'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 2, '向下取整', 'DOWN', 'bms_round_mode', 'N', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_round_mode' AND dict_value = 'DOWN'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 3, '四舍五入', 'HALF_UP', 'bms_round_mode', 'Y', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_round_mode' AND dict_value = 'HALF_UP'); -- 3) 费用类型字典数据(默认 SURCHARGE 附加费) INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 1, '基础运费', 'BASIC_FREIGHT', 'bms_fee_type', 'N', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_fee_type' AND dict_value = 'BASIC_FREIGHT'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 2, '挂号费', 'REGISTRATION_FEE', 'bms_fee_type', 'N', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_fee_type' AND dict_value = 'REGISTRATION_FEE'); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark) SELECT 3, '附加费', 'SURCHARGE', 'bms_fee_type', 'Y', '0', 'admin', sysdate(), '' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'bms_fee_type' AND dict_value = 'SURCHARGE'); -- 4) 幂等修正默认值(数据已存在时强制对齐,保证重复执行后默认值仍正确) UPDATE sys_dict_data SET is_default = 'N' WHERE dict_type = 'bms_round_mode' AND dict_value <> 'HALF_UP'; UPDATE sys_dict_data SET is_default = 'Y' WHERE dict_type = 'bms_round_mode' AND dict_value = 'HALF_UP'; UPDATE sys_dict_data SET is_default = 'N' WHERE dict_type = 'bms_fee_type' AND dict_value <> 'SURCHARGE'; UPDATE sys_dict_data SET is_default = 'Y' WHERE dict_type = 'bms_fee_type' AND dict_value = 'SURCHARGE';