加签操作

This commit is contained in:
caoqianming 2021-10-13 15:41:01 +08:00
parent ecd4192109
commit 961754d8ca
3 changed files with 20 additions and 8 deletions

View File

@ -23,6 +23,7 @@ class EquipmentSerializer(ModelSerializer):
def get_step_(self, obj): def get_step_(self, obj):
return Step.objects.filter(equipments=obj).values('id', 'name', 'number') return Step.objects.filter(equipments=obj).values('id', 'name', 'number')
class EquipmentSimpleSerializer(ModelSerializer): class EquipmentSimpleSerializer(ModelSerializer):
class Meta: class Meta:
model = Equipment model = Equipment

View File

@ -132,4 +132,8 @@ class TicketRetreatSerializer(serializers.Serializer):
suggestion = serializers.CharField(label="撤回原因", required = False) suggestion = serializers.CharField(label="撤回原因", required = False)
class TicketCloseSerializer(serializers.Serializer): class TicketCloseSerializer(serializers.Serializer):
suggestion = serializers.CharField(label="关闭原因", required = False) suggestion = serializers.CharField(label="关闭原因", required = False)
class TicketAddNodeSerializer(serializers.Serializer):
suggestion = serializers.CharField(label="加签说明", required = False)
user = serializers.IntegerField(label='加签人')

View File

@ -4,7 +4,7 @@ from django.core.exceptions import AppRegistryNotReady
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework import serializers from rest_framework import serializers
from rest_framework.mixins import CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin, UpdateModelMixin from rest_framework.mixins import CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin, UpdateModelMixin
from apps.wf.serializers import CustomFieldSerializer, StateSerializer, TicketCloseSerializer, TicketCreateSerializer, TicketFlowSerializer, TicketFlowSimpleSerializer, TicketHandleSerializer, TicketRetreatSerializer, TicketSerializer, TransitionSerializer, WorkflowSerializer, TicketListSerializer, TicketDetailSerializer from apps.wf.serializers import CustomFieldSerializer, StateSerializer, TicketAddNodeSerializer, TicketCloseSerializer, TicketCreateSerializer, TicketFlowSerializer, TicketFlowSimpleSerializer, TicketHandleSerializer, TicketRetreatSerializer, TicketSerializer, TransitionSerializer, WorkflowSerializer, TicketListSerializer, TicketDetailSerializer
from django.shortcuts import get_object_or_404, render from django.shortcuts import get_object_or_404, render
from rest_framework.viewsets import GenericViewSet, ModelViewSet from rest_framework.viewsets import GenericViewSet, ModelViewSet
from rest_framework.decorators import action, api_view from rest_framework.decorators import action, api_view
@ -314,18 +314,25 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin
participant=request.user, transition=None) participant=request.user, transition=None)
return Response() return Response()
@action(methods=['post'], detail=True, perms_map={'post':'*'}) @action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=TicketAddNodeSerializer)
def add_node(self, request, pk=None): def add_node(self, request, pk=None):
""" """
加签 加签
""" """
ticket = self.get_object() ticket = self.get_object()
data = request.data data = request.data
# add_user = User.objects.get(pk=data[]) add_user = User.objects.get(pk=data['user'])
# ticket.participant_type = State.PARTICIPANT_TYPE_PERSONAL ticket.participant_type = State.PARTICIPANT_TYPE_PERSONAL
# ticket.participant = None ticket.participant = add_user.id
# ticket.act_state = Ticket.TICKET_ACT_STATE_CLOSED ticket.in_add_node = True
# ticket.save() ticket.add_node_man = add_user
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=suggestion, participant_type=State.PARTICIPANT_TYPE_PERSONAL, intervene_type=Transition.TRANSITION_INTERVENE_TYPE_ADD_NODE,
participant=request.user, transition=None)
return Response()
@action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=TicketCloseSerializer) @action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=TicketCloseSerializer)