去除hrm sinnal

This commit is contained in:
曹前明 2022-09-15 12:17:56 +08:00
parent e646756017
commit 94ecdc1ab6
2 changed files with 30 additions and 25 deletions

View File

@ -2,27 +2,3 @@ from django.db.models.signals import post_save
from apps.system.models import User from apps.system.models import User
from django.dispatch import receiver from django.dispatch import receiver
from apps.hrm.models import Employee from apps.hrm.models import Employee
@receiver(post_save, sender=User)
def updateEmployee(sender, instance, created, **kwargs):
ep = None
ep_created = False
if created:
ep, ep_created = Employee.objects.get_or_create(user=instance,
defaults={
"user": instance,
"name": instance.name,
"phone": instance.phone,
"belong_dept": instance.belong_dept,
"post": instance.post,
"type": instance.type
})
if ep and not ep_created:
ep.belong_dept = instance.belong_dept
ep.post = instance.post
ep.type = instance.type
if instance.phone != ep.phone:
ep.phone = instance.phone
ep.save()
ep.save()

View File

@ -16,6 +16,7 @@ from rest_framework.parsers import (JSONParser,
from rest_framework.permissions import IsAuthenticated 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.hrm.models import Employee
from apps.system.errors import OLD_PASSWORD_WRONG, PASSWORD_NOT_SAME, SCHEDULE_WRONG from apps.system.errors import OLD_PASSWORD_WRONG, PASSWORD_NOT_SAME, SCHEDULE_WRONG
from apps.system.filters import DeptFilterSet, UserFilterSet from apps.system.filters import DeptFilterSet, UserFilterSet
# from django_q.models import Task as QTask, Schedule as QSchedule # from django_q.models import Task as QTask, Schedule as QSchedule
@ -384,6 +385,13 @@ class UserPostViewSet(CreateModelMixin, DestroyModelMixin, ListModelMixin, Custo
user.post = up.post user.post = up.post
user.update_by = self.request.user user.update_by = self.request.user
user.save() user.save()
# 更新人员表
ep = Employee.objects.get_queryset(all=True).filter(user=instance).first()
if ep:
ep.belong_dept = user.belong_dept
ep.post = user.post
ep.is_deleted = False
ep.save()
def perform_destroy(self, instance): def perform_destroy(self, instance):
with transaction.atomic(): with transaction.atomic():
@ -398,6 +406,13 @@ class UserPostViewSet(CreateModelMixin, DestroyModelMixin, ListModelMixin, Custo
user.post = None user.post = None
user.update_by = self.request.user user.update_by = self.request.user
user.save() user.save()
# 更新人员表
ep = Employee.objects.get_queryset(all=True).filter(user=instance).first()
if ep:
ep.belong_dept = user.belong_dept
ep.post = user.post
ep.is_deleted = False
ep.save()
class UserViewSet(CustomModelViewSet): class UserViewSet(CustomModelViewSet):
@ -425,7 +440,21 @@ class UserViewSet(CustomModelViewSet):
password = make_password('0000') password = make_password('0000')
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)
serializer.save(password=password, belong_dept=None) instance = serializer.save(password=password, belong_dept=None)
ep = Employee.objects.get_queryset(all=True).filter(user=instance).first()
ep2 = Employee.objects.get_queryset(all=True).filter(phone=instance.phone).first()
if ep:
pass
elif ep2:
ep = ep2
else:
ep = Employee()
ep.user = instance
ep.name = instance.name
ep.phone = instance.phone
ep.type = instance.type
ep.is_deleted = False
ep.save()
return Response(data=serializer.data) return Response(data=serializer.data)
@action(methods=['put'], detail=False, @action(methods=['put'], detail=False,