diff --git a/apps/wpm/views.py b/apps/wpm/views.py index b7161fe5..aefc6f0e 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -478,16 +478,22 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust ins: Mlogb = instance if ins.mlog.submit_time is not None: raise ParseError('生产日志已提交不可编辑') + qs = Mlogb.objects.none() + if ins.mlogb_to: + qs = qs|Mlogb.objects.filter(id=ins.mlogb_to.id) if ins.mtask: query_dict = {"material_out__isnull": False, "mlog": ins.mlog, "mtask": ins.mtask} route = ins.mtask.route if route.batch_bind: query_dict["batch__contains"] = ins.batch - qs = Mlogb.objects.filter(**query_dict) + qs = Mlogb.objects.filter(**query_dict) | qs # 需要删除子集ftest记录 - ftestIds = Mlogbw.objects.filter(mlogb__in=qs).values_list("ftest__id", flat=True) - Mlogb.objects.filter(**query_dict).delete() + mlogbw_qs = Mlogbw.objects.filter(mlogb__in=qs) + # 需用list 不然qs.delete 这个qs会变空 + ftestIds = list(mlogbw_qs.values_list("ftest__id", flat=True)) + qs.delete() Ftest.objects.filter(id__in=ftestIds).delete() + instance.delete() @transaction.atomic