fix: mlogbin delete bug

This commit is contained in:
caoqianming 2025-01-09 14:14:32 +08:00
parent 348464598e
commit 5b0063e42d
1 changed files with 9 additions and 3 deletions

View File

@ -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