feat: mlogbw变更出发mlogbdefect
This commit is contained in:
parent
fac85d17d2
commit
77f7a454a1
|
@ -729,16 +729,17 @@ class MlogbOutUpdateSerializer(CustomModelSerializer):
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
ins:Mlogb = super().update(instance, validated_data)
|
ins:Mlogb = super().update(instance, validated_data)
|
||||||
if mlogbdefect and material_out.tracking == Material.MA_TRACKING_BATCH:
|
if mlogbdefect and material_out.tracking == Material.MA_TRACKING_BATCH:
|
||||||
defectIds = [item["defect"].id for item in mlogbdefect if item["count"] > 0]
|
|
||||||
Mlogb.objects.filter(mlogb=ins).exclude(defect_id__in=defectIds).delete()
|
|
||||||
count_notok = 0
|
count_notok = 0
|
||||||
|
md_ids = []
|
||||||
for item in mlogbdefect:
|
for item in mlogbdefect:
|
||||||
defect = item["defect"]
|
defect = item["defect"]
|
||||||
insb = MlogbDefect.objects.get(mlogb=ins, defect=defect)
|
insb, _ = MlogbDefect.objects.get_or_create(mlogb=ins, defect=defect)
|
||||||
insb.count = item["count"]
|
insb.count = item["count"]
|
||||||
insb.save(update_fields=["count"])
|
insb.save(update_fields=["count"])
|
||||||
if defect.cate == Defect.DEFECT_NOTOK:
|
if defect.cate == Defect.DEFECT_NOTOK:
|
||||||
count_notok +=1
|
count_notok +=1
|
||||||
|
md_ids.append(insb.id)
|
||||||
|
Mlogbw.objects.filter(mlogb=ins).exclude(id__in=md_ids).delete()
|
||||||
ins.count_notok = count_notok
|
ins.count_notok = count_notok
|
||||||
ins.count_ok = ins.count_real
|
ins.count_ok = ins.count_real
|
||||||
ins.save()
|
ins.save()
|
||||||
|
|
|
@ -16,7 +16,7 @@ from apps.utils.mixins import CustomListModelMixin, BulkCreateModelMixin, BulkDe
|
||||||
|
|
||||||
from .filters import StLogFilter, SfLogFilter, WMaterialFilter, MlogFilter, HandoverFilter, MlogbFilter, BatchStFilter
|
from .filters import StLogFilter, SfLogFilter, WMaterialFilter, MlogFilter, HandoverFilter, MlogbFilter, BatchStFilter
|
||||||
from .models import (SfLog, SfLogExp, StLog, WMaterial, Mlog, Handover, Mlogb,
|
from .models import (SfLog, SfLogExp, StLog, WMaterial, Mlog, Handover, Mlogb,
|
||||||
Mlogbw, AttLog, OtherLog, Fmlog, BatchSt)
|
Mlogbw, AttLog, OtherLog, Fmlog, BatchSt, MlogbDefect)
|
||||||
from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer,
|
from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer,
|
||||||
MlogRevertSerializer,
|
MlogRevertSerializer,
|
||||||
MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer, HandoverSerializer,
|
MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer, HandoverSerializer,
|
||||||
|
@ -34,6 +34,7 @@ from apps.qm.models import QctMat, Ftest
|
||||||
from apps.enm.models import EnStat
|
from apps.enm.models import EnStat
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from apps.utils.tools import convert_ordereddict
|
from apps.utils.tools import convert_ordereddict
|
||||||
|
from django.db.models import Count
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
@ -678,7 +679,17 @@ class MlogbwViewSet(CustomModelViewSet):
|
||||||
mlogb.count_use = count
|
mlogb.count_use = count
|
||||||
elif mlogb.material_out:
|
elif mlogb.material_out:
|
||||||
mlogb.count_real = count
|
mlogb.count_real = count
|
||||||
mlogb.count_notok = Mlogbw.objects.filter(mlogb=mlogb, ftest__is_ok=False).count()
|
count_notok = 0
|
||||||
|
tqs = Mlogbw.objects.filter(mlogb=mlogb, ftest__is_ok=False).values("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.count = t["xcount"]
|
||||||
|
md.save()
|
||||||
|
md_ids.append(md.id)
|
||||||
|
count_notok += t["xcount"]
|
||||||
|
MlogbDefect.objects.filter(mlogb=mlogb).exclude(id__in=md_ids).delete()
|
||||||
|
mlogb.count_notok = count_notok
|
||||||
mlogb.count_ok = count - mlogb.count_notok
|
mlogb.count_ok = count - mlogb.count_notok
|
||||||
mlogb.save()
|
mlogb.save()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue