From 1d4af9e52fbe4d8dcdcbee6140b6811c13ef8ec6 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 8 May 2026 15:32:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20mlog=20=E6=92=A4=E5=9B=9E=E5=90=8E?= =?UTF-8?q?=E5=9B=9E=E9=80=80=20utask=20=E5=B7=B2=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E9=81=BF=E5=85=8D=E6=97=A0=E6=B3=95=E5=88=A0?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit update_mtask 原本只单向把 utask 推进到已提交,mlog_revert 把 mtask 退回已下达后未反向校正 utask,导致 utask 卡在已提交且无法删除。 两处 fill_way 分支均补充反向回退逻辑,按 count_ok 退回生产中或已下达。 Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/wpm/services.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/wpm/services.py b/apps/wpm/services.py index c283ac5f..91ddfe34 100644 --- a/apps/wpm/services.py +++ b/apps/wpm/services.py @@ -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]):