feat: wpr增加can_use筛选条件
This commit is contained in:
parent
925666d3ef
commit
aa72953d17
|
@ -0,0 +1,32 @@
|
||||||
|
from django_filters import rest_framework as filters
|
||||||
|
from apps.wpm.models import (Handoverbw, Mlogbw)
|
||||||
|
from apps.inm.models import MIOItemw
|
||||||
|
from apps.wpmw.models import Wpr
|
||||||
|
from apps.mtm.models import Route, Material
|
||||||
|
from django.db.models import Q
|
||||||
|
from rest_framework.exceptions import ParseError
|
||||||
|
|
||||||
|
|
||||||
|
class WprFilter(filters.FilterSet):
|
||||||
|
can_use = filters.CharFilter(method='filter_can_use')
|
||||||
|
class Meta:
|
||||||
|
model = Wpr
|
||||||
|
fields = {
|
||||||
|
"mb": ["exact", "isnull"],
|
||||||
|
"wm": ["exact", "isnull"],
|
||||||
|
"material__process": ["exact"],
|
||||||
|
"state": ["exact"],
|
||||||
|
"defects": ["exact"],
|
||||||
|
"number": ["exact"]
|
||||||
|
}
|
||||||
|
|
||||||
|
def filter_can_use(self, queryset, name, value):
|
||||||
|
if value == 'yes':
|
||||||
|
# 交接记录
|
||||||
|
handoverws = Handoverbw.objects.filter(handoverb__handover__submit_time__isnull=True).values_list('wpr__id', flat=True)
|
||||||
|
# 生产日志
|
||||||
|
mlogbws = Mlogbw.objects.filter(mlogb__mlog__submit_time__isnull=True).values_list('wpr__id', flat=True)
|
||||||
|
# 出入库记录
|
||||||
|
mioitemws = MIOItemw.objects.filter(mioitem__mio__submit_time__isnull=True).values_list('wpr__id', flat=True)
|
||||||
|
return queryset.exclude(id__in=handoverws).exclude(id__in=mlogbws).exclude(id__in=mioitemws)
|
||||||
|
return queryset
|
|
@ -8,6 +8,7 @@ from rest_framework.response import Response
|
||||||
from apps.mtm.models import Material
|
from apps.mtm.models import Material
|
||||||
from rest_framework.exceptions import ParseError
|
from rest_framework.exceptions import ParseError
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
from apps.wpmw.filters import WprFilter
|
||||||
|
|
||||||
|
|
||||||
class WprViewSet(CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin, CustomGenericViewSet):
|
class WprViewSet(CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin, CustomGenericViewSet):
|
||||||
|
@ -21,14 +22,7 @@ class WprViewSet(CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin, Cu
|
||||||
queryset = Wpr.objects.all()
|
queryset = Wpr.objects.all()
|
||||||
serializer_class = WprSerializer
|
serializer_class = WprSerializer
|
||||||
retrieve_serializer_class = WprDetailSerializer
|
retrieve_serializer_class = WprDetailSerializer
|
||||||
filterset_fields = {
|
filterset_class = WprFilter
|
||||||
"mb": ["exact", "isnull"],
|
|
||||||
"wm": ["exact", "isnull"],
|
|
||||||
"material__process": ["exact"],
|
|
||||||
"state": ["exact"],
|
|
||||||
"defects": ["exact"],
|
|
||||||
"number": ["exact"]
|
|
||||||
}
|
|
||||||
ordering = ["number", "create_time"]
|
ordering = ["number", "create_time"]
|
||||||
ordering_fields = ["number", "create_time", "update_time"]
|
ordering_fields = ["number", "create_time", "update_time"]
|
||||||
search_fields = ["number", "material__name", "material__model", "material__specification", "number_out"]
|
search_fields = ["number", "material__name", "material__model", "material__specification", "number_out"]
|
||||||
|
|
Loading…
Reference in New Issue