From b9505fbd3ed2439c18a743fe2caad62e9c0f2e76 Mon Sep 17 00:00:00 2001 From: 27942 Date: Mon, 26 Jan 2026 16:17:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=A1=88=E4=BB=B6=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- User/utils.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/User/utils.py b/User/utils.py index 2bf329b..4e04c08 100644 --- a/User/utils.py +++ b/User/utils.py @@ -79,8 +79,9 @@ def get_finance_personincharge_candidates(): except Exception: pass - # 回退保留原有字符串标识,兼容历史数据 + # 回退保留原有字符串标识,兼容历史数据(包括"财务"和"财务部"两种格式) candidates.append("财务") + candidates.append("财务部") # 去重保持顺序 uniq = [] @@ -548,14 +549,14 @@ def get_approvers_from_record(business_record, approval=None): # 如果 business_record 没有 approvers_order 字段,尝试从 Approval.content 字段解析 if approval and approval.content: try: - # 格式:审批流程:张三 → 李四 → 王五 → 财务(按顺序审批),当前审批人:张三 + # 格式:审批流程:张三 → 李四 → 王五 → 财务部(按顺序审批),当前审批人:张三 if "审批流程:" in approval.content: # 提取审批流程部分 flow_part = approval.content.split("审批流程:")[1].split("(按顺序审批)")[0] # 分割审核人(使用 → 分隔) approvers_list = [a.strip() for a in flow_part.split("→") if a.strip()] - # 移除最后的"财务" - if approvers_list and approvers_list[-1].strip() == "财务": + # 移除最后的"财务"或"财务部"(兼容两种格式) + if approvers_list and approvers_list[-1].strip() in ("财务", "财务部"): approvers_list = approvers_list[:-1] if approvers_list: logger.info(f"get_approvers_from_record: 从 Approval.content 解析审核人列表: {approvers_list}") @@ -668,7 +669,8 @@ def process_approval_flow(approval, business_record, current_approver, state, except ValueError: # 当前审核人不在列表中,可能是旧数据,直接抄送财务 logger.warning(f"process_approval_flow: 当前审核人 {current_approver} 不在审核人列表中 {approvers_list},直接抄送财务") - approval.personincharge = "财务" + finance_personincharge = get_finance_personincharge_value() + approval.personincharge = finance_personincharge approval.state = "已抄送财务" approval.save(update_fields=['state', 'personincharge']) return False, None