from threading import Thread from apps.hrm.models import Certificate, Employee from apps.hrm.services import HrmService from apps.wf.models import Ticket, Transition from apps.rpm.models import Rcertificate, Rfile, Rpj, Rpjfile, Rpjmember def bind_rpj(ticket: Ticket, transition: Transition, new_ticket_data: dict): rpj = Rpj.objects.get(id=new_ticket_data['rpj']) # ticket_data = ticket.ticket_data # ticket_data.update({'level': opl.level}) # ticket.ticket_data = ticket_data # ticket.save() rpj.ticket = ticket rpj.state = Rpj.RPJ_AUDIT rpj.save() ticket.belong_dept = rpj.belong_dept ticket.save() def rpj_audit_end(ticket): rpj = Rpj.objects.get(ticket=ticket) rpj.state = Rpj.RPJ_ENTER rpj.save() # 更新入厂项目人员库 for i in Rpjmember.objects.filter(rpj=rpj): rep = i.remployee ep = Employee.objects.filter(id_number=rep.id_number).first() if ep: pass else: ep = Employee() ep.id_number = rep.id_number ep.name = rep.name ep.phone = rep.phone ep.photo = rep.photo ep.type = 'remployee' ep.belong_dept = rpj.rparty.dept ep.save() rep.employee = ep rep.rpj = rpj # 更新当前入厂项目 rep.save() # 同步至大华人员库并下发人脸 HrmService.sync_dahua_employee(ep, '', rpj.come_time, rpj.leave_time) # 更新入厂项目人员证书库 for i in Rcertificate.objects.filter(rpj=rpj): ct = Certificate.objects.filter(number=i.number).first() if ct: pass else: ct = Certificate() ct.name = i.name ct.number = i.number ct.type = i.type ct.issue_date = i.issue_date ct.expiration_date = i.expiration_date ct.review_date = i.review_date ct.file = i.file ct.employee = i.rpj_member.remployee.employee ct.save() # 更新相关方资料库 for i in Rpjfile.objects.filter(rpj=rpj): rf = Rfile.objects.filter(file_cate=i.file_cate, rparty=i.rparty).first() if rf: pass else: rf = Rfile() rf.rparty = i.rparty rf.file_cate = i.file_cate for m in i.files.all(): rf.files.add(m) # 发送通知?