from threading import Thread from apps.hrm.models import Employee from apps.hrm.services import HrmService from apps.vm.models import Visit, Vpeople def bind_visit(ticket, transition, new_ticket_data: dict): visit = Visit.objects.get(id=new_ticket_data['visit']) visit.ticket = ticket if visit.state == Visit.V_CREATE: visit.state = Visit.V_AUDIT visit.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) if visit.state == Visit.V_AUDIT: 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 ep.save() visitor.employee = ep visitor.visit = visit # 更新当前所属访客项目 visitor.save() # 同步至大华人员库并下发人脸 Thread(target=HrmService.sync_dahua_employee, args=(ep, '', visit.visit_time, visit.leave_time)).start() # 发送通知?