feat(核算)!: 添加 T+ 正式核算与采集托管

补齐源快照、资料预演、正式导入及工资核算的依赖链路。
新增版本化输入、逐段 FIFO、生成锁和结构化当月调整,
并提供默认关闭的周期采集、有限重试及 Windows 托管。

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

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

No files matched your search

+22
View File
@@ -77,6 +77,8 @@ class TPlusBatchOut(BaseModel):
finished_at: datetime | None
can_retry: bool
error_summary: str | None = None
trigger_type: str = "MANUAL"
automatic_attempt: int = 0
class TPlusBatchDetailOut(TPlusBatchOut):
@@ -97,6 +99,25 @@ class TPlusErrorOut(BaseModel):
create_time: datetime
class TPlusAutomationAlert(BaseModel):
code: str
message: str
batch_no: str | None = None
class TPlusAutomationOverview(BaseModel):
enabled: bool = False
weekday: int = 0
time: str = "02:00"
timezone: str = "Asia/Shanghai"
worker_phase: str = "UNKNOWN"
heartbeat_at: datetime | None = None
last_success_at: datetime | None = None
next_retry_at: datetime | None = None
stop_requested: bool = False
alerts: list[TPlusAutomationAlert] = Field(default_factory=list)
class TPlusOverviewOut(BaseModel):
"""配置就绪不等同于源库连通或兼容验收通过。"""
@@ -107,3 +128,4 @@ class TPlusOverviewOut(BaseModel):
compatibility_status: str = "PENDING"
business_import_enabled: bool = False
latest_audit: dict | None = None
automation: TPlusAutomationOverview = Field(default_factory=TPlusAutomationOverview)