From df1b0c6b200fd4e12431d38d979110555f631126 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 21 Jun 2023 22:16:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B7=A5=E5=8D=95=E5=9B=9E=E5=88=B0?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=B8=AD=E7=9A=84=E7=9B=B8=E5=BA=94=E6=93=8D?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/opm/serializers.py | 8 +------- apps/opm/services.py | 2 +- apps/opm/tasks.py | 2 +- apps/opm/views.py | 10 +++++----- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/apps/opm/serializers.py b/apps/opm/serializers.py index 1ff1ce14..d3913b48 100644 --- a/apps/opm/serializers.py +++ b/apps/opm/serializers.py @@ -95,7 +95,7 @@ class OplWorkerCreateSerializer(CustomModelSerializer): def create(self, validated_data): opl = validated_data['opl'] ticket = opl.ticket - if ticket and ticket.act_state not in [Ticket.TICKET_ACT_STATE_DRAFT, Ticket.TICKET_ACT_STATE_BACK, Ticket.TICKET_ACT_STATE_RETREAT]: + if ticket and ticket.state.type != 1: raise ParseError('许可证已处理不可新增') certificates = validated_data.pop('certificates') if OplWorker.objects.filter(worker=validated_data['worker'], opl=validated_data['opl']).exists(): @@ -171,12 +171,6 @@ class GasCheckCreateUpdateSerializer(CustomModelSerializer): model = GasCheck exclude = EXCLUDE_FIELDS - def create(self, validated_data): - opl = validated_data['opl'] - if opl.ticket: - raise ParseError('许可证已处理不可新增') - return super().create(validated_data) - class GasCheckSerializer(CustomModelSerializer): checker_ = UserSimpleSerializer(source='checker', read_only=True) diff --git a/apps/opm/services.py b/apps/opm/services.py index 62fc000b..a74e49df 100644 --- a/apps/opm/services.py +++ b/apps/opm/services.py @@ -81,7 +81,7 @@ def correct_operation_state(ticket: Ticket): if op.state == Operation.OP_AUDIT: need_backs = [] for opl in Opl.objects.filter(operation=op): - if (opl.ticket is None) or (opl.ticket and opl.ticket.state.type == 1 and opl.ticket.act_state in [2, 3]): # 如果在初始状态且是撤回或退回 + if (opl.ticket is None) or (opl.ticket and opl.ticket.state.type == 1): # 如果在初始状态 need_backs.append(True) else: need_backs.append(False) diff --git a/apps/opm/tasks.py b/apps/opm/tasks.py index 8f0bddf9..ceda4605 100644 --- a/apps/opm/tasks.py +++ b/apps/opm/tasks.py @@ -14,7 +14,7 @@ def correct_operation_state(): for op in Operation.objects.filter(state=Operation.OP_AUDIT): need_backs = [] for opl in Opl.objects.filter(operation=op): - if (opl.ticket is None) or (opl.ticket and opl.ticket.state.type == 1 and opl.ticket.act_state in [2, 3]): # 如果在初始状态且是撤回或退回 + if (opl.ticket is None) or (opl.ticket and opl.ticket.state.type == 1): # 如果在初始状态 need_backs.append(True) else: need_backs.append(False) diff --git a/apps/opm/views.py b/apps/opm/views.py index 03501734..9c91ff3c 100644 --- a/apps/opm/views.py +++ b/apps/opm/views.py @@ -87,7 +87,7 @@ class OplViewSet(CustomModelViewSet): @transaction.atomic def destroy(self, request, *args, **kwargs): obj = self.get_object() - if obj.ticket and obj.ticket.act_state != Ticket.TICKET_ACT_STATE_DRAFT: + if obj.ticket and obj.ticket.state.type !=1: raise ParseError('许可证已处理不可删除') user = request.user if user == obj.create_by or user.is_superuser: @@ -101,7 +101,7 @@ class OplViewSet(CustomModelViewSet): def update(self, request, *args, **kwargs): obj = self.get_object() - if obj.ticket and obj.ticket.act_state not in [Ticket.TICKET_ACT_STATE_DRAFT, Ticket.TICKET_ACT_STATE_BACK, Ticket.TICKET_ACT_STATE_RETREAT]: + if obj.ticket and obj.ticket.state.type != 1: raise ParseError('许可证已处理不可编辑') user = request.user if user == obj.create_by or user.is_superuser: @@ -153,14 +153,14 @@ class OplWorkerViewSet(CustomModelViewSet): def destroy(self, request, *args, **kwargs): obj = self.get_object() ticket = obj.opl.ticket - if ticket and ticket.act_state not in [Ticket.TICKET_ACT_STATE_DRAFT, Ticket.TICKET_ACT_STATE_BACK, Ticket.TICKET_ACT_STATE_RETREAT]: + if ticket and ticket.state.type !=1: raise ParseError('许可证已处理不可删除') return super().destroy(request, *args, **kwargs) def update(self, request, *args, **kwargs): obj = self.get_object() ticket = obj.opl.ticket - if ticket and ticket.act_state not in [Ticket.TICKET_ACT_STATE_DRAFT, Ticket.TICKET_ACT_STATE_BACK, Ticket.TICKET_ACT_STATE_RETREAT]: + if ticket and ticket.state.type !=1: raise ParseError('许可证已处理不可编辑') return super().update(request, *args, **kwargs) @@ -175,7 +175,7 @@ class GasCheckViewSet(CreateModelMixin, ListModelMixin, DestroyModelMixin, Custo def destroy(self, request, *args, **kwargs): obj = self.get_object() ticket = obj.opl.ticket - if ticket and ticket.act_state not in [Ticket.TICKET_ACT_STATE_DRAFT, Ticket.TICKET_ACT_STATE_BACK, Ticket.TICKET_ACT_STATE_RETREAT]: + if ticket and ticket.state.type != 1: raise ParseError('许可证已处理不可删除') obj.delete() return Response(status=204)