diff --git a/backend/app/api/kpis.py b/backend/app/api/kpis.py index aae03b3b..61f203b6 100644 --- a/backend/app/api/kpis.py +++ b/backend/app/api/kpis.py @@ -482,7 +482,25 @@ def get_kpi(kpi_id: int, db: Session = Depends(get_db), entity_id: int = Depends # 账套隔离: 禁止跨企业读取 (2026-08-23 P1a) if kpi.entity_id != entity_id: raise HTTPException(404, "KPI不存在") - return kpi_to_dict(kpi) + result = kpi_to_dict(kpi) + # 附带历史数据(前端KPI详情"历史数据"Tab依赖) + # 2026-08-26修复: 原实现只返回定义信息,values缺失导致历史数据Tab空白 + vals = db.query(KPIValue).filter( + KPIValue.kpi_id == kpi_id, + KPIValue.actual_value.isnot(None), + ).order_by(KPIValue.period.asc()).all() + result["values"] = [ + { + "id": v.id, + "period": v.period, + "actual_value": v.actual_value, + "source_type": v.source_type, + "data_status": v.data_status, + "source_batch": v.source_batch, + } + for v in vals + ] + return result def _validate_kpi_data(data: dict, db: Session, current_kpi_id: Optional[int] = None, is_update: bool = False):