This commit is contained in:
2026-08-08 13:32:20 +08:00
parent 96788e10de
commit 3203adb5a7
73 changed files with 44331 additions and 26 deletions
@@ -3473,8 +3473,12 @@ BEGIN
END IF;
IF EXISTS (
SELECT 1 FROM iam_permission
WHERE (id = 5103040 AND permission_code <> 'platform:download:list')
OR (id = 5103041 AND permission_code <> 'platform:download:all')
WHERE (id = 5103040 AND NOT (
(permission_code = 'platform:download:list' AND parent_id = 5103000)
OR (permission_code = 'platform:location:list' AND parent_id = 5103000)))
OR (id = 5103041 AND NOT (
(permission_code = 'platform:download:all' AND parent_id = 5103040)
OR (permission_code = 'platform:location:create' AND parent_id = 5103040)))
OR (permission_code = 'platform:download:list' AND id <> 5103040)
OR (permission_code = 'platform:download:all' AND id <> 5103041)
) THEN
@@ -3952,6 +3956,7 @@ CREATE TABLE IF NOT EXISTS wh_overseas_storage_fee_rule (
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户账号ID,沿用tenant_id物理字段',
customer_name VARCHAR(128) NOT NULL COMMENT '客户公司名称快照',
currency CHAR(3) NOT NULL COMMENT 'ISO 4217币种三字码',
initialization_key VARCHAR(191) NULL COMMENT '初始化幂等键',
created_by BIGINT UNSIGNED NULL COMMENT '创建人ID',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
updated_by BIGINT UNSIGNED NULL COMMENT '最后修改人ID',
@@ -3973,8 +3978,10 @@ CREATE TABLE IF NOT EXISTS wh_overseas_storage_fee_tier (
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户账号ID,沿用tenant_id物理字段',
rule_id BIGINT UNSIGNED NOT NULL COMMENT '阶梯费用规则ID',
start_day SMALLINT UNSIGNED NOT NULL COMMENT '起始天,含边界',
end_day SMALLINT UNSIGNED NOT NULL COMMENT '结束天,含边界',
unit_price DECIMAL(18,6) NOT NULL COMMENT '仓储费标准',
end_day SMALLINT UNSIGNED NULL COMMENT '结束天,含边界;NULL表示以上',
fee_type VARCHAR(32) NOT NULL DEFAULT 'STORAGE' COMMENT '费用类型',
billing_unit VARCHAR(16) NOT NULL DEFAULT 'CBM' COMMENT '计费单位',
unit_price DECIMAL(18,6) NOT NULL COMMENT '仓储费标准,可为0',
sort_no SMALLINT UNSIGNED NOT NULL COMMENT '阶梯排序号',
created_by BIGINT UNSIGNED NULL COMMENT '创建人ID',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
@@ -3987,12 +3994,30 @@ CREATE TABLE IF NOT EXISTS wh_overseas_storage_fee_tier (
GENERATED ALWAYS AS (CASE WHEN deleted = 0 THEN start_day ELSE NULL END) STORED
COMMENT '未删除阶梯的起始天唯一键',
PRIMARY KEY (id),
UNIQUE KEY uk_overseas_fee_tier_start (rule_id, active_start_day),
UNIQUE KEY uk_overseas_fee_tier_start (rule_id, fee_type, active_start_day),
KEY idx_overseas_fee_tier_rule (tenant_id, rule_id, deleted, sort_no, id),
CONSTRAINT chk_overseas_fee_tier_days CHECK (start_day >= 1 AND end_day >= start_day),
CONSTRAINT chk_overseas_fee_tier_price CHECK (unit_price > 0)
CONSTRAINT chk_overseas_fee_tier_days CHECK (start_day >= 1 AND (end_day IS NULL OR end_day >= start_day)),
CONSTRAINT chk_overseas_fee_tier_price CHECK (unit_price >= 0)
) ENGINE=InnoDB COMMENT='海外仓阶梯仓储费明细';
-- 兼容已存在的旧版海外仓费用表:补齐新字段及免费档/无上限档约束。
ALTER TABLE wh_overseas_storage_fee_rule
ADD COLUMN IF NOT EXISTS initialization_key VARCHAR(191) NULL COMMENT '初始化幂等键';
ALTER TABLE wh_overseas_storage_fee_tier
ADD COLUMN IF NOT EXISTS fee_type VARCHAR(32) NOT NULL DEFAULT 'STORAGE' COMMENT '费用类型',
ADD COLUMN IF NOT EXISTS billing_unit VARCHAR(16) NOT NULL DEFAULT 'CBM' COMMENT '计费单位';
ALTER TABLE wh_overseas_storage_fee_tier
MODIFY COLUMN end_day SMALLINT UNSIGNED NULL COMMENT '结束天,含边界;NULL表示以上',
MODIFY COLUMN unit_price DECIMAL(18,6) NOT NULL COMMENT '仓储费标准,可为0';
ALTER TABLE wh_overseas_storage_fee_tier
DROP CHECK chk_overseas_fee_tier_days,
DROP CHECK chk_overseas_fee_tier_price,
ADD CONSTRAINT chk_overseas_fee_tier_days CHECK (start_day >= 1 AND (end_day IS NULL OR end_day >= start_day)),
ADD CONSTRAINT chk_overseas_fee_tier_price CHECK (unit_price >= 0);
ALTER TABLE wh_overseas_storage_fee_tier
DROP INDEX uk_overseas_fee_tier_start,
ADD UNIQUE KEY uk_overseas_fee_tier_start (rule_id, fee_type, active_start_day);
USE baiyue_iam;
INSERT INTO iam_permission (
id, tenant_id, app_code, permission_type, parent_id, permission_code,