From 55176e2cfe4c415a51a20872598d000b84e93cdc Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 27 Oct 2022 15:59:39 +0800 Subject: [PATCH] visit belong_dept --- apps/ai/main.py | 1 - apps/vm/serializers.py | 31 ++++++++++++++++++++++++++----- apps/vm/services.py | 3 ++- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/apps/ai/main.py b/apps/ai/main.py index a6578b70..03ac4246 100644 --- a/apps/ai/main.py +++ b/apps/ai/main.py @@ -1,6 +1,5 @@ import importlib -from operator import is_ import os import cv2 from django.conf import settings diff --git a/apps/vm/serializers.py b/apps/vm/serializers.py index b39c5cb0..1ed95ada 100644 --- a/apps/vm/serializers.py +++ b/apps/vm/serializers.py @@ -20,6 +20,22 @@ class VisitCreateUpdateSerializer(CustomModelSerializer): fields = ['id', 'purpose', 'name', 'description', 'visit_time', 'leave_time', 'receptionist', 'company', 'level', 'count_people'] + def create(self, validated_data): + receptionist = validated_data.get('receptionist', None) + if receptionist: + if receptionist.type != 'employee': + raise ParseError('接待人需为正式员工') + validated_data['belong_dept'] = validated_data['receptionist'].belong_dept + return super().create(validated_data) + + def update(self, instance, validated_data): + receptionist = validated_data.get('receptionist', None) + if receptionist: + if receptionist.type != 'employee': + raise ParseError('接待人需为正式员工') + validated_data['belong_dept'] = validated_data['receptionist'].belong_dept + return super().update(instance, validated_data) + class VisitSerializer(CustomModelSerializer): receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True) @@ -33,7 +49,8 @@ class VisitSerializer(CustomModelSerializer): class VisitorCreateSerializer(CustomModelSerializer): phone = serializers.CharField(label="手机号", validators=[check_phone_e]) photo = serializers.CharField(label='照片地址', required=True) - id_number = serializers.CharField(label="身份证号", validators=[check_id_number_e]) + id_number = serializers.CharField( + label="身份证号", validators=[check_id_number_e]) class Meta: model = Visitor @@ -43,7 +60,8 @@ class VisitorCreateSerializer(CustomModelSerializer): with transaction.atomic(): # 校验上传的证件照 if validated_data.get('photo', None): - dhClient.request(**dhapis['person_img_upload'], file_path_rela=validated_data['photo']) + dhClient.request( + **dhapis['person_img_upload'], file_path_rela=validated_data['photo']) return super().create(validated_data) @@ -81,7 +99,8 @@ class VpeopleCreateSerializer(CustomModelSerializer): raise ParseError('该访客已选中') ins = super().create(validated_data) if ins.is_main: - Vpeople.objects.filter(visit=visit).exclude(id=ins.id).update(is_main=False) + Vpeople.objects.filter(visit=visit).exclude( + id=ins.id).update(is_main=False) if visit.level == 10: visit.count_people = Vpeople.objects.filter(visit=visit).count() visit.save() @@ -107,7 +126,8 @@ class VisitorRegisterSerializer(serializers.Serializer): class VisitDetailSerializer(CustomModelSerializer): receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True) - receptionist_name = serializers.CharField(source='receptionist.name', read_only=True) + receptionist_name = serializers.CharField( + source='receptionist.name', read_only=True) visitors_ = serializers.SerializerMethodField() ticket_ = TicketSerializer(source='ticket', read_only=True) @@ -116,5 +136,6 @@ class VisitDetailSerializer(CustomModelSerializer): fields = '__all__' def get_visitors_(self, obj): - objs = Vpeople.objects.filter(visit=obj).order_by('is_main', 'create_time') + objs = Vpeople.objects.filter( + visit=obj).order_by('is_main', 'create_time') return VpeopleSerializer(instance=objs, many=True).data diff --git a/apps/vm/services.py b/apps/vm/services.py index 2cd5a18c..0cde4d07 100644 --- a/apps/vm/services.py +++ b/apps/vm/services.py @@ -25,9 +25,10 @@ def bind_visit(ticket, transition, new_ticket_data: dict): ticket_data = ticket.ticket_data ticket_data.update({ 'purpose': visit.purpose, + 'belong_dept': visit.belong_dept }) ticket.ticket_data = ticket_data - ticket.belong_dept = visit.receptionist.belong_dept if visit.receptionist else None + ticket.belong_dept = visit.belong_dept ticket.create_by = visit.create_by ticket.save()