feat: 自动生成物料的逻辑优化

This commit is contained in:
caoqianming 2025-12-11 16:56:11 +08:00
parent d36edaffe1
commit 6584334d00
1 changed files with 17 additions and 11 deletions

View File

@ -211,7 +211,23 @@ class RouteSerializer(CustomModelSerializer):
""" """
material = instance.material material = instance.material
process = instance.process process = instance.process
material_out: Material = Material.objects.get_queryset(all=True).filter(type=Material.MA_TYPE_HALFGOOD, parent=material, process=process).first()
material_out = Material.objects.get_queryset(all=True).filter(name=material.name,
model=material.model, process=process,
specification=material.specification).order_by("type", "-is_hidden", "create_time").first()
if material_out:
material_out.is_deleted = False
if material_out.parent is None:
if material_out.id != material.id:
material_out.parent = material
material_out.cate = material.cate
material_out.tracking = material_out_tracking
material_out.save()
return material_out
material_out: Material = Material.objects.get_queryset(all=True).filter(
type__in=[Material.MA_TYPE_HALFGOOD, Material.MA_TYPE_GOOD],
parent=material, process=process).order_by("type", "-is_hidden", "create_time").first()
if material_out: if material_out:
material_out.is_deleted = False material_out.is_deleted = False
if material_out.parent == material: if material_out.parent == material:
@ -222,16 +238,6 @@ class RouteSerializer(CustomModelSerializer):
material_out.tracking = material_out_tracking material_out.tracking = material_out_tracking
material_out.save() material_out.save()
return material_out 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
if material_out.parent is None:
if material_out.id != material.id:
material_out.parent = material
material_out.cate = material.cate
material_out.tracking = material_out_tracking
material_out.save()
return material_out
material_out = Material.objects.create(**{'parent': instance.material, 'process': instance.process, material_out = Material.objects.create(**{'parent': instance.material, 'process': instance.process,
'is_hidden': True, 'name': material.name, 'is_hidden': True, 'name': material.name,
'number': material.number, 'number': material.number,