from __future__ import annotations from typing import Any def classify_complexity(elements: dict[str, Any], evidence_count: int = 0) -> dict[str, Any]: """ 简单/中等/复杂: - 要素数量:<5 简单;5-10 中等;>10 复杂 - 事实清晰度:入/离职时间完整、加班事实描述是否具体 - 证据完备度:证据材料数量(用 evidence_count 近似) """ present = 0 for k, v in (elements or {}).items(): if v is None: continue if isinstance(v, str) and not v.strip(): continue if isinstance(v, (list, dict)) and len(v) == 0: continue present += 1 entry_ok = bool(elements.get("entry_date")) leave_ok = bool(elements.get("leave_date")) overtime_desc = elements.get("overtime_desc") or "" overtime_ok = len(str(overtime_desc).strip()) >= 10 clarity = 0 clarity += 1 if entry_ok else 0 clarity += 1 if leave_ok else 0 clarity += 1 if overtime_ok else 0 evidence_ok = evidence_count >= 3 # 规则融合 if present < 5 and clarity <= 1 and evidence_count <= 1: level = "简单" elif present > 10 or clarity == 3 or evidence_ok: level = "复杂" if (present > 10 and (clarity >= 2 or evidence_ok)) else "中等" else: level = "中等" reasons = { "elements_count": present, "timeline_complete": entry_ok and leave_ok, "overtime_desc_specific": overtime_ok, "evidence_count": evidence_count, } return {"level": level, "reasons": reasons}