visit belong_dept
This commit is contained in:
parent
a973b62fe8
commit
55176e2cfe
|
@ -1,6 +1,5 @@
|
||||||
|
|
||||||
import importlib
|
import importlib
|
||||||
from operator import is_
|
|
||||||
import os
|
import os
|
||||||
import cv2
|
import cv2
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
|
@ -20,6 +20,22 @@ class VisitCreateUpdateSerializer(CustomModelSerializer):
|
||||||
fields = ['id', 'purpose', 'name', 'description', 'visit_time',
|
fields = ['id', 'purpose', 'name', 'description', 'visit_time',
|
||||||
'leave_time', 'receptionist', 'company', 'level', 'count_people']
|
'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):
|
class VisitSerializer(CustomModelSerializer):
|
||||||
receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True)
|
receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True)
|
||||||
|
@ -33,7 +49,8 @@ class VisitSerializer(CustomModelSerializer):
|
||||||
class VisitorCreateSerializer(CustomModelSerializer):
|
class VisitorCreateSerializer(CustomModelSerializer):
|
||||||
phone = serializers.CharField(label="手机号", validators=[check_phone_e])
|
phone = serializers.CharField(label="手机号", validators=[check_phone_e])
|
||||||
photo = serializers.CharField(label='照片地址', required=True)
|
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:
|
class Meta:
|
||||||
model = Visitor
|
model = Visitor
|
||||||
|
@ -43,7 +60,8 @@ class VisitorCreateSerializer(CustomModelSerializer):
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
# 校验上传的证件照
|
# 校验上传的证件照
|
||||||
if validated_data.get('photo', None):
|
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)
|
return super().create(validated_data)
|
||||||
|
|
||||||
|
|
||||||
|
@ -81,7 +99,8 @@ class VpeopleCreateSerializer(CustomModelSerializer):
|
||||||
raise ParseError('该访客已选中')
|
raise ParseError('该访客已选中')
|
||||||
ins = super().create(validated_data)
|
ins = super().create(validated_data)
|
||||||
if ins.is_main:
|
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:
|
if visit.level == 10:
|
||||||
visit.count_people = Vpeople.objects.filter(visit=visit).count()
|
visit.count_people = Vpeople.objects.filter(visit=visit).count()
|
||||||
visit.save()
|
visit.save()
|
||||||
|
@ -107,7 +126,8 @@ class VisitorRegisterSerializer(serializers.Serializer):
|
||||||
|
|
||||||
class VisitDetailSerializer(CustomModelSerializer):
|
class VisitDetailSerializer(CustomModelSerializer):
|
||||||
receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True)
|
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()
|
visitors_ = serializers.SerializerMethodField()
|
||||||
ticket_ = TicketSerializer(source='ticket', read_only=True)
|
ticket_ = TicketSerializer(source='ticket', read_only=True)
|
||||||
|
|
||||||
|
@ -116,5 +136,6 @@ class VisitDetailSerializer(CustomModelSerializer):
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
def get_visitors_(self, obj):
|
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
|
return VpeopleSerializer(instance=objs, many=True).data
|
||||||
|
|
|
@ -25,9 +25,10 @@ def bind_visit(ticket, transition, new_ticket_data: dict):
|
||||||
ticket_data = ticket.ticket_data
|
ticket_data = ticket.ticket_data
|
||||||
ticket_data.update({
|
ticket_data.update({
|
||||||
'purpose': visit.purpose,
|
'purpose': visit.purpose,
|
||||||
|
'belong_dept': visit.belong_dept
|
||||||
})
|
})
|
||||||
ticket.ticket_data = ticket_data
|
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.create_by = visit.create_by
|
||||||
ticket.save()
|
ticket.save()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue