rpm serializer 优化
This commit is contained in:
parent
012e3e35a4
commit
d39f91ccbb
|
|
@ -60,6 +60,7 @@ class NotifySettingViewSet(CustomModelViewSet):
|
||||||
queryset = NotifySetting.objects.all()
|
queryset = NotifySetting.objects.all()
|
||||||
serializer_class = NotifySettingsSerializer
|
serializer_class = NotifySettingsSerializer
|
||||||
filterset_fields = ['event_cate', 'obj_cate', 'post', 'user']
|
filterset_fields = ['event_cate', 'obj_cate', 'post', 'user']
|
||||||
|
ordering = ['sort', 'create_time']
|
||||||
|
|
||||||
|
|
||||||
class EventViewSet(ListModelMixin, RetrieveModelMixin, CustomGenericViewSet):
|
class EventViewSet(ListModelMixin, RetrieveModelMixin, CustomGenericViewSet):
|
||||||
|
|
|
||||||
|
|
@ -89,31 +89,55 @@ class RpjListSerializer(CustomModelSerializer):
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
|
|
||||||
|
# class RemployeeCreateSerializer(CustomModelSerializer):
|
||||||
|
# phone = serializers.CharField(label="手机号", validators=[phone_check])
|
||||||
|
# rparty = serializers.PrimaryKeyRelatedField(queryset=Rparty.objects.all(), label='相关方ID', required=False)
|
||||||
|
|
||||||
|
# class Meta:
|
||||||
|
# model = Remployee
|
||||||
|
# fields = ['name', 'phone', 'photo', 'id_number', 'rparty']
|
||||||
|
# # model = Employee
|
||||||
|
# # exclude = EXCLUDE_FIELDS + ['is_atwork', 'last_check_time',
|
||||||
|
# # 'not_work_remark', 'third_info', 'type']
|
||||||
|
# # extra_kwargs = {
|
||||||
|
# # 'phone': {'required': True},
|
||||||
|
# # 'number': {'required': True},
|
||||||
|
# # 'photo': {'required': True},
|
||||||
|
# # 'id_number': {'required': True},
|
||||||
|
# # }
|
||||||
|
|
||||||
|
# def create(self, validated_data):
|
||||||
|
# with transaction.atomic():
|
||||||
|
# # 校验上传的证件照
|
||||||
|
# dhClient.request(**dhapis['person_img_upload'], file_path_rela=validated_data['photo'])
|
||||||
|
# return super().create(validated_data)
|
||||||
|
|
||||||
class RemployeeCreateSerializer(CustomModelSerializer):
|
class RemployeeCreateSerializer(CustomModelSerializer):
|
||||||
phone = serializers.CharField(label="手机号", validators=[phone_check])
|
|
||||||
rparty = serializers.PrimaryKeyRelatedField(queryset=Rparty.objects.all(), label='相关方ID', required=False)
|
rparty = serializers.PrimaryKeyRelatedField(queryset=Rparty.objects.all(), label='相关方ID', required=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Remployee
|
model = Remployee
|
||||||
fields = ['name', 'phone', 'photo', 'id_number', 'rparty']
|
fields = ['name', 'phone', 'photo', 'id_number', 'rparty']
|
||||||
# model = Employee
|
|
||||||
# exclude = EXCLUDE_FIELDS + ['is_atwork', 'last_check_time',
|
|
||||||
# 'not_work_remark', 'third_info', 'type']
|
|
||||||
# extra_kwargs = {
|
|
||||||
# 'phone': {'required': True},
|
|
||||||
# 'number': {'required': True},
|
|
||||||
# 'photo': {'required': True},
|
|
||||||
# 'id_number': {'required': True},
|
|
||||||
# }
|
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
# 校验上传的证件照
|
|
||||||
dhClient.request(**dhapis['person_img_upload'], file_path_rela=validated_data['photo'])
|
dhClient.request(**dhapis['person_img_upload'], file_path_rela=validated_data['photo'])
|
||||||
return super().create(validated_data)
|
return super().create(validated_data)
|
||||||
|
|
||||||
|
|
||||||
|
class RemployeeUpdateSerializer(CustomModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = Remployee
|
||||||
|
fields = ['phone', 'photo']
|
||||||
|
|
||||||
|
def update(self, instance, validated_data):
|
||||||
|
with transaction.atomic():
|
||||||
|
dhClient.request(**dhapis['person_img_upload'], file_path_rela=validated_data['photo'])
|
||||||
|
return super().update(instance, validated_data)
|
||||||
|
|
||||||
|
|
||||||
class RemployeeSerializer(CustomModelSerializer):
|
class RemployeeSerializer(CustomModelSerializer):
|
||||||
|
rparty_name = serializers.CharField(source='rparty.name', read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Remployee
|
model = Remployee
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ from threading import Thread
|
||||||
from apps.hrm.errors import PHONE_EXIST
|
from apps.hrm.errors import PHONE_EXIST
|
||||||
from apps.hrm.models import Certificate, Employee
|
from apps.hrm.models import Certificate, Employee
|
||||||
from apps.hrm.services import HrmService
|
from apps.hrm.services import HrmService
|
||||||
from apps.system.models import User, UserPost
|
from apps.system.models import Post, User, UserPost
|
||||||
from apps.utils.tools import ranstr
|
from apps.utils.tools import ranstr
|
||||||
from apps.wf.models import Ticket, Transition
|
from apps.wf.models import Ticket, Transition
|
||||||
from apps.rpm.models import Rcertificate, Rfile, Rpj, Rpjcertificate, Rpjfile, Rpjmember
|
from apps.rpm.models import Rcertificate, Rfile, Rpj, Rpjcertificate, Rpjfile, Rpjmember
|
||||||
|
|
@ -47,7 +47,7 @@ def rpj_audit_end(ticket):
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
user_e = User()
|
user_e = User()
|
||||||
user_e.username = 'RE_' + ranstr(10)
|
user_e.username = 'RE_' + ranstr(6)
|
||||||
user_e.name = rep.name
|
user_e.name = rep.name
|
||||||
user_e.phone = rep.phone
|
user_e.phone = rep.phone
|
||||||
user_e.type = 'remployee'
|
user_e.type = 'remployee'
|
||||||
|
|
@ -56,12 +56,13 @@ def rpj_audit_end(ticket):
|
||||||
user_e.save()
|
user_e.save()
|
||||||
ep.user = user_e
|
ep.user = user_e
|
||||||
ep.save()
|
ep.save()
|
||||||
|
post = Post.objects.get(code='rparty')
|
||||||
# 账号划给部门
|
# 账号划给部门
|
||||||
UserPost.objects.get_or_create(user=ep.user, dept=rpj_dept,
|
UserPost.objects.get_or_create(user=ep.user, dept=rpj_dept,
|
||||||
defaults={
|
defaults={
|
||||||
'user': ep.user,
|
'user': ep.user,
|
||||||
'dept': rpj_dept
|
'dept': rpj_dept,
|
||||||
|
'post': post
|
||||||
})
|
})
|
||||||
# 回写
|
# 回写
|
||||||
rep.employee = ep
|
rep.employee = ep
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ from django.shortcuts import render
|
||||||
from apps.hrm.models import Certificate, Employee
|
from apps.hrm.models import Certificate, Employee
|
||||||
from apps.hrm.serializers import CertificateCreateUpdateSerializer, CertificateSerializer, EmployeeSerializer
|
from apps.hrm.serializers import CertificateCreateUpdateSerializer, CertificateSerializer, EmployeeSerializer
|
||||||
from apps.rpm.models import Rcertificate, Remployee, Rparty, Rfile, Rpjfile, Rpjmember, Rpj
|
from apps.rpm.models import Rcertificate, Remployee, Rparty, Rfile, Rpjfile, Rpjmember, Rpj
|
||||||
from apps.rpm.serializers import RcertificateCreateUpdateSerializer, RcertificateSerializer, RemployeeCreateSerializer, RemployeeSerializer, RpartyAssignSerializer, RpartyCreateUpdateSerializer, RfileListSerializer, RpartySerializer, RpjListSerializer, RpjfileSerializer, RpjfileUpdateSerializer, RpjmemberCreateSerializer, RpjmemberCreatesSerializer, RpjCreateUpdateSerializer, RpjmemberSerializer, RpjmemberUpdateSerializer
|
from apps.rpm.serializers import RcertificateCreateUpdateSerializer, RcertificateSerializer, RemployeeCreateSerializer, RemployeeSerializer, RemployeeUpdateSerializer, RpartyAssignSerializer, RpartyCreateUpdateSerializer, RfileListSerializer, RpartySerializer, RpjListSerializer, RpjfileSerializer, RpjfileUpdateSerializer, RpjmemberCreateSerializer, RpjmemberCreatesSerializer, RpjCreateUpdateSerializer, RpjmemberSerializer, RpjmemberUpdateSerializer
|
||||||
from apps.system.models import Dictionary, Post, User, UserPost
|
from apps.system.models import Dictionary, Post, User, UserPost
|
||||||
from apps.system.serializers import UserCreateSerializer
|
from apps.system.serializers import UserCreateSerializer
|
||||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||||
|
|
@ -32,17 +32,20 @@ class RpartyViewSet(CustomModelViewSet):
|
||||||
"""
|
"""
|
||||||
obj = self.get_object()
|
obj = self.get_object()
|
||||||
if obj.admin:
|
if obj.admin:
|
||||||
raise ParseError('已存在管理员账号')
|
ins = obj.admin
|
||||||
serializer = UserCreateSerializer(data=request.data)
|
else:
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer = UserCreateSerializer(data=request.data)
|
||||||
ins = serializer.save(type='remployee')
|
serializer.is_valid(raise_exception=True)
|
||||||
|
ins = serializer.save(type='remployee', password=make_password('0000'))
|
||||||
|
obj.admin = ins
|
||||||
|
obj.save()
|
||||||
|
post = Post.objects.get(code='rparty')
|
||||||
UserPost.objects.get_or_create(user=ins, dept=obj.dept,
|
UserPost.objects.get_or_create(user=ins, dept=obj.dept,
|
||||||
defaults={
|
defaults={
|
||||||
'user': ins,
|
'user': ins,
|
||||||
'dept': obj.dept
|
'dept': obj.dept,
|
||||||
|
'post': post
|
||||||
})
|
})
|
||||||
obj.admin = ins
|
|
||||||
obj.save()
|
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -50,6 +53,7 @@ class RfileViewSet(ListModelMixin, CustomGenericViewSet):
|
||||||
perms_map = {'get': '*'}
|
perms_map = {'get': '*'}
|
||||||
queryset = Rfile.objects.all()
|
queryset = Rfile.objects.all()
|
||||||
list_serializer_class = RfileListSerializer
|
list_serializer_class = RfileListSerializer
|
||||||
|
ordering = ['file_cate__sort', 'file_cate__create_time']
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
queryset = super().get_queryset()
|
queryset = super().get_queryset()
|
||||||
|
|
@ -59,39 +63,34 @@ class RfileViewSet(ListModelMixin, CustomGenericViewSet):
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
class RemployeeViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, CustomDestoryModelMixin,
|
class RemployeeViewSet(CustomModelViewSet):
|
||||||
CustomGenericViewSet):
|
|
||||||
queryset = Remployee.objects.all()
|
queryset = Remployee.objects.all()
|
||||||
create_serializer_class = RemployeeCreateSerializer
|
create_serializer_class = RemployeeCreateSerializer
|
||||||
|
update_serializer_class = RemployeeUpdateSerializer
|
||||||
serializer_class = RemployeeSerializer
|
serializer_class = RemployeeSerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
queryset = super().get_queryset()
|
queryset = super().get_queryset()
|
||||||
if self.request.user.type == 'remployee':
|
if self.request.user.type == 'remployee':
|
||||||
queryset = queryset.filter(rparty=self.request.user.belong_dept)
|
queryset = queryset.filter(rparty__dept=self.request.user.belong_dept)
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
# @transaction.atomic
|
@transaction.atomic
|
||||||
# def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
# """
|
"""
|
||||||
# 添加人员
|
添加人员
|
||||||
# """
|
"""
|
||||||
# user = self.request.user
|
user = self.request.user
|
||||||
# serializer = self.get_serializer(data=request.data)
|
serializer = self.get_serializer(data=request.data)
|
||||||
# serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
# vdata = serializer.validated_data
|
vdata = serializer.validated_data
|
||||||
# if user.type == 'remployee': # 如果是相关方账号
|
if user.type == 'remployee': # 如果是相关方账号
|
||||||
# ep = serializer.save()
|
serializer.save(rparty=user.belong_dept.rparty)
|
||||||
# Remployee.objects.get_or_create(employee=ep, rparty=user.belong_dept.rparty,
|
else:
|
||||||
# defaults={
|
if 'rparty' not in vdata:
|
||||||
# "employee": ep,
|
raise ParseError('未指定相关方')
|
||||||
# "rparty": user.belong_dept.rparty
|
serializer.save()
|
||||||
# })
|
return Response(serializer.data, status=201)
|
||||||
# else:
|
|
||||||
# if 'rparty' not in vdata:
|
|
||||||
# raise ParseError('未指定相关方')
|
|
||||||
# serializer.save()
|
|
||||||
# return Response(serializer.data, status=201)
|
|
||||||
|
|
||||||
|
|
||||||
class RcertificateViewSet(CustomModelViewSet):
|
class RcertificateViewSet(CustomModelViewSet):
|
||||||
|
|
@ -104,7 +103,7 @@ class RcertificateViewSet(CustomModelViewSet):
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
queryset = super().get_queryset()
|
queryset = super().get_queryset()
|
||||||
if self.request.user.type == 'remployee':
|
if self.request.user.type == 'remployee':
|
||||||
queryset = queryset.filter(remployee__rparty=self.request.user.belong_dept)
|
queryset = queryset.filter(remployee__rparty__dept=self.request.user.belong_dept)
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,7 @@ class VisitorRegisterSerializer(serializers.Serializer):
|
||||||
|
|
||||||
class VisitDetailSerializer(CustomModelSerializer):
|
class VisitDetailSerializer(CustomModelSerializer):
|
||||||
receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True)
|
receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True)
|
||||||
|
receptionist_name = serializers.CharField(source='receptionist.name', read_only=True)
|
||||||
visitors_ = serializers.SerializerMethodField()
|
visitors_ = serializers.SerializerMethodField()
|
||||||
ticket_ = TicketSerializer(source='ticket', read_only=True)
|
ticket_ = TicketSerializer(source='ticket', read_only=True)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,8 +53,7 @@ class VisitViewSet(CustomModelViewSet):
|
||||||
return super().destroy(request, *args, **kwargs)
|
return super().destroy(request, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class VisitorViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, CustomDestoryModelMixin, UpdateModelMixin,
|
class VisitorViewSet(CustomModelViewSet):
|
||||||
CustomGenericViewSet):
|
|
||||||
queryset = Visitor.objects.all()
|
queryset = Visitor.objects.all()
|
||||||
create_serializer_class = VisitorCreateSerializer
|
create_serializer_class = VisitorCreateSerializer
|
||||||
update_serializer_class = VisitorCreateSerializer
|
update_serializer_class = VisitorCreateSerializer
|
||||||
|
|
@ -62,9 +61,9 @@ class VisitorViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Custo
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
queryset = super().get_queryset()
|
queryset = super().get_queryset().filter(create_by=user)
|
||||||
if user.type == 'visitor':
|
# if user.type == 'visitor':
|
||||||
queryset = queryset.filter(create_by=user)
|
# queryset = queryset.filter(create_by=user)
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
@action(methods=['post'], detail=False,
|
@action(methods=['post'], detail=False,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue