优化大版本
This commit is contained in:
@@ -135,27 +135,56 @@ class UserRegister(APIView):
|
||||
'code': 1
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# 验证审批人是否存在(personincharge应该是用户名,不是部门ID)
|
||||
# 判断personincharge是部门ID还是用户名
|
||||
from User.utils import is_department_id
|
||||
from User.models import Department
|
||||
|
||||
final_personincharge = None # 最终用于审批记录的personincharge值
|
||||
|
||||
if is_department_id(personincharge):
|
||||
# 不允许使用部门ID,必须直接选择某个人
|
||||
return Response({
|
||||
'status': 'error',
|
||||
'message': '请直接选择审批人(用户名),不能使用部门ID',
|
||||
'code': 1
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
# 如果是部门ID,从部门中选择一个用户作为审批人
|
||||
try:
|
||||
department_id = int(personincharge)
|
||||
department = Department.objects.get(id=department_id, is_deleted=False)
|
||||
except (Department.DoesNotExist, ValueError):
|
||||
return Response({
|
||||
'status': 'error',
|
||||
'message': f'部门ID"{personincharge}"不存在或无效',
|
||||
'code': 1
|
||||
}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
# 获取部门中的用户列表
|
||||
department_users = User.objects.filter(
|
||||
department__id=department_id,
|
||||
is_deleted=False
|
||||
).order_by('id')
|
||||
|
||||
if not department_users.exists():
|
||||
return Response({
|
||||
'status': 'error',
|
||||
'message': f'部门"{department.username}"中没有可用用户,请选择其他审批人',
|
||||
'code': 1
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# 选择部门中的第一个用户作为审批人
|
||||
approver = department_users.first()
|
||||
# 审批记录中使用部门ID(符合审批系统的规则)
|
||||
final_personincharge = personincharge # 使用部门ID
|
||||
|
||||
else:
|
||||
# 如果是用户名,直接验证用户是否存在
|
||||
try:
|
||||
approver = User.objects.get(username=personincharge, is_deleted=False)
|
||||
# 审批记录中使用用户名
|
||||
final_personincharge = personincharge # 使用用户名
|
||||
except User.DoesNotExist:
|
||||
return Response({
|
||||
'status': 'error',
|
||||
'message': f'审批人"{personincharge}"不存在或已被删除',
|
||||
'code': 1
|
||||
}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
# 验证审批人用户是否存在
|
||||
try:
|
||||
approver = User.objects.get(username=personincharge, is_deleted=False)
|
||||
except User.DoesNotExist:
|
||||
return Response({
|
||||
'status': 'error',
|
||||
'message': f'审批人"{personincharge}"不存在或已被删除',
|
||||
'code': 1
|
||||
}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
# 创建审批记录(直接使用审批人用户名)
|
||||
# 创建审批记录
|
||||
# 审批内容包含从人事管理同步的团队信息
|
||||
content_parts = [
|
||||
f"{username}在{Dateofjoining}办理入职",
|
||||
@@ -171,7 +200,7 @@ class UserRegister(APIView):
|
||||
title=username + "入职财务登记",
|
||||
content=",".join(content_parts),
|
||||
times=formatted_date,
|
||||
personincharge=personincharge, # 直接使用审批人用户名
|
||||
personincharge=final_personincharge, # 使用部门ID或用户名
|
||||
state='审核中',
|
||||
type="入职财务登记",
|
||||
user_id=str(user.id)
|
||||
|
||||
Reference in New Issue
Block a user