feat: route create update 强校验4

This commit is contained in:
caoqianming 2025-03-28 09:20:08 +08:00
parent c541e58006
commit 98d76424c7
1 changed files with 8 additions and 2 deletions

View File

@ -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,12 +253,14 @@ 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}")
if need_save:
instance.save()
return instance
@ -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,12 +285,14 @@ 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}")
if need_save:
instance.save()
return instance