From 7128252315d92a21d8349818caed8804be3f70ab Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 24 Dec 2025 15:42:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20base=20=E6=8F=90=E4=BA=A4=E6=97=B6?= =?UTF-8?q?=E5=8F=AF=E5=8F=98=E5=8A=A8=E5=B7=A5=E5=8D=95title?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wf/services.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/apps/wf/services.py b/apps/wf/services.py index 6094f0e1..7e802647 100755 --- a/apps/wf/services.py +++ b/apps/wf/services.py @@ -11,7 +11,7 @@ import random from apps.utils.queryset import get_parent_queryset from apps.wf.tasks import run_task from rest_framework.exceptions import ParseError - +import time class WfService(object): @staticmethod @@ -335,6 +335,15 @@ class WfService(object): act_state=Ticket.TICKET_ACT_STATE_DRAFT, belong_dept=handler.belong_dept, ticket_data=save_ticket_data, participant_type=1, participant=handler.id) # 先创建出来 + + sn = WfService.get_ticket_sn(ticket.workflow) # 流水号 + ticket.sn = sn + ticket.save() + if not transition: + return ticket + just_created = True # 刚创建的工单不需要校验权限 + + if transition and transition.source_state.type == State.STATE_TYPE_START: # 更新title和sn ticket_title = oinfo.get("title", "") title_template = ticket.workflow.title_template @@ -344,13 +353,8 @@ class WfService(object): ticket_title = title_template.format(**all_ticket_data) except KeyError as e: raise ParseError(f"工单标题模板中存在未定义的变量:{e}") - sn = WfService.get_ticket_sn(ticket.workflow) # 流水号 - ticket.sn = sn ticket.title = ticket_title - ticket.save() - if not transition: - return ticket - just_created = True # 刚创建的工单不需要校验权限 + ticket.save(update_fields=["title"]) source_state = ticket.state source_ticket_data = ticket.ticket_data @@ -502,7 +506,7 @@ class WfService(object): @classmethod def send_ticket_notice(cls, ticketflow:TicketFlow): # 根据ticketflow发送通知 - Thread(target=send_ticket_notice_t, args=(ticketflow,), daemon=True).start() + Thread(target=send_ticket_notice_t, args=(ticketflow.id,), daemon=True).start() @classmethod @@ -538,11 +542,12 @@ class WfService(object): participant=handler, transition=None) cls.task_ticket(ticket=ticket) -def send_ticket_notice_t(ticketflow: TicketFlow): +def send_ticket_notice_t(ticketflowId: str): """ 发送通知 """ - ticket = ticketflow.ticket + time.sleep(3) + ticket = TicketFlow.objects.get(id=ticketflowId).ticket params = {'workflow': ticket.workflow.name, 'state': ticket.state.name} if ticket.participant_type == 1: # 发送短信通知