fix: 工作台KPI级别判断支持反向指标 — 费用率/渠补率/应收天数等'越低越好'指标不再误判green
- my_dashboard的level判断原为actual/target比例法(≥0.9=green) - 反向指标(费用率24.9%/目标20%)被误判为green,实际应red - 新增REVERSE_INDICATORS集合:F_COST_RATIO/C_REBATE_RATE/F_AR_DAYS/F_REBATE_RATE/F_FACTORY_REBATE_RATE/F_COST_CONTROL_RATE - 反向指标逻辑:实际≤目标=绿,≤目标*1.1=黄,否则红
This commit is contained in:
@@ -417,6 +417,16 @@ def my_dashboard(
|
|||||||
target = k.target_value
|
target = k.target_value
|
||||||
level = "gray"
|
level = "gray"
|
||||||
if actual is not None and target:
|
if actual is not None and target:
|
||||||
|
# 反向指标(越低越好):费用率/渠补率/应收天数/返利率/成本率
|
||||||
|
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
|
ratio = actual / target
|
||||||
level = "green" if ratio >= 0.9 else ("yellow" if ratio >= 0.7 else "red")
|
level = "green" if ratio >= 0.9 else ("yellow" if ratio >= 0.7 else "red")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user