feat: route create update 强校验

This commit is contained in:
caoqianming 2025-03-28 08:48:05 +08:00
parent 18e5ca2598
commit 4b9e65ba40
1 changed files with 18 additions and 12 deletions

View File

@ -200,9 +200,7 @@ class RouteSerializer(CustomModelSerializer):
material_out.cate = material.cate
material_out.tracking = material_out_tracking
material_out.save()
instance.material_out = material_out
instance.save()
return
return material_out
material_out = Material.objects.get_queryset(all=True).filter(name=material.name, model=material.model, process=process, specification=material.specification).first()
if material_out:
material_out.is_deleted = False
@ -211,9 +209,7 @@ class RouteSerializer(CustomModelSerializer):
material_out.cate = material.cate
material_out.tracking = material_out_tracking
material_out.save()
instance.material_out = material_out
instance.save()
return
return material_out
material_out = Material.objects.create(**{'parent': instance.material, 'process': instance.process,
'is_hidden': True, 'name': material.name,
'number': material.number,
@ -225,10 +221,8 @@ class RouteSerializer(CustomModelSerializer):
'create_by': self.request.user,
'update_by': self.request.user,
})
instance.material_out = material_out
instance.save()
return
return material_out
def create(self, validated_data):
process = validated_data['process']
routepack = validated_data.get('routepack', None)
@ -257,7 +251,13 @@ class RouteSerializer(CustomModelSerializer):
# raise ParseError('物料工序错误!请重新选择')
else:
if instance.material:
self.gen_material_out(instance, material_out_tracking)
instance.material_out = self.gen_material_out(instance, material_out_tracking)
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}")
return instance
def update(self, instance, validated_data):
@ -277,7 +277,13 @@ class RouteSerializer(CustomModelSerializer):
# raise ParseError('物料工序错误!请重新选择')
else:
if instance.material:
self.gen_material_out(instance, material_out_tracking)
instance.material_out = self.gen_material_out(instance, material_out_tracking)
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}")
return instance
def to_representation(self, instance):