From 8b22084c0a723325e449237acc32a042bf70e986 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 6 Mar 2026 11:05:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20qctmat=20create=20update=20=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E5=94=AF=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/qm/serializers.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/apps/qm/serializers.py b/apps/qm/serializers.py index b87911d3..e5639e2c 100644 --- a/apps/qm/serializers.py +++ b/apps/qm/serializers.py @@ -81,6 +81,30 @@ class QctMatSerializer(CustomModelSerializer): class Meta: model = QctMat fields = '__all__' + + def create(self, validated_data): + qct:Qct = validated_data.get("qct") + use_for_in = validated_data.get("use_for_in") + use_for_out = validated_data.get("use_for_out") + if use_for_in: + if QctMat.objects.filter(qct=qct, material=validated_data["material"], use_for_in=True, qct__is_deleted=False).exists(): + raise ValidationError("存在该物料的加工前检验表") + if use_for_out: + if QctMat.objects.filter(qct=qct, material=validated_data["material"], use_for_out=True, qct__is_deleted=False).exists(): + raise ValidationError("存在该物料的检验表") + return super().create(validated_data) + + def update(self, instance, validated_data): + qct:Qct = validated_data.get("qct") + use_for_in = validated_data.get("use_for_in") + use_for_out = validated_data.get("use_for_out") + if use_for_in: + if QctMat.objects.filter(qct=qct, material=validated_data["material"], use_for_in=True, qct__is_deleted=False).exclude(pk=instance.pk).exists(): + raise ValidationError("存在该物料的加工前检验表") + if use_for_out: + if QctMat.objects.filter(qct=qct, material=validated_data["material"], use_for_out=True, qct__is_deleted=False).exclude(pk=instance.pk).exists(): + raise ValidationError("存在该物料的检验表") + return super().update(instance, validated_data) class QctDetailSerializer(CustomModelSerializer): qct_testitems = QctTestItemSerializer(many=True, read_only=True)