PayrollManagementSystem/db/migration/V20__tplus_automation.sql
liuwenxin 108bf87225 feat(核算)!: 添加 T+ 正式核算与采集托管
补齐源快照、资料预演、正式导入及工资核算的依赖链路。
新增版本化输入、逐段 FIFO、生成锁和结构化当月调整,
并提供默认关闭的周期采集、有限重试及 Windows 托管。

原始客户资料、私有配置及首页改动不纳入本次提交。

BREAKING CHANGE: 升级前需应用新增迁移,并通过
PAYROLL_MAKER_USER_ID 绑定实际工资制作人,否则业务只读。
旧单批次核算默认关闭;历史兼容需显式启用
PAYROLL_ALLOW_LEGACY_CALCULATION。生产启用和真实金额待验收。
2026-11-02 09:42:53 +08:00

26 lines
1.8 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 自动采集状态;不自动应用业务或生成工资。
CREATE TABLE tplus_automation_states (
id BIGINT UNSIGNED NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
source_key VARCHAR(64) NOT NULL COMMENT '源连接身份摘要(不含凭据)',
source_database VARCHAR(128) NOT NULL COMMENT '源账套',
scheduled_period VARCHAR(16) COMMENT '最近已排队ISO周',
root_batch_no VARCHAR(32) COMMENT '本周期原始采集批次',
current_batch_no VARCHAR(32) COMMENT '当前原始或重试批次',
retry_attempts INTEGER NOT NULL COMMENT '本周期自动重试次数' DEFAULT '0',
next_retry_at DATETIME COMMENT '下一次自动重试时间',
last_success_at DATETIME COMMENT '最近成功采集时间',
maintenance_at DATETIME COMMENT '最近周期检查时间',
heartbeat_at DATETIME COMMENT '独立进程心跳时间',
worker_owner VARCHAR(36) COMMENT '当前持锁进程身份',
worker_phase VARCHAR(16) NOT NULL COMMENT '进程状态:IDLE/RUNNING/STOPPED' DEFAULT '''STOPPED''',
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_automation_states PRIMARY KEY (id),
CONSTRAINT uk_tplus_automation_states_source_key UNIQUE (source_key)
)ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='T+自动采集周期与进程状态(不自动导入正式业务)' COLLATE utf8mb4_general_ci;
ALTER TABLE tplus_sync_batches ADD COLUMN trigger_type VARCHAR(16) NOT NULL DEFAULT 'MANUAL' COMMENT '触发来源:MANUAL/SCHEDULED/AUTO_RETRY';
ALTER TABLE tplus_sync_batches ADD COLUMN automatic_attempt INTEGER NOT NULL DEFAULT 0 COMMENT '自动重试序号(0为原始任务)';