feat: mtask增加mtaskb接口
This commit is contained in:
parent
22052d1d82
commit
7afa494803
|
@ -55,6 +55,13 @@ class MlogSimpleSerializer(CustomModelSerializer):
|
|||
fields = ['id', 'shift_name', 'count_use',
|
||||
'count_ok', 'count_real', 'submit_time']
|
||||
|
||||
class MtaskbAddSerializer(CustomModelSerializer):
|
||||
handle_user_name = serializers.StringRelatedField(
|
||||
source='handle_user.name', read_only=True)
|
||||
class Meta:
|
||||
model = Mtaskb
|
||||
fields = ['id', 'handle_user', 'handle_user_name', 'count']
|
||||
|
||||
class MtaskbSerializer(CustomModelSerializer):
|
||||
handle_user_name = serializers.StringRelatedField(
|
||||
source='handle_user.name', read_only=True)
|
||||
|
|
|
@ -11,7 +11,8 @@ from .filters import MtaskFilter, UtaskFilter
|
|||
from .models import Mtask, Utask, Mtaskb
|
||||
from .serializers import (MtaskSerializer, SchedueSerializer, UtaskSerializer,
|
||||
MtaskDaySerializer, MtaskAddInfoSerializer,
|
||||
SchedueMtasksSerializer, MtaskbSerializer, MtaskbUpdateSerializer)
|
||||
SchedueMtasksSerializer, MtaskbSerializer,
|
||||
MtaskbUpdateSerializer, MtaskbAddSerializer)
|
||||
from .services import PmService
|
||||
from django.utils import timezone
|
||||
|
||||
|
@ -206,6 +207,21 @@ class MtaskViewSet(CustomModelViewSet):
|
|||
sr.save()
|
||||
return Response()
|
||||
|
||||
@action(methods=['post'], detail=True, perms_map={'post': 'mlogb.create'}, serializer_class=MtaskbAddSerializer)
|
||||
@transaction.atomic
|
||||
def add_mtaskb(self, request, *args, **kwargs):
|
||||
mtask = self.get_object()
|
||||
sr = MtaskAddInfoSerializer(data=request.data, many=True)
|
||||
sr.is_valid(raise_exception=True)
|
||||
vdata = sr.validated_data
|
||||
total = 0
|
||||
for v in vdata:
|
||||
total += v['count']
|
||||
if total != mtask.count:
|
||||
raise ParseError('任务数量与分配数量不匹配')
|
||||
for v in vdata:
|
||||
Mtaskb.objects.get_or_create(mtask=mtask, handle_user=vdata['handle_user'], count=vdata['count'])
|
||||
return Response()
|
||||
|
||||
class MtaskbViewSet(CustomModelViewSet):
|
||||
queryset = Mtaskb.objects.all()
|
||||
|
|
Loading…
Reference in New Issue