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

106 lines
2.1 KiB
Markdown

# Day 1 - 预算模型与接口契约
## 目标
先把预算中心的数据边界和接口边界定稳,避免后续把预算逻辑散落在申请、报销、审批和付款模块里。
## 开发任务
- [ ] 新增预算模型设计。
- [ ] 新增预算交易台账设计。
- [ ] 新增预算服务边界设计。
- [ ] 新增预算接口契约。
- [ ] 新增预算状态与交易类型常量。
- [ ] 明确申请、报销、付款对预算服务的调用点。
## 建议模型
预算额度:
```text
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
```
预算交易:
```text
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
```
交易类型:
```text
init 初始化
adjust 调整
reserve 预占
release 释放
consume 核销
rollback 回滚
freeze 冻结
unfreeze 解冻
```
预算汇总字段由交易汇总得到:
```text
total_amount = original_amount + adjusted_amount
reserved_amount = reserve - release
consumed_amount = consume - rollback
available_amount = total_amount - reserved_amount - consumed_amount
```
## 接口契约
```text
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` 接口能返回明确原因。