feat: 改版交接支持拆合批2

This commit is contained in:
caoqianming 2025-12-08 15:26:39 +08:00
parent 09c3bec66a
commit d104ee90a4
2 changed files with 8 additions and 4 deletions

View File

@ -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']):

View File

@ -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,