|
@@ -1,13 +1,16 @@
|
|
|
package cn.cslg.pas.service.business.es;
|
|
|
|
|
|
+import cn.cslg.pas.common.core.base.IfConstant;
|
|
|
import cn.cslg.pas.common.dto.es.EsCustomFieldDTO;
|
|
|
import cn.cslg.pas.common.dto.es.EsCustomFieldValueDTO;
|
|
|
import cn.cslg.pas.common.dto.es.FieldHistoryDTO;
|
|
|
import cn.cslg.pas.common.dto.es.QueryEsCustomFieldDTO;
|
|
|
+import cn.cslg.pas.common.model.request.OrderDTO;
|
|
|
import cn.cslg.pas.common.utils.FormatUtil;
|
|
|
import cn.cslg.pas.common.utils.parseQueryToTree.expressManager;
|
|
|
import cn.cslg.pas.common.utils.parseQueryToTree.operateNode;
|
|
|
import cn.cslg.pas.common.utils.parseQueryToTree.treeNode;
|
|
|
+import cn.cslg.pas.common.vo.EsConfigVO;
|
|
|
import cn.cslg.pas.common.vo.PatentWithIdVO;
|
|
|
import cn.cslg.pas.common.vo.es.EsCustomFieldBatchVO;
|
|
|
import cn.cslg.pas.common.vo.es.FieldHistoryVO;
|
|
@@ -16,6 +19,7 @@ import cn.cslg.pas.domain.business.CustomField;
|
|
|
import cn.cslg.pas.domain.business.TreeNode;
|
|
|
import cn.cslg.pas.domain.es.*;
|
|
|
import cn.cslg.pas.exception.XiaoShiException;
|
|
|
+import cn.cslg.pas.service.business.CommonService;
|
|
|
import cn.cslg.pas.service.business.TreeNodeService;
|
|
|
import cn.cslg.pas.service.query.FormatQueryService;
|
|
|
import co.elastic.clients.elasticsearch.ElasticsearchClient;
|
|
@@ -30,6 +34,7 @@ import co.elastic.clients.elasticsearch.core.SearchRequest;
|
|
|
import co.elastic.clients.elasticsearch.core.SearchResponse;
|
|
|
import co.elastic.clients.elasticsearch.core.search.Hit;
|
|
|
import co.elastic.clients.json.JsonData;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.Value;
|
|
@@ -355,6 +360,30 @@ public class EsCustomFieldService {
|
|
|
Query q = formatQueryService.EsQueryToQuery((operateNode) tree, "patent");
|
|
|
builder.query(q);
|
|
|
|
|
|
+ List<OrderDTO> dtoList = vo.getOrderDTOList();
|
|
|
+ if (!CollectionUtils.isEmpty(dtoList)) {
|
|
|
+ String json = CommonService.readJsonFile("patent.json");
|
|
|
+ List<EsConfigVO> esConfigVOS = JSON.parseArray(json, EsConfigVO.class);
|
|
|
+ for (OrderDTO orderDTO : dtoList) {
|
|
|
+ EsConfigVO configVO = esConfigVOS.stream().filter(item -> item.getField().equals(orderDTO.getOrderBy())).findFirst().orElse(null);
|
|
|
+ if (configVO != null) {
|
|
|
+ if (orderDTO.getOrderType().equals(IfConstant.NO)) {
|
|
|
+ builder.sort(sortOptionsBuilder -> sortOptionsBuilder
|
|
|
+ .field(fieldSortBuilder -> fieldSortBuilder
|
|
|
+ .field(configVO.getEsField()).order(SortOrder.Asc)));
|
|
|
+ } else {
|
|
|
+ builder.sort(sortOptionsBuilder -> sortOptionsBuilder
|
|
|
+ .field(fieldSortBuilder -> fieldSortBuilder
|
|
|
+ .field(configVO.getEsField()).order(SortOrder.Desc)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ builder.sort(sortOptionsBuilder -> sortOptionsBuilder
|
|
|
+ .field(fieldSortBuilder -> fieldSortBuilder
|
|
|
+ .field("patent_no.keyword").order(SortOrder.Desc)));
|
|
|
+ }
|
|
|
+
|
|
|
int number = endNum - startNum;
|
|
|
if (startNum > 0 && endNum > startNum) {
|
|
|
builder.from(startNum-1).size(number);
|
|
@@ -369,7 +398,7 @@ public class EsCustomFieldService {
|
|
|
}
|
|
|
patentNos.addAll(isAdd);
|
|
|
patentNos.removeAll(isDel);
|
|
|
- return patentNos.stream().distinct().collect(Collectors.toList());
|
|
|
+ return patentNos.stream().collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
|