ticket detail serializer

This commit is contained in:
曹前明 2022-07-14 10:35:00 +08:00
parent 1e6ffbdeb0
commit 83f6039499
3 changed files with 30 additions and 24 deletions

View File

@ -1,5 +1,5 @@
from threading import Thread from threading import Thread
from apps.hrm.models import Employee from apps.hrm.models import Certificate, Employee
from apps.hrm.services import HrmService from apps.hrm.services import HrmService
from apps.wf.models import Ticket, Transition from apps.wf.models import Ticket, Transition
from apps.rpm.models import Rcertificate, Rpj, Rpjmember from apps.rpm.models import Rcertificate, Rpj, Rpjmember
@ -16,29 +16,33 @@ def bind_opl(ticket: Ticket, transition: Transition, new_ticket_data: dict):
def rpj_audit_end(ticket): def rpj_audit_end(ticket):
rpj = Rpj.objects.get(ticket=ticket) if ticket.act_state == Ticket.TICKET_ACT_STATE_FINISH:
if rpj.state == Rpj.RPJ_AUDIT: rpj = Rpj.objects.get(ticket=ticket)
rpj.state = Rpj.RPJ_ENTER rpj.state = Rpj.RPJ_ENTER
rpj.save() rpj.save()
# 更新入厂项目人员库 # 更新入厂项目人员库
for i in Rpjmember.objects.filter(rpj=rpj): for i in Rpjmember.objects.filter(rpj=rpj):
rep = i.remployee rep = i.remployee
ep = Employee.objects.filter(id_number=rep.id_number).first() ep = Employee.objects.filter(id_number=rep.id_number).first()
if ep: if ep:
pass pass
else: else:
ep = Employee() ep = Employee()
ep.id_number = rep.id_number ep.id_number = rep.id_number
ep.name = rep.name ep.name = rep.name
ep.phone = rep.phone ep.phone = rep.phone
ep.photo = rep.photo ep.photo = rep.photo
ep.type = 'remployee' ep.type = 'remployee'
ep.save() ep.save()
rep.employee = ep rep.employee = ep
rep.save() rep.rpj = rpj # 更新当前入厂项目
rep.save()
# 同步至大华人员库并下发人脸
Thread(target=HrmService.sync_dahua_employee, args=(ep, '', rpj.come_time, rpj.leave_time)).start()
# 更新入厂项目人员证书库 # 更新入厂项目人员证书库
for i in Rcertificate.objects.filter(rpj=rpj): for i in Rcertificate.objects.filter(rpj=rpj):
pass Certificate.objects.get_or_create(
# 同步至大华人员库并下发人脸
Thread(target=HrmService.sync_dahua_employee, args=(ep, '', rpj.come_time, rpj.leave_time)).start() )
# 发送通知? # 发送通知?

View File

@ -8,7 +8,7 @@ from django.db import transaction
from apps.third.clients import dhClient from apps.third.clients import dhClient
from apps.third.tapis import dhapis from apps.third.tapis import dhapis
from apps.system.serializers import UserSimpleSerializer from apps.system.serializers import UserSimpleSerializer
from apps.wf.serializers import TicketSimpleSerializer from apps.wf.serializers import TicketSerializer
class VisitCreateUpdateSerializer(CustomModelSerializer): class VisitCreateUpdateSerializer(CustomModelSerializer):
@ -20,7 +20,7 @@ class VisitCreateUpdateSerializer(CustomModelSerializer):
class VisitSerializer(CustomModelSerializer): class VisitSerializer(CustomModelSerializer):
receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True) receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True)
ticket_ = TicketSimpleSerializer(source='ticket', read_only=True) ticket_ = TicketSerializer(source='ticket', read_only=True)
class Meta: class Meta:
model = Visit model = Visit
@ -86,6 +86,7 @@ class VisitorRegisterSerializer(serializers.Serializer):
class VisitDetailSerializer(CustomModelSerializer): class VisitDetailSerializer(CustomModelSerializer):
receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True) receptionist_ = UserSimpleSerializer(source='receptionist', read_only=True)
visitors_ = serializers.SerializerMethodField() visitors_ = serializers.SerializerMethodField()
ticket_ = TicketSerializer(source='ticket', read_only=True)
class Meta: class Meta:
model = Visit model = Visit

View File

@ -22,6 +22,7 @@ class VisitViewSet(CustomModelViewSet):
serializer_class = VisitSerializer serializer_class = VisitSerializer
retrieve_serializer_class = VisitDetailSerializer retrieve_serializer_class = VisitDetailSerializer
filterset_fields = ['state'] filterset_fields = ['state']
select_related_fields = ['ticket', 'receptionist', 'ticket__workflow', 'ticket__state']
def get_queryset(self): def get_queryset(self):
user = self.request.user user = self.request.user