feat: batchst增加batch__startswith__in筛选条件

This commit is contained in:
caoqianming 2024-12-04 10:16:41 +08:00
parent cbaf79084c
commit bcbaba330d
2 changed files with 26 additions and 9 deletions

View File

@ -1,6 +1,7 @@
from django_filters import rest_framework as filters from django_filters import rest_framework as filters
from apps.wpm.models import SfLog, StLog, WMaterial, Mlog, Handover, Mgroup, Mlogb, Mtask from apps.wpm.models import (SfLog, StLog, WMaterial, Mlog,
Handover, Mgroup, Mlogb, Mtask, BatchSt)
from django.db.models import Q
class SfLogFilter(filters.FilterSet): class SfLogFilter(filters.FilterSet):
class Meta: class Meta:
@ -136,3 +137,22 @@ class MlogbFilter(filters.FilterSet):
return queryset.filter(material_out__isnull=False) return queryset.filter(material_out__isnull=False)
return queryset return queryset
return queryset.none() return queryset.none()
class BatchStFilter(filters.FilterSet):
batch__startswith__in = filters.CharFilter(method='filter_batch')
class Meta:
model = BatchSt
fields = {
"batch": ["exact", "contains", "startswith"],
"last_time": ["exact", "gte", "lte"],
"update_time": ["exact", "gte", "lte"]
}
def filter_batch(self, queryset, name, value):
v_list = value.split(',')
query = Q()
for value in v_list:
query |= Q(batch__startswith=value)
return queryset.filter(query)

View File

@ -14,7 +14,7 @@ from apps.mtm.models import Material, Process
from apps.pm.models import Mtask from apps.pm.models import Mtask
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
from .filters import StLogFilter, SfLogFilter, WMaterialFilter, MlogFilter, HandoverFilter, MlogbFilter from .filters import StLogFilter, SfLogFilter, WMaterialFilter, MlogFilter, HandoverFilter, MlogbFilter, BatchStFilter
from .models import SfLog, SfLogExp, StLog, WMaterial, Mlog, Handover, Mlogb, AttLog, OtherLog, Fmlog, BatchSt from .models import SfLog, SfLogExp, StLog, WMaterial, Mlog, Handover, Mlogb, AttLog, OtherLog, Fmlog, BatchSt
from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer, MlogRevertSerializer, from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer, MlogRevertSerializer,
MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer, HandoverSerializer, HandoverUpdateSerializer, MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer, HandoverSerializer, HandoverUpdateSerializer,
@ -523,8 +523,5 @@ class BatchStViewSet(ListModelMixin, CustomGenericViewSet):
serializer_class = BatchStSerializer serializer_class = BatchStSerializer
ordering_fields = ["batch", "last_time", "update_time"] ordering_fields = ["batch", "last_time", "update_time"]
ordering = ["batch"] ordering = ["batch"]
filterset_fields = { filterset_class = BatchStFilter
"batch": ["exact", "contains", "startswith"],
"last_time": ["exact", "gte", "lte"],
"update_time": ["exact", "gte", "lte"]
}