车间操作删除接口
This commit is contained in:
parent
5601834a33
commit
4be1537625
|
@ -0,0 +1,17 @@
|
|||
from django_filters import rest_framework as filters
|
||||
from .models import Operation, WMaterial, WProduct
|
||||
|
||||
class WMaterialFilterSet(filters.FilterSet):
|
||||
|
||||
operation = filters.NumberFilter(method='filter_operation')
|
||||
class Meta:
|
||||
model = WMaterial
|
||||
fields = ['material', 'subproduction_plan', 'subproduction_plan__process', 'subproduction_plan__workshop']
|
||||
|
||||
def filter_operation(self, queryset, name, value):
|
||||
operation = Operation.objects.get(pk=value)
|
||||
wproducts = WProduct.objects.filter(ow_wproduct__operation=value)
|
||||
if wproducts.exists():
|
||||
pass
|
||||
else:
|
||||
pass
|
|
@ -62,7 +62,7 @@ class OperationWproduct(BaseModel):
|
|||
生产操作半成品关联表
|
||||
"""
|
||||
operation = models.ForeignKey(Operation, verbose_name='关联操作', on_delete=models.CASCADE, related_name='ow_operation')
|
||||
wproduct = models.ForeignKey(WProduct, verbose_name='关联半成品', on_delete=models.CASCADE)
|
||||
wproduct = models.ForeignKey(WProduct, verbose_name='关联半成品', on_delete=models.CASCADE, related_name='ow_wproduct')
|
||||
number = models.CharField('物品编号', null=True, blank=True, max_length=50)
|
||||
material = models.ForeignKey(Material, verbose_name='操作时的物料状态', on_delete=models.CASCADE)
|
||||
subproduction_plan = models.ForeignKey(SubProductionPlan, verbose_name='当前子生产计划', on_delete=models.CASCADE)
|
||||
|
|
|
@ -15,6 +15,7 @@ from apps.qm.models import TestRecordItem
|
|||
|
||||
from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
|
||||
from rest_framework.decorators import action
|
||||
from apps.wpm.filters import WMaterialFilterSet
|
||||
from apps.wpm.models import OperationEquip, OperationWproduct, WMaterial, WProduct, Operation, OperationMaterial, OperationRecord, OperationRecordItem
|
||||
|
||||
from apps.wpm.serializers import OperationEquipListSerializer, OperationEquipUpdateSerializer, OperationMaterialCreate1Serailizer, OperationMaterialCreate2Serailizer, OperationMaterialCreate3Serializer, OperationMaterialListSerializer, OperationRecordListSerializer, OperationRecordSubmitSerializer, OperationUpdateSerializer, OperationWproductListSerializer, OperationCreateSerializer, OperationDetailSerializer, OperationListSerializer, PickHalfSerializer, PickSerializer, OperationInitSerializer, OperationSubmitSerializer, WMaterialListSerializer, WProductListSerializer, WplanPutInSerializer, WpmTestRecordCreateSerializer, WproductPutInSerializer
|
||||
|
@ -25,6 +26,7 @@ from rest_framework import exceptions, serializers
|
|||
from apps.wpm.services import WpmServies
|
||||
from django.utils import timezone
|
||||
from utils.tools import ranstr
|
||||
from rest_framework import status
|
||||
# Create your views here.
|
||||
class WPlanViewSet(ListModelMixin, GenericViewSet):
|
||||
"""
|
||||
|
@ -137,7 +139,7 @@ class WMaterialViewSet(CreateUpdateModelAMixin, ListModelMixin, GenericViewSet):
|
|||
perms_map={'*':'*'}
|
||||
queryset = WMaterial.objects.select_related('material').all()
|
||||
serializer_class = WMaterialListSerializer
|
||||
filterset_fields = ['material', 'subproduction_plan', 'subproduction_plan__process', 'subproduction_plan__workshop']
|
||||
filterset_class = WMaterialFilterSet
|
||||
ordering_fields = ['material__number']
|
||||
ordering = ['material__number']
|
||||
|
||||
|
@ -282,6 +284,12 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd
|
|||
return OperationUpdateSerializer
|
||||
return super().get_serializer_class()
|
||||
|
||||
def destroy(self, request, *args, **kwargs):
|
||||
instance = self.get_object()
|
||||
if instance.is_submited:
|
||||
raise exceptions.APIException('该操作已提交')
|
||||
self.perform_destroy(instance)
|
||||
return Response(status=status.HTTP_204_NO_CONTENT)
|
||||
@transaction.atomic
|
||||
def create(self, request, *args, **kwargs):
|
||||
data = request.data
|
||||
|
|
Loading…
Reference in New Issue