应付账单初始化

This commit is contained in:
caojia
2026-11-04 16:04:38 +08:00
committed by liuminghui
parent 04be15deab
commit 51a89b18e1
90 changed files with 15661 additions and 6 deletions
+17
View File
@@ -0,0 +1,17 @@
-- 收付类型。字典 bms_pay_type。可重复执行。
SET NAMES utf8mb4;
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
SELECT '收付类型', 'bms_pay_type', '0', 'admin', sysdate(), 'AR应收,AP应付'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'bms_pay_type');
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
SELECT v.dict_sort, v.dict_label, v.dict_value, 'bms_pay_type', '', 'default', v.is_default, '0', 'admin', sysdate(), v.remark
FROM (
SELECT 1 AS dict_sort, '应收' AS dict_label, 'AR' AS dict_value, 'N' AS is_default, '应收' AS remark
UNION ALL SELECT 2, '应付', 'AP', 'Y', '应付'
) v
WHERE NOT EXISTS (
SELECT 1 FROM sys_dict_data d
WHERE d.dict_type = 'bms_pay_type' AND d.dict_value = v.dict_value
);
+18
View File
@@ -0,0 +1,18 @@
-- 订单收费类型。字典 order_charge_type。可重复执行。
SET NAMES utf8mb4;
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
SELECT '订单收费类型', 'order_charge_type', '0', 'admin', sysdate(), '订单收费类型'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'order_charge_type');
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
SELECT v.dict_sort, v.dict_label, v.dict_value, 'order_charge_type', '', 'default', 'N', '0', 'admin', sysdate(), v.remark
FROM (
SELECT 1 AS dict_sort, '续重计费' AS dict_label, '续重计费' AS dict_value, '首重之外按每公斤续重' AS remark
UNION ALL SELECT 2, '单票价', '单票价', '每个重量段收一票价格'
UNION ALL SELECT 3, '常规计重价', '常规计重价', '单价乘公斤再加挂号费'
) v
WHERE NOT EXISTS (
SELECT 1 FROM sys_dict_data d
WHERE d.dict_type = 'order_charge_type' AND d.dict_value = v.dict_value
);
+140
View File
@@ -0,0 +1,140 @@
-- 应付邮编配置。挂在数据管理下面。可重复执行。
-- 附加费按国家、费用名称、金额原文合并成一条;邮编行仍按 Excel 逐条保存。
SET NAMES utf8mb4;
CREATE TABLE IF NOT EXISTS `pay_postcode_group` (
`group_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '配置ID',
`source_file` varchar(500) NOT NULL COMMENT '来源文件名',
`file_md5` char(32) NOT NULL COMMENT '来源文件MD5',
`sheet_name` varchar(200) NOT NULL COMMENT '工作表',
`block_title` varchar(200) DEFAULT NULL COMMENT '表内区块标题,按Excel原文',
`config_kind` varchar(20) NOT NULL COMMENT 'ZONE邮编分区 FEE附加费',
`channel_name` varchar(100) DEFAULT NULL COMMENT '渠道名称,从Excel表头识别',
`country_name` varchar(100) DEFAULT NULL COMMENT '国家',
`country_code` varchar(20) DEFAULT NULL COMMENT '国家二字码',
`fee_name` varchar(200) DEFAULT NULL COMMENT '附加费名称,邮编分区可空',
`fee_text` varchar(200) DEFAULT NULL COMMENT '附加费金额原文。同国家同费用同原文只保留一条',
`line_count` int(11) NOT NULL DEFAULT 0 COMMENT '邮编行数',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`group_id`),
KEY `idx_pay_postcode_group_file` (`file_md5`, `sheet_name`),
KEY `idx_pay_postcode_group_country` (`country_code`),
KEY `idx_pay_postcode_group_fee` (`fee_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应付邮编配置:分区或合并后的附加费';
CREATE TABLE IF NOT EXISTS `pay_postcode_line` (
`line_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '邮编行ID',
`group_id` bigint(20) NOT NULL COMMENT '配置ID',
`country_name` varchar(100) DEFAULT NULL COMMENT '国家',
`country_code` varchar(20) DEFAULT NULL COMMENT '国家二字码',
`region_name` varchar(200) DEFAULT NULL COMMENT '州或地区,Excel原文',
`region_name_cn` varchar(200) DEFAULT NULL COMMENT '地区中文',
`city_name` varchar(200) DEFAULT NULL COMMENT '城市',
`region_code` varchar(50) DEFAULT NULL COMMENT '地区代码',
`zone_name` varchar(200) DEFAULT NULL COMMENT '分区,Excel原文',
`postcode` varchar(200) NOT NULL COMMENT '邮编,已去掉末尾星号',
`postcode_raw` varchar(200) DEFAULT NULL COMMENT '邮编原文',
`postcode_end` varchar(200) DEFAULT NULL COMMENT '截止邮编,已去掉末尾星号',
`extra_text` varchar(500) DEFAULT NULL COMMENT '其余列,从左到右用 | 连接',
`sort_no` int(11) NOT NULL DEFAULT 0 COMMENT 'Excel中的先后顺序',
PRIMARY KEY (`line_id`),
KEY `idx_pay_postcode_line_group` (`group_id`),
KEY `idx_pay_postcode_line_code` (`postcode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应付邮编明细,一行对应Excel一条邮编';
SET @parentId := (
SELECT menu_id FROM sys_menu
WHERE path = 'data' AND menu_type = 'M' AND parent_id = 0
ORDER BY menu_id ASC LIMIT 1
);
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT '应付邮编配置', @parentId, 8, 'payPostcode', 'data/payPostcode/index', '', 'PayPostcode', 1, 0, 'C', '0', '0', 'data:payPostcode:list', 'international', 'admin', sysdate(), '按Excel导入应付邮编和附加费邮编'
FROM DUAL WHERE @parentId IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'data:payPostcode:list');
SET @menuId := (SELECT menu_id FROM sys_menu WHERE perms = 'data:payPostcode:list' LIMIT 1);
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
SELECT '应付邮编查询', @menuId, 1, '', '', 1, 0, 'F', '0', '0', 'data:payPostcode:query', '#', 'admin', sysdate()
FROM DUAL WHERE @menuId IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'data:payPostcode:query');
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
SELECT '应付邮编导入', @menuId, 2, '', '', 1, 0, 'F', '0', '0', 'data:payPostcode:import', '#', 'admin', sysdate()
FROM DUAL WHERE @menuId IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'data:payPostcode:import');
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
SELECT '应付邮编修改', @menuId, 3, '', '', 1, 0, 'F', '0', '0', 'data:payPostcode:edit', '#', 'admin', sysdate()
FROM DUAL WHERE @menuId IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'data:payPostcode:edit');
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
SELECT '应付邮编删除', @menuId, 4, '', '', 1, 0, 'F', '0', '0', 'data:payPostcode:remove', '#', 'admin', sysdate()
FROM DUAL WHERE @menuId IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'data:payPostcode:remove');
SET @has_channel_name := (
SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pay_postcode_group' AND COLUMN_NAME = 'channel_name'
);
SET @add_channel_name := IF(
@has_channel_name = 0,
'ALTER TABLE pay_postcode_group ADD COLUMN channel_name varchar(100) DEFAULT NULL COMMENT ''渠道名称,从Excel表头识别'' AFTER config_kind',
'SELECT 1'
);
PREPARE add_channel_name_stmt FROM @add_channel_name;
EXECUTE add_channel_name_stmt;
DEALLOCATE PREPARE add_channel_name_stmt;
SET @has_coverage := (
SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pay_postcode_group' AND COLUMN_NAME = 'coverage'
);
SET @add_coverage := IF(
@has_coverage = 0,
'ALTER TABLE pay_postcode_group ADD COLUMN coverage varchar(20) DEFAULT NULL COMMENT ''REACH可达 UNREACH不可达 REMOTE偏远,普通分区为空'' AFTER config_kind',
'SELECT 1'
);
PREPARE add_coverage_stmt FROM @add_coverage;
EXECUTE add_coverage_stmt;
DEALLOCATE PREPARE add_coverage_stmt;
SET @has_service_type := (
SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pay_postcode_group' AND COLUMN_NAME = 'service_type'
);
SET @add_service_type := IF(
@has_service_type = 0,
'ALTER TABLE pay_postcode_group ADD COLUMN service_type varchar(100) DEFAULT NULL COMMENT ''目录服务类型'' AFTER country_code, ADD COLUMN catalog_country varchar(100) DEFAULT NULL COMMENT ''目录国家,和邮编目的国分开'' AFTER service_type, ADD COLUMN product_name varchar(200) DEFAULT NULL COMMENT ''目录销售产品'' AFTER catalog_country, ADD COLUMN quote_sheet varchar(200) DEFAULT NULL COMMENT ''目录报价工作表'' AFTER product_name',
'SELECT 1'
);
PREPARE add_service_type_stmt FROM @add_service_type;
EXECUTE add_service_type_stmt;
DEALLOCATE PREPARE add_service_type_stmt;
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 1, m.menu_id
FROM sys_menu m
WHERE m.perms LIKE 'data:payPostcode:%'
AND NOT EXISTS (SELECT 1 FROM sys_role_menu x WHERE x.role_id = 1 AND x.menu_id = m.menu_id);
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT DISTINCT rm.role_id, dst.menu_id
FROM sys_role_menu rm
JOIN sys_menu src ON src.menu_id = rm.menu_id AND src.perms = 'data:region:list'
JOIN sys_menu dst ON dst.perms IN ('data:payPostcode:list', 'data:payPostcode:query')
WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu x WHERE x.role_id = rm.role_id AND x.menu_id = dst.menu_id);
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT DISTINCT rm.role_id, dst.menu_id
FROM sys_role_menu rm
JOIN sys_menu src ON src.menu_id = rm.menu_id AND src.perms = 'data:region:edit'
JOIN sys_menu dst ON dst.perms IN ('data:payPostcode:import', 'data:payPostcode:edit')
WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu x WHERE x.role_id = rm.role_id AND x.menu_id = dst.menu_id);
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT DISTINCT rm.role_id, dst.menu_id
FROM sys_role_menu rm
JOIN sys_menu src ON src.menu_id = rm.menu_id AND src.perms = 'data:region:remove'
JOIN sys_menu dst ON dst.perms = 'data:payPostcode:remove'
WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu x WHERE x.role_id = rm.role_id AND x.menu_id = dst.menu_id);
@@ -0,0 +1,43 @@
-- 应付渠道产品。字典类型 payment_product_type,字典项为价卡文件名。
-- 可重复执行。
SET NAMES utf8mb4;
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
SELECT '应付渠道产品', 'payment_product_type', '0', 'admin', sysdate(), '应付渠道产品'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'payment_product_type');
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
SELECT v.dict_sort, v.dict_label, v.dict_value, 'payment_product_type', '', 'default', 'N', '0', 'admin', sysdate(), '应付价卡文件名'
FROM (
SELECT 1 AS dict_sort, 'Colissimo' AS dict_label, 'Colissimo' AS dict_value
UNION ALL SELECT 2, 'Corres Express', 'Corres Express'
UNION ALL SELECT 3, 'CTT 48H', 'CTT 48H'
UNION ALL SELECT 4, 'DE-iMile', 'DE-iMile'
UNION ALL SELECT 5, 'DHL International', 'DHL International'
UNION ALL SELECT 6, 'DHL Paket', 'DHL Paket'
UNION ALL SELECT 7, 'DHL泛欧', 'DHL泛欧'
UNION ALL SELECT 8, 'Evri 48H', 'Evri 48H'
UNION ALL SELECT 9, 'IT-iMile', 'IT-iMile'
UNION ALL SELECT 10, 'NL-DHL', 'NL-DHL'
UNION ALL SELECT 11, 'PosteItaliane', 'PosteItaliane'
UNION ALL SELECT 12, 'Royal Mail 48H', 'Royal Mail 48H'
UNION ALL SELECT 13, '德国DHL', '德国DHL'
UNION ALL SELECT 14, '德国DPD挂号 (DEDPD)', '德国DPD挂号 (DEDPD)'
UNION ALL SELECT 15, '德国DPD挂号-国际件', '德国DPD挂号-国际件'
UNION ALL SELECT 16, '德国UPS', '德国UPS'
UNION ALL SELECT 17, '法国Cirro', '法国Cirro'
UNION ALL SELECT 18, '法国Colissimo', '法国Colissimo'
UNION ALL SELECT 19, '法国GOFO', '法国GOFO'
UNION ALL SELECT 20, '西班牙CTT', '西班牙CTT'
UNION ALL SELECT 21, '西班牙CTT带电专线(岛屿+其他地区)', '西班牙CTT带电专线(岛屿+其他地区)'
UNION ALL SELECT 22, '西班牙CTT带电专线(主要地区)', '西班牙CTT带电专线(主要地区)'
UNION ALL SELECT 23, '西班牙GLS', '西班牙GLS'
UNION ALL SELECT 24, '西邮-西班牙(全境)', '西邮-西班牙(全境)'
UNION ALL SELECT 25, '西邮-西班牙(主岛)', '西邮-西班牙(主岛)'
UNION ALL SELECT 26, '英国evri', '英国evri'
UNION ALL SELECT 27, '英国RM', '英国RM'
) v
WHERE NOT EXISTS (
SELECT 1 FROM sys_dict_data d
WHERE d.dict_type = 'payment_product_type' AND d.dict_value = v.dict_value
);