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,