5656 delete_embedding_by_document , update_embedding_dataset_id , delete_embedding_by_paragraph_ids , \
5757 embedding_by_document_list
5858from smartdoc .conf import PROJECT_DIR
59- from django .db import models
6059
6160parse_qa_handle_list = [XlsParseQAHandle (), CsvParseQAHandle (), XlsxParseQAHandle ()]
6261parse_table_handle_list = [CsvSplitHandle (), XlsSplitHandle (), XlsxSplitHandle ()]
@@ -364,6 +363,7 @@ class Query(ApiMixin, serializers.Serializer):
364363 "文档名称" ))
365364 hit_handling_method = serializers .CharField (required = False , error_messages = ErrMessage .char ("命中处理方式" ))
366365 is_active = serializers .BooleanField (required = False , error_messages = ErrMessage .boolean ("文档是否可用" ))
366+ task_type = serializers .IntegerField (required = False , error_messages = ErrMessage .integer ("任务类型" ))
367367 status = serializers .CharField (required = False , error_messages = ErrMessage .char ("文档状态" ))
368368
369369 def get_query_set (self ):
@@ -375,8 +375,22 @@ def get_query_set(self):
375375 query_set = query_set .filter (** {'hit_handling_method' : self .data .get ('hit_handling_method' )})
376376 if 'is_active' in self .data and self .data .get ('is_active' ) is not None :
377377 query_set = query_set .filter (** {'is_active' : self .data .get ('is_active' )})
378- if 'status' in self .data and self .data .get ('status' ) is not None :
379- query_set = query_set .filter (** {'status' : self .data .get ('status' )})
378+ if 'status' in self .data and self .data .get (
379+ 'status' ) is not None :
380+ task_type = self .data .get ('task_type' )
381+ status = self .data .get (
382+ 'status' )
383+ if task_type is not None :
384+ query_set = query_set .annotate (
385+ reversed_status = Reverse ('status' ),
386+ task_type_status = Substr ('reversed_status' , TaskType (task_type ).value ,
387+ TaskType (task_type ).value ),
388+ ).filter (task_type_status__in = [State (status ).value ]).values ('id' )
389+ else :
390+ if status != State .SUCCESS .value :
391+ query_set = query_set .filter (status__icontains = status )
392+ else :
393+ query_set = query_set .filter (status__iregex = '^[2n]*$' )
380394 query_set = query_set .order_by ('-create_time' , 'id' )
381395 return query_set
382396
0 commit comments