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)