feat: base 优化wf通知发送
This commit is contained in:
parent
dbb0d6ae75
commit
899a314f5d
|
@ -442,11 +442,17 @@ class WfService(object):
|
||||||
last_log.intervene_type == Transition.TRANSITION_INTERVENE_TYPE_DELIVER or
|
last_log.intervene_type == Transition.TRANSITION_INTERVENE_TYPE_DELIVER or
|
||||||
ticket.in_add_node):
|
ticket.in_add_node):
|
||||||
# 如果状态变化或是转交加签的情况再发送通知
|
# 如果状态变化或是转交加签的情况再发送通知
|
||||||
Thread(target=send_ticket_notice_t, args=(ticket,), daemon=True).start()
|
cls.send_ticket_notice(ticketflow=last_log)
|
||||||
|
|
||||||
# 如果目标状态是脚本则异步执行
|
# 如果目标状态是脚本则异步执行
|
||||||
if state.participant_type == State.PARTICIPANT_TYPE_ROBOT:
|
if state.participant_type == State.PARTICIPANT_TYPE_ROBOT:
|
||||||
run_task.delay(ticket_id=ticket.id)
|
run_task.delay(ticket_id=ticket.id)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def send_ticket_notice(cls, ticketflow:TicketFlow):
|
||||||
|
# 根据ticketflow发送通知
|
||||||
|
Thread(target=send_ticket_notice_t, args=(ticketflow,), daemon=True).start()
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def close_by_task(cls, ticket: Ticket, suggestion: str):
|
def close_by_task(cls, ticket: Ticket, suggestion: str):
|
||||||
|
@ -479,10 +485,13 @@ class WfService(object):
|
||||||
suggestion=suggestion, participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
suggestion=suggestion, participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
||||||
intervene_type=Transition.TRANSITION_INTERVENE_TYPE_RETREAT,
|
intervene_type=Transition.TRANSITION_INTERVENE_TYPE_RETREAT,
|
||||||
participant=handler, transition=None)
|
participant=handler, transition=None)
|
||||||
def send_ticket_notice_t(ticket: Ticket):
|
cls.task_ticket(ticket=ticket)
|
||||||
|
|
||||||
|
def send_ticket_notice_t(ticketflow: TicketFlow):
|
||||||
"""
|
"""
|
||||||
发送通知
|
发送通知
|
||||||
"""
|
"""
|
||||||
|
ticket = ticketflow.ticket
|
||||||
params = {'workflow': ticket.workflow.name, 'state': ticket.state.name}
|
params = {'workflow': ticket.workflow.name, 'state': ticket.state.name}
|
||||||
if ticket.participant_type == 1:
|
if ticket.participant_type == 1:
|
||||||
# 发送短信通知
|
# 发送短信通知
|
||||||
|
|
|
@ -330,11 +330,12 @@ class TicketViewSet(CreateUpdateCustomMixin, CreateModelMixin, ListModelMixin, R
|
||||||
ticket.participant_type = State.PARTICIPANT_TYPE_PERSONAL
|
ticket.participant_type = State.PARTICIPANT_TYPE_PERSONAL
|
||||||
ticket.participant = vdata['target_user']
|
ticket.participant = vdata['target_user']
|
||||||
ticket.save()
|
ticket.save()
|
||||||
TicketFlow.objects.create(ticket=ticket, state=ticket.state,
|
tf = TicketFlow.objects.create(ticket=ticket, state=ticket.state,
|
||||||
ticket_data=WfService.get_ticket_all_field_value(ticket),
|
ticket_data=WfService.get_ticket_all_field_value(ticket),
|
||||||
suggestion=vdata.get('suggestion', ''), participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
suggestion=vdata.get('suggestion', ''), participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
||||||
intervene_type=Transition.TRANSITION_INTERVENE_TYPE_DELIVER,
|
intervene_type=Transition.TRANSITION_INTERVENE_TYPE_DELIVER,
|
||||||
participant=request.user, transition=None)
|
participant=request.user, transition=None)
|
||||||
|
WfService.send_ticket_notice(ticketflow=tf)
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
@action(methods=['get'], detail=True, perms_map={'get': '*'})
|
@action(methods=['get'], detail=True, perms_map={'get': '*'})
|
||||||
|
@ -382,11 +383,12 @@ class TicketViewSet(CreateUpdateCustomMixin, CreateModelMixin, ListModelMixin, R
|
||||||
ticket.save()
|
ticket.save()
|
||||||
# 接单日志
|
# 接单日志
|
||||||
# 更新工单流转记录
|
# 更新工单流转记录
|
||||||
TicketFlow.objects.create(ticket=ticket, state=ticket.state,
|
tf = TicketFlow.objects.create(ticket=ticket, state=ticket.state,
|
||||||
ticket_data=WfService.get_ticket_all_field_value(ticket),
|
ticket_data=WfService.get_ticket_all_field_value(ticket),
|
||||||
suggestion='', participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
suggestion='', participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
||||||
intervene_type=Transition.TRANSITION_ATTRIBUTE_TYPE_ACCEPT,
|
intervene_type=Transition.TRANSITION_ATTRIBUTE_TYPE_ACCEPT,
|
||||||
participant=request.user, transition=None)
|
participant=request.user, transition=None)
|
||||||
|
WfService.send_ticket_notice(ticketflow=tf)
|
||||||
return Response()
|
return Response()
|
||||||
else:
|
else:
|
||||||
raise ParseError('无需接单')
|
raise ParseError('无需接单')
|
||||||
|
@ -421,11 +423,12 @@ class TicketViewSet(CreateUpdateCustomMixin, CreateModelMixin, ListModelMixin, R
|
||||||
ticket.save()
|
ticket.save()
|
||||||
# 更新流转记录
|
# 更新流转记录
|
||||||
suggestion = request.data.get('suggestion', '') # 加签说明
|
suggestion = request.data.get('suggestion', '') # 加签说明
|
||||||
TicketFlow.objects.create(ticket=ticket, state=ticket.state,
|
tf = TicketFlow.objects.create(ticket=ticket, state=ticket.state,
|
||||||
ticket_data=WfService.get_ticket_all_field_value(ticket),
|
ticket_data=WfService.get_ticket_all_field_value(ticket),
|
||||||
suggestion=suggestion, participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
suggestion=suggestion, participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
||||||
intervene_type=Transition.TRANSITION_INTERVENE_TYPE_ADD_NODE,
|
intervene_type=Transition.TRANSITION_INTERVENE_TYPE_ADD_NODE,
|
||||||
participant=request.user, transition=None)
|
participant=request.user, transition=None)
|
||||||
|
WfService.send_ticket_notice(ticketflow=tf)
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
@action(methods=['post'], detail=True, perms_map={'post': '*'}, serializer_class=TicketAddNodeEndSerializer)
|
@action(methods=['post'], detail=True, perms_map={'post': '*'}, serializer_class=TicketAddNodeEndSerializer)
|
||||||
|
@ -445,11 +448,12 @@ class TicketViewSet(CreateUpdateCustomMixin, CreateModelMixin, ListModelMixin, R
|
||||||
ticket.save()
|
ticket.save()
|
||||||
# 更新流转记录
|
# 更新流转记录
|
||||||
suggestion = request.data.get('suggestion', '') # 加签意见
|
suggestion = request.data.get('suggestion', '') # 加签意见
|
||||||
TicketFlow.objects.create(ticket=ticket, state=ticket.state,
|
tf = TicketFlow.objects.create(ticket=ticket, state=ticket.state,
|
||||||
ticket_data=WfService.get_ticket_all_field_value(ticket),
|
ticket_data=WfService.get_ticket_all_field_value(ticket),
|
||||||
suggestion=suggestion, participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
suggestion=suggestion, participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
||||||
intervene_type=Transition.TRANSITION_INTERVENE_TYPE_ADD_NODE_END,
|
intervene_type=Transition.TRANSITION_INTERVENE_TYPE_ADD_NODE_END,
|
||||||
participant=request.user, transition=None)
|
participant=request.user, transition=None)
|
||||||
|
WfService.send_ticket_notice(ticketflow=tf)
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
@action(methods=['post'], detail=True, perms_map={'post': '*'},
|
@action(methods=['post'], detail=True, perms_map={'post': '*'},
|
||||||
|
|
Loading…
Reference in New Issue