强制修改工单状态
This commit is contained in:
parent
6d63e338a3
commit
7fdb9fb74f
|
@ -261,6 +261,10 @@ class TicketDestorySerializer(serializers.Serializer):
|
|||
ids = serializers.ListField(child=serializers.PrimaryKeyRelatedField(queryset=Ticket.objects.all()), label='工单ID列表')
|
||||
|
||||
|
||||
class TicketStateUpateSerializer(serializers.Serializer):
|
||||
state = serializers.PrimaryKeyRelatedField(queryset=State.objects.all(), label='状态ID值')
|
||||
class TicketStateUpateSerializer(serializers.ModelSerializer):
|
||||
suggestion = serializers.CharField(label="变更理由", required=False)
|
||||
need_log = serializers.BooleanField(label="是否记录日志", default=True)
|
||||
|
||||
class Meta:
|
||||
model = Ticket
|
||||
fields = ['state', 'suggestion', 'need_log']
|
||||
|
|
|
@ -394,7 +394,7 @@ class WfService(object):
|
|||
return ticket
|
||||
|
||||
@classmethod
|
||||
def update_ticket_state(cls, ticket: Ticket, new_state: State, suggestion: str, handler: User):
|
||||
def update_ticket_state(cls, ticket: Ticket, new_state: State, suggestion: str, handler: User, need_log:bool):
|
||||
participant_info = cls.get_ticket_state_participant_info(
|
||||
new_state, ticket, {})
|
||||
source_state = ticket.state
|
||||
|
@ -403,11 +403,12 @@ class WfService(object):
|
|||
ticket.participant = participant_info.get('destination_participant', 0)
|
||||
ticket.multi_all_person = {}
|
||||
ticket.save()
|
||||
TicketFlow.objects.create(ticket=ticket, state=source_state,
|
||||
ticket_data=WfService.get_ticket_all_field_value(ticket),
|
||||
suggestion=suggestion, participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
||||
intervene_type=Transition.TRANSITION_INTERVENE_TYPE_ALTER_STATE,
|
||||
participant=handler)
|
||||
if need_log:
|
||||
TicketFlow.objects.create(ticket=ticket, state=source_state,
|
||||
ticket_data=WfService.get_ticket_all_field_value(ticket),
|
||||
suggestion=suggestion, participant_type=State.PARTICIPANT_TYPE_PERSONAL,
|
||||
intervene_type=Transition.TRANSITION_INTERVENE_TYPE_ALTER_STATE,
|
||||
participant=handler)
|
||||
cls.task_ticket(ticket=ticket)
|
||||
|
||||
@classmethod
|
||||
|
|
|
@ -508,15 +508,16 @@ class TicketViewSet(CreateUpdateCustomMixin, CreateModelMixin, ListModelMixin, R
|
|||
@action(methods=['put'], detail=True, perms_map={'put': 'ticket.state_update'},
|
||||
serializer_class=TicketStateUpateSerializer)
|
||||
def state(self, request, pk=None):
|
||||
"""修改工单状态
|
||||
"""强制修改工单状态
|
||||
|
||||
修改工单状态
|
||||
强制修改工单状态
|
||||
"""
|
||||
sr = TicketStateUpateSerializer(data=request.data)
|
||||
sr.is_valid(raise_exception=True)
|
||||
vdata = sr.validated_data
|
||||
ticket = self.get_object()
|
||||
pass
|
||||
WfService.update_ticket_state(ticket, vdata['state'], vdata.get('suggestion', ''), request.user, vdata['need_log'])
|
||||
return Response()
|
||||
|
||||
|
||||
class TicketFlowViewSet(ListModelMixin, RetrieveModelMixin, CustomGenericViewSet):
|
||||
|
|
Loading…
Reference in New Issue