PayrollManagementSystem/db/migration
liuwenxin 4c32a556de feat(approval): 审批单内容快照与二次分配方案版本化
补齐 code-review 遗留 2 项:审批单此前只固化 ref_id/refer_no 指针,复核者看到
的是业务当前内容;二次分配方案在编辑替换与驳回清空时一律物理删除,方案事实
无处回溯。

- 审批单加 version_no 与 snapshot_json(信封 schema_version/order_type/
  captured_at/data);二次分配、月结、调整单三类提交均固化送审内容,开关关闭
  的自动通过路径同样写快照;详情按 snapshot/live/missing 三态回显,历史单
  只读回退当前内容并显式告警,不回填历史快照
- 二次分配方案行改 append-only 版本化(version_no/is_active,唯一键扩为
  business+version+personnel):编辑替换与驳回清空只置历史,核算与详情默认
  只取生效行,业务详情新增 allocation_history
- 送审内容未变不重提、方案未变不新增版本:判据统一为送审内容,两个
  version_no 语义解耦(方案版本=内容第几版,审批单版本=第几次送审)
- 审批单列表、工作台待办、审批超时预警三处 defer 快照列,避免整列拉取
- 月结提交取行加 for_update,防并发提交算出重复的审批单版本号
- 修复审批类型筛选上界 le=2(调整单无法筛选)、快照金额把空值写成 0.00
- V11 迁移三件套同步(Alembic / db/migration / init-dev.sql)

测试:单元 +16(方案内容比较 10、审批入参 6)、集成 +12;全量 891 passed。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 18:30:51 +08:00
..
V1__init_rbac_and_login_logs.sql chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
V2__add_operation_logs.sql feat(system): 新增操作日志表与 V2 迁移 2026-10-10 10:44:05 +08:00
V3__add_business_roles_and_params.sql feat(system): 新增岗位角色与计提参数四表及 V3 迁移 2026-10-12 16:13:13 +08:00
V4__add_base_data_tables.sql feat(base): 新增基础数据六表及 V4 迁移(人员/辐射区域/拓展计划/产品/客户/归属留痕) 2026-10-13 09:49:05 +08:00
V5__add_business_data_tables.sql feat(business): 新增业务数据七表及 V5 迁移(业务/明细/状态留痕/发货/回款/评级配置) 2026-10-13 11:22:34 +08:00
V6__add_settings_allocations_approvals.sql fix(m3): code-review 15 项修复(13 项落地,2 项依赖分摊语义记待办) 2026-10-16 14:23:53 +08:00
V7__add_ledger_settlements_adjustments.sql fix(m3): code-review P1——锁定不变量、入结回填与双轨漂移 2026-10-19 11:59:49 +08:00
V8__seed_replies_and_ledger_uk.sql chore(migration): 收敛重复 V8 SQL——保留英文名版本(与并行会话对账,内容等价) 2026-10-19 11:13:28 +08:00
V9__add_secondary_allocations_uk.sql fix(m3): code-review P1——锁定不变量、入结回填与双轨漂移 2026-10-19 11:59:49 +08:00
V10__warning_rule_params.sql feat(dashboard): 工作台四区块实时聚合与风险预警参数 2026-10-19 18:44:15 +08:00
V11__approval_snapshot_and_allocation_versions.sql feat(approval): 审批单内容快照与二次分配方案版本化 2026-10-20 18:30:51 +08:00