fix(firstleg): complete inbound fee deployment schema
This commit is contained in:
@@ -3139,6 +3139,8 @@ CREATE TABLE IF NOT EXISTS fl_inbound_fee (
|
|||||||
actual_weight_kg DECIMAL(18,3) NOT NULL COMMENT '试算时实际重量kg',
|
actual_weight_kg DECIMAL(18,3) NOT NULL COMMENT '试算时实际重量kg',
|
||||||
actual_volume_cbm DECIMAL(18,4) NOT NULL COMMENT '试算时实际体积m3',
|
actual_volume_cbm DECIMAL(18,4) NOT NULL COMMENT '试算时实际体积m3',
|
||||||
converted_quantity DECIMAL(18,4) NOT NULL COMMENT '换算后的重量或体积',
|
converted_quantity DECIMAL(18,4) NOT NULL COMMENT '换算后的重量或体积',
|
||||||
|
baseline_chargeable_quantity DECIMAL(18,6) NOT NULL COMMENT '系统按权威测量与生效报价计算的原始计费量',
|
||||||
|
tolerance_percent DECIMAL(5,2) NOT NULL DEFAULT 10.00 COMMENT '人工调整允许的最大偏差百分比,边界包含',
|
||||||
chargeable_quantity DECIMAL(18,4) NOT NULL COMMENT '最终计费量',
|
chargeable_quantity DECIMAL(18,4) NOT NULL COMMENT '最终计费量',
|
||||||
charge_unit VARCHAR(16) NOT NULL COMMENT '计费单位',
|
charge_unit VARCHAR(16) NOT NULL COMMENT '计费单位',
|
||||||
currency CHAR(3) NOT NULL COMMENT '币种',
|
currency CHAR(3) NOT NULL COMMENT '币种',
|
||||||
@@ -3172,6 +3174,32 @@ ALTER TABLE fl_inbound_fee
|
|||||||
MODIFY COLUMN customer_id BIGINT UNSIGNED NULL
|
MODIFY COLUMN customer_id BIGINT UNSIGNED NULL
|
||||||
COMMENT '可选业务客户快照;平台公共渠道计费不依赖该字段';
|
COMMENT '可选业务客户快照;平台公共渠道计费不依赖该字段';
|
||||||
|
|
||||||
|
SET @fee_baseline_quantity_sql = IF(
|
||||||
|
EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE()
|
||||||
|
AND table_name='fl_inbound_fee' AND column_name='baseline_chargeable_quantity'),
|
||||||
|
'SELECT 1',
|
||||||
|
'ALTER TABLE fl_inbound_fee ADD COLUMN baseline_chargeable_quantity DECIMAL(18,6) NULL COMMENT ''系统按权威测量与生效报价计算的原始计费量'' AFTER converted_quantity'
|
||||||
|
);
|
||||||
|
PREPARE fee_baseline_quantity_stmt FROM @fee_baseline_quantity_sql;
|
||||||
|
EXECUTE fee_baseline_quantity_stmt;
|
||||||
|
DEALLOCATE PREPARE fee_baseline_quantity_stmt;
|
||||||
|
UPDATE fl_inbound_fee
|
||||||
|
SET baseline_chargeable_quantity = chargeable_quantity
|
||||||
|
WHERE baseline_chargeable_quantity IS NULL;
|
||||||
|
ALTER TABLE fl_inbound_fee
|
||||||
|
MODIFY COLUMN baseline_chargeable_quantity DECIMAL(18,6) NOT NULL
|
||||||
|
COMMENT '系统按权威测量与生效报价计算的原始计费量';
|
||||||
|
|
||||||
|
SET @fee_tolerance_percent_sql = IF(
|
||||||
|
EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE()
|
||||||
|
AND table_name='fl_inbound_fee' AND column_name='tolerance_percent'),
|
||||||
|
'SELECT 1',
|
||||||
|
'ALTER TABLE fl_inbound_fee ADD COLUMN tolerance_percent DECIMAL(5,2) NOT NULL DEFAULT 10.00 COMMENT ''人工调整允许的最大偏差百分比,边界包含'' AFTER baseline_chargeable_quantity'
|
||||||
|
);
|
||||||
|
PREPARE fee_tolerance_percent_stmt FROM @fee_tolerance_percent_sql;
|
||||||
|
EXECUTE fee_tolerance_percent_stmt;
|
||||||
|
DEALLOCATE PREPARE fee_tolerance_percent_stmt;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS fl_inbound_fee_item (
|
CREATE TABLE IF NOT EXISTS fl_inbound_fee_item (
|
||||||
id BIGINT UNSIGNED NOT NULL COMMENT '费用明细ID',
|
id BIGINT UNSIGNED NOT NULL COMMENT '费用明细ID',
|
||||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||||
@@ -4433,6 +4461,8 @@ CALL unified_assert_column('baiyue_firstleg', 'fl_carrier_fba_rate', 'destinatio
|
|||||||
CALL unified_assert_column('baiyue_firstleg', 'fl_carrier_fba_rate', 'destination_warehouse_id');
|
CALL unified_assert_column('baiyue_firstleg', 'fl_carrier_fba_rate', 'destination_warehouse_id');
|
||||||
CALL unified_assert_column('baiyue_firstleg', 'fl_carrier_fba_rate', 'destination_name');
|
CALL unified_assert_column('baiyue_firstleg', 'fl_carrier_fba_rate', 'destination_name');
|
||||||
CALL unified_assert_column('baiyue_firstleg', 'fl_inbound_fee', 'price_book_version_id');
|
CALL unified_assert_column('baiyue_firstleg', 'fl_inbound_fee', 'price_book_version_id');
|
||||||
|
CALL unified_assert_column('baiyue_firstleg', 'fl_inbound_fee', 'baseline_chargeable_quantity');
|
||||||
|
CALL unified_assert_column('baiyue_firstleg', 'fl_inbound_fee', 'tolerance_percent');
|
||||||
CALL unified_assert_column('baiyue_file', 'file_export_task', 'execution_deadline_at');
|
CALL unified_assert_column('baiyue_file', 'file_export_task', 'execution_deadline_at');
|
||||||
|
|
||||||
DROP PROCEDURE IF EXISTS unified_assert_table;
|
DROP PROCEDURE IF EXISTS unified_assert_table;
|
||||||
@@ -13470,6 +13500,7 @@ CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'actual_volume_cb
|
|||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'actual_weight_kg', '试算时实际重量kg');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'actual_weight_kg', '试算时实际重量kg');
|
||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'additional_amount', '附加费金额');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'additional_amount', '附加费金额');
|
||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'business_type', '业务类型快照');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'business_type', '业务类型快照');
|
||||||
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'baseline_chargeable_quantity', '系统按权威测量与生效报价计算的原始计费量');
|
||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'calculated_at', '试算时间');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'calculated_at', '试算时间');
|
||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'calculated_by', '试算人ID');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'calculated_by', '试算人ID');
|
||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'carrier_id', '历史承运商ID;渠道价格可为空');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'carrier_id', '历史承运商ID;渠道价格可为空');
|
||||||
@@ -13518,6 +13549,7 @@ CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'sent_by', '发
|
|||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'subtotal_amount', '基础费用金额');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'subtotal_amount', '基础费用金额');
|
||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'tax_mode', '订单买单或退税模式快照');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'tax_mode', '订单买单或退税模式快照');
|
||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'tenant_id', '客户ID和数据隔离键');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'tenant_id', '客户ID和数据隔离键');
|
||||||
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'tolerance_percent', '人工调整允许的最大偏差百分比,边界包含');
|
||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'total_amount', '总金额');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'total_amount', '总金额');
|
||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'updated_at', '更新时间');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee', 'updated_at', '更新时间');
|
||||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee_detail', 'actual_gross_weight_kg', '仓库实测毛重快照,单位千克');
|
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee_detail', 'actual_gross_weight_kg', '仓库实测毛重快照,单位千克');
|
||||||
|
|||||||
@@ -50,6 +50,14 @@ test('国内统一初始化支持真实空库且不越界创建海外业务库',
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('国内统一初始化补齐入库费用人工调整基线字段', () => {
|
||||||
|
assert.match(sql, /baseline_chargeable_quantity DECIMAL\(18,6\) NOT NULL/)
|
||||||
|
assert.match(sql, /SET baseline_chargeable_quantity = chargeable_quantity[\s\S]*?WHERE baseline_chargeable_quantity IS NULL/)
|
||||||
|
assert.match(sql, /tolerance_percent DECIMAL\(5,2\) NOT NULL DEFAULT 10\.00/)
|
||||||
|
assert.match(sql, /unified_assert_column\('baiyue_firstleg', 'fl_inbound_fee', 'baseline_chargeable_quantity'\)/)
|
||||||
|
assert.match(sql, /unified_assert_column\('baiyue_firstleg', 'fl_inbound_fee', 'tolerance_percent'\)/)
|
||||||
|
})
|
||||||
|
|
||||||
test('三期权限迁移删除退役权限并只保留 canonical 权限', () => {
|
test('三期权限迁移删除退役权限并只保留 canonical 权限', () => {
|
||||||
for (const source of [sql, oceanBookingSchema]) {
|
for (const source of [sql, oceanBookingSchema]) {
|
||||||
assert.match(source, /DELETE FROM iam_permission WHERE id IN \(5102141,5102143,5102144,5102145\)/)
|
assert.match(source, /DELETE FROM iam_permission WHERE id IN \(5102141,5102143,5102144,5102145\)/)
|
||||||
|
|||||||
Reference in New Issue
Block a user