Files
X-Financial/document/development/budget-center/day_3_budget_transaction_service.md
caoxiaozhu 0e861d8fa6 feat: 增强风险规则生成引擎与预算中心页面
后端拆分风险规则生成为解释器、语义分析、本体对齐等子模块,
优化模板执行和流程图生成,完善员工种子数据和导入逻辑,增强
报销单权限策略和草稿持久化,前端新增预算中心视图和趋势图
组件,重构审计页面和风险规则测试对话框交互,完善文档中心
和报销创建页面细节,补充单元测试覆盖。
2026-05-26 09:15:14 +08:00

1.4 KiB

Day 3 - 预算占用、释放、核销服务

目标

把预算变化统一收敛到预算服务,申请、报销、付款都只能通过预算服务改变预算状态。

服务能力

预算检查:

  • 校验预算归属是否存在。
  • 校验预算是否被冻结。
  • 校验可用余额是否充足。
  • 返回超预算金额和处理建议。

预算预占:

  • 用于费用申请提交。
  • 写入 reserve 交易。
  • 记录来源单据。

预算释放:

  • 用于申请撤回、退回、驳回、取消。
  • 写入 release 交易。
  • 必须找到原始预占来源。

预算核销:

  • 用于报销审批通过。
  • 写入 consume 交易。
  • 如果来源申请已有预占,应先释放预占或转换为核销,不能重复占用。

预算回滚:

  • 用于报销退回或撤销审批。
  • 写入 rollback 交易。

关键防错

  • 同一来源单据不能重复预占。
  • 同一报销单不能重复核销。
  • 释放金额不能超过原预占金额。
  • 核销金额不能超过可用余额加当前来源预占余额。
  • 所有预算交易必须有来源单据和操作人。

验收

  • 预算预占后可用余额减少。
  • 预算释放后可用余额恢复。
  • 预算核销后已核销金额增加。
  • 重复预占会被阻断。
  • 重复核销会被阻断。
  • 台账能解释每一次余额变化。