Files
cma-management/docs/verification/budget-decompose-400-hint-20260831.md

44 lines
3.0 KiB
Markdown
Raw Permalink 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.
# 验收记录:年度分解400错误提示优化(budget-decompose-400-hint)
- **任务**: budget-decompose-400-hint-20260831.md
- **执行人**: wecom-fullstack(全栈Bot)
- **完成时间**: 2026-08-31 20:0x CST(本会话补齐验收)
- **Commit**: 9cccaa6cfc6ad309c11c4f7f68009b2a43c92800(fix(budget): 年度分解400提示优化——含可用年份+双路径引导)
- **状态**: ✅ 通过(代码修改由 18:28 会话提交推送,本会话完成独立验收)
## 输出物证据
### 输出物1:budget.py 400提示优化(可用年份+双路径)
grep 命中:
- 行225: `avail_years = [r[0] for r in db.query(distinct(BudgetPlan.budget_year)).filter(...)`(entity_id + period LIKE %-00 + status active)
- 行231-232: `if avail_years:` → `hint += f";现有年度数据年份:{', '.join(...)}"`
- 行233: `hint += "。请先在预算录入中填写该年度预算总额,或改用战略预算编制按地图录入;如需按已有月度数据反向生成请咨询管理员。"`
### 输出物2:单KPI缺参400提示
- 行307: `raise HTTPException(400, "缺少必要参数: annual_budget(单KPI分解需传年度预算值)")`
### 输出物3:后端重启
- systemd cma-backend ActiveState=active,ActiveEnterTimestamp=2026-08-31 18:28:25(commit 9cccaa6 提交 18:28:11 后由 CI deploy hook 自动重启)
- `GET http://127.0.0.1:8010/health` → `{"status":"ok","version":"1.0.0"}` (200)
### 输出物4:实测提示(API 真实调用)
- entity_id=1 + year=2025 → 400:
`该年度(2025)没有年度预算总额(period=YYYY-00);现有年度数据年份:2026。请先在预算录入中填写该年度预算总额,或改用战略预算编制按地图录入;如需按已有月度数据反向生成请咨询管理员。`
✅ 含可用年份(2026) + 双路径引导
- entity_id=2(陕西博海)+ year=2026 → 400:
`该年度(2026)没有年度预算总额(period=YYYY-00)。请先在预算录入中填写该年度预算总额,或改用战略预算编制按地图录入;如需按已有月度数据反向生成请咨询管理员。`
✅ 含双路径引导(博海无年度行,avail_years 为空 → 无年份列表,符合预期)
- entity_id=1 + year=2026 → 200:`批量分解完成:4个KPI`(成功路径未受影响)
- 单KPI缺参(kpi_id=5 不传 annual_budget)→ 400:`缺少必要参数: annual_budget(单KPI分解需传年度预算值)` ✅
### 输出物5:pytest 全量回归
- `venv/bin/python3 -m pytest tests/ -q` → **711 passed, 1 xfailed**(基线 711 passed / 1 xfailed,全绿)
### 输出物6(可选):前端错误提示样式
- 本期未做(任务建议本期只做后端提示,前端 doDecompose catch 已显示 e.detail 自动受益)
## 风险点核对
- 成功路径(200)未改动:entity_id=1 year=2026 实测 200 正常 ✓
- git commit 只含本次文件:9cccaa6 仅改 backend/app/api/budget.py(13 insertions, 2 deletions)✓
- HEAD == origin/main,无未推送提交 ✓