From d104ee90a4d29ac057a4def58df42066db55b9c2 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 8 Dec 2025 15:26:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=B9=E7=89=88=E4=BA=A4=E6=8E=A5?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8B=86=E5=90=88=E6=89=B92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/serializers.py | 4 ++-- apps/wpm/services.py | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 677f7f55..941e26cb 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -1248,8 +1248,8 @@ class HandoverSerializer(CustomModelSerializer): if not attrs.get('send_dept', None) and not attrs.get('send_mgroup', None): raise ParseError('必须指定送料车间或送料工段') - if attrs["mtype"] == Handover.H_NORMAL and attrs.get("recive_mgroup", None) == attrs.get("send_mgroup", None): - raise ParseError('正常交接收料工段与送料工段不能相同') + # if attrs["mtype"] == Handover.H_NORMAL and attrs.get("recive_mgroup", None) == attrs.get("send_mgroup", None): + # raise ParseError('正常交接收料工段与送料工段不能相同') t_count = 0 tracking = attrs["material"].tracking for ind, item in enumerate(attrs['handoverb']): diff --git a/apps/wpm/services.py b/apps/wpm/services.py index db22b06f..2de29c1f 100644 --- a/apps/wpm/services.py +++ b/apps/wpm/services.py @@ -781,6 +781,8 @@ def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime, if handover.type == Handover.H_NORMAL: if mtype == Handover.H_MERGE and handover.new_wm: wm_to = handover.new_wm + if wm_to.state != WMaterial.WM_OK or wm_to.material != wm_from.material or wm_to.defect != wm_from.defect: + raise ParseError("正常合并到的车间库存状态或物料异常") else: wm_to, _ = WMaterial.objects.get_or_create( batch=batch, @@ -803,7 +805,7 @@ def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime, wm_state = WMaterial.WM_REPAIR if mtype == Handover.H_MERGE and handover.new_wm: wm_to = handover.new_wm - if wm_to.state != WMaterial.WM_REPAIR or wm_to.material != wm_from.material: + if wm_to.state != WMaterial.WM_REPAIR or wm_to.material != wm_from.material or wm_to.defect != wm_from.defect: raise ParseError("返修合并到的车间库存状态或物料异常") elif recive_mgroup: wm_to, _ = WMaterial.objects.get_or_create( @@ -842,7 +844,7 @@ def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime, elif handover.type == Handover.H_SCRAP: if mtype == Handover.H_MERGE and handover.new_wm: wm_to = handover.new_wm - if wm_to.state != WMaterial.WM_SCRAP or wm_to.material != wm_from.material: + if wm_to.state != WMaterial.WM_SCRAP or wm_to.material != wm_from.material or wm_to.defect != wm_from.defect: raise ParseError("报废合并到的车间库存状态或物料异常") elif recive_mgroup: wm_to, _ = WMaterial.objects.get_or_create( @@ -865,6 +867,8 @@ def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime, elif handover.type == Handover.H_CHANGE: if mtype == Handover.H_MERGE and handover.new_wm: wm_to = handover.new_wm + if wm_to.material != handover.material_changed or wm_to.state != handover.state_changed or wm_to.defect != wm_from.defect: + raise ParseError("改版合并到的车间库存状态或物料异常") elif handover.recive_mgroup: wm_to, _ = WMaterial.objects.get_or_create( batch=batch,