diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 3b7d5df2..1a18528b 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -564,7 +564,11 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust for wpr in Wpr.objects.filter(wm=wm_in).order_by("number"): Mlogbw.objects.get_or_create(wpr=wpr, mlogb=mlogbin, defaults={"number": wpr.number}) if m_out_t == Material.MA_TRACKING_SINGLE: - Mlogbw.objects.get_or_create(wpr=wpr, mlogb=mlogbout, defaults={"number": wpr.number}) + if route.process.mtype == Process.PRO_NORMAL: + Mlogbw.objects.get_or_create(wpr=wpr, mlogb=mlogbout, defaults={"number": wpr.number}) + elif route.process.mtype == Process.PRO_DIV: + for i in range(route.div_number): + Mlogbw.objects.get_or_create(mlogb=mlogbout, defaults={"number": f'{wpr.number}-{str(i+1)}'}) class MlogbOutViewSet(UpdateModelMixin, CustomGenericViewSet): @@ -629,6 +633,7 @@ class MlogbwViewSet(CustomModelViewSet): @transaction.atomic def perform_create(self, serializer): ins:Mlogbw = serializer.save() + route:Route = ins.mlogb.mlog.route mlogb:Mlogb = ins.mlogb self.cal_mlogb_count(mlogb) # 如果是输入且输出追踪到个,需同步创建 @@ -637,7 +642,11 @@ class MlogbwViewSet(CustomModelViewSet): mlogb_to = mlogb.mlogb_to material_out:Material = mlogb.mlog.material_out if mlogb_to and material_out.tracking == Material.MA_TRACKING_SINGLE: - Mlogbw.objects.get_or_create(mlogb=mlogb_to, wpr=ins.wpr, defaults={"number": ins.number}) + if route.process.mtype == Process.PRO_NORMAL: + Mlogbw.objects.get_or_create(mlogb=mlogb_to, wpr=ins.wpr, defaults={"number": ins.number}) + elif route.process.mtype == Process.PRO_DIV: + for i in range(route.div_number): + Mlogbw.objects.get_or_create(mlogb=mlogb_to, defaults={"number": ins.number + i}) self.cal_mlogb_count(mlogb_to) @transaction.atomic