From 98d76424c7c4d742bfbf139ab512de24d9a32eae Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 28 Mar 2025 09:20:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20route=20create=20update=20=E5=BC=BA?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mtm/serializers.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/mtm/serializers.py b/apps/mtm/serializers.py index 5745cd10..8827eabb 100644 --- a/apps/mtm/serializers.py +++ b/apps/mtm/serializers.py @@ -227,6 +227,7 @@ class RouteSerializer(CustomModelSerializer): process = validated_data['process'] routepack = validated_data.get('routepack', None) material_out_tracking = validated_data.pop("material_out_tracking", Material.MA_TRACKING_BATCH) + need_save = False if routepack: pass # if Route.objects.filter(routepack=routepack, process=process).exists(): @@ -252,13 +253,15 @@ class RouteSerializer(CustomModelSerializer): else: if instance.material: instance.material_out = self.gen_material_out(instance, material_out_tracking) + need_save = True rx = Route.objects.filter(material_in=instance.material_in, material_out=instance.material_out, process=process).first() if rx: msg = "" if rx.routepack: msg = rx.routepack.name raise ParseError(f"该工艺步骤已存在-{msg}") - instance.save() + if need_save: + instance.save() return instance def update(self, instance, validated_data): @@ -268,6 +271,7 @@ class RouteSerializer(CustomModelSerializer): with transaction.atomic(): instance = super().update(instance, validated_data) material_out = instance.material_out + need_save = False if material_out: if material_out.process is None: material_out.process = process @@ -281,13 +285,15 @@ class RouteSerializer(CustomModelSerializer): else: if instance.material: instance.material_out = self.gen_material_out(instance, material_out_tracking) + need_save = True rx = Route.objects.filter(material_in=instance.material_in, material_out=instance.material_out, process=process).exclude(id=instance.id).first() if rx: msg = "" if rx.routepack: msg = rx.routepack.name raise ParseError(f"该工艺步骤已存在-{msg}") - instance.save() + if need_save: + instance.save() return instance def to_representation(self, instance):