From f653c2c191e8920c0aef8effd9ac5b6ce0a17a10 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 18 Dec 2024 09:06:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20route=E5=A2=9E=E5=8A=A0div=5Fnumber?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mtm/migrations/0047_route_div_number.py | 18 ++++++++++++++++++ apps/mtm/models.py | 1 + apps/mtm/serializers.py | 5 ++++- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 apps/mtm/migrations/0047_route_div_number.py diff --git a/apps/mtm/migrations/0047_route_div_number.py b/apps/mtm/migrations/0047_route_div_number.py new file mode 100644 index 00000000..458b4db2 --- /dev/null +++ b/apps/mtm/migrations/0047_route_div_number.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2024-12-18 00:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mtm', '0046_process_mtype'), + ] + + operations = [ + migrations.AddField( + model_name='route', + name='div_number', + field=models.PositiveSmallIntegerField(blank=True, default=1, verbose_name='拆分数量'), + ), + ] diff --git a/apps/mtm/models.py b/apps/mtm/models.py index a8c510c7..2e6afce3 100644 --- a/apps/mtm/models.py +++ b/apps/mtm/models.py @@ -226,6 +226,7 @@ class Route(CommonADModel): Material, verbose_name='主要输出物料', on_delete=models.CASCADE, related_name='route_material_out', null=True, blank=True) is_count_utask = models.BooleanField('是否主任务统计', default=False) out_rate = models.FloatField('出材率', default=100, blank=True) + div_number = models.PositiveSmallIntegerField('拆分数量', default=1, blank=True) hour_work = models.FloatField('工时', null=True, blank=True) batch_bind = models.BooleanField('是否绑定批次', default=True) diff --git a/apps/mtm/serializers.py b/apps/mtm/serializers.py index 6f7a72c9..cf41fa79 100644 --- a/apps/mtm/serializers.py +++ b/apps/mtm/serializers.py @@ -170,8 +170,11 @@ class RouteSerializer(CustomModelSerializer): attrs['material'] = attrs['routepack'].material if 'mgroup' in attrs and attrs['mgroup']: attrs['process'] = attrs['mgroup'].process - if attrs.get('process', None) is None: + process: Process = attrs.get('process', None) + if process is None: raise ParseError('未提供操作工序') + if process.mtype == Process.PRO_DIV and attrs.get('div_number', 1) <= 1: + raise ParseError('切分数量必须大于1') return super().validate(attrs) def gen_material_out(self, instance: Route):