From f1b82d1ab568dda3e6b3367f11c2f52a34195216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Tue, 23 Aug 2022 18:04:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=BF=A1=E6=81=AF=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=88=B0visitor=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/hrm/serializers.py | 3 +++ apps/hrm/views.py | 3 +++ apps/vm/services.py | 10 +++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/apps/hrm/serializers.py b/apps/hrm/serializers.py index f045c32f..e5bc1fac 100755 --- a/apps/hrm/serializers.py +++ b/apps/hrm/serializers.py @@ -70,6 +70,9 @@ class EmployeeCreateUpdateSerializer(CustomModelSerializer): if instance.type == 'remployee': from apps.rpm.services import sync_to_rep sync_to_rep(instance) + elif instance.type == 'visitor': + from apps.vm.services import sync_to_visitor + sync_to_visitor(instance) if instance.job_state == 20 and instance.user: # 如果离职了关闭账户 instance.user.is_active = False instance.user.save() diff --git a/apps/hrm/views.py b/apps/hrm/views.py index 5fa78fed..e046eba6 100755 --- a/apps/hrm/views.py +++ b/apps/hrm/views.py @@ -81,6 +81,9 @@ class EmployeeViewSet(CustomModelViewSet): if ep.type == 'remployee': from apps.rpm.services import sync_to_rep sync_to_rep(ep) + elif ep.type == 'visitor': + from apps.vm.services import sync_to_visitor + sync_to_visitor(ep) return Response() @action(methods=['post'], detail=True, perms_map={'post': 'employee.notworkremark'}, diff --git a/apps/vm/services.py b/apps/vm/services.py index 86545f73..9ed55785 100644 --- a/apps/vm/services.py +++ b/apps/vm/services.py @@ -1,7 +1,15 @@ from apps.hrm.models import Employee from apps.hrm.services import HrmService -from apps.vm.models import Visit, Vpeople +from apps.vm.models import Visit, Visitor, Vpeople + + +def sync_to_visitor(ep: Employee): + # 个人信息完善时同步到visitor表 + Visitor.objects.filter(employee=ep).update(name=ep.name, phone=ep.phone, id_number=ep.id_number, photo=ep.photo) + if not Visitor.objects.filter(employee=ep, create_by=ep.user).exists(): + Visitor.objects.create(employee=ep, name=ep.name, phone=ep.phone, + id_number=ep.id_number, photo=ep.photo, create_by=ep.user) def bind_visit(ticket, transition, new_ticket_data: dict):