diff --git a/apps/mtm/serializers.py b/apps/mtm/serializers.py index 832a26ec..1db70d3a 100644 --- a/apps/mtm/serializers.py +++ b/apps/mtm/serializers.py @@ -26,6 +26,7 @@ class MaterialSimpleSerializer(CustomModelSerializer): def get_full_name(self, obj): return f'{obj.name}|{obj.specification if obj.specification else ""}|{obj.model if obj.model else ""}|{obj.process.name if obj.process else ""}' + class MaterialSerializer(CustomModelSerializer): process_name = serializers.CharField(source='process.name', read_only=True) full_name = serializers.SerializerMethodField() @@ -145,16 +146,20 @@ class RouteSerializer(CustomModelSerializer): 自动形成物料 """ name = f'{instance.material.name}' - instance.material_out, _ = Material.objects.get_or_create(type=Material.MA_TYPE_HALFGOOD, parent=instance.material, process=instance.process, - defaults={'parent': instance.material, 'process': instance.process, - 'is_hidden': True, 'name': name, - 'number': instance.material.number, - 'specification': instance.material.specification, - 'model': instance.material.model, - 'type': Material.MA_TYPE_HALFGOOD, - 'create_by': self.request.user, - 'update_by': self.request.user, - }) + material_out, _ = Material.objects.get_queryset(all=True).get_or_create(type=Material.MA_TYPE_HALFGOOD, parent=instance.material, process=instance.process, + defaults={'parent': instance.material, 'process': instance.process, + 'is_hidden': True, 'name': name, + 'number': instance.material.number, + 'specification': instance.material.specification, + 'model': instance.material.model, + 'type': Material.MA_TYPE_HALFGOOD, + 'create_by': self.request.user, + 'update_by': self.request.user, + }) + if material_out.is_deleted: + material_out.is_deleted = False + material_out.save() + instance.material_out = material_out instance.save() def create(self, validated_data):