3.0 KiB
3.0 KiB
验收记录:年度分解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,无未推送提交 ✓