From 84a78f0470e9b83648fbf332851f51f69f531096 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 13 Oct 2021 08:49:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=92=A4=E5=9B=9E=E5=8E=9F=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/wf/serializers.py | 5 ++++- hb_server/apps/wf/views.py | 19 +++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/hb_server/apps/wf/serializers.py b/hb_server/apps/wf/serializers.py index 9843157..9075341 100644 --- a/hb_server/apps/wf/serializers.py +++ b/hb_server/apps/wf/serializers.py @@ -126,4 +126,7 @@ class TicketFlowSimpleSerializer(serializers.ModelSerializer): class TicketHandleSerializer(serializers.Serializer): transition = serializers.IntegerField(label="流转id") ticket_data = serializers.JSONField(label="表单数据json") - suggestion = serializers.CharField(label="处理意见", required = False) \ No newline at end of file + suggestion = serializers.CharField(label="处理意见", required = False) + +class TicketRetreatSerializer(serializers.Serializer): + suggestion = serializers.CharField(label="撤回原因", required = False) \ No newline at end of file diff --git a/hb_server/apps/wf/views.py b/hb_server/apps/wf/views.py index 22eb977..a1aab22 100644 --- a/hb_server/apps/wf/views.py +++ b/hb_server/apps/wf/views.py @@ -3,7 +3,7 @@ from django.core.exceptions import AppRegistryNotReady from rest_framework.response import Response from rest_framework import serializers from rest_framework.mixins import CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin, UpdateModelMixin -from apps.wf.serializers import CustomFieldSerializer, StateSerializer, TicketCreateSerializer, TicketFlowSerializer, TicketFlowSimpleSerializer, TicketHandleSerializer, TicketSerializer, TransitionSerializer, WorkflowSerializer, TicketListSerializer, TicketDetailSerializer +from apps.wf.serializers import CustomFieldSerializer, StateSerializer, TicketCreateSerializer, TicketFlowSerializer, TicketFlowSimpleSerializer, TicketHandleSerializer, TicketRetreatSerializer, TicketSerializer, TransitionSerializer, WorkflowSerializer, TicketListSerializer, TicketDetailSerializer from django.shortcuts import get_object_or_404, render from rest_framework.viewsets import GenericViewSet, ModelViewSet from rest_framework.decorators import action, api_view @@ -102,6 +102,8 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin return TicketCreateSerializer elif self.action == 'handle': return TicketHandleSerializer + elif self.action == 'retreat': + return TicketRetreatSerializer elif self.action == 'list': return TicketListSerializer elif self.action == 'retrieve': @@ -304,10 +306,23 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin ticket.act_state = Ticket.TICKET_ACT_STATE_RETREAT ticket.save() # 更新流转记录 + suggestion = request.data.get('suggestion', '') # 撤回原因 TicketFlow.objects.create(ticket=ticket, state=ticket.state, ticket_data=WfService.get_ticket_all_field_value(ticket), - suggestion='', participant_type=State.PARTICIPANT_TYPE_PERSONAL, intervene_type=Transition.TRANSITION_INTERVENE_TYPE_RETREAT, + suggestion=suggestion, participant_type=State.PARTICIPANT_TYPE_PERSONAL, intervene_type=Transition.TRANSITION_INTERVENE_TYPE_RETREAT, participant=request.user, transition=None) return Response() + + @action(methods=['post'], detail=True, perms_map={'post':'*'}) + def add_node(self, request, pk=None): + """ + 加签 + """ + + def close(self, request, pk=None): + """ + 关闭工单(超级管理员或者创建人在初始状态) + """ + class TicketFlowViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet): """