调整业务问题
This commit is contained in:
@@ -104,10 +104,12 @@ CREATE TABLE IF NOT EXISTS `blade_invoice_application_line` (
|
||||
`goods_name` varchar(100) NOT NULL,
|
||||
`unit` varchar(30) DEFAULT NULL,
|
||||
`quantity` decimal(18,4) DEFAULT NULL,
|
||||
`unit_price_no_tax` decimal(18,4) DEFAULT NULL,
|
||||
`amount_with_tax` decimal(18,2) NOT NULL DEFAULT '0.00',
|
||||
`unit_price_no_tax` decimal(18,2) DEFAULT NULL,
|
||||
`amount_no_tax` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '不含税金额',
|
||||
`amount_with_tax` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '含税金额(兼容历史字段)',
|
||||
`tax_rate` decimal(8,4) NOT NULL DEFAULT '0.0000',
|
||||
`tax_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
|
||||
`total_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '含税合计',
|
||||
`remark` varchar(200) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_invoice_sheet_line` (`invoice_sheet_id`,`line_no`),
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
-- 开票申请商品行补齐不含税金额与含税合计字段。
|
||||
-- 使用 information_schema 判断字段是否存在,重复执行不会报重复列错误。
|
||||
SET @invoice_line_schema = DATABASE();
|
||||
|
||||
SET @invoice_line_sql = (
|
||||
SELECT IF(
|
||||
COUNT(*) > 0,
|
||||
'ALTER TABLE `blade_invoice_application_line` MODIFY COLUMN `unit_price_no_tax` decimal(18,2) DEFAULT NULL',
|
||||
'SELECT 1'
|
||||
)
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = @invoice_line_schema
|
||||
AND table_name = 'blade_invoice_application_line'
|
||||
AND column_name = 'unit_price_no_tax'
|
||||
AND (numeric_precision <> 18 OR numeric_scale <> 2)
|
||||
);
|
||||
PREPARE invoice_line_stmt FROM @invoice_line_sql;
|
||||
EXECUTE invoice_line_stmt;
|
||||
DEALLOCATE PREPARE invoice_line_stmt;
|
||||
|
||||
SET @invoice_line_sql = (
|
||||
SELECT IF(
|
||||
COUNT(*) = 0,
|
||||
'ALTER TABLE `blade_invoice_application_line` ADD COLUMN `amount_no_tax` decimal(18,2) NOT NULL DEFAULT ''0.00'' COMMENT ''不含税金额'' AFTER `unit_price_no_tax`',
|
||||
'SELECT 1'
|
||||
)
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = @invoice_line_schema
|
||||
AND table_name = 'blade_invoice_application_line'
|
||||
AND column_name = 'amount_no_tax'
|
||||
);
|
||||
PREPARE invoice_line_stmt FROM @invoice_line_sql;
|
||||
EXECUTE invoice_line_stmt;
|
||||
DEALLOCATE PREPARE invoice_line_stmt;
|
||||
|
||||
SET @invoice_line_sql = (
|
||||
SELECT IF(
|
||||
COUNT(*) = 0,
|
||||
'ALTER TABLE `blade_invoice_application_line` ADD COLUMN `total_amount` decimal(18,2) NOT NULL DEFAULT ''0.00'' COMMENT ''含税合计'' AFTER `tax_amount`',
|
||||
'SELECT 1'
|
||||
)
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = @invoice_line_schema
|
||||
AND table_name = 'blade_invoice_application_line'
|
||||
AND column_name = 'total_amount'
|
||||
);
|
||||
PREPARE invoice_line_stmt FROM @invoice_line_sql;
|
||||
EXECUTE invoice_line_stmt;
|
||||
DEALLOCATE PREPARE invoice_line_stmt;
|
||||
|
||||
UPDATE `blade_invoice_application_line`
|
||||
SET `amount_no_tax` = ROUND(
|
||||
`amount_with_tax` / (1 + `tax_rate` / 100),
|
||||
2
|
||||
)
|
||||
WHERE `amount_no_tax` = 0
|
||||
AND `amount_with_tax` > 0;
|
||||
|
||||
UPDATE `blade_invoice_application_line`
|
||||
SET `total_amount` = ROUND(`amount_no_tax` + `tax_amount`, 2),
|
||||
`amount_with_tax` = ROUND(`amount_no_tax` + `tax_amount`, 2);
|
||||
@@ -196,7 +196,7 @@ CREATE TABLE `blade_transport_plan` (
|
||||
`goods_json` text DEFAULT NULL COMMENT '货物信息',
|
||||
`freight_json` text DEFAULT NULL COMMENT '费用信息',
|
||||
`attachments_json` text DEFAULT NULL COMMENT '附件',
|
||||
`data_source` varchar(100) DEFAULT NULL COMMENT '数据来源',
|
||||
`data_source` varchar(100) DEFAULT '手工创建' COMMENT '数据来源',
|
||||
`business_status` varchar(100) DEFAULT NULL COMMENT '业务状态',
|
||||
`dispatcher_user_id` bigint(20) DEFAULT NULL COMMENT '调度人ID',
|
||||
`dispatcher_user_name` varchar(100) DEFAULT NULL COMMENT '调度人姓名',
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
-- 运输计划数据来源统一为:批量导入、手工创建、外部系统
|
||||
ALTER TABLE `blade_transport_plan`
|
||||
MODIFY COLUMN `data_source` varchar(100) DEFAULT '手工创建' COMMENT '数据来源';
|
||||
|
||||
UPDATE `blade_transport_plan`
|
||||
SET `data_source` = CASE
|
||||
WHEN TRIM(COALESCE(`data_source`, '')) = '批量导入' THEN '批量导入'
|
||||
WHEN TRIM(COALESCE(`data_source`, '')) IN (
|
||||
'手工创建', '手动创建', '手动录入', '手工录入', '手动',
|
||||
'模板生成', '计划调度', '多联总单调度'
|
||||
) THEN '手工创建'
|
||||
WHEN TRIM(COALESCE(`data_source`, '')) = '外部系统' THEN '外部系统'
|
||||
ELSE '外部系统'
|
||||
END
|
||||
WHERE `data_source` IS NULL
|
||||
OR TRIM(`data_source`) = ''
|
||||
OR TRIM(`data_source`) NOT IN ('批量导入', '手工创建', '外部系统');
|
||||
Reference in New Issue
Block a user