haha
This commit is contained in:
@@ -137,30 +137,79 @@ class UserRegister(APIView):
|
||||
content = ",".join(content_parts)
|
||||
|
||||
# 使用统一的审核流程函数
|
||||
approval, approvers_order_json, needs_approval = create_approval_with_team_logic(
|
||||
team_name=team_name,
|
||||
approvers=approvers,
|
||||
title=username + "入职财务登记",
|
||||
content=content,
|
||||
approval_type="入职财务登记",
|
||||
user_id=str(user.id),
|
||||
business_record=user, # User对象没有approvers_order字段,但可以更新state
|
||||
today=formatted_date
|
||||
)
|
||||
try:
|
||||
approval, approvers_order_json, needs_approval = create_approval_with_team_logic(
|
||||
team_name=team_name,
|
||||
approvers=approvers,
|
||||
title=username + "入职财务登记",
|
||||
content=content,
|
||||
approval_type="入职财务登记",
|
||||
user_id=str(user.id),
|
||||
business_record=user, # User对象没有approvers_order字段,但可以更新state
|
||||
today=formatted_date
|
||||
)
|
||||
except Exception as e:
|
||||
# 记录异常并返回错误信息
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
logger.error(f"创建入职财务登记审批失败: {str(e)}", exc_info=True)
|
||||
return Response({
|
||||
'status': 'error',
|
||||
'message': f'创建审批流程失败: {str(e)},请检查团队配置和审核人信息',
|
||||
'code': 1
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# 如果返回None且需要审核,说明缺少审核人
|
||||
if approval is None and needs_approval:
|
||||
# 检查团队是否配置了审核人
|
||||
team_has_approvers = False
|
||||
team_approvers_list = []
|
||||
team_approvers_valid = []
|
||||
if team and team.team_type == 'team':
|
||||
team_has_approvers = team.approvers.filter(is_deleted=False).exists()
|
||||
team_approvers = team.approvers.filter(is_deleted=False)
|
||||
team_has_approvers = team_approvers.exists()
|
||||
if team_has_approvers:
|
||||
team_approvers_list = [approver.username for approver in team_approvers]
|
||||
# 验证团队配置的审核人是否有效
|
||||
for approver_name in team_approvers_list:
|
||||
if User.objects.filter(username=approver_name, is_deleted=False).exists():
|
||||
team_approvers_valid.append(approver_name)
|
||||
|
||||
# 检查传入的审核人是否存在
|
||||
approvers_list = []
|
||||
if approvers:
|
||||
from User.utils import parse_approvers
|
||||
approvers_list = parse_approvers(approvers)
|
||||
# 验证审核人是否存在
|
||||
invalid_approvers = []
|
||||
for approver_name in approvers_list:
|
||||
if not User.objects.filter(username=approver_name, is_deleted=False).exists():
|
||||
invalid_approvers.append(approver_name)
|
||||
|
||||
if invalid_approvers:
|
||||
return Response({
|
||||
'status': 'error',
|
||||
'message': f'审核人不存在或已被删除: {", ".join(invalid_approvers)},请检查审核人是否有效',
|
||||
'code': 1
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# 构建错误信息
|
||||
if team_has_approvers:
|
||||
# 团队已配置审核人,但可能审核人不存在或已被删除
|
||||
error_message = '团队类型需要指定审核人,请在前端传递approvers参数或检查团队配置的审核人是否有效'
|
||||
if approvers_list:
|
||||
# 传入了审核人但可能有问题(这种情况不应该发生,因为已经验证过了)
|
||||
error_message = '团队类型需要指定有效的审核人,请检查传入的approvers参数中的审核人是否有效'
|
||||
else:
|
||||
# 团队已配置审核人,但可能审核人不存在或已被删除
|
||||
if team_approvers_valid:
|
||||
# 团队有有效的审核人,但 create_approval_with_team_logic 返回了 None
|
||||
# 这可能是其他原因导致的,提供通用错误信息
|
||||
error_message = f'创建审批流程失败,请检查团队"{team_name}"配置。团队当前配置的审核人:{", ".join(team_approvers_valid)}'
|
||||
else:
|
||||
# 团队配置的审核人都无效
|
||||
error_message = f'团队"{team_name}"配置的审核人无效或已被删除。团队当前配置的审核人:{", ".join(team_approvers_list) if team_approvers_list else "无"}。请在前端传递approvers参数(推荐格式:[用户ID数组],如[1,2,3])或为团队重新配置有效的审核人'
|
||||
else:
|
||||
# 团队未配置审核人
|
||||
error_message = '团队类型需要指定审核人,请在前端传递approvers参数或配置团队审核人'
|
||||
error_message = f'团队类型需要指定审核人。团队"{team_name}"未配置审核人,请在前端传递approvers参数(推荐格式:[用户ID数组],如[1,2,3])或为团队配置审核人'
|
||||
|
||||
return Response({
|
||||
'status': 'error',
|
||||
|
||||
Reference in New Issue
Block a user