factory/apps/vm/services.py

51 lines
1.6 KiB
Python

from threading import Thread
from apps.hrm.models import Employee
from apps.hrm.services import HrmService
from apps.vm.models import Visit, Vpeople
from apps.wf.models import Ticket
def bind_visit(ticket, transition, new_ticket_data: dict):
visit = Visit.objects.get(id=new_ticket_data['visit'])
visit.ticket = ticket
visit.state = Visit.V_AUDIT
visit.save()
ticket.belong_dept = visit.receptionist.belong_dept
ticket.save()
def get_receptionist(state, ticket, new_ticket_data, handler):
visit = Visit.objects.filter(ticket=ticket).first()
if visit:
return [visit.receptionist.id]
def visit_audit_end(ticket):
visit = Visit.objects.get(ticket=ticket)
# 更新企业访客人员库
for i in Vpeople.objects.filter(visit=visit):
visitor = i.visitor
if visitor.id_number and visitor.photo:
ep = Employee.objects.filter(id_number=visitor.id_number).first()
else:
ep = Employee.objects.filter(name=visitor.name, id_number=None).first()
if ep:
pass
else:
ep = Employee()
ep.id_number = visitor.id_number
ep.name = visitor.name
ep.phone = visitor.phone
ep.photo = visitor.photo
ep.type = 'visitor'
ep.belong_dept = visit.receptionist.belong_dept
ep.save()
visitor.employee = ep
visitor.visit = visit # 更新当前所属访客项目
visitor.save()
# 同步至大华人员库并下发人脸
HrmService.sync_dahua_employee(ep, '', visit.visit_time, visit.leave_time)
visit.state = Visit.V_ENTER
visit.save()
# 发送通知?