From 0dab1714f3dfd9040b87825c6a5454fcabf36764 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 18 Aug 2025 16:52:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BA=A4=E6=8E=A5=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=9C=A8=E5=AE=A1=E6=89=B9=E7=8A=B6=E6=80=81=E4=B8=8B=E5=AF=B9?= =?UTF-8?q?=E6=92=A4=E9=94=80=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/services.py | 6 ++++-- apps/wpm/views.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/wpm/services.py b/apps/wpm/services.py index 553440a7..7ce2871d 100644 --- a/apps/wpm/services.py +++ b/apps/wpm/services.py @@ -14,6 +14,7 @@ from apps.mtm.models import Mgroup, Shift, Material, Route, RoutePack, Team, Sru from .models import SfLog, WMaterial, Mlog, Mlogb, Mlogbw, Handover, Handoverb, Handoverbw, MlogbDefect, BatchLog, BatchSt from apps.mtm.services_2 import cal_material_count from apps.wf.models import Ticket +from apps.wf.services import WfService import logging from apps.wpm.services_2 import ana_batch_thread, ana_wpr_thread from datetime import timedelta @@ -935,12 +936,13 @@ def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime, ana_batch_thread(xbatchs=batches) -def handover_revert(handover:Handover): +def handover_revert(handover:Handover, handler:User): if handover.submit_time is None: raise ParseError('该交接单未提交!') ticket:Ticket = handover.ticket if ticket: - raise ParseError('该交接单已关联审批,暂不支持撤销!') + # 首先把ticket改回开始状态 + WfService.retreat(ticket=ticket, suggestion="撤销交接单", handler=handler, next_handler=handover.create_by) mids = [] # handover_type = handover.type # handover_mtype = handover.mtype diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 14334d31..b58ce142 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -504,7 +504,7 @@ class HandoverViewSet(CustomModelViewSet): """ ins: Handover = self.get_object() if ins.submit_time: - handover_revert(ins) + handover_revert(ins, handle_user=request.user) return Response() @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=HandoverMgroupSerializer)