From 3c64dc767e8c1a002c3886c8ec8c7bd4a71380e1 Mon Sep 17 00:00:00 2001 From: Hermes CI Fix Date: Thu, 27 Aug 2026 17:26:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=88=98=E7=95=A5=E7=9B=AE=E6=A0=87vs?= =?UTF-8?q?=E9=A2=84=E7=AE=97=E5=B7=AE=E5=BC=82=E5=8F=AF=E8=A7=81=E5=8C=96?= =?UTF-8?q?=20=E2=80=94=20=E7=9B=AE=E6=A0=87=E4=B8=8E=E9=A2=84=E7=AE=97?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E4=B8=8D=E5=90=8C=E4=BD=86=E5=B7=AE=E5=BC=82?= =?UTF-8?q?=E5=8F=AF=E8=A7=A3=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 需求: 战略目标(管理团队愿景) vs 预算(财务按实际分析) 允许不同 增强: - 后端 deviation-report 返回 strategic_target/target_gap_pct/target_gap_level - 预算执行表加'战略目标'+'目标差异'列(±10%黄/±20%红⚠️提示'需说明原因') - 战略预算编制KPI树加'战略目标'列(编制时可见对比) - 实测: F_REVENUE 战略1200 vs 预算173.86 差异-85.5%(high) 红提示 口径说明: 差异基于当前target_monthly/预算值, 目标口径校准另行处理 --- backend/app/api/budget.py | 10 ++++++++++ frontend/src/views/BudgetManagement.vue | 10 +++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/backend/app/api/budget.py b/backend/app/api/budget.py index eb0ac7a9..87ead453 100644 --- a/backend/app/api/budget.py +++ b/backend/app/api/budget.py @@ -400,6 +400,16 @@ def get_deviation_report( item["kpi_name"] = kpi.kpi_name item["dimension"] = kpi.dimension item["unit"] = kpi.unit or "" + # 战略目标 vs 预算差异(2026-08-27: 战略=愿景/预算=计划, 允许不同但差异可见可解释) + target = kpi.target_monthly or kpi.target_value + item["strategic_target"] = target + if item.get("budget_value") is not None and target: + gap = round((item["budget_value"] - target) / target * 100, 1) + item["target_gap_pct"] = gap + item["target_gap_level"] = "high" if abs(gap) > 20 else ("medium" if abs(gap) > 10 else "ok") + else: + item["target_gap_pct"] = None + item["target_gap_level"] = "none" items.append(item) summary["total_kpis"] += 1 diff --git a/frontend/src/views/BudgetManagement.vue b/frontend/src/views/BudgetManagement.vue index 0a9ba65a..8b450554 100644 --- a/frontend/src/views/BudgetManagement.vue +++ b/frontend/src/views/BudgetManagement.vue @@ -133,6 +133,7 @@ +