From 0e428f6c9d51e9a4f2a7aa1b15f93884d2680dcc Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 7 Jan 2025 11:10:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A6=82=E6=9E=9C=E6=98=AF=E4=B8=BB?= =?UTF-8?q?=E8=A6=81=E8=BE=93=E5=85=A5=E7=89=A9=E6=96=99=E4=B8=94=E6=98=AF?= =?UTF-8?q?=E4=B8=BB=E6=89=B9=E6=AC=A1=EF=BC=8C=E6=89=8D=E9=9C=80=E7=94=9F?= =?UTF-8?q?=E6=88=90=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0081_mlogb_is_main_batchin.py | 18 ++++++++++++++++++ apps/wpm/models.py | 14 +++++++++----- apps/wpm/serializers.py | 2 +- apps/wpm/views.py | 4 +++- 4 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 apps/wpm/migrations/0081_mlogb_is_main_batchin.py diff --git a/apps/wpm/migrations/0081_mlogb_is_main_batchin.py b/apps/wpm/migrations/0081_mlogb_is_main_batchin.py new file mode 100644 index 00000000..604a7d5c --- /dev/null +++ b/apps/wpm/migrations/0081_mlogb_is_main_batchin.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2025-01-07 03:08 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('wpm', '0080_mlogb_mlogb_to'), + ] + + operations = [ + migrations.AddField( + model_name='mlogb', + name='is_main_batchin', + field=models.BooleanField(default=True, verbose_name='是否主输入批次'), + ), + ] diff --git a/apps/wpm/models.py b/apps/wpm/models.py index bb055cd4..48aeaf44 100644 --- a/apps/wpm/models.py +++ b/apps/wpm/models.py @@ -299,15 +299,19 @@ class Mlogb(BaseModel): batch = models.TextField('批次号', null=True, blank=True) mtask = models.ForeignKey(Mtask, verbose_name='关联任务', on_delete=models.CASCADE, related_name='mlogb_mtask', null=True, blank=True) - + wm_in = models.ForeignKey(WMaterial, verbose_name='投入物料所在库存', on_delete=models.SET_NULL, null=True, blank=True) material_in = models.ForeignKey( - Material, verbose_name='投入物料', on_delete=models.CASCADE, related_name='mlogb_material_in', null=True, blank=True) + Material, verbose_name='投入物料', on_delete=models.CASCADE, related_name='mlogb_material_in', + null=True, blank=True) + is_main_batchin = models.BooleanField('是否主输入批次', default=True) material_out = models.ForeignKey( - Material, verbose_name='产物', on_delete=models.CASCADE, related_name='mlogb_material_out', null=True, blank=True) - + Material, verbose_name='产物', on_delete=models.CASCADE, related_name='mlogb_material_out', + null=True, blank=True) + batch_ofrom = models.TextField('原料批次号', null=True, blank=True) - material_ofrom = models.ForeignKey(Material, verbose_name='原料物料', on_delete=models.SET_NULL, null=True, blank=True, related_name='mlogb_mofrom') + material_ofrom = models.ForeignKey(Material, verbose_name='原料物料', on_delete=models.SET_NULL, + null=True, blank=True, related_name='mlogb_mofrom') count_use = models.PositiveIntegerField('领用数量', default=0) count_break = models.PositiveIntegerField('加工破碎数', default=0) diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 73852028..b4a894fe 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -877,4 +877,4 @@ class MlogTCreateSerializer(CustomModelSerializer): class BatchStSerializer(CustomModelSerializer): class Meta: model = BatchSt - fields = "__all__" \ No newline at end of file + fields = "__all__" diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 0731b76b..4971c382 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -484,13 +484,15 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust mlogbin: Mlogb = serializer.save() mlog:Mlog = mlogbin.mlog route:Route = mlog.route - # 创建输出 # 以及mlogbw if mlogbin.mtask and mlogbin.material_in: material_in:Material = mlogbin.material_in material_out:Material = mlog.material_out if material_out is None: raise ParseError('产物不可为空') + # 如果是主要输入物料且是主批次,才需生成输出 + if route.material_in != material_in and mlogbin.is_main_batchin is False: + return m_dict = { "mtask": mlogbin.mtask, "mlog": mlog,