plan增加material查询条件

This commit is contained in:
caoqianming 2022-01-17 14:12:26 +08:00
parent 9b8518118a
commit ce62354c8f
1 changed files with 10 additions and 7 deletions

View File

@ -9,6 +9,7 @@ class PlanFilterSet(filters.FilterSet):
create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte') create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte')
create_time_end = filters.DateFilter(field_name="create_time", lookup_expr='lte') create_time_end = filters.DateFilter(field_name="create_time", lookup_expr='lte')
tag = filters.CharFilter(method='filter_tag') tag = filters.CharFilter(method='filter_tag')
material = filters.NumberFilter(method='filter_material')
class Meta: class Meta:
model = ProductionPlan model = ProductionPlan
fields = ['product', 'order', 'create_time_start', 'create_time_end'] fields = ['product', 'order', 'create_time_start', 'create_time_end']
@ -19,14 +20,20 @@ class PlanFilterSet(filters.FilterSet):
elif value == 'working': elif value == 'working':
queryset = queryset.exclude(state__in=[ProductionPlan.PLAN_STATE_DONE, ProductionPlan.PLAN_MTEST_DONE]) queryset = queryset.exclude(state__in=[ProductionPlan.PLAN_STATE_DONE, ProductionPlan.PLAN_MTEST_DONE])
return queryset return queryset
def filter_material(self, queryset, name, value):
"""
按物料筛选
"""
return queryset.filter(subplan_plan__progress_subplan__material__id=value).distinct()
class SubproductionProgressFilterSet(filters.FilterSet): class SubproductionProgressFilterSet(filters.FilterSet):
operation = filters.NumberFilter(method='filter_operation') operation = filters.NumberFilter(method='filter_operation')
material = filters.NumberFilter(method='filter_material')
class Meta: class Meta:
model = SubProductionProgress model = SubProductionProgress
fields = ['material', 'subproduction_plan', 'operation', 'type', 'material'] fields = ['material', 'subproduction_plan', 'operation', 'type']
def filter_operation(self, queryset, name, value): def filter_operation(self, queryset, name, value):
operation = Operation.objects.get(pk=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]) queryset = queryset.exclude(material__type__in =[Material.MA_TYPE_HALFGOOD, Material.MA_TYPE_GOOD])
return queryset return queryset
def filter_material(self, queryset, name, value):
"""
按物料筛选
"""
return queryset.filter(subplan_plan__progress_subplan__material__id=value).distinct()