优化大版本

This commit is contained in:
27942
2026-01-12 15:03:56 +08:00
parent 4c5cc672f5
commit e370544e91

View File

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