diff --git a/apps/hrm/signals.py b/apps/hrm/signals.py index ad53304e..6e990d0e 100755 --- a/apps/hrm/signals.py +++ b/apps/hrm/signals.py @@ -12,7 +12,7 @@ def updateEmployee(sender, instance, created, **kwargs): ep = Employee.objects.filter(user=instance).first() if ep: ep.belong_dept = instance.belong_dept - ep.post = instance.posts.all().order_by('sort', 'create_time').first() + ep.post = instance.post ep.save() else: Employee.objects.get_or_create(user=instance, @@ -21,5 +21,5 @@ def updateEmployee(sender, instance, created, **kwargs): "name": instance.name, "phone": instance.phone, "belong_dept": instance.belong_dept, - "post": instance.posts.all().order_by('sort', 'create_time').first() + "post": instance.post }) diff --git a/apps/system/migrations/0002_user_post.py b/apps/system/migrations/0002_user_post.py new file mode 100644 index 00000000..895acff0 --- /dev/null +++ b/apps/system/migrations/0002_user_post.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.12 on 2022-07-05 06:58 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('system', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='post', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='system.post', verbose_name='主要岗位'), + ), + ] diff --git a/apps/system/models.py b/apps/system/models.py index 5d4e8475..dbad3208 100755 --- a/apps/system/models.py +++ b/apps/system/models.py @@ -127,6 +127,9 @@ class User(AbstractUser, CommonBModel): '头像', default='/media/default/avatar.png', max_length=100, null=True, blank=True) superior = models.ForeignKey( 'self', null=True, blank=True, on_delete=models.SET_NULL, verbose_name='上级主管') + post = models.ForeignKey(Post, verbose_name='主要岗位', + on_delete=models.CASCADE, + null=True, blank=True) posts = models.ManyToManyField(Post, through='system.userpost', related_name='user_posts') depts = models.ManyToManyField(Dept, through='system.userpost') roles = models.ManyToManyField(Role, verbose_name='关联角色') diff --git a/apps/system/views.py b/apps/system/views.py index cfe44769..b5b26750 100755 --- a/apps/system/views.py +++ b/apps/system/views.py @@ -358,6 +358,7 @@ class UserPostViewSet(CreateModelMixin, DestroyModelMixin, ListModelMixin, Custo up = UserPost.objects.filter(user=user).order_by('sort', 'create_time').first() if up: user.belong_dept = up.dept + user.post = up.post user.update_by = self.request.user user.save() @@ -368,8 +369,10 @@ class UserPostViewSet(CreateModelMixin, DestroyModelMixin, ListModelMixin, Custo up = UserPost.objects.filter(user=user).order_by('sort', 'create_time').first() if up: user.belong_dept = up.dept + user.post = up.post else: user.belong_dept = None + user.post = None user.update_by = self.request.user user.save() diff --git a/apps/third/serializers.py b/apps/third/serializers.py index 43f158a5..776bcbab 100755 --- a/apps/third/serializers.py +++ b/apps/third/serializers.py @@ -67,4 +67,4 @@ class BltSerializer(serializers.ModelSerializer): class Meta: model = TDevice - fields = ['code', 'obj_cate', 'employee'] \ No newline at end of file + fields = ['code', 'obj_cate', 'employee', 'employee_']