## 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` 值 - **用户体验**:修复后,用户查看月度预算统计时,将看到包含所有实际支出的准确数据