补齐源快照、资料预演、正式导入及工资核算的依赖链路。 新增版本化输入、逐段 FIFO、生成锁和结构化当月调整, 并提供默认关闭的周期采集、有限重试及 Windows 托管。 原始客户资料、私有配置及首页改动不纳入本次提交。 BREAKING CHANGE: 升级前需应用新增迁移,并通过 PAYROLL_MAKER_USER_ID 绑定实际工资制作人,否则业务只读。 旧单批次核算默认关闭;历史兼容需显式启用 PAYROLL_ALLOW_LEGACY_CALCULATION。生产启用和真实金额待验收。
19 lines
1.1 KiB
Python
19 lines
1.1 KiB
Python
"""分配调整的原台账与业务分管归属。"""
|
||
from alembic import op
|
||
revision: str = "19d0e1f2a3b4"
|
||
down_revision: str | None = "18c9d0e1f2a3"
|
||
branch_labels = None
|
||
depends_on = None
|
||
|
||
def upgrade():
|
||
op.execute("ALTER TABLE adjustment_orders ADD COLUMN adjustment_type VARCHAR(32) NOT NULL DEFAULT 'GENERAL' COMMENT '调整类型:GENERAL普通 ALLOCATION分配差额'")
|
||
op.execute("ALTER TABLE adjustment_orders ADD COLUMN source_ledger_id BIGINT UNSIGNED NULL COMMENT '分配差额对应的原台账ID'")
|
||
op.execute("ALTER TABLE adjustment_orders ADD COLUMN attribution_json JSON NULL COMMENT '原台账业务与分管归属快照'")
|
||
|
||
def downgrade():
|
||
if op.get_bind().exec_driver_sql("SELECT COUNT(*) FROM adjustment_orders WHERE source_ledger_id IS NOT NULL").scalar():
|
||
raise RuntimeError("已有分配调整依据,拒绝删除归属信息;请使用应用版本回退")
|
||
op.drop_column("adjustment_orders", "attribution_json")
|
||
op.drop_column("adjustment_orders", "source_ledger_id")
|
||
op.drop_column("adjustment_orders", "adjustment_type")
|