diff --git a/backend/app/api/dashboard.py b/backend/app/api/dashboard.py index ab3d9b74..d3545a4c 100644 --- a/backend/app/api/dashboard.py +++ b/backend/app/api/dashboard.py @@ -417,8 +417,18 @@ def my_dashboard( target = k.target_value level = "gray" if actual is not None and target: - ratio = actual / target - level = "green" if ratio >= 0.9 else ("yellow" if ratio >= 0.7 else "red") + # 反向指标(越低越好):费用率/渠补率/应收天数/返利率/成本率 + REVERSE_INDICATORS = { + "F_COST_RATIO", "C_REBATE_RATE", "F_AR_DAYS", + "F_REBATE_RATE", "F_FACTORY_REBATE_RATE", "F_COST_CONTROL_RATE", + } + if k.kpi_code in REVERSE_INDICATORS: + # 反向:实际≤目标=绿;实际≤目标*1.1=黄;否则红 + level = "green" if actual <= target else ( + "yellow" if actual <= target * 1.1 else "red") + else: + ratio = actual / target + level = "green" if ratio >= 0.9 else ("yellow" if ratio >= 0.7 else "red") kpi_list.append({ "id": k.id,