diff --git a/apps/opm/services.py b/apps/opm/services.py index b588ab5b..a7643209 100644 --- a/apps/opm/services.py +++ b/apps/opm/services.py @@ -10,6 +10,7 @@ from django_celery_results.models import TaskResult from threading import Thread import uuid from django.core.cache import cache +from rest_framework.exceptions import ParseError def get_op_charger(state, ticket, new_ticket_data, handler): @@ -54,14 +55,16 @@ def bind_opl(ticket: Ticket, transition: Transition, new_ticket_data: dict): }) ticket.ticket_data = ticket_data ticket.create_by = opl.create_by + ticket.belong_dept = opl.belong_dept ticket.save() - opl.ticket = ticket - opl.number = ticket.sn - opl.save() - op = opl.operation - if op.state == Operation.OP_CREATE: - op.state = Operation.OP_AUDIT - op.save() + if opl.ticket is None: + opl.ticket = ticket + opl.number = ticket.sn + opl.save() + op = opl.operation + if op.state == Operation.OP_CREATE: + op.state = Operation.OP_AUDIT + op.save() def t_submit_close_mtask(ticket: Ticket, transition: Transition, new_ticket_data: dict): diff --git a/apps/rpm/services.py b/apps/rpm/services.py index a086a474..0716b8ea 100644 --- a/apps/rpm/services.py +++ b/apps/rpm/services.py @@ -38,12 +38,14 @@ def bind_rpj(ticket: Ticket, transition: Transition, new_ticket_data: dict): ticket_data = ticket.ticket_data ticket_data.update({'belong_dept': rpj.belong_dept.id if rpj.belong_dept else '0'}) ticket.ticket_data = ticket_data - rpj.ticket = ticket - rpj.state = Rpj.RPJ_AUDIT - rpj.save() ticket.belong_dept = rpj.belong_dept ticket.create_by = rpj.create_by ticket.save() + if rpj.ticket is None: + rpj.ticket = ticket + rpj.state = Rpj.RPJ_AUDIT + rpj.save() + def rpj_member_leave(i: Rpjmember): """人员离开项目 diff --git a/apps/vm/services.py b/apps/vm/services.py index a96f47f7..64b77661 100644 --- a/apps/vm/services.py +++ b/apps/vm/services.py @@ -19,9 +19,6 @@ def bind_visit(ticket, transition, new_ticket_data: dict): visit = Visit.objects.get(id=new_ticket_data['visit']) if visit.level == 10 and (not Vpeople.objects.filter(visit=visit).exists()): raise ParseError('请至少选择一位访客') - visit.ticket = ticket - visit.state = Visit.V_AUDIT - visit.save() ticket_data = ticket.ticket_data ticket_data.update({ 'purpose': visit.purpose, @@ -31,6 +28,10 @@ def bind_visit(ticket, transition, new_ticket_data: dict): ticket.belong_dept = visit.belong_dept ticket.create_by = visit.create_by ticket.save() + if visit.ticket is None: + visit.ticket = ticket + visit.state = Visit.V_AUDIT + visit.save() def get_receptionist(state, ticket, new_ticket_data, handler):