feat(v2): 实现SQLite对公租赁经验加工与卡片预审轨迹闭环

This commit is contained in:
2026-10-01 13:38:03 +08:00
parent 9c351b08d3
commit fa4163b2d0
60 changed files with 2111 additions and 59 deletions
+5 -1
View File
@@ -35,7 +35,7 @@ def _codes(findings) -> set[str]:
def hard_blocks(findings, hard_rule_codes) -> list[dict]:
"""命中的硬性阻断项。`hard_rule_codes` 来自冻结方案里 effect=hard 且 on_match=block 的规则。"""
wanted = set(hard_rule_codes or ())
return [dict(item) for item in findings or () if item.get("code") in wanted]
return [dict(item) for item in findings or () if item.get("code") in wanted and item.get("result") == "issue"]
def critical_incomplete(findings, critical_check_ids) -> list[str]:
@@ -80,6 +80,10 @@ def decide(findings, missing_inputs=(), degradations=(), judgments=(),
reason = ("关键核查未能完成,无法形成结论,请补充材料后重新发起;"
"不得据此判定企业高风险。未完成项:" + "、".join(incomplete))
missing = sorted(set(missing) | set(incomplete))
elif degradations or missing or any(item.get("result") == "error" for item in findings or ()):
stage = "critical_incomplete"
recommendation = "insufficient_information"
reason = "核查存在未完成步骤或缺失材料,请补充并重新核查;不得按已通过处理"
elif open_items:
stage = "open_findings"
recommendation = "supplement"