新增离职登记接口
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user