51 lines
1.6 KiB
Python
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()
|
|
# 发送通知?
|