diff --git a/apps/wpm/filters.py b/apps/wpm/filters.py index 7040a96a..59b1ca7d 100644 --- a/apps/wpm/filters.py +++ b/apps/wpm/filters.py @@ -48,11 +48,12 @@ class WMaterialFilter(filters.FilterSet): mgroup = self.data.get("mgroup", None) if mgroup: process = Mgroup.objects.get(id=mgroup).process + matoutIds = list(Route.objects.filter(process=process).values_list("material_out__id", flat=True).distinct()) if value == "todo": - qs = queryset.exclude(material__process=process)|queryset.filter(state=WMaterial.WM_REPAIR) + qs = queryset.exclude(material__id__in=matoutIds)|queryset.filter(state=WMaterial.WM_REPAIR) return qs elif value == "done": - qs = queryset.filter(material__process=process)|queryset.filter(state=WMaterial.WM_REPAIRED) + qs = queryset.filter(material__id__in=matoutIds)|queryset.filter(state=WMaterial.WM_REPAIRED) return qs else: raise ParseError("请提供工段查询条件")