73 lines
2.3 KiB
Python
73 lines
2.3 KiB
Python
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, Rpjcertificate, 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)
|
|
# 更新入厂项目人员库
|
|
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 Rpjcertificate.objects.filter(rpj_member__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)
|
|
rpj.state = Rpj.RPJ_ENTER
|
|
rpj.save()
|
|
# 发送通知?
|