diff --git a/backend/app/api/maps.py b/backend/app/api/maps.py index 41885004..feca4482 100644 --- a/backend/app/api/maps.py +++ b/backend/app/api/maps.py @@ -11,8 +11,6 @@ from app.models import StrategicMap, OperationLog, MapObjective, Objective, KR, from app.utils.kr_name import sanitize_kr_name from app.utils.kpi_value_scope import actual_only_clause import copy -# CMA-KPI-20261003 ③ 落码:考核型目标读路径分流(kpi_targets 优先;未命中回退哨兵在 utils 内) -from app.utils.kpi_target_reader import fetch_target_map, pick_cycle_target, target_type_for_frequency import json import logging @@ -984,8 +982,6 @@ def get_map_review(map_id: int, level: Optional[str] = None, db: Session = Depen KPIDefinition.entity_id == entity_id, ).all() if all_kpi_codes else [] kpi_map = {k.kpi_code: k for k in kpi_defs} - # ③ 落码:考核型目标一次性取新路径(战略回顾当期) - _tmap = fetch_target_map(db, entity_id, [k.id for k in kpi_defs]) # 查询最新KPI实际值 kpi_ids = [k.id for k in kpi_defs] @@ -1054,13 +1050,7 @@ def get_map_review(map_id: int, level: Optional[str] = None, db: Session = Depen held = code in DATA_HOLD_KPIS actual = None if held else lv.get("actual_value") # 多粒度目标优先: 月目标(多数KPI月度) → 兼容legacy target_value (OpenCode审查#5) - # ③ 落码:新路径命中即用;未命中回退兼容列(哨兵在 utils,不 or 0) - # COMPAT-FALLBACK 到期 2026-11-02:新表未命中 → 回退兼容列(顺序回退,不 or 0) - target = pick_cycle_target(_tmap, kpi_def.id, "monthly", kpi_def.target_monthly) - if target is None: - target = pick_cycle_target(_tmap, kpi_def.id, - target_type_for_frequency(kpi_def.frequency), - kpi_def.target_value) + target = kpi_def.target_monthly or kpi_def.target_value # 判断红黄绿灯(绿≥90% / 黄60-90% / 红<60%) # 方向修正: 越低越好型(费用率/成本率/损耗/逾期/投诉/流失) 与 负值目标 (OpenCode审查#5) level = "gray"