Files
BMS/bms-back/sql/price/dict_fee_round.sql
T
2026-09-07 16:50:59 +08:00

48 lines
3.4 KiB
SQL

-- ----------------------------
-- 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';