diff --git a/apps/wpm/models.py b/apps/wpm/models.py index a3d60d12..20aec4a2 100644 --- a/apps/wpm/models.py +++ b/apps/wpm/models.py @@ -497,13 +497,14 @@ class Mlogbw(BaseModel): note = models.TextField('备注', null=True, blank=True) @classmethod - def cal_count_notok(cls, mlogb: Mlog): + def cal_count_notok(cls, mlogb: Mlogb): from apps.qm.models import Defect # 锁定mlogb以防止并发修改 # mlogb:Mlogb = Mlogb.objects.select_for_update().get(pk=mlogb.pk) count = Mlogbw.objects.filter(mlogb=mlogb).count() if mlogb.material_in: mlogb.count_use = count + mlogb.save(update_fields=["count_use"]) elif mlogb.material_out: mlogb.count_real = count count_notok = 0 @@ -520,7 +521,8 @@ class Mlogbw(BaseModel): MlogbDefect.objects.filter(mlogb=mlogb).exclude(id__in=md_ids).delete() mlogb.count_notok = count_notok mlogb.count_ok = count - mlogb.count_notok - mlogb.save() + mlogb.save() + mlogb.cal_count_notok() class Handover(CommonADModel): """