Files
X-Financial/document/development/半年报销模拟数据/TODO.md

24 lines
2.6 KiB
Markdown
Raw Normal View History

# 半年报销模拟数据 TODO
## 调研与契约
- [x] [CONCEPT: 背景与问题] 读取员工、报销、预算和财务看板现有模型,确认模拟数据要写入 `employees``expense_claims``expense_claim_items``budget_allocations``budget_transactions``budget_reservations``risk_observations`
- [x] [CONCEPT: 背景与问题] 在 `x-financial-main` 容器内完成只读规模检查,当前员工 82 人、报销单 3 单、模拟前缀数据为 0。
- [x] [CONCEPT: 方案设计] 明确脚本默认 dry-run批量写入必须使用 `--apply` 并先得到用户确认。
## 数据生成
- [x] [CONCEPT: 数据策略] 新增模拟数据服务模块,封装员工、预算、报销、明细、风险观察的生成逻辑。证据:`demo_company_simulation_seed.py``demo_company_simulation_catalog.py`
- [x] [CONCEPT: 输入] 新增命令脚本,支持 `--target-employees``--start-date``--months``--seed``--apply`。证据:`seed_half_year_expense_demo.py`
- [x] [CONCEPT: 边界] 实现幂等逻辑:已存在的 `SIM2026``SIM-EXP-2026``SIM-BUD-2026` 数据不重复创建。证据:`test_half_year_simulation_preview_and_apply_are_idempotent`
- [x] [CONCEPT: 预算使用率] 通过 `BudgetTransaction``BudgetReservation` 形成预算使用效果,不直接改余额。证据:`test_half_year_simulation_feeds_budget_summary`
## 验证
- [x] [CONCEPT: 测试方案] 新增定向单元测试,覆盖 dry-run、apply、员工补齐和幂等性。证据`server/tests/test_demo_company_simulation_seed.py`
- [x] [CONCEPT: 测试方案] 在容器中以 60s 超时运行定向测试。证据:`pytest -q server/tests/test_demo_company_simulation_seed.py` 通过2 passed。
- [x] [CONCEPT: 运行命令] 执行 dry-run输出计划写入规模。证据dry-run 计划新增 18 名员工、495 张报销单、855 条明细、34 个预算池、459 条预算交易、83 条预占、55 条风险观察。
- [x] [CONCEPT: 风险与开放问题] 获得用户确认后执行 `--apply` 写入本地数据库。证据:`seed_half_year_expense_demo.py --apply` 成功写入。
- [x] [CONCEPT: 指标与验收] 用容器内 DB 统计确认员工数、模拟报销单、预算交易和风险观察。证据:员工 100 人,模拟报销 495 单、预算交易 459 条、风险观察 55 条。
- [x] [CONCEPT: 指标与验收] 用真实 API 验证财务看板与预算汇总 JSON 已出现半年模拟数据效果。证据:预算汇总 API 返回 `warning_count=10``over_budget_count=3`;财务看板 API 返回 `has_real_data=true``riskCount=57`