fix: 非工单节点下的流转不继续

This commit is contained in:
caoqianming 2023-04-12 14:20:48 +08:00
parent 14dc063f59
commit 2b054107c0
2 changed files with 6 additions and 3 deletions

View File

@ -309,6 +309,9 @@ class WfService(object):
source_state = ticket.state
source_ticket_data = ticket.ticket_data
if transition.source_state != source_state:
raise ParseError('非该工单节点状态下的流转')
# 提交时可能进行的操作
if transition.on_submit_func:
module, func = transition.on_submit_func.rsplit(".", 1)

View File

@ -37,6 +37,8 @@ def send_ticket_notice(ticket_id):
@shared_task(base=CustomTask)
def run_task(ticket_id: str, retry_num=1):
ticket = Ticket.objects.get(id=ticket_id)
transition_obj = Transition.objects.filter(
source_state=ticket.state, is_deleted=False).first()
script_result = True
script_result_msg = ''
script_str = ticket.participant
@ -61,15 +63,13 @@ def run_task(ticket_id: str, retry_num=1):
ticket.script_run_last_result = False
ticket.save()
# 记录日志
transition_obj = Transition.objects.filter(
source_state=ticket.state, is_deleted=False).first()
TicketFlow.objects.create(ticket=ticket, state=ticket.state,
participant_type=State.PARTICIPANT_TYPE_ROBOT,
participant_str='func:{}'.format(script_str),
transition=transition_obj,
suggestion=script_result_msg)
# 自动流转
if script_result:
if script_result and transition_obj:
from apps.wf.services import WfService
WfService.handle_ticket(ticket=ticket, transition=transition_obj,
new_ticket_data=ticket.ticket_data, by_task=True)