feat: 通过is_fix支持ftestwork转mlog

This commit is contained in:
caoqianming 2025-03-14 17:07:08 +08:00
parent 9489f80b3f
commit 8f079c9d5d
1 changed files with 9 additions and 3 deletions

View File

@ -659,11 +659,16 @@ class MlogbInSerializer(CustomModelSerializer):
wm_in: WMaterial = attrs['wm_in']
if wm_in is None:
raise ParseError("请选择相应车间库存!")
if is_fix: # 返修或复检
if wm_in.state in [WMaterial.WM_NOTOK, WMaterial.WM_REPAIR, WMaterial.WM_REPAIRED]:
pass
else:
raise ParseError('返修或复检不可使用该物料')
elif wm_in.state != WMaterial.WM_OK:
raise ParseError('非合格品不可使用')
if wm_in.state in [WMaterial.WM_OK, WMaterial.WM_REPAIR, WMaterial.WM_REPAIRED]:
if is_fix and wm_in.state not in [WMaterial.WM_REPAIR, WMaterial.WM_REPAIRED]:
raise ParseError('需要使用返修品')
else:
raise ParseError('非合格/返修品不可使用')
if mtask and mlog.route != mtask.route:
raise ParseError('工序不匹配')
route = mlog.route
@ -689,9 +694,10 @@ class MlogbInSerializer(CustomModelSerializer):
if mlog.is_fix:
if mlog.material_in is None:
mlog.material_in = ins.material_in
mlog.material_out = ins.material_in
mlog.save(update_fields="material_in")
elif mlog.material_in != ins.material_in:
raise ParseError('返修记录必须使用同一物料')
raise ParseError('记录必须使用同一物料')
if mlogbdefect is not None and ins.material_in.tracking == Material.MA_TRACKING_BATCH:
mlogb_defect_objects = [