zero vor 1 Jahr
Ursprung
Commit
acb5039ea9

+ 14 - 0
src/main/java/cn/cslg/pas/common/dto/ExternalLegalInfoDTO.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.common.dto;
+
+import cn.cslg.pas.domain.es.LegalEvent;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ExternalLegalInfoDTO {
+
+    private List<String> legalStatus;
+
+    private List<LegalEvent> legalEvents;
+}

+ 3 - 0
src/main/java/cn/cslg/pas/common/vo/es/EsCustomFieldBatchVO.java

@@ -2,6 +2,7 @@ package cn.cslg.pas.common.vo.es;
 
 import cn.cslg.pas.common.dto.es.EsCustomFieldDTO;
 import cn.cslg.pas.common.dto.es.EsCustomFieldValueDTO;
+import cn.cslg.pas.common.model.request.OrderDTO;
 import lombok.Data;
 
 import java.util.List;
@@ -23,6 +24,8 @@ public class EsCustomFieldBatchVO {
 
     private String searchQuery;
 
+    private List<OrderDTO> orderDTOList;
+
     private List<EsCustomFieldValueDTO> customFields;
 
     private List<EsCustomFieldDTO> esCustomFieldDTOS;

+ 0 - 9
src/main/java/cn/cslg/pas/controller/CustomFieldController.java

@@ -145,13 +145,4 @@ public class CustomFieldController {
         records.setData(list);
         return Response.success(records);
     }
-
-    @PostMapping("/select")
-    @Operation(summary = "标引/批量标引添加")
-    public Response select(@RequestBody EsCustomFieldBatchVO vo) throws Exception {
-        List<String> list = esCustomFieldService.getPatentNos(vo);
-        Records records = new Records();
-        records.setData(list);
-        return Response.success(records);
-    }
 }

+ 5 - 7
src/main/java/cn/cslg/pas/controller/outApi/PatentStarController.java

@@ -1,10 +1,7 @@
 package cn.cslg.pas.controller.outApi;
 
 import cn.cslg.pas.common.core.base.Constants;
-import cn.cslg.pas.common.dto.ExternalLegalStatusDTO;
-import cn.cslg.pas.common.dto.InnerPatentPdfDTO;
-import cn.cslg.pas.common.dto.PatentColumnDTO;
-import cn.cslg.pas.common.dto.PatentStarListDTO;
+import cn.cslg.pas.common.dto.*;
 import cn.cslg.pas.common.dto.business.SelectClaimDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.utils.Response;
@@ -22,6 +19,7 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -152,8 +150,8 @@ public class PatentStarController {
 
     @GetMapping("/getLegalStatus")
     @Operation(summary = "外部获取法律状态")
-    public Response getLegalStatus(String appNo) throws IOException {
-        List<String> statusDTOS = patentStarApiService.getLegalStatus(appNo);
-        return Response.success(statusDTOS);
+    public Response getLegalStatus(String appNo) throws ParseException {
+        ExternalLegalInfoDTO infoDTO = patentStarApiService.getLegalStatus(appNo);
+        return Response.success(infoDTO);
     }
 }

+ 30 - 1
src/main/java/cn/cslg/pas/service/business/es/EsCustomFieldService.java

@@ -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());
     }
 
 

+ 31 - 8
src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java

@@ -15,10 +15,7 @@ import cn.cslg.pas.common.vo.StarPatentVO;
 import cn.cslg.pas.common.vo.business.PatentNoVO;
 import cn.cslg.pas.domain.WebLoginConfig;
 import cn.cslg.pas.domain.business.RetrieveRecord;
-import cn.cslg.pas.domain.es.PatentClassify;
-import cn.cslg.pas.domain.es.PatentPerson;
-import cn.cslg.pas.domain.es.PersonAddress;
-import cn.cslg.pas.domain.es.Text;
+import cn.cslg.pas.domain.es.*;
 import cn.cslg.pas.service.WebLoginConfigService;
 
 import cn.cslg.pas.service.importPatent.ImportFromWebToEsService;
@@ -50,6 +47,8 @@ import java.io.File;
 import java.io.IOException;
 import java.io.Reader;
 import java.io.StringReader;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
@@ -1152,15 +1151,39 @@ public class PatentStarApiService {
         return this.getPictureApi(appNo);
     }
 
-    public List<String> getLegalStatus(String appNo) {
+    /**
+     * @param appNo
+     * @return
+     */
+    public ExternalLegalInfoDTO getLegalStatus(String appNo) throws ParseException {
+        ExternalLegalInfoDTO infoDTO = new ExternalLegalInfoDTO();
         List<String> list = new ArrayList<>();
+        List<LegalEvent> legalEvents = new ArrayList<>();
         String cnLegalApi = this.getCnLegalApi(appNo);
         if (StringUtils.isNotEmpty(cnLegalApi)) {
             List<ExternalLegalStatusDTO> statusDTOS = JSONArray.parseArray(cnLegalApi, ExternalLegalStatusDTO.class);
-            if (CollectionUtils.isEmpty(statusDTOS)) {
-                list = statusDTOS.stream().map(ExternalLegalStatusDTO::getLegalStatus).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(statusDTOS)) {
+                List<ExternalLegalStatusDTO> statusList = statusDTOS.stream().sorted(Comparator.comparing(ExternalLegalStatusDTO::getLegalDate).reversed()).collect(Collectors.toList());
+                if (!CollectionUtils.isEmpty(statusList)) {
+                    ExternalLegalStatusDTO statusDTO = statusList.get(0);
+                    list.add(statusDTO.getLegalStatus());
+                }
+                for (ExternalLegalStatusDTO dto : statusDTOS) {
+                    LegalEvent event = new LegalEvent();
+                    event.setCode(dto.getLegalCode());
+                    event.setName(dto.getLegalStatusInfo());
+                    event.setDescription(dto.getJUANQI());
+                    if (StringUtils.isNotEmpty(dto.getLegalDate())) {
+                        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
+                        Date date = format.parse(dto.getLegalDate());
+                        event.setEventDate(date);
+                    }
+                    legalEvents.add(event);
+                }
             }
         }
-        return list;
+        infoDTO.setLegalStatus(list);
+        infoDTO.setLegalEvents(legalEvents);
+        return infoDTO;
     }
 }