PayrollManagementSystem/backend/app
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
..
api feat(calc): 重算授权留痕与批量核算 2026-10-16 21:49:44 +08:00
core feat(migration): V7 核算台账/月结/调整单四表与核算纯函数 2026-10-16 16:32:32 +08:00
models feat(migration): V7 核算台账/月结/调整单四表与核算纯函数 2026-10-16 16:32:32 +08:00
repositories feat(calc): 重算授权留痕与批量核算 2026-10-16 21:49:44 +08:00
schemas feat(calc): 单笔回款核算引擎与绩效台账 2026-10-16 20:52:02 +08:00
services feat(calc): 重算授权留痕与批量核算 2026-10-16 21:49:44 +08:00
__init__.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
cli.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
main.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00