Files
EmailBill/openspec/changes/fix-january-2026-budget-usage/proposal.md
SunCheng a88556c784 fix
2026-02-15 10:10:28 +08:00

25 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Why
用户在 2026 年 2 月份查看 2026 年 1 月份的月度预算统计时,页面显示"超支170元",但用户认为应该远远大于这个值。经检查发现,页面显示的"超支170"仅计算了月度支出预算Type=1的超支未包含年度支出预算Type=2在该月的实际支出。1 月份实际总支出为 36,130.40 元,但页面只显示了 23,284.40 元(月度支出预算),缺少了约 12,846 元的年度支出预算部分。
## What Changes
- **修改月度预算统计逻辑**:在 `CalculateMonthlyCategoryStatsAsync` 方法中统计支出时需要包含年度支出预算Type=2在该月的实际支出金额
- **修改数据源逻辑**`GetAllBudgetsWithArchiveAsync` 方法在获取月度预算数据时,需要同时获取年度支出预算在该月的实际支出
- **确保归档数据正确使用**:使用归档数据中的 `Actual` 值,而非重新计算
## Capabilities
### New Capabilities
无新能力引入,仅修复现有逻辑。
### Modified Capabilities
- `budget-stats`: 修改月度预算统计的需求,要求月度支出统计包含所有类型的实际支出(月度+年度支出预算在该月的支出)
## Impact
- **受影响代码**`Service/Budget/BudgetStatsService.cs` 中的 `CalculateMonthlyCategoryStatsAsync``GetAllBudgetsWithArchiveAsync` 方法
- **受影响 API**:预算统计相关的 API 接口(前端调用的获取预算统计信息的接口)
- **数据来源**`BudgetArchive` 表中的归档数据,需要正确使用归档的 `Actual`
- **用户体验**:修复后,用户查看月度预算统计时,将看到包含所有实际支出的准确数据