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

2.1 KiB

Day 1 - 预算模型与接口契约

目标

先把预算中心的数据边界和接口边界定稳,避免后续把预算逻辑散落在申请、报销、审批和付款模块里。

开发任务

  • 新增预算模型设计。
  • 新增预算交易台账设计。
  • 新增预算服务边界设计。
  • 新增预算接口契约。
  • 新增预算状态与交易类型常量。
  • 明确申请、报销、付款对预算服务的调用点。

建议模型

预算额度:

BudgetAllocation
- id
- budget_no
- fiscal_year
- period_type
- period_key
- department_id
- department_name
- cost_center
- project_code
- subject_code
- subject_name
- original_amount
- adjusted_amount
- status
- warning_threshold
- created_at
- updated_at

预算交易:

BudgetTransaction
- id
- transaction_no
- allocation_id
- source_type
- source_id
- source_no
- transaction_type
- amount
- before_available_amount
- after_available_amount
- operator
- reason
- created_at

交易类型:

init       初始化
adjust     调整
reserve    预占
release    释放
consume    核销
rollback   回滚
freeze     冻结
unfreeze   解冻

预算汇总字段由交易汇总得到:

total_amount = original_amount + adjusted_amount
reserved_amount = reserve - release
consumed_amount = consume - rollback
available_amount = total_amount - reserved_amount - consumed_amount

接口契约

GET  /api/v1/budgets/allocations
POST /api/v1/budgets/allocations
GET  /api/v1/budgets/allocations/{id}
GET  /api/v1/budgets/allocations/{id}/transactions
POST /api/v1/budgets/allocations/{id}/adjust
POST /api/v1/budgets/check
POST /api/v1/budgets/reserve
POST /api/v1/budgets/release
POST /api/v1/budgets/consume
POST /api/v1/budgets/rollback
GET  /api/v1/budgets/summary

验收

  • 能创建一条部门月度预算。
  • 能查询预算列表和详情。
  • 能查询预算台账。
  • 能根据部门、成本中心、项目、费用科目定位预算。
  • 预算不足时 check 接口能返回明确原因。