From 2d8142400945f49eb05365a069020a69904dab42 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 10 Nov 2025 14:43:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20mioitem=20create=E6=97=B6=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E6=98=AF=E5=90=A6=E6=B7=B7=E6=89=B9=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/inm/serializers.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/apps/inm/serializers.py b/apps/inm/serializers.py index 8490177d..5174c439 100644 --- a/apps/inm/serializers.py +++ b/apps/inm/serializers.py @@ -212,11 +212,18 @@ class MIOItemCreateSerializer(CustomModelSerializer): mio_type = mio.type if mio_type != "pur_in" and mio_type != "other_in": wprIds = [i["wpr"].id for i in mioitemw] - mb_ids = list(Wpr.objects.filter(id__in=wprIds).values_list("mb__id", flat=True).distinct()) - if len(mb_ids) == 1 and mb_ids[0] == instance.mb.id: - pass - else: - raise ParseError(f'{batch}物料明细中存在{len(mb_ids)}个不同物料批次') + if instance.mb: + mb_ids = list(Wpr.objects.filter(id__in=wprIds).values_list("mb__id", flat=True).distinct()) + if len(mb_ids) == 1 and mb_ids[0] == instance.mb.id: + pass + else: + raise ParseError(f'{batch}物料明细中存在{len(mb_ids)}个不同物料批次') + elif instance.wm: + wm_ids = list(Wpr.objects.filter(id__in=wprIds).values_list("wm__id", flat=True).distinct()) + if len(wm_ids) == 1 and wm_ids[0] == instance.wm.id: + pass + else: + raise ParseError(f'{batch}物料明细中存在{len(wm_ids)}个不同物料批次') for item in mioitemw: if item.get("wpr", None) is None and mio_type != "pur_in" and mio_type != "other_in": raise ParseError(f'{item["number"]}_请提供产品明细ID')