feat: wm添加route查询条件

This commit is contained in:
caoqianming 2025-01-07 13:52:31 +08:00
parent ccac1aea87
commit c8594aaa99
1 changed files with 10 additions and 0 deletions

View File

@ -1,7 +1,9 @@
from django_filters import rest_framework as filters
from apps.wpm.models import (SfLog, StLog, WMaterial, Mlog,
Handover, Mgroup, Mlogb, Mtask, BatchSt)
from apps.mtm.models import Route
from django.db.models import Q
from rest_framework.exceptions import ParseError
class SfLogFilter(filters.FilterSet):
class Meta:
@ -34,6 +36,7 @@ class StLogFilter(filters.FilterSet):
class WMaterialFilter(filters.FilterSet):
mgroupx = filters.CharFilter(label='MgroupId', method='filter_mgroupx')
mtaskx = filters.CharFilter(label='MtaskId', method='filter_mtaskx')
route = filters.CharFilter(label='routeId', method='filter_route')
def filter_mgroupx(self, queryset, name, value):
return queryset.filter(mgroup__id=value)|queryset.filter(belong_dept=Mgroup.objects.get(id=value).belong_dept, mgroup=None)
@ -43,6 +46,13 @@ class WMaterialFilter(filters.FilterSet):
if mtask.route and mtask.route.batch_bind:
return WMaterial.mat_in_qs(mtask=Mtask.objects.get(id=value), qs=queryset)
return queryset
def filter_route(self, queryset, name, value):
try:
route = Route.objects.get(id=value)
except Route.DoesNotExist:
raise ParseError('生产路线不存在!')
return queryset.filter(material=route.material_in)|queryset.filter(material__in=route.materials.all())
class Meta:
model = WMaterial