优化案件模块
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user