Files
cma-management/backend/scripts/backups/threshold_rows_before_20260911.json
T
Hermes CI Fix 4c6fb85cf5 fix(kpi): 阈值红黄绿读写/填写规则修复 — 统一解析器+红灯优先+建议可解析+前端校验+存量修正 (project-20260911-threshold-fix)
① 新建 app/utils/threshold_parser.py 统一解析/判定(单一事实源):
   - 支持负数(>=-100000)、闭区间 A~B、多条件 C1|C2;空串=未设置
   - 判定顺序 red→green→yellow:红灯优先(消除宽黄灯遮蔽红灯),
     green 先于 yellow(green 是主条件,yellow 是更宽兜底带)
② kpis.py / alert_generator.py 双实现收敛到统一解析器(消除重复维护)
③ thresholds.py suggest 输出可解析表达式(原黄色/适中型生成 `52.33~107.67`、`偏离55%` 等
   区间/文字 → 用户点"自动建议"填入后静默失效;另修复大数目标生成 1.6e+06 科学计数法)
④ KPIDetail.vue 三个阈值输入加 placeholder/tooltip/帮助文案 + 保存前格式校验(非法即拒)
⑤ 存量 4 个不可解析表达式修正(id=46 C_REBATE_RATE / id=327 BH_SALES_10),
   改前 mysqldump 备份 backend/scripts/backups/kpi_definitions.bak-20260911.sql +
   threshold_rows_before_20260911.json(可回滚);不可解析 5→0
⑥ 单测 97 条 + 红黄绿判定回归 367 判定点(旧→新差异 14 条,含差异说明)
2026-09-11 17:25:24 +08:00

32 lines
775 B
JSON

{
"created_at": "2026-09-11T17:11:24.159913",
"rows": [
{
"id": 46,
"kpi_code": "C_REBATE_RATE",
"kpi_name": "渠补率",
"target_value": 80.0,
"threshold_green": "52.33~107.67",
"threshold_yellow": "偏离55%",
"threshold_red": "偏离>55%"
},
{
"id": 327,
"kpi_code": "BH_SALES_10",
"kpi_name": "销售-任富海",
"target_value": 200.0,
"threshold_green": "",
"threshold_yellow": "偏离182878%",
"threshold_red": "偏离>182878%"
},
{
"id": 32,
"kpi_code": "F_EVA",
"kpi_name": "经济增加值(EVA)",
"target_value": 0.0,
"threshold_green": ">=0",
"threshold_yellow": ">=-100000",
"threshold_red": "<-100000"
}
]
}