feat: mtask增加mtaskb接口

This commit is contained in:
caoqianming 2024-09-04 16:38:21 +08:00
parent 22052d1d82
commit 7afa494803
2 changed files with 24 additions and 1 deletions

View File

@ -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)

View File

@ -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()