diff --git a/deploy/sql/头程数据库统一增量-MySQL8.sql b/deploy/sql/头程数据库统一增量-MySQL8.sql index f72a9d913..d3d0bef5c 100644 --- a/deploy/sql/头程数据库统一增量-MySQL8.sql +++ b/deploy/sql/头程数据库统一增量-MySQL8.sql @@ -10466,6 +10466,16 @@ CALL finance_fee_source_add_column('fin_fee_source', 'source_hash', "CHAR(64) NULL COMMENT 'Firstleg费用来源完整快照SHA-256哈希' AFTER currency_code"); CALL finance_fee_source_add_column('fin_fee_source', 'source_snapshot', "JSON NULL COMMENT 'Firstleg费用来源完整不可变JSON快照' AFTER source_hash"); +CALL finance_fee_source_add_column('fin_fee_source', 'review_status', + "VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT 'Finance费用审核状态:PENDING待审核、APPROVED已通过、REJECTED已驳回' AFTER source_snapshot"); +CALL finance_fee_source_add_column('fin_fee_source', 'review_reason', + "VARCHAR(500) NULL COMMENT 'Finance费用审核说明或驳回原因' AFTER review_status"); +CALL finance_fee_source_add_column('fin_fee_source', 'settlement_included', + "TINYINT NOT NULL DEFAULT 0 COMMENT '是否已人工确认参与结算:0否、1是' AFTER review_reason"); +CALL finance_fee_source_add_column('fin_fee_source', 'settlement_reason', + "VARCHAR(500) NULL COMMENT '参与或禁止结算的人工说明' AFTER settlement_included"); +CALL finance_fee_source_add_column('fin_fee_source', 'operation_version', + "INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '费用审核和结算参与操作版本号' AFTER settlement_reason"); CALL finance_fee_source_add_column('fin_fee_source', 'updated_at', "DATETIME(3) NULL COMMENT '来源状态最后更新时间,数据修改时自动刷新' AFTER created_at"); CALL finance_fee_source_add_column('fin_inbox_event', 'payload_hash', @@ -10484,7 +10494,10 @@ UPDATE fin_fee_source fee_item_code = COALESCE(fee_item_code, 'LEGACY'), source_hash = COALESCE(source_hash, SHA2(CONCAT_WS('|', source_system, source_fee_id, source_fee_version), 256)), source_snapshot = COALESCE(source_snapshot, JSON_OBJECT('migrated', TRUE)), - updated_at = COALESCE(updated_at, created_at); + updated_at = COALESCE(updated_at, created_at), + review_status = COALESCE(review_status, 'PENDING'), + settlement_included = COALESCE(settlement_included, 0), + operation_version = COALESCE(operation_version, 0); UPDATE fin_inbox_event SET payload_hash = COALESCE(payload_hash, SHA2(CAST(payload AS CHAR), 256)); @@ -10507,7 +10520,8 @@ BEGIN IF (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'fin_fee_source' AND column_name IN ('source_type','source_no','direction','container_id','fee_item_code', - 'source_hash','source_snapshot','updated_at')) <> 8 THEN + 'source_hash','source_snapshot','review_status','review_reason', + 'settlement_included','settlement_reason','operation_version','updated_at')) <> 13 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Finance费用来源迁移失败:来源快照字段不完整'; END IF; IF (SELECT COUNT(*) FROM information_schema.columns