feat: 支持消耗物料的检验3

This commit is contained in:
caoqianming 2025-08-01 11:12:46 +08:00
parent 264083ebd5
commit 5514e8b561
1 changed files with 11 additions and 14 deletions

View File

@ -238,11 +238,10 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
wm.update_by = user
wm.save()
if mi_ma.tracking == Material.MA_TRACKING_SINGLE:
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b)
mlogbws = Mlogbw.objects.filter(Q(ftest=None) | Q(ftest__is_ok=True), mlogb=mlog_or_b)
if mlogbws.count() != mi_count:
raise ParseError("日志与实际使用明细数量不一致,操作失败")
for item in mlogbws:
mlogbws = Mlogbw.objects.filter(Q(ftest=None) | Q(ftest__is_ok=True), mlogb=mlog_or_b)
if mlogbws.count() != mi_count:
raise ParseError("日志与实际使用明细数量不一致,操作失败")
Wpr.change_or_new(wpr=item.wpr, old_wm=wm, ftest=item.ftest)
# 针对加工前不良的暂时额外处理
@ -262,8 +261,7 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
wm.save()
if material.tracking == Material.MA_TRACKING_SINGLE:
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b, ftest__is_ok=False, ftest__defect_main=defect)
mlogbws_count = mlogbws.count()
if mlogbws_count != count:
if mlogbws.count() != count:
raise ParseError("日志与加工前不良明细数量不一致,操作失败")
for item in mlogbws:
Wpr.change_or_new(wpr=item.wpr, wm=wm, old_wm=wm, ftest=item.ftest)
@ -557,16 +555,11 @@ def mlog_revert(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
wm.update_by = user
wm.save()
if mi_ma.tracking == Material.MA_TRACKING_SINGLE:
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b)
mlogbws = Mlogbw.objects.filter(Q(ftest=None) | Q(ftest__is_ok=True), mlogb=mlog_or_b)
if mlogbws.count() != mi_count:
raise ParseError("日志与明细数量不一致,操作失败")
raise ParseError("日志与实际使用明细数量不一致,操作失败")
for item in mlogbws:
# if item.wpr:
Wpr.change_or_new(wpr=item.wpr, wm=wm)
# else:
# wpr = Wpr.change_or_new(number=item.number, wm=wm)
# item.wpr = wpr
# item.save()
# 针对加工前不良的暂时额外处理
if stored_notok:
@ -585,7 +578,11 @@ def mlog_revert(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
wm.update_by = user
wm.save()
if material.tracking == Material.MA_TRACKING_SINGLE:
raise ParseError("加工前不良的物料暂不支持单件回退")
mlogbws = Mlogbw.objects.filter(mlogb=mlog_or_b, ftest__is_ok=False, ftest__defect_main=defect)
if mlogbws.count() != count:
raise ParseError("日志与加工前不良明细数量不一致,操作失败")
for item in mlogbws:
Wpr.change_or_new(wpr=item.wpr, wm=wm)
mlog.submit_time = None
mlog.submit_user = None