fix: 切分融合的单件生成2

This commit is contained in:
caoqianming 2025-01-17 15:42:24 +08:00
parent 5b7f8e1359
commit 805d4ac4fe
1 changed files with 6 additions and 6 deletions

View File

@ -32,6 +32,7 @@ from apps.wf.models import State
from apps.wpmw.models import Wpr from apps.wpmw.models import Wpr
from apps.qm.models import QctMat, Ftest 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
# Create your views here. # Create your views here.
@ -568,7 +569,7 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust
Mlogbw.objects.get_or_create(wpr=wpr, mlogb=mlogbout, defaults={"number": wpr.number}) Mlogbw.objects.get_or_create(wpr=wpr, mlogb=mlogbout, defaults={"number": wpr.number})
elif route.process.mtype == Process.PRO_DIV: elif route.process.mtype == Process.PRO_DIV:
for i in range(route.div_number): for i in range(route.div_number):
Mlogbw.objects.get_or_create(mlogb=mlogbout, defaults={"number": f'{wpr.number}-{str(i+1)}'}) Mlogbw.objects.get_or_create(mlogb=mlogbout, number=f'{wpr.number}-{i+1}')
class MlogbOutViewSet(UpdateModelMixin, CustomGenericViewSet): class MlogbOutViewSet(UpdateModelMixin, CustomGenericViewSet):
@ -646,7 +647,7 @@ class MlogbwViewSet(CustomModelViewSet):
Mlogbw.objects.get_or_create(mlogb=mlogb_to, wpr=ins.wpr, defaults={"number": ins.number}) Mlogbw.objects.get_or_create(mlogb=mlogb_to, wpr=ins.wpr, defaults={"number": ins.number})
elif route.process.mtype == Process.PRO_DIV: elif route.process.mtype == Process.PRO_DIV:
for i in range(route.div_number): for i in range(route.div_number):
Mlogbw.objects.get_or_create(mlogb=mlogb_to, defaults={"number": f'{ins.number}-{i+1}'}) Mlogbw.objects.get_or_create(mlogb=mlogb_to, number=f'{ins.number}-{i+1}')
self.cal_mlogb_count(mlogb_to) self.cal_mlogb_count(mlogb_to)
@transaction.atomic @transaction.atomic
@ -668,8 +669,7 @@ class MlogbwViewSet(CustomModelViewSet):
mlogb_to = mlogb.mlogb_to mlogb_to = mlogb.mlogb_to
material_out: Material = mlogb.mlog.material_out material_out: Material = mlogb.mlog.material_out
if mlogb_to and material_out.tracking == Material.MA_TRACKING_SINGLE: if mlogb_to and material_out.tracking == Material.MA_TRACKING_SINGLE:
mbw = Mlogbw.objects.get(mlogb=mlogb_to, wpr=instance.wpr) mbws = Mlogbw.objects.filter(Q(wpr=instance.wpr)|Q(number__contains=instance.number), mlogb=mlogb_to)
if mbw.ftest: Ftest.objects.filter(id__in=mbws.values_list('ftest__id', flat=True)).delete()
mbw.ftest.delete() mbws.delete()
mbw.delete()
self.cal_mlogb_count(mlogb_to) self.cal_mlogb_count(mlogb_to)