PayrollManagementSystem/db/migration/V16__tplus_workbench.sql

79 lines
4.8 KiB
MySQL
Raw Normal View History

-- V16:基础导入与核算预演的隔离工作区;无正式工资写入。
CREATE TABLE tplus_source_heads (
id BIGINT UNSIGNED NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
source_database VARCHAR(128) NOT NULL COMMENT '源账套',
entity_type VARCHAR(32) NOT NULL COMMENT '实体类型',
source_id VARCHAR(64) NOT NULL COMMENT '源内部ID',
record_id BIGINT UNSIGNED NOT NULL COMMENT '原始快照ID',
batch_no VARCHAR(32) NOT NULL COMMENT '最后观察批次',
CONSTRAINT pk_tplus_source_heads PRIMARY KEY (id),
CONSTRAINT uk_tplus_heads_source_entity_id UNIQUE (source_database, entity_type, source_id)
)ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='T+ 源当前快照指针(按成功全量批次读取,删除不自动回写业务表)' COLLATE utf8mb4_general_ci;
CREATE INDEX idx_tplus_heads_batch_entity ON tplus_source_heads (batch_no, entity_type);
CREATE TABLE tplus_facts (
id BIGINT UNSIGNED NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
source_database VARCHAR(128) NOT NULL COMMENT '源账套',
kind VARCHAR(32) NOT NULL COMMENT '事实类别',
fact_key VARCHAR(128) NOT NULL COMMENT '事实业务键',
version INTEGER NOT NULL COMMENT '版本号',
data_json JSON NOT NULL COMMENT '经校验的事实内容',
evidence VARCHAR(500) NOT NULL COMMENT '依据和修改原因',
requested_by BIGINT UNSIGNED NOT NULL COMMENT '操作者ID',
create_time DATETIME NOT NULL COMMENT '创建时间' DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME NOT NULL COMMENT '更新时间' DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT pk_tplus_facts PRIMARY KEY (id),
CONSTRAINT uk_tplus_facts_source_kind_key_version UNIQUE (source_database, kind, fact_key, version)
)ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='T+ 人工补充事实版本表' COLLATE utf8mb4_general_ci;
CREATE TABLE tplus_source_links (
id BIGINT UNSIGNED NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
source_database VARCHAR(128) NOT NULL COMMENT '源账套',
entity_type VARCHAR(32) NOT NULL COMMENT '实体类型',
source_id VARCHAR(64) NOT NULL COMMENT '源内部ID',
target_id BIGINT UNSIGNED NOT NULL COMMENT '业务目标ID',
create_time DATETIME NOT NULL COMMENT '创建时间' DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME NOT NULL COMMENT '更新时间' DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT pk_tplus_source_links PRIMARY KEY (id),
CONSTRAINT uk_tplus_links_source_entity_id UNIQUE (source_database, entity_type, source_id),
CONSTRAINT uk_tplus_links_entity_target UNIQUE (entity_type, target_id)
)ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='T+ 基础数据源目标关联' COLLATE utf8mb4_general_ci;
CREATE TABLE tplus_work_runs (
id BIGINT UNSIGNED NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
run_no VARCHAR(32) NOT NULL COMMENT '运行编号',
request_key VARCHAR(36) NOT NULL COMMENT '请求幂等键',
kind VARCHAR(32) NOT NULL COMMENT 'MASTER_PREVIEW/MASTER_APPLY/CALC_PREVIEW',
status VARCHAR(16) NOT NULL COMMENT '运行状态',
source_database VARCHAR(128) NOT NULL COMMENT '固定源账套',
requested_by BIGINT UNSIGNED NOT NULL COMMENT '操作者ID',
input_json JSON NOT NULL COMMENT '请求输入',
snapshot_json JSON COMMENT '规则和补充资料的固定快照',
snapshot_hash VARCHAR(64) COMMENT '输入指纹',
summary_json JSON COMMENT '结果汇总',
error_code VARCHAR(64) COMMENT '固定错误编码',
started_at DATETIME COMMENT '开始时间',
finished_at DATETIME COMMENT '结束时间',
create_time DATETIME NOT NULL COMMENT '创建时间' DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME NOT NULL COMMENT '更新时间' DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT pk_tplus_work_runs PRIMARY KEY (id),
CONSTRAINT uk_tplus_work_runs_run_no UNIQUE (run_no),
CONSTRAINT uk_tplus_work_runs_request_key UNIQUE (request_key)
)ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='T+ 导入与预演运行表' COLLATE utf8mb4_general_ci;
CREATE INDEX idx_tplus_work_runs_status_id ON tplus_work_runs (status, id);
CREATE TABLE tplus_work_lines (
id BIGINT UNSIGNED NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
run_no VARCHAR(32) NOT NULL COMMENT '运行编号',
line_no INTEGER NOT NULL COMMENT '稳定行序号',
entity_type VARCHAR(32) NOT NULL COMMENT '实体或分组类型',
source_id VARCHAR(128) NOT NULL COMMENT '源ID或平账组',
action VARCHAR(32) NOT NULL COMMENT '新增/更新/跳过/待补/冲突/分配',
reason VARCHAR(128) COMMENT '固定原因编码',
data_json JSON NOT NULL COMMENT '最小必要的业务明细',
CONSTRAINT pk_tplus_work_lines PRIMARY KEY (id),
CONSTRAINT uk_tplus_work_lines_run_line UNIQUE (run_no, line_no)
)ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='T+ 导入预览与核算预演明细' COLLATE utf8mb4_general_ci;