工单待办聚合查询
This commit is contained in:
parent
1f21df79e5
commit
6ecc0f6e57
|
|
@ -104,11 +104,24 @@ class SubProductionPlanViewSet(CreateUpdateModelAMixin, ListModelMixin, UpdateMo
|
||||||
|
|
||||||
@action(methods=['get'], detail=True, perms_map={'get':'*'}, serializer_class=SubProductionProgressSerializer)
|
@action(methods=['get'], detail=True, perms_map={'get':'*'}, serializer_class=SubProductionProgressSerializer)
|
||||||
def progress(self, request, pk=None):
|
def progress(self, request, pk=None):
|
||||||
|
"""
|
||||||
|
生产进度详情
|
||||||
|
"""
|
||||||
obj = self.get_object()
|
obj = self.get_object()
|
||||||
serializer = SubProductionProgressSerializer(instance=obj.progress_subplan, many=True)
|
serializer = SubProductionProgressSerializer(instance=obj.progress_subplan, many=True)
|
||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
|
|
||||||
|
@action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=serializers.Serializer)
|
||||||
|
def issue(self, request, pk=None):
|
||||||
|
"""
|
||||||
|
下达任务
|
||||||
|
"""
|
||||||
|
obj = self.get_object()
|
||||||
|
if obj.state == 0:
|
||||||
|
obj.state = 1
|
||||||
|
obj.save()
|
||||||
|
return Response()
|
||||||
|
raise APIException('计划状态有误')
|
||||||
class ResourceViewSet(GenericViewSet):
|
class ResourceViewSet(GenericViewSet):
|
||||||
|
|
||||||
perms_map = {'*': '*'}
|
perms_map = {'*': '*'}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
from django.db.models import query
|
||||||
from apps.system.models import User
|
from apps.system.models import User
|
||||||
from apps.wf.filters import TicketFilterSet
|
from apps.wf.filters import TicketFilterSet
|
||||||
from django.core.exceptions import AppRegistryNotReady
|
from django.core.exceptions import AppRegistryNotReady
|
||||||
|
|
@ -13,7 +14,7 @@ from apps.system.mixins import CreateUpdateCustomMixin, CreateUpdateModelAMixin,
|
||||||
from apps.wf.services import WfService
|
from apps.wf.services import WfService
|
||||||
from rest_framework.exceptions import APIException, PermissionDenied
|
from rest_framework.exceptions import APIException, PermissionDenied
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
|
from django.db.models import Count
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
class WorkflowViewSet(CreateUpdateModelAMixin, ModelViewSet):
|
class WorkflowViewSet(CreateUpdateModelAMixin, ModelViewSet):
|
||||||
perms_map = {'get': '*', 'post': 'workflow_create',
|
perms_map = {'get': '*', 'post': 'workflow_create',
|
||||||
|
|
@ -165,6 +166,17 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin
|
||||||
participant=ticket.create_by, transition=transition)
|
participant=ticket.create_by, transition=transition)
|
||||||
return Response(TicketSerializer(instance=ticket).data)
|
return Response(TicketSerializer(instance=ticket).data)
|
||||||
|
|
||||||
|
@action(methods=['get'], detail=False, perms_map={'get':'*'})
|
||||||
|
def duty_agg(self, request, pk=None):
|
||||||
|
"""
|
||||||
|
工单待办聚合
|
||||||
|
"""
|
||||||
|
ret = {}
|
||||||
|
queryset = Ticket.objects.filter(participant__contains=request.user.id, is_deleted=False)\
|
||||||
|
.exclude(act_state__in=[Ticket.TICKET_ACT_STATE_FINISH, Ticket.TICKET_ACT_STATE_CLOSED])
|
||||||
|
ret['total_count'] = queryset.count()
|
||||||
|
ret['details'] = list(queryset.annotate(count = Count('workflow')).values('workflow', 'workflow__name', 'count'))
|
||||||
|
return Response(ret)
|
||||||
|
|
||||||
@action(methods=['post'], detail=True, perms_map={'post':'*'})
|
@action(methods=['post'], detail=True, perms_map={'post':'*'})
|
||||||
def handle(self, request, pk=None):
|
def handle(self, request, pk=None):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue