From 468cb7b658545ffce20fd587e584fb4ede891f2f Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 24 Mar 2025 08:42:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20handover=20=E5=88=9B=E5=BB=BA=E5=B9=B6?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/views.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/apps/wpm/views.py b/apps/wpm/views.py index f70758ec..ffc67112 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -386,6 +386,22 @@ class HandoverViewSet(CustomModelViewSet): if instance.send_user != user and instance.recive_user != user and instance.create_by != user: raise ParseError('非交送人和接收人不可删除该记录') return super().perform_destroy(instance) + + @action(methods=['post'], detail=True, perms_map={'post': 'handover.create'}, serializer_class=HandoverSerializer) + @transaction.atomic + def create_and_submit(self, request, *args, **kwargs): + user = request.user + sr = HandoverSerializer(data=request.data, context={'request': request}) + sr.is_valid(raise_exception=True) + ins = sr.save() + if ins.type != Handover.H_SCRAP: + if ins.recive_user is None or user == ins.recive_user or user.belong_dept == ins.recive_user.belong_dept: + pass + else: + raise ParseError('非接收人不可提交') + if ins.submit_time is None: + handover_submit(ins, user, None) + return Response({"id": ins.id}) @action(methods=['post'], detail=True, perms_map={'post': 'handover.submit'}, serializer_class=Serializer) @transaction.atomic