PayrollManagementSystem/backend/app/api
liuwenxin 22a2872100 feat(calc): 重算授权留痕与批量核算
- calc_receipt 双模式:recalc_reason 非 None=重算(audit action=重算/
  reason 留痕、作废旧版本行、calc_version 自动递增、CAS 仅首算执行——
  重算状态本就是已核算,误跑 CAS 会误报并发撞车)
- recalc_receipt 薄委托(reason 必填、未核算过 400);重算授权
  require_roles(admin, finance),营销后勤不可重算
- batch_calc:逐笔独立事务不开外层 audit(嵌套禁令),逐笔成败清单
  (同业务第二笔回款走 #25 重复分支 ok=True/repeated=True)
- 测试 +5:重算版本对/原因缺失 400/未核算重算 400/越权 403/批量清单
- 修 next_version 空表 max NULL → int(None) TypeError

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-16 21:49:44 +08:00
..
v1 feat(calc): 重算授权留痕与批量核算 2026-10-16 21:49:44 +08:00
__init__.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
deps.py feat(approval): 审批单/节点状态机与二次分配接入(开关自动通过) 2026-10-15 18:50:38 +08:00
health.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
router.py feat(calc): 单笔回款核算引擎与绩效台账 2026-10-16 20:52:02 +08:00