From 5ad15c0a9e241a7a6f227d96f8362b70e045375a Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 11 Jul 2024 13:06:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20MlogbIn=20create=E6=97=B6=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=88=9B=E5=BB=BAout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/views.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 89249fb9..26749e1e 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -446,4 +446,22 @@ class MlogbViewSet(ListModelMixin, CustomGenericViewSet): class MlogbInViewSet(CreateModelMixin, DestroyModelMixin, CustomGenericViewSet): perms_map = {'post': 'mlog.update', 'delete': 'mlog.update'} queryset = Mlogb.objects.all() - serializer_class = MlogbInSerializer \ No newline at end of file + serializer_class = MlogbInSerializer + + @transaction.atomic + def perform_create(self, serializer): + ins: Mlogb = serializer.save() + # 创建输出 + if ins.mtask: + material_out = ins.mlog.material_out + route = ins.mlog.route + if material_out is None: + raise ParseError('产物不可为空') + m_dict = { + "mtask": ins.mtask, + "mlog": ins.mlog, + "material_out": ins.mlog.material_out + } + if route.batch_bind: # 批次绑定 + m_dict['batch'] = ins.batch + Mlogb.objects.get_or_create(**m_dict, defaults=m_dict)