From 71e00d8455019d74569da92a7539ebf06dc29f17 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 21 Dec 2021 16:32:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E5=BA=9F=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/wpm/filters.py | 12 ++++++++++++ hb_server/apps/wpm/views.py | 6 +++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/hb_server/apps/wpm/filters.py b/hb_server/apps/wpm/filters.py index eac725e..231a858 100644 --- a/hb_server/apps/wpm/filters.py +++ b/hb_server/apps/wpm/filters.py @@ -20,4 +20,16 @@ class WMaterialFilterSet(filters.FilterSet): else: subplans = WpmServies.get_subplans_queyset_from_step(step) queryset = queryset.filter(subproduction_plan__in=subplans).exclude(material__type=Material.MA_TYPE_HALFGOOD) + return queryset + + +class WProductFilterSet(filters.FilterSet): + tag = filters.CharFilter(method='filter_tag') + class Meta: + model = WProduct + fields = ['step', 'subproduction_plan', 'material', 'step__process', 'act_state', 'material__type'] + + def filter_tag(self, queryset, name, value): + if value == 'no_scrap': + queryset = queryset.exclude(act_state=WProduct.WPR_ACT_STATE_SCRAP) return queryset \ No newline at end of file diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index ed32da0..4d62249 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -18,7 +18,7 @@ from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin from rest_framework.decorators import action from apps.wf.models import Workflow from apps.wf.serializers import WorkflowSimpleSerializer -from apps.wpm.filters import WMaterialFilterSet +from apps.wpm.filters import WMaterialFilterSet, WProductFilterSet from apps.wpm.models import OperationEquip, OperationWproduct, Pick, PickWproduct, WMaterial, WProduct, Operation, OperationMaterial, OperationRecord, OperationRecordItem from apps.wpm.serializers import OperationEquipListSerializer, OperationEquipUpdateSerializer, OperationMaterialCreate1ListSerailizer, OperationMaterialCreate1Serailizer, OperationMaterialCreate2ListSerailizer, OperationMaterialCreate2Serailizer, OperationMaterialCreate3Serializer, OperationMaterialListSerializer, OperationRecordDetailSerializer, OperationRecordListSerializer, OperationRecordSubmitSerializer, OperationUpdateSerializer, OperationWproductListSerializer, OperationCreateSerializer, OperationDetailSerializer, OperationListSerializer, PickHalfSerializer, PickHalfsSerializer, PickSerializer, OperationInitSerializer, OperationSubmitSerializer, ScrapSerializer, WMaterialListSerializer, WProductListSerializer, WplanPutInSerializer, WpmTestFormInitSerializer, WpmTestRecordCreateSerializer, WproductPutInSerializer, WproductPutInsSerializer @@ -181,7 +181,7 @@ class WProductViewSet(ListModelMixin, GenericViewSet): perms_map={'*':'*'} queryset = WProduct.objects.select_related('step', 'material', 'subproduction_plan').filter(is_hidden=False) serializer_class = WProductListSerializer - filterset_fields = ['step', 'subproduction_plan', 'material', 'step__process', 'act_state', 'material__type'] + filterset_class = WProductFilterSet search_fields = ['number'] ordering_fields = ['id'] ordering = ['id'] @@ -332,7 +332,7 @@ class WProductViewSet(ListModelMixin, GenericViewSet): wproduct.save() return Response() - @action(methods=['post'], detail=False, perms_map={'post':'*'}, serializer_class=ScrapSerializer) + @action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=ScrapSerializer) def scrap(self, request, pk=None): """ 报废操作