diff --git a/hb_server/apps/pm/filters.py b/hb_server/apps/pm/filters.py index 3ee9a9a..f530238 100644 --- a/hb_server/apps/pm/filters.py +++ b/hb_server/apps/pm/filters.py @@ -9,6 +9,7 @@ class PlanFilterSet(filters.FilterSet): create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte') create_time_end = filters.DateFilter(field_name="create_time", lookup_expr='lte') tag = filters.CharFilter(method='filter_tag') + material = filters.NumberFilter(method='filter_material') class Meta: model = ProductionPlan fields = ['product', 'order', 'create_time_start', 'create_time_end'] @@ -19,14 +20,20 @@ class PlanFilterSet(filters.FilterSet): elif value == 'working': queryset = queryset.exclude(state__in=[ProductionPlan.PLAN_STATE_DONE, ProductionPlan.PLAN_MTEST_DONE]) return queryset + + def filter_material(self, queryset, name, value): + """ + 按物料筛选 + """ + return queryset.filter(subplan_plan__progress_subplan__material__id=value).distinct() class SubproductionProgressFilterSet(filters.FilterSet): operation = filters.NumberFilter(method='filter_operation') - material = filters.NumberFilter(method='filter_material') + class Meta: model = SubProductionProgress - fields = ['material', 'subproduction_plan', 'operation', 'type', 'material'] + fields = ['material', 'subproduction_plan', 'operation', 'type'] def filter_operation(self, queryset, name, value): operation = Operation.objects.get(pk=value) @@ -41,9 +48,5 @@ class SubproductionProgressFilterSet(filters.FilterSet): queryset = queryset.exclude(material__type__in =[Material.MA_TYPE_HALFGOOD, Material.MA_TYPE_GOOD]) return queryset - def filter_material(self, queryset, name, value): - """ - 按物料筛选 - """ - return queryset.filter(subplan_plan__progress_subplan__material__id=value).distinct() +