fix: cal_count_notok bug2

This commit is contained in:
caoqianming 2025-02-28 16:57:46 +08:00
parent 2311e1773f
commit 7c7dcee194
1 changed files with 6 additions and 3 deletions

View File

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