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 apps.hrm.models import Employee
from apps.hrm.models import Certificate, Employee
from apps.hrm.services import HrmService
from apps.wf.models import Ticket, Transition
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):
rpj = Rpj.objects.get(ticket=ticket)
if rpj.state == Rpj.RPJ_AUDIT:
if ticket.act_state == Ticket.TICKET_ACT_STATE_FINISH:
rpj = Rpj.objects.get(ticket=ticket)
rpj.state = Rpj.RPJ_ENTER
rpj.save()
# 更新入厂项目人员库
for i in Rpjmember.objects.filter(rpj=rpj):
rep = i.remployee
ep = Employee.objects.filter(id_number=rep.id_number).first()
if ep:
pass
else:
ep = Employee()
ep.id_number = rep.id_number
ep.name = rep.name
ep.phone = rep.phone
ep.photo = rep.photo
ep.type = 'remployee'
ep.save()
rep.employee = ep
rep.save()
# 更新入厂项目人员库
for i in Rpjmember.objects.filter(rpj=rpj):
rep = i.remployee
ep = Employee.objects.filter(id_number=rep.id_number).first()
if ep:
pass
else:
ep = Employee()
ep.id_number = rep.id_number
ep.name = rep.name
ep.phone = rep.phone
ep.photo = rep.photo
ep.type = 'remployee'
ep.save()
rep.employee = ep
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):
pass
# 同步至大华人员库并下发人脸
Thread(target=HrmService.sync_dahua_employee, args=(ep, '', rpj.come_time, rpj.leave_time)).start()
Certificate.objects.get_or_create(
)
# 发送通知?

View File

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

View File

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