补齐源快照、资料预演、正式导入及工资核算的依赖链路。 新增版本化输入、逐段 FIFO、生成锁和结构化当月调整, 并提供默认关闭的周期采集、有限重试及 Windows 托管。 原始客户资料、私有配置及首页改动不纳入本次提交。 BREAKING CHANGE: 升级前需应用新增迁移,并通过 PAYROLL_MAKER_USER_ID 绑定实际工资制作人,否则业务只读。 旧单批次核算默认关闭;历史兼容需显式启用 PAYROLL_ALLOW_LEGACY_CALCULATION。生产启用和真实金额待验收。
79 lines
4.8 KiB
SQL
79 lines
4.8 KiB
SQL
-- 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;
|