feat: 过滤来料未完成的优化
This commit is contained in:
parent
01e7d73bee
commit
0cf04c50b3
|
@ -43,6 +43,12 @@ class Process(CommonBModel):
|
||||||
"""
|
"""
|
||||||
return list(Route.objects.filter(process=self).values_list("material_out__id", flat=True).distinct())
|
return list(Route.objects.filter(process=self).values_list("material_out__id", flat=True).distinct())
|
||||||
|
|
||||||
|
def get_canin_mat_ids(self):
|
||||||
|
"""获取可输入的materialIds
|
||||||
|
"""
|
||||||
|
return list(RouteMat.objects.filter(route__process=self).values_list("material__id", flat=True).distinct()) + \
|
||||||
|
list(Route.objects.filter(process=self).values_list("material_in__id", flat=True).distinct())
|
||||||
|
|
||||||
# Create your models here.
|
# Create your models here.
|
||||||
class Material(CommonAModel):
|
class Material(CommonAModel):
|
||||||
"""TN:物料"""
|
"""TN:物料"""
|
||||||
|
|
|
@ -50,14 +50,17 @@ class WMaterialFilter(filters.FilterSet):
|
||||||
mgroupId = mgroupId if mgroupId else mgroupxId
|
mgroupId = mgroupId if mgroupId else mgroupxId
|
||||||
if mgroupId:
|
if mgroupId:
|
||||||
process = Mgroup.objects.get(id=mgroupId).process
|
process = Mgroup.objects.get(id=mgroupId).process
|
||||||
matoutIds = process.get_canout_mat_ids()
|
|
||||||
queryset = queryset.filter(material__type__in=[Material.MA_TYPE_MAINSO, Material.MA_TYPE_HALFGOOD, Material.MA_TYPE_GOOD])
|
queryset = queryset.filter(material__type__in=[Material.MA_TYPE_MAINSO, Material.MA_TYPE_HALFGOOD, Material.MA_TYPE_GOOD])
|
||||||
if value == "todo":
|
if value == "todo":
|
||||||
qs = queryset.exclude(material__id__in=matoutIds).exclude(state=WMaterial.WM_REPAIRED)|queryset.filter(state=WMaterial.WM_REPAIR, mgroup__id=mgroupId)
|
matIds = process.get_canin_mat_ids()
|
||||||
|
qs = queryset.filter(material__id__in=matIds).exclude(state=WMaterial.WM_REPAIRED)|queryset.filter(state=WMaterial.WM_REPAIR, mgroup__id=mgroupId)
|
||||||
return qs
|
return qs
|
||||||
elif value == "done":
|
elif value == "done":
|
||||||
|
matoutIds = process.get_canout_mat_ids()
|
||||||
qs = queryset.filter(material__id__in=matoutIds).exclude(state=WMaterial.WM_REPAIR)|queryset.filter(state=WMaterial.WM_REPAIRED, mgroup__id=mgroupId)
|
qs = queryset.filter(material__id__in=matoutIds).exclude(state=WMaterial.WM_REPAIR)|queryset.filter(state=WMaterial.WM_REPAIRED, mgroup__id=mgroupId)
|
||||||
elif value == "canfix":
|
elif value == "canfix":
|
||||||
|
matoutIds = process.get_canout_mat_ids()
|
||||||
qs = queryset.filter(state=WMaterial.WM_REPAIR, mgroup__id=mgroupId)| queryset.filter(material__id__in=matoutIds, state=WMaterial.WM_NOTOK).exclude(
|
qs = queryset.filter(state=WMaterial.WM_REPAIR, mgroup__id=mgroupId)| queryset.filter(material__id__in=matoutIds, state=WMaterial.WM_NOTOK).exclude(
|
||||||
state=WMaterial.WM_REPAIR).exclude(state=WMaterial.WM_REPAIRED)
|
state=WMaterial.WM_REPAIR).exclude(state=WMaterial.WM_REPAIRED)
|
||||||
return qs
|
return qs
|
||||||
|
|
Loading…
Reference in New Issue