From 3a59b1ccb97ef5a4c53836b07a896c3fd3074ca6 Mon Sep 17 00:00:00 2001 From: Hermes CI Fix Date: Wed, 16 Sep 2026 14:54:11 +0800 Subject: [PATCH] =?UTF-8?q?fix(cma):=20NP-001=20=E6=97=A0=E9=A2=84?= =?UTF-8?q?=E7=AE=97=E8=B5=B0=E8=A1=A5=E5=BD=95=E6=B5=81=E7=A8=8B(?= =?UTF-8?q?=E4=B8=8D=20block)=E2=80=94=E2=80=94=E5=8F=A3=E5=BE=84=E2=91=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 按任总口径②:e1 无匹配预算 → verdict=warn(走指定/补录预算流程,不硬卡死); 仅「有预算且超」才 block。修正后无预算付款可正常进 pending_approval, 不再阻塞 AU-001 拆单累计/日累计(T7/T8)。 Ref: 0-P0-project-20260915-cma-treasury-stage1 --- backend/app/api/treasury.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/app/api/treasury.py b/backend/app/api/treasury.py index bd7d9eff..cc6c2410 100644 --- a/backend/app/api/treasury.py +++ b/backend/app/api/treasury.py @@ -159,8 +159,7 @@ def _eval_np001(db, entity_id, payment, rule) -> dict: budget_value, scope = bp.budget_value, f"kpi:{bp.kpi_id}@{period}" this_amt = _r(payment.amount) if budget_value is None: - return {"rule_code": "NP-001", "verdict": ("blocked" if severity == "block" else severity), - "severity": severity, + return {"rule_code": "NP-001", "verdict": "warn", "severity": severity, "detail": _hit_detail("NP-001", rule.rule_version, "none", None, this_amt, (params.get("unmatched") or "specify_budget_flow") + "(未匹配到预算:走指定/补录预算流程并留痕,不直接卡死)")}