diff --git a/apps/mtm/serializers.py b/apps/mtm/serializers.py index 8429b627..015c5d9c 100644 --- a/apps/mtm/serializers.py +++ b/apps/mtm/serializers.py @@ -186,8 +186,8 @@ class RouteSerializer(CustomModelSerializer): raise ParseError('未提供操作工序') if process.parent is not None: raise ParseError('操作工序不可为子工序') - if process.mtype == Process.PRO_DIV and attrs.get('div_number', 1) <= 1: - raise ParseError('切分数量必须大于1') + if process.mtype == Process.PRO_DIV and attrs.get('div_number', 1) < 1: + raise ParseError('切分数量必须大于等于1') return super().validate(attrs) @classmethod diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 4aec14cc..e3525e24 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -624,8 +624,11 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust {"count_real": d_count_real, "count_ok": d_count_ok})) for mlogbwin in Mlogbw.objects.filter(mlogb=mlogbin).order_by("number"): wpr_ = mlogbwin.wpr - for i in range(div_number): - Mlogbw.objects.get_or_create(mlogb=mlogbout, number=f'{wpr_.number}-{i+1}', defaults={"mlogbw_from": mlogbwin}) + if div_number == 1: + Mlogbw.objects.get_or_create(wpr=wpr_, mlogb=mlogbout, defaults={"number": wpr_.number, "mlogbw_from": mlogbwin}) + else: + for i in range(div_number): + Mlogbw.objects.get_or_create(mlogb=mlogbout, number=f'{wpr_.number}-{i+1}', defaults={"mlogbw_from": mlogbwin}) elif material_in.tracking == Material.MA_TRACKING_BATCH and material_out.tracking == Material.MA_TRACKING_BATCH: d_count_real = mlogbin.count_use * div_number d_count_ok = d_count_real