浏览代码

Merge remote-tracking branch 'origin/master'

lwhhszx 1 年之前
父节点
当前提交
a76e87eb96

+ 5 - 0
src/main/java/cn/cslg/pas/common/vo/StarPatentVO.java

@@ -49,6 +49,11 @@ public class StarPatentVO implements Serializable {
     @JSONField(name = "AB")
     @JSONField(name = "AB")
     private String abstractStr;
     private String abstractStr;
     /**
     /**
+     * 权利要求
+     */
+    @JSONField(name = "CL")
+    private String claimStr;
+    /**
      * 申请日
      * 申请日
      */
      */
     @JSONField(name = "AD")
     @JSONField(name = "AD")

+ 9 - 22
src/main/java/cn/cslg/pas/common/vo/es/EsCustomFieldBatchVO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.vo.es;
 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.dto.es.EsCustomFieldValueDTO;
 import lombok.Data;
 import lombok.Data;
 
 
@@ -8,36 +9,22 @@ import java.util.List;
 @Data
 @Data
 public class EsCustomFieldBatchVO {
 public class EsCustomFieldBatchVO {
 
 
+    private Integer projectId;
+
+    private Integer taskId;
+
     private List<String> isAdd;
     private List<String> isAdd;
 
 
-    private List<String> isDel;
+    private List<String> isDelete;
 
 
-    private Integer startNum;
+    private Integer startNumber;
 
 
-    private Integer endNum;
+    private Integer endNumber;
 
 
     private String searchQuery;
     private String searchQuery;
 
 
     private List<EsCustomFieldValueDTO> customFields;
     private List<EsCustomFieldValueDTO> customFields;
 
 
-    //标引使用
-    private Integer projectId;
-
-    private Integer taskId;
+    private List<EsCustomFieldDTO> esCustomFieldDTOS;
 
 
-    private Integer fieldType;
-    /**
-     * 栏位
-     */
-    private String fieldId;
-    /**
-     * 栏位值
-     */
-    private List<String> fieldValue;
-    /**
-     * 操作类型 0取消 1增加 2覆盖
-     */
-    private Integer optionType;
-
-    private List<String> patentNoList;
 }
 }

+ 1 - 1
src/main/java/cn/cslg/pas/controller/PatentController.java

@@ -111,7 +111,7 @@ public class PatentController {
 
 
     }
     }
 
 
-    @Operation(summary = "根据专利号查询权利要求")
+    @Operation(summary = "根据专利号查询内部权利要求")
     @GetMapping("/queryClaimByPatentNo")
     @GetMapping("/queryClaimByPatentNo")
     public Response queryClaimByPatentNo(String patentNo) throws Exception {
     public Response queryClaimByPatentNo(String patentNo) throws Exception {
         SelectClaimDTO dto = esService.selectClaim(patentNo);
         SelectClaimDTO dto = esService.selectClaim(patentNo);

+ 8 - 0
src/main/java/cn/cslg/pas/controller/outApi/PatentStarController.java

@@ -2,6 +2,7 @@ package cn.cslg.pas.controller.outApi;
 
 
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.dto.PatentStarListDTO;
 import cn.cslg.pas.common.dto.PatentStarListDTO;
+import cn.cslg.pas.common.dto.business.SelectClaimDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.service.common.PatentStarApiService;
 import cn.cslg.pas.service.common.PatentStarApiService;
@@ -90,4 +91,11 @@ public class PatentStarController {
     public String getCitedNumByPubNo(String patentNo) throws IOException {
     public String getCitedNumByPubNo(String patentNo) throws IOException {
         return patentStarApiService.getCitedNumByPubNoApi(patentNo);
         return patentStarApiService.getCitedNumByPubNoApi(patentNo);
     }
     }
+
+    @Operation(summary = "根据专利号查询外部权利要求")
+    @GetMapping("/queryExternalClaim")
+    public Response queryExternalClaim(String patentNo) throws Exception {
+        SelectClaimDTO dto = patentStarApiService.selectClaim(patentNo);
+        return Response.success(dto);
+    }
 }
 }

+ 18 - 26
src/main/java/cn/cslg/pas/service/business/es/EsCustomFieldService.java

@@ -274,38 +274,30 @@ public class EsCustomFieldService {
      * @throws Exception
      * @throws Exception
      */
      */
     public List<String> batchAddCustomField(EsCustomFieldBatchVO vo) throws Exception {
     public List<String> batchAddCustomField(EsCustomFieldBatchVO vo) throws Exception {
-        Integer startNum = vo.getStartNum();
-        Integer endNum = vo.getEndNum();
+        Integer startNum = vo.getStartNumber();
+        Integer endNum = vo.getEndNumber();
         List<String> isAdd = vo.getIsAdd();
         List<String> isAdd = vo.getIsAdd();
-        List<String> isDel = vo.getIsDel();
+        List<String> isDel = vo.getIsDelete();
         List<String> ids = new ArrayList<>();
         List<String> ids = new ArrayList<>();
+        List<EsCustomFieldDTO> fieldDTOS = vo.getEsCustomFieldDTOS();
         if (!CollectionUtils.isEmpty(isAdd) && startNum < 1 && endNum < 1) {
         if (!CollectionUtils.isEmpty(isAdd) && startNum < 1 && endNum < 1) {
             isAdd.removeAll(isDel);
             isAdd.removeAll(isDel);
             for (String patentNo : isAdd) {
             for (String patentNo : isAdd) {
-                EsCustomFieldDTO fieldDTO = new EsCustomFieldDTO();
-                fieldDTO.setFieldId(vo.getFieldId());
-                fieldDTO.setFieldType(vo.getFieldType());
-                fieldDTO.setFieldValue(vo.getFieldValue());
-                fieldDTO.setPatentNo(patentNo);
-                fieldDTO.setOptionType(vo.getOptionType());
-                fieldDTO.setProjectId(vo.getProjectId());
-                fieldDTO.setTaskId(vo.getTaskId());
-                String field = this.addCustomField(fieldDTO);
-                ids.add(field);
+                for (EsCustomFieldDTO fieldDTO : fieldDTOS) {
+                    fieldDTO.setPatentNo(patentNo);
+                    String field = this.addCustomField(fieldDTO);
+                    ids.add(field);
+                }
+
             }
             }
         } else if (startNum > 0 && endNum > 0){
         } else if (startNum > 0 && endNum > 0){
             List<String> patentNos = this.getPatentNos(vo);
             List<String> patentNos = this.getPatentNos(vo);
             for (String patentNo : patentNos) {
             for (String patentNo : patentNos) {
-                EsCustomFieldDTO fieldDTO = new EsCustomFieldDTO();
-                fieldDTO.setFieldId(vo.getFieldId());
-                fieldDTO.setFieldType(vo.getFieldType());
-                fieldDTO.setFieldValue(vo.getFieldValue());
-                fieldDTO.setPatentNo(patentNo);
-                fieldDTO.setOptionType(vo.getOptionType());
-                fieldDTO.setProjectId(vo.getProjectId());
-                fieldDTO.setTaskId(vo.getTaskId());
-                String field = this.addCustomField(fieldDTO);
-                ids.add(field);
+                for (EsCustomFieldDTO fieldDTO : fieldDTOS) {
+                    fieldDTO.setPatentNo(patentNo);
+                    String field = this.addCustomField(fieldDTO);
+                    ids.add(field);
+                }
             }
             }
         }
         }
         return ids;
         return ids;
@@ -320,10 +312,10 @@ public class EsCustomFieldService {
     public List<String> getPatentNos(EsCustomFieldBatchVO vo) throws Exception {
     public List<String> getPatentNos(EsCustomFieldBatchVO vo) throws Exception {
         Integer taskId = vo.getTaskId();
         Integer taskId = vo.getTaskId();
         Integer projectId = vo.getProjectId();
         Integer projectId = vo.getProjectId();
-        Integer startNum = vo.getStartNum();
-        Integer endNum = vo.getEndNum();
+        Integer startNum = vo.getStartNumber();
+        Integer endNum = vo.getEndNumber();
         List<String> isAdd = vo.getIsAdd();
         List<String> isAdd = vo.getIsAdd();
-        List<String> isDel = vo.getIsDel();
+        List<String> isDel = vo.getIsDelete();
         String searchCondition = "";
         String searchCondition = "";
         if (StringUtils.isNotEmpty(vo.getSearchQuery())) {
         if (StringUtils.isNotEmpty(vo.getSearchQuery())) {
             searchCondition = vo.getSearchQuery();
             searchCondition = vo.getSearchQuery();

+ 5 - 1
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -23,6 +23,7 @@ import cn.cslg.pas.service.business.CommonService;
 import cn.cslg.pas.service.common.PatentStarApiService;
 import cn.cslg.pas.service.common.PatentStarApiService;
 import cn.cslg.pas.service.query.FormatQueryService;
 import cn.cslg.pas.service.query.FormatQueryService;
 import co.elastic.clients.elasticsearch.ElasticsearchClient;
 import co.elastic.clients.elasticsearch.ElasticsearchClient;
+import co.elastic.clients.elasticsearch._types.SortOptions;
 import co.elastic.clients.elasticsearch._types.SortOrder;
 import co.elastic.clients.elasticsearch._types.SortOrder;
 import co.elastic.clients.elasticsearch._types.aggregations.*;
 import co.elastic.clients.elasticsearch._types.aggregations.*;
 import co.elastic.clients.elasticsearch._types.query_dsl.*;
 import co.elastic.clients.elasticsearch._types.query_dsl.*;
@@ -195,7 +196,10 @@ public class EsService {
         }
         }
         String esField = str;
         String esField = str;
         if (StringUtils.isNotEmpty(esField)) {
         if (StringUtils.isNotEmpty(esField)) {
-            Aggregation hits = AggregationBuilders.topHits(i -> i.size(1));
+            List<SortOptions> options = new ArrayList<>();
+            SortOptions appDate = SortOptions.of(i -> i.field(j -> j.field("app_date").order(SortOrder.Asc)));
+            options.add(appDate);
+            Aggregation hits = AggregationBuilders.topHits(i -> i.size(1).sort(options));
             Aggregation aggregation = new Aggregation.Builder().terms(new TermsAggregation.Builder()
             Aggregation aggregation = new Aggregation.Builder().terms(new TermsAggregation.Builder()
                     .field(esField).build())
                     .field(esField).build())
                     .aggregations(new HashMap() {{
                     .aggregations(new HashMap() {{

+ 58 - 3
src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java

@@ -5,6 +5,7 @@ import cn.cslg.pas.common.config.XDns;
 import cn.cslg.pas.common.dto.PatentColumnDTO;
 import cn.cslg.pas.common.dto.PatentColumnDTO;
 import cn.cslg.pas.common.dto.PatentStarDTO;
 import cn.cslg.pas.common.dto.PatentStarDTO;
 import cn.cslg.pas.common.dto.PatentStarListDTO;
 import cn.cslg.pas.common.dto.PatentStarListDTO;
+import cn.cslg.pas.common.dto.business.SelectClaimDTO;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.importTaskModel.PatentApplicant;
 import cn.cslg.pas.common.model.importTaskModel.PatentApplicant;
@@ -19,6 +20,7 @@ import cn.cslg.pas.domain.es.PersonAddress;
 import cn.cslg.pas.domain.es.Text;
 import cn.cslg.pas.domain.es.Text;
 import cn.cslg.pas.service.WebLoginConfigService;
 import cn.cslg.pas.service.WebLoginConfigService;
 
 
+import cn.cslg.pas.service.importPatent.ImportFromWebToEsService;
 import cn.cslg.pas.service.query.FormatQueryService;
 import cn.cslg.pas.service.query.FormatQueryService;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
@@ -34,7 +36,9 @@ import org.joda.time.format.DateTimeFormat;
 import org.joda.time.format.DateTimeFormatter;
 import org.joda.time.format.DateTimeFormatter;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 
 import java.io.IOException;
 import java.io.IOException;
 import java.util.*;
 import java.util.*;
@@ -53,6 +57,8 @@ import java.util.regex.Pattern;
 @Service
 @Service
 
 
 public class PatentStarApiService {
 public class PatentStarApiService {
+    private ApplicationContext applicationContext;
+    private PatentStarApiService patentStarApiService;
     @Autowired
     @Autowired
     private RetrieveRecordService retrieveRecordService;
     private RetrieveRecordService retrieveRecordService;
     @Autowired
     @Autowired
@@ -767,14 +773,24 @@ public class PatentStarApiService {
             List<Text> abstractList = new ArrayList<>();
             List<Text> abstractList = new ArrayList<>();
             Text text = new Text();
             Text text = new Text();
             text.setTextContent(item.getAbstractStr());
             text.setTextContent(item.getAbstractStr());
+            text.setIfOrigin(true);
             abstractList.add(text);
             abstractList.add(text);
             patentColumnDTO.setAbstractStr(abstractList);
             patentColumnDTO.setAbstractStr(abstractList);
             //装载标题
             //装载标题
             List<Text> titleList = new ArrayList<>();
             List<Text> titleList = new ArrayList<>();
             Text title = new Text();
             Text title = new Text();
             title.setTextContent(item.getName());
             title.setTextContent(item.getName());
+            title.setIfOrigin(true);
             titleList.add(title);
             titleList.add(title);
+//            text.setLanguage(patent.getAppCountry());
             patentColumnDTO.setTitle(titleList);
             patentColumnDTO.setTitle(titleList);
+            //装载权利要求
+            List<Text> claimList = new ArrayList<>();
+            Text claim = new Text();
+            claim.setTextContent(item.getClaimStr());
+            claim.setIfOrigin(true);
+            claimList.add(claim);
+            patentColumnDTO.setClaim(claimList);
             //装载专利号
             //装载专利号
             if (patentColumnDTO.getAppNo() != null) {
             if (patentColumnDTO.getAppNo() != null) {
                 if (patentColumnDTO.getAppNo().trim().startsWith("CN")) {
                 if (patentColumnDTO.getAppNo().trim().startsWith("CN")) {
@@ -800,10 +816,21 @@ public class PatentStarApiService {
             appAddress.setAddress(item.getApplicationAddress());
             appAddress.setAddress(item.getApplicationAddress());
             appAddress.setProvince(item.getProvinceStr());
             appAddress.setProvince(item.getProvinceStr());
             patentColumnDTO.setApplicantAddr(appAddress);
             patentColumnDTO.setApplicantAddr(appAddress);
+            //装载ipc(主)分类号
+            PatentClassify mipcClassify = new PatentClassify();
+            mipcClassify.setLevel5(item.getMainIpc());
+            patentColumnDTO.setMipc(mipcClassify);
             //装载ipc分类号
             //装载ipc分类号
-            PatentClassify ipcClassify = new PatentClassify();
-            ipcClassify.setLevel1(item.getMainIpc());
-            patentColumnDTO.setMipc(ipcClassify);
+            List<PatentClassify> classifies = new ArrayList<>();
+            String[] split = item.getIpcListStr().split(";");
+            for (String ipc : split) {
+                PatentClassify ipcClassify = new PatentClassify();
+                ipcClassify.setLevel5(ipc);
+            }
+            patentColumnDTO.setIpc(classifies);
+            //获取摘要附图
+            String pictureApi = this.getPictureApi(patentColumnDTO.getAppNo());
+            patentColumnDTO.setPictureGuid(pictureApi);
             //装载公开日
             //装载公开日
             if (item.getPublicDate() != null && !item.getPublicDate().trim().equals("")) {
             if (item.getPublicDate() != null && !item.getPublicDate().trim().equals("")) {
                 patentColumnDTO.setPublicDate(DateUtils.strToDate(item.getPublicDate()));
                 patentColumnDTO.setPublicDate(DateUtils.strToDate(item.getPublicDate()));
@@ -848,4 +875,32 @@ public class PatentStarApiService {
 
 
     }
     }
 
 
+    /**
+     * 根据专利号查询外部权利要求
+     * @param patentNo
+     * @return
+     * @throws IOException
+     */
+    public SelectClaimDTO selectClaim(String patentNo) throws IOException {
+        PatentStarListDTO patentStarListDTO = new PatentStarListDTO();
+        String condition = "AN=" + patentNo;
+        patentStarListDTO.setCurrentQuery(condition);
+        patentStarListDTO.setDBType("CN");
+        patentStarListDTO.setOrderBy("AD");
+        patentStarListDTO.setOrderByType("DESC");
+        patentStarListDTO.setPageNum(1);
+        patentStarListDTO.setRowCount(10);
+        Records records = this.patentStarSearchLocal(patentStarListDTO);
+        Object data = records.getData();
+        String s = JSONArray.toJSONString(data);
+        List<PatentColumnDTO> list = JSONArray.parseArray(s, PatentColumnDTO.class);
+        SelectClaimDTO dto = new SelectClaimDTO();
+        if (!CollectionUtils.isEmpty(list)) {
+            for (PatentColumnDTO columnDTO : list) {
+                dto.setClaimContent(columnDTO.getClaim());
+            }
+        }
+        return dto;
+    }
+
 }
 }

+ 6 - 16
src/test/java/cn/cslg/pas/service/EventServiceTests.java

@@ -374,22 +374,12 @@ public class EventServiceTests {
         return replace;
         return replace;
     }
     }
 
 
-@Test
+    @Test
     public void aaaaa() throws Exception {
     public void aaaaa() throws Exception {
-    List<String> a = new ArrayList<> ();
-    a.add("a");
-    a.add("b");
-    a.add("b");
-    a.add("d");
-    a.add("e");
-    List<String> b = new ArrayList<> ();
-    b.add("a");
-    b.add("b");
-
-    System.out.println(a);
-    a.removeAll(b);
-    boolean b1 = a.removeAll(b);
-    System.out.println(b1);
-    System.out.println(a);
+        String s = "C07K14/135;C12N15/45;A61K39/155;A61P31/14;C12R1/93";
+        String[] split = s.split(";");
+        for (String s1 : split) {
+            System.out.println(s1);
+        }
     }
     }
 }
 }