fix: cal_count_notok bug

This commit is contained in:
caoqianming 2025-02-28 16:49:08 +08:00
parent 278e55c08a
commit 2311e1773f
2 changed files with 5 additions and 4 deletions

View File

@ -10,6 +10,7 @@ from apps.pum.models import Supplier
from django.db.models import Sum, Subquery
from django.utils.translation import gettext_lazy as _
from rest_framework.exceptions import ParseError
from django.db.models import Count
# Create your models here.
@ -390,10 +391,10 @@ class Mlogbw(BaseModel):
elif mlogb.material_out:
mlogb.count_real = count
count_notok = 0
tqs = Mlogbw.objects.filter(mlogb=mlogb, ftest__is_ok=False).values("defect_main").annotate(xcount=Count('id'))
tqs = Mlogbw.objects.filter(mlogb=mlogb, ftest__is_ok=False).values("ftest__defect_main").annotate(xcount=Count('id'))
md_ids = []
for t in tqs:
md, _ = MlogbDefect.objects.get_or_create(mlogb=mlogb, defect=t["defect_main"])
md, _ = MlogbDefect.objects.get_or_create(mlogb=mlogb, defect=t["ftest__defect_main"])
md.count = t["xcount"]
md.save()
md_ids.append(md.id)

View File

@ -243,7 +243,7 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
if item.qct is not None:
if MlogbDefect.objects.filter(mlogb=item).exists():
pass
else:
elif item.material_out.tracking == Material.MA_TRACKING_SINGLE:
Mlogbw.cal_count_notok(item)
for itemx in MlogbDefect.objects.filter(mlogb=item):
m_outs_list.append((item.material_out, item.batch, itemx.count, 0, itemx.defect, item))
@ -374,7 +374,7 @@ def mlog_revert(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
if item.qct is not None:
if MlogbDefect.objects.filter(mlogb=item).exists():
pass
else:
elif item.material_out.tracking == Material.MA_TRACKING_SINGLE:
Mlogbw.cal_count_notok(item)
for itemx in MlogbDefect.objects.filter(mlogb=item):
m_outs_list.append((item.material_out, item.batch, itemx.count, 0, itemx.defect, item))