diff --git a/apps/rpm/views.py b/apps/rpm/views.py index 93d2229c..329155e0 100644 --- a/apps/rpm/views.py +++ b/apps/rpm/views.py @@ -228,7 +228,7 @@ class RpjmemberViewSet(CustomModelViewSet): raise ParseError('成员在该状态不可删除') return super().destroy(request, *args, **kwargs) - @action(methods=['post'], detail=True, perms_map={'post': 'rpj.update'}) + @action(methods=['put'], detail=True, perms_map={'put': 'rpj.update'}) @transaction.atomic def leave(self, request, pk=None): """提前离厂 @@ -239,6 +239,8 @@ class RpjmemberViewSet(CustomModelViewSet): rpj = obj.rpj if rpj.state not in [Rpj.RPJ_WORKING, Rpj.RPJ_ENTER]: raise ParseError('该项目状态成员不可离厂') + if RpjLog.objects.filter(rpj=rpj, remployee=obj.remployee, operation='member_leave').exists(): + raise ParseError('该项目成员已做离厂操作') obj.note = '提前离厂' obj.save() rpj_member_leave(obj)