feat: 添加与任务相关的日志信息peifen_kg

This commit is contained in:
caoqianming 2023-12-17 19:55:01 +08:00
parent 1b5c910cf8
commit e954b37404
2 changed files with 24 additions and 9 deletions

View File

@ -33,14 +33,10 @@ class UtaskSerializer(CustomModelSerializer):
return attrs
def update(self, instance, validated_data):
if instance.state in [Mtask.MTASK_STOP, Mtask.MTASK_SUBMIT]:
raise ValidationError('任务该状态下不可编辑')
if instance.state == Mtask.MTASK_CREATED:
new_data = {key: validated_data[key] for key in [
'number', 'count', 'start_date', 'end_date']}
else:
new_data = {key: validated_data[key] for key in [
'peifen_kg']}
if instance.state != Utask.UTASK_CREATED:
raise ValidationError('任务非创建中不可编辑')
new_data = {key: validated_data[key] for key in [
'number', 'count', 'start_date', 'end_date']}
return super().update(instance, new_data)
@ -87,3 +83,9 @@ class SchedueSerializer(serializers.Serializer):
class MtaskDaySerializer(serializers.Serializer):
belong_dept_name = serializers.CharField(label='车间名称')
date = serializers.DateField(label='日期')
class MtaskAddInfoSerializer(CustomModelSerializer):
class Meta:
model = Mtask
fields = ['peifen_kg']

View File

@ -9,7 +9,7 @@ from apps.utils.viewsets import CustomModelViewSet
from .filters import MtaskFilter, UtaskFilter
from .models import Mtask, Utask
from .serializers import MtaskSerializer, SchedueSerializer, UtaskSerializer, MtaskDaySerializer
from .serializers import MtaskSerializer, SchedueSerializer, UtaskSerializer, MtaskDaySerializer, MtaskAddInfoSerializer
from .services import PmService
from django.utils import timezone
@ -182,3 +182,16 @@ class MtaskViewSet(CustomModelViewSet):
for mtask in mtasks:
PmService.mtask_submit(mtask, self.request.user)
return Response()
@action(methods=['post'], detail=True, perms_map={'post': 'mlog.create'}, serializer_class=MtaskAddInfoSerializer)
@transaction.atomic
def add_info(self, request, *args, **kwargs):
"""添加与任务相关的日志信息
添加与任务相关的日志信息
"""
obj = self.get_object()
sr = MtaskAddInfoSerializer(instance=obj, data=request.data)
sr.is_valid(raise_exception=True)
sr.save()
return Response()