From 37a6f37af51c2a61c090fd328c4d43b23ab45e2c Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 2 Jan 2025 10:41:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20wproducts=E7=BB=9F=E4=B8=80=E7=94=A8wpr?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/inm/serializers.py | 18 +++++++++--------- apps/inm/views.py | 9 +++++++-- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/apps/inm/serializers.py b/apps/inm/serializers.py index 154d2d89..4672b17b 100644 --- a/apps/inm/serializers.py +++ b/apps/inm/serializers.py @@ -119,12 +119,12 @@ class MIOItemwTestSerializer(CustomModelSerializer): class MIOItemCreateSerializer(CustomModelSerializer): assemb = MIOItemACreateSerializer( label='组合件信息', many=True, write_only=True, required=False) - wproducts = MIOItemwCreateSerializer(many=True, required=False) + wprs = MIOItemwCreateSerializer(many=True, required=False) class Meta: model = MIOItem fields = ['mio', 'warehouse', 'material', - 'batch', 'count', 'assemb', 'is_testok', 'wproducts'] + 'batch', 'count', 'assemb', 'is_testok', 'wprs'] def create(self, validated_data): mio = validated_data['mio'] @@ -143,7 +143,7 @@ class MIOItemCreateSerializer(CustomModelSerializer): count = validated_data["count"] batch = validated_data["batch"] assemb = validated_data.pop('assemb', []) - wproducts = validated_data.pop('wproducts', []) + wprs = validated_data.pop('wprs', []) instance = super().create(validated_data) assemb_dict = {} for i in assemb: @@ -158,12 +158,12 @@ class MIOItemCreateSerializer(CustomModelSerializer): else: raise ParseError('缺少组合件') if material.tracking == Material.MA_TRACKING_SINGLE: - if count == 1 and len(wproducts) == 0: + if count == 1 and len(wprs) == 0: MIOItemw.objects.create(mioitem=instance, number=batch) - elif count == 1 and len(wproducts) >= 1: - MIOItemw.objects.create(mioitem=instance, number=wproducts[0]['number'], note=wproducts[0]['note']) - elif count > 1 and len(wproducts) == count: - for w in wproducts: + elif count == 1 and len(wprs) >= 1: + MIOItemw.objects.create(mioitem=instance, number=wprs[0]['number'], note=wprs[0]['note']) + elif count > 1 and len(wprs) == count: + for w in wprs: MIOItemw.objects.create(mioitem=instance, number=w['number'], note=w['note']) else: raise ParseError('单个明细信息不匹配') @@ -191,7 +191,7 @@ class MIOItemSerializer(CustomModelSerializer): source='material', read_only=True) inout_date = serializers.DateField(source='mio.inout_date', read_only=True) test_user_name = serializers.CharField(source='test_user.name', read_only=True) - wproducts = MIOItemwSerializer(source='w_mioitem', read_only=True, many=True) + wprs = MIOItemwSerializer(source='w_mioitem', read_only=True, many=True) class Meta: model = MIOItem diff --git a/apps/inm/views.py b/apps/inm/views.py index 7ecbd6cb..127cbbcd 100644 --- a/apps/inm/views.py +++ b/apps/inm/views.py @@ -17,7 +17,8 @@ from apps.inm.serializers import ( MIOItemwSerializer, MIOItemwTestSerializer) from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet from apps.inm.services import InmService, daoru_mb -from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin, BulkUpdateModelMixin +from apps.utils.mixins import (BulkCreateModelMixin, BulkDestroyModelMixin, BulkUpdateModelMixin, + CustomListModelMixin) from apps.utils.permission import has_perm from .filters import MaterialBatchFilter, MioFilter @@ -213,7 +214,7 @@ class MIOViewSet(CustomModelViewSet): return Response() -class MIOItemViewSet(ListModelMixin, BulkCreateModelMixin, BulkDestroyModelMixin, CustomGenericViewSet): +class MIOItemViewSet(CustomListModelMixin, BulkCreateModelMixin, BulkDestroyModelMixin, CustomGenericViewSet): """ list: 出入库明细 @@ -235,6 +236,10 @@ class MIOItemViewSet(ListModelMixin, BulkCreateModelMixin, BulkDestroyModelMixin } ordering = ['create_time'] + def add_info_for_list(self, data): + + return data + def perform_destroy(self, instance): if instance.mio.state != MIO.MIO_CREATE: raise ParseError('出入库记录非创建中不可删除')