This commit is contained in:
2026-08-17 15:41:42 +08:00
parent 4abcb2b80f
commit 5f79616623
60 changed files with 1457 additions and 270 deletions
@@ -10712,7 +10712,9 @@ CREATE TABLE IF NOT EXISTS fin_bill (
void_reason VARCHAR(500) NULL COMMENT '账单作废原因',
version INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建操作人ID',
created_by_name VARCHAR(128) NULL COMMENT '创建操作人名称快照',
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改操作人ID',
updated_by_name VARCHAR(128) NULL COMMENT '最后修改操作人名称快照',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '记录创建时间',
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间,数据修改时自动刷新',
PRIMARY KEY (id),
@@ -10775,6 +10777,7 @@ CREATE TABLE IF NOT EXISTS fin_receipt (
void_reason VARCHAR(500) NULL COMMENT '收款作废原因',
version INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建操作人ID',
created_by_name VARCHAR(128) NULL COMMENT '创建操作人名称快照',
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改操作人ID',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '记录创建时间',
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间,数据修改时自动刷新',
@@ -10825,6 +10828,7 @@ CREATE TABLE IF NOT EXISTS fin_cost (
void_reason VARCHAR(500) NULL COMMENT '成本作废原因',
version INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建操作人ID',
created_by_name VARCHAR(128) NULL COMMENT '创建操作人名称快照',
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改操作人ID',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '记录创建时间',
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间,数据修改时自动刷新',
@@ -10869,6 +10873,7 @@ CREATE TABLE IF NOT EXISTS fin_bill_revision (
bill_snapshot JSON NOT NULL COMMENT '调整前账单主记录不可变JSON快照',
line_snapshot JSON NOT NULL COMMENT '调整前全部账单明细不可变JSON数组快照',
created_by BIGINT UNSIGNED NOT NULL COMMENT '执行调整的操作人ID',
created_by_name VARCHAR(128) NULL COMMENT '执行调整的操作人名称快照',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '修订快照创建时间',
PRIMARY KEY (id),
UNIQUE KEY uk_fin_bill_revision (bill_id, version),
@@ -10975,6 +10980,7 @@ CREATE TABLE IF NOT EXISTS fin_settlement_payment (
voucher_file_ids JSON NOT NULL COMMENT 'File服务财务凭证文件ID字符串数组',
remark VARCHAR(500) NULL COMMENT '收付款内部备注',
created_by BIGINT UNSIGNED NOT NULL COMMENT '登记操作人ID',
created_by_name VARCHAR(128) NULL COMMENT '登记操作人名称快照',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '登记时间',
PRIMARY KEY (id),
UNIQUE KEY uk_fin_settlement_payment_no (tenant_id, transaction_no),
@@ -10984,6 +10990,35 @@ CREATE TABLE IF NOT EXISTS fin_settlement_payment (
CONSTRAINT chk_fin_settlement_payment_amount CHECK (amount > 0)
) ENGINE=InnoDB COMMENT='正式结算单人工收付款与凭证记录';
DROP PROCEDURE IF EXISTS finance_add_operator_snapshot_column;
DELIMITER $$
CREATE PROCEDURE finance_add_operator_snapshot_column(
IN target_table VARCHAR(64), IN target_column VARCHAR(64), IN after_column VARCHAR(64)
)
BEGIN
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = target_table AND column_name = target_column
) THEN
SET @finance_operator_snapshot_ddl = CONCAT(
'ALTER TABLE `', target_table,
'` ADD COLUMN `', target_column, '` VARCHAR(128) NULL COMMENT ''操作人名称快照'' AFTER `', after_column, '`'
);
PREPARE finance_operator_snapshot_stmt FROM @finance_operator_snapshot_ddl;
EXECUTE finance_operator_snapshot_stmt;
DEALLOCATE PREPARE finance_operator_snapshot_stmt;
END IF;
END$$
DELIMITER ;
CALL finance_add_operator_snapshot_column('fin_bill', 'created_by_name', 'created_by');
CALL finance_add_operator_snapshot_column('fin_bill', 'updated_by_name', 'updated_by');
CALL finance_add_operator_snapshot_column('fin_receipt', 'created_by_name', 'created_by');
CALL finance_add_operator_snapshot_column('fin_cost', 'created_by_name', 'created_by');
CALL finance_add_operator_snapshot_column('fin_settlement_payment', 'created_by_name', 'created_by');
CALL finance_add_operator_snapshot_column('fin_bill_revision', 'created_by_name', 'created_by');
DROP PROCEDURE IF EXISTS finance_add_operator_snapshot_column;
USE baiyue_firstleg;
-- 来源:firstleg/src/main/resources/db/finance-fee-source-migration.sql
-- Firstleg -> Finance 费用来源事件和柜次费用模型(MySQL 8,可重复执行)