优化案件模块

This commit is contained in:
27942
2026-01-26 16:17:49 +08:00
parent f7d4a8cb70
commit b9505fbd3e

View File

@@ -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