filter.py 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. from django_filters import FilterSet, NumberFilter, CharFilter
  2. from .models import ContainerListModel,ContainerDetailModel,ContainerOperationModel,TaskModel,ContainerWCSModel,ContainerDetailLogModel
  3. from django_filters import rest_framework as filters
  4. class ContainerDetailLogFilter(filters.FilterSet):
  5. goods_code = filters.CharFilter(field_name='container_detail__goods_code', lookup_expr='exact')
  6. goods_code__icontains = filters.CharFilter(field_name='container_detail__goods_code', lookup_expr='icontains')
  7. container_code = filters.CharFilter(field_name='container_detail__container__container_code', lookup_expr='exact')
  8. batch = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='exact')
  9. batch__icontains = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='icontains')
  10. class Meta:
  11. model = ContainerDetailLogModel
  12. fields = {
  13. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  14. "container_detail": ['exact'],
  15. "log_type": ['exact', 'icontains'],
  16. "old_goods_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  17. "old_goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  18. "old_status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  19. "new_goods_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  20. "new_goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  21. "new_status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  22. "creater": ['exact', 'icontains'],
  23. "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  24. }
  25. class ContainerListFilter(FilterSet):
  26. class Meta:
  27. model = ContainerListModel
  28. fields = {
  29. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  30. "container_code": ['exact', 'icontains'],
  31. "current_location": ['exact', 'icontains'],
  32. "status": ['exact', 'icontains'],
  33. "last_operation": ['exact', 'icontains'],
  34. }
  35. class ContainerDetailFilter(FilterSet):
  36. class Meta:
  37. model = ContainerDetailModel
  38. fields = {
  39. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  40. "month": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  41. "container" : ['exact'],
  42. "batch": ['exact'],
  43. "goods_code": ['exact', 'icontains'],
  44. "goods_desc": ['exact', 'icontains'],
  45. "goods_qty": ['exact', 'icontains'],
  46. "goods_weight": ['exact', 'icontains'],
  47. "status": ['exact', 'lte','icontains'],
  48. "creater": ['exact', 'icontains'],
  49. "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  50. "update_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  51. }
  52. class ContainerOperationFilter(FilterSet):
  53. class Meta:
  54. model = ContainerOperationModel
  55. fields = {
  56. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  57. "month": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  58. "container" : ['exact'],
  59. "operation_type": ['exact', 'icontains'],
  60. "batch": ['exact'],
  61. "goods_code" : ['exact', 'icontains'],
  62. "goods_desc": ['exact', 'icontains'],
  63. "goods_qty": ['exact', 'icontains'],
  64. "goods_weight": ['exact', 'icontains'],
  65. "operator": ['exact', 'icontains'],
  66. "timestamp": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  67. "from_location": ['exact', 'icontains'],
  68. "to_location": ['exact', 'icontains'],
  69. "memo": ['exact', 'icontains'],
  70. }
  71. class WCSTaskFilter(FilterSet):
  72. class Meta:
  73. model = ContainerWCSModel
  74. fields = {
  75. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  76. "taskid": ['exact', 'icontains'],
  77. "batch": ['exact'],
  78. "batch_out": ['exact'],
  79. "bound_list": ['exact'],
  80. "batch_number": ['exact', 'icontains'],
  81. "sequence": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  82. "priority": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  83. "month": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  84. "tasktype": ['exact', 'icontains'],
  85. "tasknumber": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  86. "order_number": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  87. "container": ['exact', 'icontains'],
  88. "current_location": ['exact', 'icontains'],
  89. "target_location": ['exact', 'icontains'],
  90. "message": ['exact', 'icontains'],
  91. "working": ['exact', 'icontains','gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  92. "status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  93. "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  94. "is_delete": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  95. }
  96. class TaskFilter(FilterSet):
  97. class Meta:
  98. model = TaskModel
  99. fields = {
  100. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  101. "task_wcs" : ['exact'],
  102. "container_detail" : ['exact'],
  103. "batch_detail": ['exact'],
  104. "container_detail__goods_code": ['exact', 'icontains'],
  105. "container_detail__goods_desc": ['exact', 'icontains'],
  106. }