49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
# Create your tasks here
|
|
from __future__ import absolute_import, unicode_literals
|
|
from apps.hrm.models import Employee
|
|
from apps.utils.task import CustomTask
|
|
from apps.vm.models import Visit, Vpeople
|
|
from apps.wf.models import Ticket
|
|
from celery import shared_task
|
|
from apps.hrm.services import HrmService
|
|
from apps.wf.services import WfService
|
|
|
|
|
|
@shared_task(base=CustomTask)
|
|
def visit_exec(ticket_id, script_str):
|
|
ticket = Ticket.objects.get(id=ticket_id)
|
|
ticket.script_run_last_result = False
|
|
ticket.save()
|
|
visit = Visit.objects.get(ticket=ticket)
|
|
visit.state = Visit.V_ENTER
|
|
visit.save()
|
|
# 更新企业访客人员库
|
|
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)
|
|
# 发送通知?
|
|
# 务必调用自动流转
|
|
ticket.script_run_last_result = True
|
|
ticket.save()
|
|
if ticket.script_run_last_result:
|
|
WfService.auto_next(ticket, script_str)
|