From 876c7734f19c8d5697b97fd910adf5b876cb91fa Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 30 Mar 2023 12:22:13 +0800 Subject: [PATCH] =?UTF-8?q?refector:=20=E5=B7=A5=E5=8D=95=20bind=5Fx=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/opm/services.py | 17 ++++++++++------- apps/rpm/services.py | 8 +++++--- apps/vm/services.py | 7 ++++--- 3 files changed, 19 insertions(+), 13 deletions(-) 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):