iproduct增加need_to_order筛选;pm增加near_done筛选

This commit is contained in:
caoqianming 2022-01-26 10:27:22 +08:00
parent 850c18ba5f
commit c6080849d7
3 changed files with 17 additions and 4 deletions

View File

@ -23,9 +23,11 @@ class MbFilterSet(filters.FilterSet):
class IProductFilterSet(DynamicFieldsFilterMixin, filters.FilterSet):
order = filters.NumberFilter(field_name="wproduct__subproduction_plan__production_plan__order")
to_order = filters.NumberFilter(field_name="wproduct__to_order")
need_to_order = filters.BooleanFilter()
update_time_start = filters.DateFilter(field_name="update_time", lookup_expr='gte')
update_time_end = filters.DateFilter(field_name="update_time", lookup_expr='lte')
class Meta:
model = IProduct
fields = ['material', 'warehouse', 'batch', 'order', 'material__type',
'is_saled', 'update_time_start', 'update_time_end', 'to_order']
'is_saled', 'update_time_start', 'update_time_end',
'to_order', 'need_to_order']

View File

@ -2,8 +2,9 @@ from django_filters import rest_framework as filters
from apps.mtm.models import Material, Step
from apps.pm.models import ProductionPlan, SubProductionProgress
from apps.wpm.models import Operation, WProduct
from datetime import *
from apps.wpm.services import WpmServies
from django.db.models import F
class PlanFilterSet(filters.FilterSet):
create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte')
@ -15,10 +16,19 @@ class PlanFilterSet(filters.FilterSet):
fields = ['product', 'order', 'create_time_start', 'create_time_end']
def filter_tag(self, queryset, name, value):
now = datetime.now()
day7_after = now + timedelta(days=7)
if value == 'planed':
queryset = queryset.filter(is_planed=True)
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])
elif value == 'near_done':
queryset = queryset.filter(count_ok__lt=F('count'),
end_date__lte = datetime.date(day7_after))
elif value == 'out_done':
queryset = queryset.filter(count_ok__lt=F('count'),
end_date__gt = datetime.date(now))
return queryset
def filter_material(self, queryset, name, value):

View File

@ -23,8 +23,9 @@ class OrderFilterSet(filters.FilterSet):
plan_order__subplan_plan__progress_subplan__material__id=value).distinct()
def filter_tag(self, queryset, name, value):
now = datetime.now()
day7_after = now + timedelta(days=7)
if value == 'near_delivery':
day7_after = datetime.now() + timedelta(days=7)
queryset = queryset.filter(delivered_count__lt=F('count'),
delivery_date__lte = datetime.date(day7_after))
elif value == 'out_delivery':