v3.2: 降级结果已含card_data时跳过重复匹配(避免approval_type=None误报匹配失败)

This commit is contained in:
Simon
2026-07-17 23:39:20 +08:00
parent 6932e5a449
commit 18a639919c
+22 -14
View File
@@ -442,23 +442,31 @@ async def _persist_and_push_structured(
extra_data["options"] = options extra_data["options"] = options
# 为审批卡片注入标准化 card_data(替换原有的分散匹配逻辑) # 为审批卡片注入标准化 card_data(替换原有的分散匹配逻辑)
if action: if action:
approval_type = action.get("approval_type") # v3.2 修复:降级路径已构建好 card_data 时,跳过重复匹配(避免 approval_type=None 误报"匹配失败"
title = action.get("title") if action.get("card_data"):
matched_card = action["card_data"]
# v3.0 重构:委托 ApprovalMatcher 统一完成模板匹配 + 卡片构建
from app.services.approval_matcher import get_approval_matcher
matcher = get_approval_matcher()
matched_card = matcher.match_and_build_card(approval_type, title)
if matched_card:
# 注入 URL 供 approve-direct-card 兼容路径使用
options = matched_card.get("options", []) options = matched_card.get("options", [])
if options: if options and not action.get("url"):
action["url"] = options[0].get("url", "") action["url"] = options[0].get("url", "")
action["card_data"] = matched_card logger.info(f"[ApprovalMatcher] 使用预构建 card_data: {matched_card.get('title')}")
logger.info(f"[ApprovalMatcher] 匹配成功: {approval_type} -> card_type={matched_card.get('card_type')}")
else: else:
logger.warning(f"[ApprovalMatcher] 匹配失败: approval_type={approval_type}, title={title}") approval_type = action.get("approval_type")
title = action.get("title")
# v3.0 重构:委托 ApprovalMatcher 统一完成模板匹配 + 卡片构建
from app.services.approval_matcher import get_approval_matcher
matcher = get_approval_matcher()
matched_card = matcher.match_and_build_card(approval_type, title)
if matched_card:
# 注入 URL 供 approve-direct-card 兼容路径使用
options = matched_card.get("options", [])
if options:
action["url"] = options[0].get("url", "")
action["card_data"] = matched_card
logger.info(f"[ApprovalMatcher] 匹配成功: {approval_type} -> card_type={matched_card.get('card_type')}")
else:
logger.warning(f"[ApprovalMatcher] 匹配失败: approval_type={approval_type}, title={title}")
extra_data["action"] = action extra_data["action"] = action