From e2b1f266aa02b39cad6dc6e23f35b97312f4f611 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 24 Apr 2026 15:43:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20mlogdefect=20=E7=A9=BA=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=97=B6=E4=BB=8D=E5=90=8C=E6=AD=A5=E7=BB=A7=E6=89=BF=E7=BC=BA?= =?UTF-8?q?=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 前端传 mlogdefect: [] 时,原 is not None 判断会走进 need_mdfect 分支, 既不创建真实缺陷也跳过 sync_inherited_defect,导致 mlogb 无任何缺陷标识。 改为无论哪个分支都兜底调用 sync_inherited_defect,由其内部判断互斥。 --- apps/wpm/serializers.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 56ef3ef3..226046ed 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -478,8 +478,7 @@ class MlogSerializer(CustomModelSerializer): if mlogb_defect_objects: MlogbDefect.objects.bulk_create(mlogb_defect_objects) mlogb.cal_count_notok(cal_mlog=False) - else: - mlogb.sync_inherited_defect(cal_count=True) + mlogb.sync_inherited_defect(cal_count=True) instance.cal_mlog_count_from_mlogb() return instance @@ -570,7 +569,7 @@ class MlogSerializer(CustomModelSerializer): mox.save() Mlogb.objects.filter(mlog=instance, material_out__isnull=False).exclude(id=mox.id).delete() if need_mdefect: - MlogbDefect.objects.filter(mlogb__mlog=instance).delete() + MlogbDefect.objects.filter(mlogb__mlog=instance, is_inherited=False).delete() mlogb_defect_objects = [ MlogbDefect(**{**item, "mlogb": mox, "id": idWorker.get_id()}) for item in mlogdefect if item["count"] > 0 @@ -578,8 +577,7 @@ class MlogSerializer(CustomModelSerializer): if mlogb_defect_objects: MlogbDefect.objects.bulk_create(mlogb_defect_objects) mox.cal_count_notok(cal_mlog=False) - else: - mox.sync_inherited_defect(cal_count=True) + mox.sync_inherited_defect(cal_count=True) instance.cal_mlog_count_from_mlogb() return instance