From 2d8169849fd92c6df7bb5dcbf4ca9f902314078c Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 7 Dec 2023 09:39:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B0=86mlog=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=AE=A1=E8=AE=A1=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/views.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/wpm/views.py b/apps/wpm/views.py index b13d51e0..321e3792 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -19,6 +19,7 @@ from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer, HandoverSerializer, GenHandoverSerializer, GenHandoverWmSerializer, MlogAnaSerializer, AttLogSerializer, OtherLogSerializer) from .services import mlog_submit, update_mtask, handover_submit +from apps.monitor.services import create_auditlog, delete_auditlog # Create your views here. @@ -135,10 +136,18 @@ class MlogViewSet(CustomModelViewSet): prefetch_related_fields = ['handle_users', 'material_outs', 'b_mlog'] filterset_class = MlogFilter + @transaction.atomic + def perform_create(self, serializer): + ins = serializer.save() + data = MlogSerializer(ins).data + create_auditlog('create', ins, data) + + @transaction.atomic def perform_destroy(self, instance): if instance.submit_time is not None: raise ParseError('日志已提交不可变动') - return super().perform_destroy(instance) + delete_auditlog(instance, instance.id) + instance.delete() @action(methods=['post'], detail=True, perms_map={'post': 'mlog.submit'}, serializer_class=Serializer) @transaction.atomic @@ -148,10 +157,13 @@ class MlogViewSet(CustomModelViewSet): 日志提交 """ ins: Mlog = self.get_object() + vdata_old = MlogSerializer(ins).data if ins.submit_time is None: mlog_submit(ins, self.request.user, None) if ins.mtask: update_mtask(ins.mtask) + vdata_new = MlogSerializer(ins).data + create_auditlog('submit', ins, vdata_new, vdata_old) return Response() @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=MlogRelatedSerializer)