diff --git a/backend/app/api/dashboard.py b/backend/app/api/dashboard.py index 66cc89b5..233be174 100644 --- a/backend/app/api/dashboard.py +++ b/backend/app/api/dashboard.py @@ -365,10 +365,10 @@ def my_dashboard( # 角色预设KPI编码 ROLE_PRESET_KPIS = { - "ceo": ["F_REVENUE_001", "F_PROFIT_001", "F_COST_001", "C_CUST_001", "P_INV_001"], - "finance": ["F_REVENUE_001", "F_PROFIT_001", "F_COST_001", "F_CASH_001"], - "business": ["C_CUST_001", "C_CUST_003", "F_REVENUE_001"], - "it": [], # IT没有固定预设 + "ceo": ["F_REVENUE", "F_NET_PROFIT", "F_COST_RATIO", "C_REBATE_RATE", "P_DELIVERY", "F_FCF"], + "finance": ["F_REVENUE", "F_NET_PROFIT", "F_COST_RATIO", "F_OP_CFLOW", "F_ROE"], + "business": ["C_REBATE_RATE", "C_NEW_CLIENTS", "F_REVENUE"], + "it": [], } preset_codes = ROLE_PRESET_KPIS.get(role, []) @@ -385,11 +385,13 @@ def my_dashboard( # 补充角色预设KPI(去重) preset_kpis = [] if preset_codes: - preset_kpis = db.query(KPIDefinition).filter( + q = db.query(KPIDefinition).filter( KPIDefinition.kpi_code.in_(preset_codes), KPIDefinition.status == "active", - ~KPIDefinition.id.in_(assigned_ids) if assigned_ids else True, - ).all() + ) + if assigned_ids: + q = q.filter(~KPIDefinition.id.in_(assigned_ids)) + preset_kpis = q.all() all_kpis = assigned_kpis + preset_kpis