feat: 合并的交接需要校验物料是否一致

This commit is contained in:
caoqianming 2025-04-17 14:05:56 +08:00
parent 6d904341a0
commit b44fec0695
1 changed files with 14 additions and 13 deletions

View File

@ -952,9 +952,9 @@ class HandoverSerializer(CustomModelSerializer):
if attrs["type"] == Handover.H_CHANGE: if attrs["type"] == Handover.H_CHANGE:
if "material_changed" not in attrs: if "material_changed" not in attrs:
raise ParseError("必须指定改版后的物料") raise ParseError("必须指定改版后的物料")
new_state = None
if mtype == Handover.H_MERGE: if mtype == Handover.H_MERGE:
new_state = None
new_wm:WMaterial = attrs.get("new_wm", None) new_wm:WMaterial = attrs.get("new_wm", None)
if new_wm: if new_wm:
attrs['new_batch'] = new_wm.batch attrs['new_batch'] = new_wm.batch
@ -992,17 +992,18 @@ class HandoverSerializer(CustomModelSerializer):
tracking = attrs["material"].tracking tracking = attrs["material"].tracking
for ind, item in enumerate(attrs['handoverb']): for ind, item in enumerate(attrs['handoverb']):
wm = item["wm"] wm = item["wm"]
if new_state is None: if mtype == Handover.H_MERGE:
new_material = wm.material if new_state is None:
new_state = wm.state new_mat = wm.material
new_defect = wm.defect new_state = wm.state
else: new_defect = wm.defect
if new_material != wm.material: else:
raise ParseError(f'{ind+1}行-的物料不一致') if new_mat != wm.material:
if new_state != wm.state: raise ParseError(f'{ind+1}行-合并的物料不一致')
raise ParseError(f'{ind+1}行-的物料状态不一致') if new_state != wm.state:
if new_defect != wm.defect: raise ParseError(f'{ind+1}行-合并的物料状态不一致')
raise ParseError(f'{ind+1}行-的物料缺陷不一致') if new_defect != wm.defect:
raise ParseError(f'{ind+1}行-合并的物料缺陷不一致')
if tracking == Material.MA_TRACKING_SINGLE: if tracking == Material.MA_TRACKING_SINGLE:
handoverbw = item.get("handoverbw", []) handoverbw = item.get("handoverbw", [])
if handoverbw: if handoverbw: