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()
 | |
|     # 发送通知?
 |