feat: handover 创建并提交的接口

This commit is contained in:
caoqianming 2025-03-24 08:42:02 +08:00
parent 5ee10e7cc5
commit 468cb7b658
1 changed files with 16 additions and 0 deletions

View File

@ -386,6 +386,22 @@ class HandoverViewSet(CustomModelViewSet):
if instance.send_user != user and instance.recive_user != user and instance.create_by != user: if instance.send_user != user and instance.recive_user != user and instance.create_by != user:
raise ParseError('非交送人和接收人不可删除该记录') raise ParseError('非交送人和接收人不可删除该记录')
return super().perform_destroy(instance) 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) @action(methods=['post'], detail=True, perms_map={'post': 'handover.submit'}, serializer_class=Serializer)
@transaction.atomic @transaction.atomic