Refactor billing options retrieval to include data permissions and add effective date handling for product imports

This commit is contained in:
wuweihua
2026-10-09 09:27:28 +08:00
parent fea34d1d10
commit c95a9861cc
42 changed files with 984 additions and 219 deletions
+7 -4
View File
@@ -292,8 +292,8 @@ CREATE TABLE `product` (
`dest_region` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的区域:欧盟等',
`update_note` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新内容说明',
`tax_mode` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'TAX_INCLUDED' COMMENT 'TAX_INCLUDED包税 TAX_EXCLUDED不包税',
`effective_date` date DEFAULT NULL COMMENT '目录生效日期',
`expire_date` date DEFAULT NULL COMMENT '产品失效日期(空=长期;下一版生效日=本版失效日)',
`effective_date` datetime DEFAULT NULL COMMENT '目录生效时间(到小时)',
`expire_date` datetime DEFAULT NULL COMMENT '产品失效时间(空=长期;下一版生效时间=本版失效时间)',
`status` char(1) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '0待生效 1已生效 2已失效',
`source_sheet` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源Excel sheet名',
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
@@ -329,8 +329,8 @@ CREATE TABLE `product_country` (
`size_limit` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '尺寸限制',
`last_mile` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '尾程派送说明',
`lead_time` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '参考时效',
`effective_date` date DEFAULT NULL COMMENT '产品价表生效日期',
`expire_date` date DEFAULT NULL COMMENT 'expire date (null=open; set to next import effective_date)',
`effective_date` datetime DEFAULT NULL COMMENT '产品价表生效时间(到小时)',
`expire_date` datetime DEFAULT NULL COMMENT '失效时间(空=开放;下一版导入生效时间=本版失效时间)',
`status` char(1) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '0待生效 1已生效 2已失效',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
@@ -896,6 +896,8 @@ CREATE TABLE `prc_income_bill_fee` (
`fee_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '费用名称',
`sc_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '附加费配置ID',
`amount` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '金额',
`product_amount` decimal(18,4) DEFAULT NULL COMMENT '产品价',
`redline_amount` decimal(18,4) DEFAULT NULL COMMENT '红线价',
`currency` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '币种',
`round_mode` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'HALF_UP' COMMENT '取值方式',
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
@@ -925,6 +927,7 @@ CREATE TABLE `prc_order_bill` (
`settlement_man` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '结算员',
`settlement_man_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '结算员编码',
`service_man` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客服员',
`service_man_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客服员编码',
`customer_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '客户ID',
`customer_code` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户代码',
`customer_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户名称',
@@ -0,0 +1,15 @@
-- prc_income_bill_fee: product / redline amounts (run once on existing DB)
SET @col_exists := (
SELECT COUNT(1) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prc_income_bill_fee' AND COLUMN_NAME = 'product_amount'
);
SET @sql := IF(@col_exists = 0,
CONCAT(
'ALTER TABLE `prc_income_bill_fee` ',
'ADD COLUMN `product_amount` decimal(18,4) DEFAULT NULL COMMENT ''产品价'' AFTER `amount`, ',
'ADD COLUMN `redline_amount` decimal(18,4) DEFAULT NULL COMMENT ''红线价'' AFTER `product_amount`'
),
'SELECT 1');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
@@ -0,0 +1,11 @@
-- prc_order_bill: service_man_code (run once on existing DB)
SET @col_exists := (
SELECT COUNT(1) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prc_order_bill' AND COLUMN_NAME = 'service_man_code'
);
SET @sql := IF(@col_exists = 0,
'ALTER TABLE `prc_order_bill` ADD COLUMN `service_man_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT ''客服员编码'' AFTER `service_man`',
'SELECT 1');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
@@ -0,0 +1,8 @@
-- product / product_country: effective_date & expire_date support hour precision
ALTER TABLE product
MODIFY COLUMN effective_date datetime DEFAULT NULL COMMENT '目录生效时间(到小时)',
MODIFY COLUMN expire_date datetime DEFAULT NULL COMMENT '产品失效时间(空=长期;下一版生效时间=本版失效时间)';
ALTER TABLE product_country
MODIFY COLUMN effective_date datetime DEFAULT NULL COMMENT '产品价表生效时间(到小时)',
MODIFY COLUMN expire_date datetime DEFAULT NULL COMMENT '失效时间(空=开放;下一版导入生效时间=本版失效时间)';