增加工单列表接口状态允许撤回字段

This commit is contained in:
caoqianming 2021-10-12 15:59:10 +08:00
parent bbf5b2cbc9
commit 98a07bb27a
2 changed files with 16 additions and 2 deletions

View File

@ -23,7 +23,7 @@ class WorkflowSimpleSerializer(serializers.ModelSerializer):
class StateSimpleSerializer(serializers.ModelSerializer):
class Meta:
model = State
fields = ['id', 'name', 'type', 'distribute_type']
fields = ['id', 'name', 'type', 'distribute_type', 'enable_retreat']
class TransitionSerializer(serializers.ModelSerializer):
source_state_ = StateSimpleSerializer(source='source_state', read_only=True)

View File

@ -292,7 +292,21 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin
"""
撤回工单允许创建人在指定状态撤回工单至初始状态状态设置中开启允许撤回
"""
pass
ticket = self.get_object()
if ticket.create_by != request.user:
raise APIException('非创建人不可撤单')
if not ticket.state.enable_retreat:
raise APIException('该状态不可撤单')
start_state = WfService.get_workflow_start_state(ticket.workflow)
ticket.state = start_state
ticket.participant_type = State.PARTICIPANT_TYPE_PERSONAL
ticket.participant = request.user
ticket.act_state = Ticket.TICKET_ACT_STATE_RETREAT
ticket.save()
# 更新流转记录
TicketFlow.objects.create(ticket=ticket, state=ticket.state, ticket_data=WfService.get_ticket_all_field_value(ticket),
suggestion='撤单', participant_type=State.PARTICIPANT_TYPE_PERSONAL,
participant=request.user, transition=None)
class TicketFlowViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
"""