From 7c7dcee19442f2df89f3148449a78d2a8a4f212c Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 28 Feb 2025 16:57:46 +0800 Subject: [PATCH] fix: cal_count_notok bug2 --- apps/wpm/models.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/wpm/models.py b/apps/wpm/models.py index 9db7b352..9ba8cb03 100644 --- a/apps/wpm/models.py +++ b/apps/wpm/models.py @@ -385,16 +385,19 @@ class Mlogbw(BaseModel): @classmethod def cal_count_notok(cls, mlogb: Mlog): + from apps.qm.models import Defect count = Mlogbw.objects.filter(mlogb=mlogb).count() if mlogb.material_in: mlogb.count_use = count elif mlogb.material_out: mlogb.count_real = count count_notok = 0 - tqs = Mlogbw.objects.filter(mlogb=mlogb, ftest__is_ok=False).values("ftest__defect_main").annotate(xcount=Count('id')) + tqs = Mlogbw.objects.filter(mlogb=mlogb, ftest__is_ok=False) + tqs_a = Mlogbw.objects.filter(mlogb=mlogb, ftest__is_ok=False).values("ftest__defect_main").annotate(xcount=Count('id')) + defects = {defect.id: defect for defect in Defect.objects.filter(id__in=tqs.values_list("ftest__defect_main", flat=True))} md_ids = [] - for t in tqs: - md, _ = MlogbDefect.objects.get_or_create(mlogb=mlogb, defect=t["ftest__defect_main"]) + for t in tqs_a: + md, _ = MlogbDefect.objects.get_or_create(mlogb=mlogb, defect=defects[t["ftest__defect_main"]]) md.count = t["xcount"] md.save() md_ids.append(md.id)