PayrollManagementSystem/backend/alembic/versions
liuwenxin 9964281c14 fix(approval): 版本号唯一键兜底 + 取号改当前读防并发重复
- V12 迁移:先重排存量重复 (order_type, ref_id) 分组的 version_no
  (V11 把存量一律置 1,而 V11 前重提是新建行),再加
  uk_approval_orders_order_type_ref_version;只重排真有重复的分组,
  避免改动前端已展示过的历史版本号
- _next_version 改锁读(select version_no ... FOR UPDATE,最大值在
  Python 侧算):请求级鉴权的普通 SELECT 已把 REPEATABLE READ 快照
  锚定在请求开始时刻,原 MAX 快照读在并发下会算出同一版本号;
  聚合 + FOR UPDATE 为 MySQL 明确禁止,故不锁聚合结果
- 编辑与月结提交路径把 1062 收敛为 400「提交冲突(版本号生成重复),
  请重试」,其余完整性错误原样上抛;submit_order 内不 catch/rollback
- 驳回清空方案的过时注释改为 V11 起的 append-only 语义(置历史不删行)
- init-dev.sql 同步唯一键与 alembic_version 7f4f7b918bc4,导出 V12 SQL
- 测试:集成 +5(锁读 SQL 形态、两会话快照回归、唯一键 1062、冲突 400、
  正常递增)+ 单元 +1;工作台假审批单改用不同 ref_id 适配唯一键
- 全量回归 897 passed;ruff 与前端 type-check 绿

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-22 13:31:01 +08:00
..
3bca400421c6_v7_核算台账_月结_调整单四表与调整单开关种子.py feat(migration): V7 核算台账/月结/调整单四表与核算纯函数 2026-10-16 16:32:32 +08:00
7f4f7b918bc4_v12_审批单版本号唯一键.py fix(approval): 版本号唯一键兜底 + 取号改当前读防并发重复 2026-10-22 13:31:01 +08:00
8efc189b131f_add_business_data_tables.py feat(business): 新增业务数据七表及 V5 迁移(业务/明细/状态留痕/发货/回款/评级配置) 2026-10-13 11:22:34 +08:00
79bcc5aa98d4_v6_系统设置_二次分配_审批表与角色参数种子.py fix(m3): code-review 15 项修复(13 项落地,2 项依赖分摊语义记待办) 2026-10-16 14:23:53 +08:00
90653814a421_v10_工作台预警规则参数.py feat(dashboard): 工作台四区块实时聚合与风险预警参数 2026-10-19 18:44:15 +08:00
6165691326d4_init_rbac_and_login_logs.py feat(system): 新增操作日志表与 V2 迁移 2026-10-10 10:44:05 +08:00
a45a8087831b_add_operation_logs.py feat(system): 新增操作日志表与 V2 迁移 2026-10-10 10:44:05 +08:00
ba0217f5091b_v9_二次分配唯一键补齐.py fix(m3): code-review P1——锁定不变量、入结回填与双轨漂移 2026-10-19 11:59:49 +08:00
bfbda9c3191d_add_business_roles_and_params.py feat(system): 新增岗位角色与计提参数四表及 V3 迁移 2026-10-12 16:13:13 +08:00
c7d2e5a81f30_v8_业务答复口径落实_审批开关默认_试用期参数_经理基数开关_台账分摊唯一键.py fix(m3): code-review P1——锁定不变量、入结回填与双轨漂移 2026-10-19 11:59:49 +08:00
e1133a7c670a_add_base_data_tables.py feat(business): 新增业务数据七表及 V5 迁移(业务/明细/状态留痕/发货/回款/评级配置) 2026-10-13 11:22:34 +08:00
f3a8c2d61b47_v11_审批快照与方案版本化.py feat(approval): 审批单内容快照与二次分配方案版本化 2026-10-20 18:30:51 +08:00