diff --git a/apps/wpm/views.py b/apps/wpm/views.py index e12945fa..98b634e6 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -21,6 +21,7 @@ from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, MlogbOutUpdateSerializer, FmlogSerializer, FmlogUpdateSerializer, BatchStSerializer) from .services import mlog_submit, handover_submit, mlog_revert from apps.wpm.services import mlog_submit_validate, generate_new_batch +from apps.wf.models import State # Create your views here. @@ -164,12 +165,18 @@ class MlogViewSet(CustomModelViewSet): def perform_destroy(self, instance): if instance.submit_time is not None: raise ParseError('日志已提交不可变动') + if instance.ticket and instance.ticket.state != State.STATE_TYPE_START: + raise ParseError('该日志存在审批!') # delete_auditlog(instance, instance.id) + if instance.ticket: + instance.ticket.delete() instance.delete() @transaction.atomic def perform_update(self, serializer): ins = serializer.instance + if ins.ticket and ins.ticket.state != State.STATE_TYPE_START: + raise ParseError('该日志在审批中不可修改!') if ins.submit_time is not None: raise ParseError('该日志已提交!') # val_old = MlogSerializer(instance=ins).data @@ -195,6 +202,8 @@ class MlogViewSet(CustomModelViewSet): 修改日志 """ ins = self.get_object() + if ins.ticket and ins.ticket.state != State.STATE_TYPE_START: + raise ParseError('该日志在审批中不可修改!') sr = MlogChangeSerializer(instance=ins, data=request.data) sr.is_valid(raise_exception=True) sr.save() @@ -229,6 +238,8 @@ class MlogViewSet(CustomModelViewSet): 撤回日志提交 """ ins: Mlog = self.get_object() + if ins.ticket: + raise ParseError('该日志存在审批!') user = request.user if ins.submit_time is None: raise ParseError('日志未提交不可撤销')