diff --git a/apps/mtm/serializers.py b/apps/mtm/serializers.py index adfe7d1e..279a968f 100644 --- a/apps/mtm/serializers.py +++ b/apps/mtm/serializers.py @@ -186,7 +186,7 @@ class RouteSerializer(CustomModelSerializer): instance.material_out = material_out instance.save() return - material_out = Material.objects.get_queryset(all=True).filter(name=material.name, model=material.model, process=process).first() + 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 material_out.save() diff --git a/apps/mtm/views.py b/apps/mtm/views.py index 9f6a6710..1d2edeef 100644 --- a/apps/mtm/views.py +++ b/apps/mtm/views.py @@ -37,13 +37,15 @@ class MaterialViewSet(CustomModelViewSet): ordering_fields = ['name', 'model', 'specification', 'type', 'process', 'process__sort', 'sort', 'id', 'number'] + @transaction.atomic def perform_destroy(self, instance): from apps.inm.models import MaterialBatch if MaterialBatch.objects.filter(material=instance).exists(): raise ParseError('该物料有库存!') if Route.objects.filter(Q(material=instance) | Q(material_in=instance) | Q(material_out=instance)).exists(): raise ParseError('该物料有工艺路线!') - return super().perform_destroy(instance) + instance.delete() + Material.objects.filter(parent=instance).update(is_deleted=True) @action(methods=['post'], detail=False, serializer_class=Serializer, perms_map={'post': 'material.create'}) @transaction.atomic