fix: mlogbin delete bug
This commit is contained in:
parent
348464598e
commit
5b0063e42d
|
@ -478,16 +478,22 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust
|
||||||
ins: Mlogb = instance
|
ins: Mlogb = instance
|
||||||
if ins.mlog.submit_time is not None:
|
if ins.mlog.submit_time is not None:
|
||||||
raise ParseError('生产日志已提交不可编辑')
|
raise ParseError('生产日志已提交不可编辑')
|
||||||
|
qs = Mlogb.objects.none()
|
||||||
|
if ins.mlogb_to:
|
||||||
|
qs = qs|Mlogb.objects.filter(id=ins.mlogb_to.id)
|
||||||
if ins.mtask:
|
if ins.mtask:
|
||||||
query_dict = {"material_out__isnull": False, "mlog": ins.mlog, "mtask": ins.mtask}
|
query_dict = {"material_out__isnull": False, "mlog": ins.mlog, "mtask": ins.mtask}
|
||||||
route = ins.mtask.route
|
route = ins.mtask.route
|
||||||
if route.batch_bind:
|
if route.batch_bind:
|
||||||
query_dict["batch__contains"] = ins.batch
|
query_dict["batch__contains"] = ins.batch
|
||||||
qs = Mlogb.objects.filter(**query_dict)
|
qs = Mlogb.objects.filter(**query_dict) | qs
|
||||||
# 需要删除子集ftest记录
|
# 需要删除子集ftest记录
|
||||||
ftestIds = Mlogbw.objects.filter(mlogb__in=qs).values_list("ftest__id", flat=True)
|
mlogbw_qs = Mlogbw.objects.filter(mlogb__in=qs)
|
||||||
Mlogb.objects.filter(**query_dict).delete()
|
# 需用list 不然qs.delete 这个qs会变空
|
||||||
|
ftestIds = list(mlogbw_qs.values_list("ftest__id", flat=True))
|
||||||
|
qs.delete()
|
||||||
Ftest.objects.filter(id__in=ftestIds).delete()
|
Ftest.objects.filter(id__in=ftestIds).delete()
|
||||||
|
|
||||||
instance.delete()
|
instance.delete()
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
|
|
Loading…
Reference in New Issue