25 lines
1.1 KiB
Python
Executable File
25 lines
1.1 KiB
Python
Executable File
from django.db.models.signals import post_save
|
|
from apps.system.models import User
|
|
from django.dispatch import receiver
|
|
from apps.hrm.models import Employee
|
|
|
|
|
|
@receiver(post_save, sender=User)
|
|
def updateEmployee(sender, instance, created, **kwargs):
|
|
# if created:
|
|
# 如果账号所属部门有变动, 更新关联人员的所属部门, 只限内部人员
|
|
if not instance.is_superuser and instance.type == 'employee':
|
|
ep = Employee.objects.filter(user=instance).first()
|
|
if ep:
|
|
if ep.belong_dept and ep.belong_dept != instance.belong_dept:
|
|
ep.belong_dept = instance.belong_dept
|
|
ep.save()
|
|
else:
|
|
Employee.objects.get_or_create(user=instance,
|
|
defaults={
|
|
"user": instance,
|
|
"name": instance.name,
|
|
"phone": instance.phone,
|
|
"belong_dept": instance.belong_dept
|
|
})
|