🐛 修正应收账单收货重快照字段来源
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
-- 应收账单订单明细冗余 prc_order_bill.weight,供账单导出使用。
|
||||
-- 应收账单订单明细冗余 prc_order_bill.receive_weight(收货重),供账单导出使用。
|
||||
-- 来源字段为空时快照保留 NULL,不伪造为 0。
|
||||
|
||||
SET @column_exists := (
|
||||
SELECT COUNT(1) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'ar_bill_detail'
|
||||
AND COLUMN_NAME = 'weight'
|
||||
AND COLUMN_NAME = 'receive_weight'
|
||||
);
|
||||
SET @sql := IF(@column_exists = 0,
|
||||
'ALTER TABLE `ar_bill_detail` ADD COLUMN `weight` decimal(10,3) DEFAULT NULL COMMENT ''prc_order_bill.weight来源快照'' AFTER `actual_weight`',
|
||||
'ALTER TABLE `ar_bill_detail` ADD COLUMN `receive_weight` decimal(10,3) DEFAULT NULL COMMENT ''prc_order_bill.receive_weight收货重来源快照'' AFTER `actual_weight`',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE stmt FROM @sql;
|
||||
@@ -17,5 +17,5 @@ DEALLOCATE PREPARE stmt;
|
||||
|
||||
UPDATE `ar_bill_detail` d
|
||||
INNER JOIN `prc_order_bill` p ON p.`bill_id` = d.`prc_order_bill_id`
|
||||
SET d.`weight` = p.`weight`
|
||||
WHERE d.`weight` IS NULL AND p.`weight` IS NOT NULL;
|
||||
SET d.`receive_weight` = p.`receive_weight`
|
||||
WHERE d.`receive_weight` IS NULL AND p.`receive_weight` IS NOT NULL;
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
-- 应收账单快照字段 weight 重命名为 receive_weight,并以 prc_order_bill.receive_weight 修正历史值。
|
||||
-- 来源字段为空时保留 NULL;本迁移完成后删除旧 weight 列。
|
||||
|
||||
SET @column_exists := (
|
||||
SELECT COUNT(1) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'ar_bill_detail'
|
||||
AND COLUMN_NAME = 'receive_weight'
|
||||
);
|
||||
SET @sql := IF(@column_exists = 0,
|
||||
'ALTER TABLE `ar_bill_detail` ADD COLUMN `receive_weight` decimal(10,3) DEFAULT NULL COMMENT ''prc_order_bill.receive_weight收货重来源快照'' AFTER `actual_weight`',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE stmt FROM @sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
UPDATE `ar_bill_detail` d
|
||||
INNER JOIN `prc_order_bill` p ON p.`bill_id` = d.`prc_order_bill_id`
|
||||
SET d.`receive_weight` = p.`receive_weight`
|
||||
WHERE NOT (d.`receive_weight` <=> p.`receive_weight`);
|
||||
|
||||
SET @column_exists := (
|
||||
SELECT COUNT(1) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'ar_bill_detail'
|
||||
AND COLUMN_NAME = 'weight'
|
||||
);
|
||||
SET @sql := IF(@column_exists > 0,
|
||||
'ALTER TABLE `ar_bill_detail` DROP COLUMN `weight`',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE stmt FROM @sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
@@ -116,7 +116,7 @@ CREATE TABLE `ar_bill_detail` (
|
||||
`country_name` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的国家名称',
|
||||
`dest_postcode` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的邮编',
|
||||
`actual_weight` decimal(12,3) DEFAULT NULL COMMENT '实际重量KG',
|
||||
`weight` decimal(10,3) DEFAULT NULL COMMENT 'prc_order_bill.weight来源快照',
|
||||
`receive_weight` decimal(10,3) DEFAULT NULL COMMENT 'prc_order_bill.receive_weight收货重来源快照',
|
||||
`volume_weight` decimal(12,3) DEFAULT NULL COMMENT '材积重量KG',
|
||||
`charge_weight` decimal(12,3) DEFAULT NULL COMMENT '计费重量KG',
|
||||
`freight_rate` decimal(10,4) DEFAULT NULL COMMENT '运费单价快照',
|
||||
|
||||
Reference in New Issue
Block a user