From 80108274ea97d6b4ac22e73552c001b84f9109da Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 1 Nov 2022 14:31:09 +0800 Subject: [PATCH] visit_driver_end bug --- apps/vm/serializers.py | 6 ++++++ apps/vm/services.py | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/vm/serializers.py b/apps/vm/serializers.py index d0aeb74c..991aebc7 100644 --- a/apps/vm/serializers.py +++ b/apps/vm/serializers.py @@ -23,6 +23,8 @@ class VisitCreateUpdateSerializer(CustomModelSerializer): def create(self, validated_data): receptionist = validated_data.get('receptionist', None) + if receptionist is None and validated_data['purpose'] != 50: + raise ParseError('请指定接待人') if receptionist: if receptionist.type != 'employee': raise ParseError('接待人需为正式员工') @@ -33,10 +35,14 @@ class VisitCreateUpdateSerializer(CustomModelSerializer): def update(self, instance, validated_data): receptionist = validated_data.get('receptionist', None) + if receptionist is None and validated_data['purpose'] != 50: + raise ParseError('请指定接待人') if receptionist: if receptionist.type != 'employee': raise ParseError('接待人需为正式员工') validated_data['belong_dept'] = validated_data['receptionist'].belong_dept + else: + validated_data['belong_dept'] = Dept.objects.all().order_by('create_time').first() return super().update(instance, validated_data) diff --git a/apps/vm/services.py b/apps/vm/services.py index e3436a23..db2be451 100644 --- a/apps/vm/services.py +++ b/apps/vm/services.py @@ -61,7 +61,7 @@ def visit_audit_end(ticket): ep.phone = visitor.phone ep.photo = visitor.photo ep.type = 'visitor' - ep.belong_dept = visit.receptionist.belong_dept if visit.receptionist else None + ep.belong_dept = visit.receptionist.belong_dept if visit.receptionist else visit.belong_dept ep.is_deleted = False ep.save() visitor.employee = ep @@ -82,7 +82,12 @@ def visit_driver_end(ticket): # 更新企业司机人员库 for i in Vpeople.objects.filter(visit=visit): visitor = i.visitor - ep = Employee.objects.filter(id_number=visitor.id_number).first() + if visitor.id_number: + ep = Employee.objects.get_queryset(all=True).filter(id_number=visitor.id_number).first() + elif visitor.phone: + ep = Employee.objects.get_queryset(all=True).filter(phone=visitor.phone).first() + else: + ep = Employee.objects.get_queryset(all=True).filter(name=visitor.name, id_number=None).first() if ep: pass else: