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):