PayrollManagementSystem/backend/app/schemas
liuwenxin e7e47d88bc feat(settlement): 月度结算快照生成与审批锁定,调整单(补发/扣减)与审批联动
- settlement_service:generate(确认回款口径 #8 策略点=有效台账行按回款日
  归月、经理聚合 #12 暂口径基数不含经理个人户、月结 uk 一行一月、草稿/
  驳回可重生成、已审定/待审 400)→ submit(审批开关分流,关=自动通过即
  锁定、开=待财务复核)→ approval_service.act 扩 order_type=2/3 钩子
  (通过=mark_locked/调整单生效;驳回=回草稿/作废,延迟导入防循环)
- 锁定拦截:回款新增写路径校验回款月已审定 400(比需求「提示」取硬,
  一期安全侧;M2 已核算禁改防线先于其生效)
- 调整单:新建(TZ 单号,开关分流自动通过留痕/走审批)+ 列表
- schemas settlement:金额 Decimal 声明(str 声明遇 Decimal 入参拒绝)
- 测试 6 例:生成回填/无记录 400/已审定重生成 400/关自动锁定/锁定后回款
  禁改/开两节点流转至锁定(finance→leader)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-17 00:33:31 +08:00
..
__init__.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
approval.py feat(approval): 审批单/节点状态机与二次分配接入(开关自动通过) 2026-10-15 18:50:38 +08:00
auth.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
business_role.py feat(system): 业务岗位角色管理接口与保护规则 2026-10-12 16:39:08 +08:00
business.py feat(allocation): 二次分配方案录入/替换/终态门槛(分摊计算待澄清另批) 2026-10-15 18:31:27 +08:00
calc.py feat(calc): 单笔回款核算引擎与绩效台账 2026-10-16 20:52:02 +08:00
customer.py feat(business): 业务管理接口(编号生成/明细/状态机/归属留痕/毛利润视图) 2026-10-13 12:01:48 +08:00
log.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00
param.py fix(system): code-review 15 项修复(预览基数/维度校验/脱敏穿透/并发版本号等) 2026-10-13 02:28:20 +08:00
personnel.py test(base): 基础数据管理模块集成用例(48 例)与审计盲区修复 2026-10-13 11:22:34 +08:00
product.py fix(product): 删除引用保护/单价小数位校验,IntegrityError 全局兜底转 400 2026-10-14 18:48:32 +08:00
rating.py feat(business): 客户评级等级映射配置接口(区间重叠判定/名称唯一) 2026-10-13 12:01:47 +08:00
receipt.py style(backend): ruff format 统一此前批次的排版残留 2026-10-14 18:46:43 +08:00
role.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00
setting.py fix(m3): code-review 15 项修复(13 项落地,2 项依赖分摊语义记待办) 2026-10-16 14:23:53 +08:00
settlement.py feat(settlement): 月度结算快照生成与审批锁定,调整单(补发/扣减)与审批联动 2026-10-17 00:33:31 +08:00
shipment.py fix(business): 删除保护补齐与单价小数位口径修复(e2e 发现) 2026-10-13 17:06:46 +08:00
user.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00