From 3e074b51e38ed217971cb5e56d2ee1c74797d0b1 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 26 Mar 2025 09:10:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20routepack=E5=8F=98=E6=9B=B4=E5=B7=A5?= =?UTF-8?q?=E8=89=BA=E8=B7=AF=E7=BA=BF=E7=9A=84=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mtm/views.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/apps/mtm/views.py b/apps/mtm/views.py index abafd5c2..cb180172 100644 --- a/apps/mtm/views.py +++ b/apps/mtm/views.py @@ -20,6 +20,7 @@ from django.db import transaction from django.db.models import Q from apps.wf.models import Ticket from django.utils import timezone +from rest_framework.permissions import IsAdminUser # Create your views here. class MaterialViewSet(CustomModelViewSet): @@ -261,6 +262,26 @@ class RoutePackViewSet(CustomModelViewSet): rm_new.material = rm.material rm_new.save() return Response() + + @transaction.atomic + @action(methods=['post'], detail=True, permission_classes = [IsAdminUser], serializer_class=Serializer) + def toggle_state(self, request, *args, **kwargs): + """变更工艺路线状态 + + 变更工艺路线状态 + """ + ins:RoutePack = self.get_object() + if ins.state == RoutePack.RP_S_CONFIRM: + ins.state = RoutePack.RP_S_CREATE + elif ins.state == RoutePack.RP_S_CREATE: + if ins.ticket is not None: + ins.state = RoutePack.RP_S_CONFIRM + else: + raise ParseError("该路线未提交审核") + else: + raise ParseError("该状态下不可变更") + ins.save() + return Response() class RouteViewSet(CustomModelViewSet):