新增离职登记接口

This commit is contained in:
27942
2025-12-30 15:25:16 +08:00
parent 213d764e21
commit 2357e99b57
2 changed files with 37 additions and 8 deletions

View File

@@ -522,11 +522,29 @@ class roxyExhibition(APIView):
if not all([page, per_page]):
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
user = User.objects.get(token=token)
approvals = Approval.objects.filter(
state="审核中",
personincharge__in=[user.username, user.department]
).order_by('-id')
user = User.objects.prefetch_related('department').get(token=token)
# 获取用户所属的所有部门ID转为字符串因为personincharge存储的是字符串
user_department_ids = list(user.department.values_list('id', flat=True))
user_department_ids_str = [str(did) for did in user_department_ids]
# 构建查询条件:
# 1. 如果personincharge是部门ID匹配用户所属部门
# 2. 兼容旧数据如果personincharge是用户名匹配当前用户名
query = Q(state="审核中")
# 部门匹配personincharge字段存储的是部门ID字符串格式
department_query = Q()
if user_department_ids_str:
department_query = Q(personincharge__in=user_department_ids_str)
# 兼容旧数据如果personincharge是用户名
person_query = Q(personincharge=user.username)
# 组合查询:部门匹配 OR 用户名匹配
query &= (department_query | person_query)
approvals = Approval.objects.filter(query).order_by('-id')
total = len(approvals)
paginator = Paginator(approvals, per_page)

View File

@@ -3,7 +3,7 @@ from rest_framework.response import Response
from rest_framework import status
import json
import ast
from User.models import User,Approval
from User.models import User,Approval,Department
import datetime
from .models import Invoice,Income,Accounts,Payment,Reimbursement,BonusChange
from utility.utility import flies
@@ -26,9 +26,17 @@ class UserRegister(APIView):
Dateofjoining = request.data.get('Dateofjoining')
position = request.data.get('position')
salary = request.data.get('salary')
personincharge = request.data.get('personincharge')
approval_department = request.data.get('approval_department') # 审批部门ID
if not all([username, card, Dateofjoining, position, salary]):
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
# 验证审批部门是否存在
if approval_department:
try:
department = Department.objects.get(id=approval_department)
except Department.DoesNotExist:
return Response({'status': 'error', 'message': '审批部门不存在', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
Dateofjoinings = datetime.datetime.strptime(Dateofjoining, "%Y-%m-%d")
user = User.objects.get(username=username)
user.card = card
@@ -40,11 +48,14 @@ class UserRegister(APIView):
today = datetime.datetime.now()
formatted_date = today.strftime("%Y-%m-%d")
# 将审批部门ID存储到personincharge字段
# 这样该部门下的所有人员都能看到审批信息
Approval.objects.create(
title=username+"入职财务登记",
content=username+""+Dateofjoining+"办理入职,身份证:"+card+",岗位:"+position+"薪资:"+salary,
times=formatted_date,
personincharge=personincharge,
personincharge=str(approval_department) if approval_department else '', # 存储部门ID
state='审核中',
type="入职财务登记",
user_id=user.id