人员筛选
This commit is contained in:
parent
a2d8e8e1eb
commit
1f71024921
|
@ -23,7 +23,7 @@ class EmployeeFilterSet(filters.FilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Employee
|
model = Employee
|
||||||
fields = ['job_state', 'show_atwork']
|
fields = ['job_state', 'show_atwork', 'type']
|
||||||
|
|
||||||
|
|
||||||
class NotWorkRemarkFilterSet(filters.FilterSet):
|
class NotWorkRemarkFilterSet(filters.FilterSet):
|
||||||
|
|
|
@ -31,7 +31,7 @@ class EmployeeViewSet(CustomModelViewSet):
|
||||||
"""
|
"""
|
||||||
人员管理
|
人员管理
|
||||||
"""
|
"""
|
||||||
queryset = Employee.objects.filter(type='employee')
|
queryset = Employee.objects.all()
|
||||||
select_related_fields = ['user']
|
select_related_fields = ['user']
|
||||||
filterset_class = EmployeeFilterSet
|
filterset_class = EmployeeFilterSet
|
||||||
serializer_class = EmployeeSerializer
|
serializer_class = EmployeeSerializer
|
||||||
|
@ -41,6 +41,11 @@ class EmployeeViewSet(CustomModelViewSet):
|
||||||
search_fields = ['name', 'number', 'user__username']
|
search_fields = ['name', 'number', 'user__username']
|
||||||
ordering = ['-pk']
|
ordering = ['-pk']
|
||||||
|
|
||||||
|
def filter_queryset(self, queryset):
|
||||||
|
if not self.detail:
|
||||||
|
self.request.query_params.setdefault('type', 'employee')
|
||||||
|
return super().filter_queryset(queryset)
|
||||||
|
|
||||||
@action(methods=['get'], detail=False, perms_map={'get': '*'},
|
@action(methods=['get'], detail=False, perms_map={'get': '*'},
|
||||||
serializer_class=serializers.Serializer)
|
serializer_class=serializers.Serializer)
|
||||||
def info(self, request, pk=None):
|
def info(self, request, pk=None):
|
||||||
|
|
|
@ -2,7 +2,7 @@ from django_filters import rest_framework as filters
|
||||||
from .models import User
|
from .models import User
|
||||||
|
|
||||||
|
|
||||||
class UserFilter(filters.FilterSet):
|
class UserFilterSet(filters.FilterSet):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
fields = {
|
fields = {
|
||||||
|
@ -11,5 +11,6 @@ class UserFilter(filters.FilterSet):
|
||||||
'posts': ['exact'],
|
'posts': ['exact'],
|
||||||
'post': ['exact'],
|
'post': ['exact'],
|
||||||
'belong_dept': ['exact'],
|
'belong_dept': ['exact'],
|
||||||
'depts': ['exact']
|
'depts': ['exact'],
|
||||||
|
'type': ['exact']
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,13 +15,13 @@ from rest_framework.permissions import IsAuthenticated
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
from apps.system.errors import FUNC_ERROR, OLD_PASSWORD_WRONG, PASSWORD_NOT_SAME, SCHEDULE_WRONG
|
from apps.system.errors import FUNC_ERROR, OLD_PASSWORD_WRONG, PASSWORD_NOT_SAME, SCHEDULE_WRONG
|
||||||
|
from apps.system.filters import UserFilterSet
|
||||||
# from django_q.models import Task as QTask, Schedule as QSchedule
|
# from django_q.models import Task as QTask, Schedule as QSchedule
|
||||||
from apps.utils.mixins import (CustomCreateModelMixin)
|
from apps.utils.mixins import (CustomCreateModelMixin)
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from apps.utils.permission import ALL_PERMS, get_user_perms_map
|
from apps.utils.permission import ALL_PERMS, get_user_perms_map
|
||||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||||
from server.celery import app as celery_app
|
from server.celery import app as celery_app
|
||||||
from .filters import UserFilter
|
|
||||||
from .models import (Dept, Dictionary, DictType, File, Permission, Post, PostRole, Role, User,
|
from .models import (Dept, Dictionary, DictType, File, Permission, Post, PostRole, Role, User,
|
||||||
UserPost)
|
UserPost)
|
||||||
from .serializers import (DeptCreateUpdateSerializer, DeptSerializer, DictCreateUpdateSerializer,
|
from .serializers import (DeptCreateUpdateSerializer, DeptSerializer, DictCreateUpdateSerializer,
|
||||||
|
@ -313,6 +313,11 @@ class DeptViewSet(CustomModelViewSet):
|
||||||
filterset_fields = ['type']
|
filterset_fields = ['type']
|
||||||
search_fields = ['name']
|
search_fields = ['name']
|
||||||
|
|
||||||
|
def filter_queryset(self, queryset):
|
||||||
|
if not self.detail:
|
||||||
|
self.request.query_params.setdefault('type', 'dept')
|
||||||
|
return super().filter_queryset(queryset)
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
type = self.request.query_params.get('type', None)
|
type = self.request.query_params.get('type', None)
|
||||||
if type:
|
if type:
|
||||||
|
@ -386,15 +391,20 @@ class UserPostViewSet(CreateModelMixin, DestroyModelMixin, ListModelMixin, Custo
|
||||||
|
|
||||||
|
|
||||||
class UserViewSet(CustomModelViewSet):
|
class UserViewSet(CustomModelViewSet):
|
||||||
queryset = User.objects.filter(type='employee')
|
queryset = User.objects.all()
|
||||||
serializer_class = UserListSerializer
|
serializer_class = UserListSerializer
|
||||||
create_serializer_class = UserCreateSerializer
|
create_serializer_class = UserCreateSerializer
|
||||||
update_serializer_class = UserUpdateSerializer
|
update_serializer_class = UserUpdateSerializer
|
||||||
filterset_class = UserFilter
|
filterset_class = UserFilterSet
|
||||||
search_fields = ['username', 'name', 'phone', 'email']
|
search_fields = ['username', 'name', 'phone', 'email']
|
||||||
select_related_fields = ['superior', 'belong_dept']
|
select_related_fields = ['superior', 'belong_dept']
|
||||||
prefetch_related_fields = ['posts']
|
prefetch_related_fields = ['posts']
|
||||||
|
|
||||||
|
def filter_queryset(self, queryset):
|
||||||
|
if not self.detail:
|
||||||
|
self.request.query_params.setdefault('type', 'employee')
|
||||||
|
return super().filter_queryset(queryset)
|
||||||
|
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
"""创建用户
|
"""创建用户
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ def visit_audit_end(ticket):
|
||||||
ep.photo = visitor.photo
|
ep.photo = visitor.photo
|
||||||
ep.save()
|
ep.save()
|
||||||
visitor.employee = ep
|
visitor.employee = ep
|
||||||
visitor.visit = visit #更新当前所属访客项目
|
visitor.visit = visit # 更新当前所属访客项目
|
||||||
visitor.save()
|
visitor.save()
|
||||||
# 同步至大华人员库并下发人脸
|
# 同步至大华人员库并下发人脸
|
||||||
Thread(target=HrmService.sync_dahua_employee, args=(ep, '', visit.visit_time, visit.leave_time)).start()
|
Thread(target=HrmService.sync_dahua_employee, args=(ep, '', visit.visit_time, visit.leave_time)).start()
|
||||||
|
|
Loading…
Reference in New Issue