diff --git a/apps/pm/serializers.py b/apps/pm/serializers.py index 1dd8cf8b..f302ead5 100644 --- a/apps/pm/serializers.py +++ b/apps/pm/serializers.py @@ -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'] \ No newline at end of file diff --git a/apps/pm/views.py b/apps/pm/views.py index 0725254f..b44de792 100644 --- a/apps/pm/views.py +++ b/apps/pm/views.py @@ -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() \ No newline at end of file