feat: 加工前不良当合格品处理
This commit is contained in:
parent
d29fcce935
commit
cffea3e1ea
|
|
@ -255,12 +255,16 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
||||||
Wpr.change_or_new(wpr=item.wpr, old_wm=wm, ftest=item.ftest)
|
Wpr.change_or_new(wpr=item.wpr, old_wm=wm, ftest=item.ftest)
|
||||||
|
|
||||||
# 针对加工前不良的暂时额外处理
|
# 针对加工前不良的暂时额外处理
|
||||||
|
# 合格B类的需要当合格品
|
||||||
if stored_notok:
|
if stored_notok:
|
||||||
for item in m_ins_bl_list:
|
for item in m_ins_bl_list:
|
||||||
material, batch, count, defect, mi_ = item
|
material, batch, count, defect, mi_ = item
|
||||||
if count <= 0:
|
if count <= 0:
|
||||||
raise ParseError('存在非正数!')
|
raise ParseError('存在非正数!')
|
||||||
lookup = {'batch': batch, 'material': material, 'mgroup': mgroup, 'defect': defect, 'state': WMaterial.WM_NOTOK}
|
c_state = WMaterial.WM_NOTOK
|
||||||
|
if isinstance(defect, Defect) and defect.okcate == Defect.DEFECT_OK_B:
|
||||||
|
c_state = WMaterial.WM_OK
|
||||||
|
lookup = {'batch': batch, 'material': material, 'mgroup': mgroup, 'defect': defect, 'state': c_state}
|
||||||
wm, is_create = WMaterial.locked_get_or_create(**lookup, defaults={"belong_dept": belong_dept})
|
wm, is_create = WMaterial.locked_get_or_create(**lookup, defaults={"belong_dept": belong_dept})
|
||||||
wm.count = wm.count + count
|
wm.count = wm.count + count
|
||||||
if is_create:
|
if is_create:
|
||||||
|
|
@ -270,7 +274,7 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
||||||
wm.update_by = user
|
wm.update_by = user
|
||||||
wm.save()
|
wm.save()
|
||||||
if material.tracking == Material.MA_TRACKING_SINGLE:
|
if material.tracking == Material.MA_TRACKING_SINGLE:
|
||||||
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b, ftest__is_ok=False, ftest__defect_main=defect)
|
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b, ftest__defect_main=defect)
|
||||||
if mlogbws.count() != count:
|
if mlogbws.count() != count:
|
||||||
raise ParseError("日志与加工前不良明细数量不一致,操作失败")
|
raise ParseError("日志与加工前不良明细数量不一致,操作失败")
|
||||||
for item in mlogbws:
|
for item in mlogbws:
|
||||||
|
|
@ -578,7 +582,10 @@ def mlog_revert(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
||||||
material, batch, count, defect, mi_ = item
|
material, batch, count, defect, mi_ = item
|
||||||
if count <= 0:
|
if count <= 0:
|
||||||
raise ParseError('存在非正数!')
|
raise ParseError('存在非正数!')
|
||||||
lookup = {'batch': batch, 'material': material, 'mgroup': None, 'defect': defect, 'state': WMaterial.WM_NOTOK}
|
c_state = WMaterial.WM_NOTOK
|
||||||
|
if isinstance(defect, Defect) and defect.okcate == Defect.DEFECT_OK_B:
|
||||||
|
c_state = WMaterial.WM_OK
|
||||||
|
lookup = {'batch': batch, 'material': material, 'mgroup': None, 'defect': defect, 'state': c_state}
|
||||||
if stored_mgroup:
|
if stored_mgroup:
|
||||||
lookup['mgroup'] = mgroup
|
lookup['mgroup'] = mgroup
|
||||||
else:
|
else:
|
||||||
|
|
@ -593,7 +600,7 @@ def mlog_revert(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
||||||
wm.update_by = user
|
wm.update_by = user
|
||||||
wm.save()
|
wm.save()
|
||||||
if material.tracking == Material.MA_TRACKING_SINGLE:
|
if material.tracking == Material.MA_TRACKING_SINGLE:
|
||||||
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b, ftest__is_ok=False, ftest__defect_main=defect)
|
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b, ftest__defect_main=defect)
|
||||||
if mlogbws.count() != count:
|
if mlogbws.count() != count:
|
||||||
raise ParseError("日志与加工前不良明细数量不一致,操作失败")
|
raise ParseError("日志与加工前不良明细数量不一致,操作失败")
|
||||||
for item in mlogbws:
|
for item in mlogbws:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue