From c0cb51a5b5d8b617b405fa65dff0c90cb2617ad9 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 25 Sep 2024 13:24:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20utask=E7=94=9F=E4=BA=A7=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/pm/services.py | 13 +++++++++++++ apps/pm/views.py | 11 +++++++++++ 2 files changed, 24 insertions(+) diff --git a/apps/pm/services.py b/apps/pm/services.py index fabdfc30..124c7763 100644 --- a/apps/pm/services.py +++ b/apps/pm/services.py @@ -319,5 +319,18 @@ class PmService: mtask.submit_time = now mtask.submit_user = user mtask.save() + utask = mtask.utask + PmService.utask_submit(utask) else: raise ParseError('该任务状态不可提交') + + @classmethod + def utask_submit(cls, utask: Utask): + """ + 生产大任务提交 + """ + if utask.state == Utask.UTASK_WORKING and Mtask.objects.filter(utask=utask).exclude(state=Mtask.MTASK_SUBMIT).count() == 0: + utask.state = Utask.UTASK_SUBMIT + utask.save() + else: + raise ParseError('该任务状态不可提交') \ No newline at end of file diff --git a/apps/pm/views.py b/apps/pm/views.py index 391d7f90..956263a8 100644 --- a/apps/pm/views.py +++ b/apps/pm/views.py @@ -36,6 +36,17 @@ class UtaskViewSet(CustomModelViewSet): raise ParseError('该任务状态不可删除') return super().perform_destroy(instance) + @action(methods=['post'], detail=True, perms_map={'post': 'utask.submit'}, serializer_class=Serializer) + @transaction.atomic + def submit(self, request, *args, **kwargs): + """提交任务 + + 提交任务 + """ + obj = self.get_object() + PmService.utask_submit(obj) + return Response() + @action(methods=['post'], detail=True, perms_map={'post': 'utask.toggle'}, serializer_class=Serializer) @transaction.atomic def toggle(self, request, *args, **kwargs):