From b44fec069595c1671e919ac9054d8f90f2bd6f73 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 17 Apr 2025 14:05:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=90=88=E5=B9=B6=E7=9A=84=E4=BA=A4?= =?UTF-8?q?=E6=8E=A5=E9=9C=80=E8=A6=81=E6=A0=A1=E9=AA=8C=E7=89=A9=E6=96=99?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/serializers.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 5f728a50..66c75bdb 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -952,9 +952,9 @@ class HandoverSerializer(CustomModelSerializer): if attrs["type"] == Handover.H_CHANGE: if "material_changed" not in attrs: raise ParseError("必须指定改版后的物料") - - new_state = None + if mtype == Handover.H_MERGE: + new_state = None new_wm:WMaterial = attrs.get("new_wm", None) if new_wm: attrs['new_batch'] = new_wm.batch @@ -992,17 +992,18 @@ class HandoverSerializer(CustomModelSerializer): tracking = attrs["material"].tracking for ind, item in enumerate(attrs['handoverb']): wm = item["wm"] - if new_state is None: - new_material = wm.material - new_state = wm.state - new_defect = wm.defect - else: - if new_material != wm.material: - raise ParseError(f'第{ind+1}行-的物料不一致') - if new_state != wm.state: - raise ParseError(f'第{ind+1}行-的物料状态不一致') - if new_defect != wm.defect: - raise ParseError(f'第{ind+1}行-的物料缺陷不一致') + if mtype == Handover.H_MERGE: + if new_state is None: + new_mat = wm.material + new_state = wm.state + new_defect = wm.defect + else: + if new_mat != wm.material: + raise ParseError(f'第{ind+1}行-合并的物料不一致') + if new_state != wm.state: + raise ParseError(f'第{ind+1}行-合并的物料状态不一致') + if new_defect != wm.defect: + raise ParseError(f'第{ind+1}行-合并的物料缺陷不一致') if tracking == Material.MA_TRACKING_SINGLE: handoverbw = item.get("handoverbw", []) if handoverbw: