fix: mlog 撤回后回退 utask 已提交状态避免无法删除

update_mtask 原本只单向把 utask 推进到已提交,mlog_revert 把 mtask
退回已下达后未反向校正 utask,导致 utask 卡在已提交且无法删除。
两处 fill_way 分支均补充反向回退逻辑,按 count_ok 退回生产中或已下达。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
caoqianming 2026-05-08 15:32:46 +08:00
parent 85cfb8f680
commit 1d4af9e52f
1 changed files with 4 additions and 0 deletions

View File

@ -686,6 +686,8 @@ def update_mtask(mtask: Mtask, fill_way: int = 10):
utask.state = Utask.UTASK_WORKING
if Mtask.objects.filter(utask=utask).exclude(state=Mtask.MTASK_SUBMIT).count() == 0:
utask.state = Utask.UTASK_SUBMIT
elif utask.state == Utask.UTASK_SUBMIT:
utask.state = Utask.UTASK_WORKING if utask.count_ok > 0 else Utask.UTASK_ASSGINED
utask.save()
elif fill_way in [Mlog.MLOG_23, Mlog.MLOG_12]:
# 已经提交的日志
@ -717,6 +719,8 @@ def update_mtask(mtask: Mtask, fill_way: int = 10):
utask.count_notok = res2['sum_count_notok'] if res2['sum_count_notok'] else 0
# if Mtask.objects.filter(utask=utask).exclude(state=Mtask.MTASK_SUBMIT).count() == 0:
# utask.state = Utask.UTASK_SUBMIT
if utask.state == Utask.UTASK_SUBMIT and Mtask.objects.filter(utask=utask).exclude(state=Mtask.MTASK_SUBMIT).exists():
utask.state = Utask.UTASK_WORKING if utask.count_ok > 0 else Utask.UTASK_ASSGINED
utask.save()
def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime, None]):