From 1de238ca07de8335a08635b732a5d01569636074 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 6 Jul 2023 08:49:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=9B=B8=E5=85=B3=E6=96=B9=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E9=87=8D=E6=96=B0=E5=85=A5=E5=8E=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/rpm/serializers.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/rpm/serializers.py b/apps/rpm/serializers.py index 556340f3..b80fd2c4 100644 --- a/apps/rpm/serializers.py +++ b/apps/rpm/serializers.py @@ -231,11 +231,15 @@ class RpjmemberCreateSerializer(CustomModelSerializer): pass else: raise ParseError('该成员信息不全请补充') + re_in = False if Rpjmember.objects.filter(remployee=remployee, rpj=validated_data['rpj']).exists(): - raise ParseError('该成员已选择') + re_in =True with transaction.atomic(): reason = validated_data.pop('reason', '') - ins = super().create(validated_data) + if re_in: + ins = Rpjmember.objects.filter(remployee=remployee, rpj=validated_data['rpj']).first() + else: + ins = super().create(validated_data) for x in rcertificates: rpjc = Rpjcertificate.objects.filter(rpj_member=ins, rcertificate=x).first() if rpjc: @@ -257,9 +261,12 @@ class RpjmemberCreateSerializer(CustomModelSerializer): rpj_member_come(ins) rpj_certificate_in(ins) ins.note = '后入厂' + if re_in: + ins.note = '重新入厂' ins.save() except Exception: - ins.delete() + if not re_in: + ins.delete() raise RpjLog.objects.create(rpj=rpj, operation='member_come', remployee=remployee, create_by=self.context['request'].user, reason=reason) return ins