filter.py 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. from django_filters import FilterSet, NumberFilter, CharFilter
  2. from .models import ContainerListModel,ContainerDetailModel,ContainerOperationModel,TaskModel,ContainerWCSModel,ContainerDetailLogModel,batchLogModel,WCSTaskLogModel
  3. from django_filters import rest_framework as filters
  4. class batchLogFilter(filters.FilterSet):
  5. batch_code__icontains = filters.CharFilter(field_name='batch__bound_number', lookup_expr='icontains')
  6. bound_code__icontains = filters.CharFilter(field_name='bound__bound_code', lookup_expr='icontains')
  7. class Meta:
  8. model = batchLogModel
  9. fields = {
  10. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  11. "bound": ['exact'],
  12. "batch": ['exact'],
  13. "log_type": ['exact', 'icontains'],
  14. "goods_code": ['exact', 'icontains'],
  15. "goods_desc": ['exact', 'icontains'],
  16. "goods_in_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  17. "goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  18. "detail_logs": ['exact'],
  19. "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  20. }
  21. class ContainerDetailLogFilter(filters.FilterSet):
  22. goods_code = filters.CharFilter(field_name='container_detail__goods_code', lookup_expr='exact')
  23. goods_code__icontains = filters.CharFilter(field_name='container_detail__goods_code', lookup_expr='icontains')
  24. container_code = filters.CharFilter(field_name='container_detail__container__container_code', lookup_expr='exact')
  25. bound_number = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='exact')
  26. batch = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='exact')
  27. batch__icontains = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='icontains')
  28. class Meta:
  29. model = ContainerDetailLogModel
  30. fields = {
  31. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  32. "container_detail": ['exact'],
  33. "log_type": ['exact', 'icontains'],
  34. "old_goods_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  35. "old_goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  36. "old_status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  37. "new_goods_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  38. "new_goods_out_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  39. "new_status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  40. "creater": ['exact', 'icontains'],
  41. "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  42. }
  43. class ContainerListFilter(FilterSet):
  44. class Meta:
  45. model = ContainerListModel
  46. fields = {
  47. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  48. "container_code": ['exact', 'icontains'],
  49. "current_location": ['exact', 'icontains'],
  50. "target_location": ['exact', 'icontains'],
  51. "status": ['exact', 'icontains'],
  52. "last_operation": ['exact', 'icontains'],
  53. "category": ['exact', 'icontains'],
  54. }
  55. class ContainerDetailFilter(FilterSet):
  56. bound_number = filters.CharFilter(field_name='batch__bound_number', lookup_expr='exact')
  57. class Meta:
  58. model = ContainerDetailModel
  59. fields = {
  60. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  61. "month": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  62. "container" : ['exact'],
  63. "batch": ['exact'],
  64. "goods_code": ['exact', 'icontains'],
  65. "goods_desc": ['exact', 'icontains'],
  66. "goods_qty": ['exact', 'icontains'],
  67. "goods_weight": ['exact', 'icontains'],
  68. "status": ['exact', 'lte','icontains'],
  69. "creater": ['exact', 'icontains'],
  70. "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  71. "update_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  72. "is_delete": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  73. }
  74. class ContainerOperationFilter(FilterSet):
  75. class Meta:
  76. model = ContainerOperationModel
  77. fields = {
  78. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  79. "month": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  80. "container" : ['exact'],
  81. "operation_type": ['exact', 'icontains'],
  82. "batch": ['exact'],
  83. "goods_code" : ['exact', 'icontains'],
  84. "goods_desc": ['exact', 'icontains'],
  85. "goods_qty": ['exact', 'icontains'],
  86. "goods_weight": ['exact', 'icontains'],
  87. "operator": ['exact', 'icontains'],
  88. "timestamp": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  89. "from_location": ['exact', 'icontains'],
  90. "to_location": ['exact', 'icontains'],
  91. "memo": ['exact', 'icontains'],
  92. }
  93. class WCSTaskFilter(FilterSet):
  94. class Meta:
  95. model = ContainerWCSModel
  96. fields = {
  97. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  98. "taskid": ['exact', 'icontains'],
  99. "batch": ['exact'],
  100. "batch_out": ['exact'],
  101. "bound_list": ['exact'],
  102. "batch_number": ['exact', 'icontains'],
  103. "sequence": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  104. "priority": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  105. "month": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  106. "tasktype": ['exact', 'icontains'],
  107. "tasknumber": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  108. "order_number": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  109. "container": ['exact', 'icontains'],
  110. "current_location": ['exact', 'icontains'],
  111. "target_location": ['exact', 'icontains'],
  112. "message": ['exact', 'icontains'],
  113. "working": ['exact', 'icontains','gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  114. "status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  115. "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  116. "is_delete": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  117. "location_group_id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  118. }
  119. class TaskFilter(FilterSet):
  120. class Meta:
  121. model = TaskModel
  122. fields = {
  123. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  124. "task_wcs" : ['exact'],
  125. "container_detail" : ['exact'],
  126. "batch_detail": ['exact'],
  127. "container_detail__goods_code": ['exact', 'icontains'],
  128. "container_detail__goods_desc": ['exact', 'icontains'],
  129. }
  130. class WCSTaskLogFilter(FilterSet):
  131. taskNumber = filters.CharFilter(field_name='task_number', lookup_expr='icontains')
  132. class Meta:
  133. model = WCSTaskLogModel
  134. fields = {
  135. "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  136. "task_number": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  137. "container": ['exact', 'icontains'],
  138. "current_location": ['exact', 'icontains'],
  139. "target_location": ['exact', 'icontains'],
  140. "location_group_id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  141. "left_priority": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  142. "right_priority": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  143. "task_type": ['exact', 'icontains'],
  144. "order_number": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  145. "sequence": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
  146. "send_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
  147. "floor": ['exact', 'icontains'],
  148. "log_type": ['exact', 'icontains'],
  149. "is_completed": ['exact'],
  150. }