diff --git a/backend/app/api/reports.py b/backend/app/api/reports.py index 357e0040..22469d09 100644 --- a/backend/app/api/reports.py +++ b/backend/app/api/reports.py @@ -1846,9 +1846,18 @@ def _get_dupont_kpi(db: Session, entity_id: int, kpi_code: str, period: str = "2 ).first() if not kpi: return None + # 兼容period格式:数据库存"2026-H1",查询可能传"2026H1" + period_variants = [period] + if period: + # "2026H1"(6字符) → 补横线 "2026-H1" + if len(period) == 6: + period_variants.append(period[:4] + "-" + period[4:]) + # "2026-H1"(7字符) → 去横线 "2026H1" + elif len(period) == 7: + period_variants.append(period.replace("-", "")) v = db.query(KPIValue).filter( KPIValue.kpi_id == kpi.id, - KPIValue.period == period, + KPIValue.period.in_(period_variants), KPIValue.data_status == "verified", ).order_by(KPIValue.id.desc()).first() return v.actual_value if v else None