lwhhszx il y a 1 an
Parent
commit
843e42176d
24 fichiers modifiés avec 376 ajouts et 245 suppressions
  1. 4 4
      src/main/java/cn/cslg/pas/common/config/WebSocketConfig.java
  2. 0 5
      src/main/java/cn/cslg/pas/common/dto/UploadPatentWebDTO.java
  3. 53 35
      src/main/java/cn/cslg/pas/common/utils/esDataForm/AddressSplitter.java
  4. 1 1
      src/main/java/cn/cslg/pas/common/utils/esDataForm/PatentClassifySplitter.java
  5. 2 1
      src/main/java/cn/cslg/pas/common/vo/ChinaLeagalStatus.java
  6. 4 0
      src/main/java/cn/cslg/pas/common/vo/ImportTaskAMVO.java
  7. 6 2
      src/main/java/cn/cslg/pas/common/vo/StarPatentVO.java
  8. 0 22
      src/main/java/cn/cslg/pas/domain/es/EventMessage.java
  9. 23 2
      src/main/java/cn/cslg/pas/domain/es/LegalEvent.java
  10. 28 4
      src/main/java/cn/cslg/pas/service/business/ImportTaskService.java
  11. 68 46
      src/main/java/cn/cslg/pas/service/business/es/EsService.java
  12. 5 5
      src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java
  13. 24 21
      src/main/java/cn/cslg/pas/service/importPatent/GetCataloguingFromWebThread.java
  14. 0 2
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentFromExcelThread.java
  15. 25 15
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentPDFFromWebThread.java
  16. 9 5
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentPictureFromExcelThread.java
  17. 17 6
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentPictureFromWebThread.java
  18. 18 12
      src/main/java/cn/cslg/pas/service/importPatent/GetRightAndFullTextFromWebThread.java
  19. 25 13
      src/main/java/cn/cslg/pas/service/importPatent/ImportFromWebToEsService.java
  20. 49 39
      src/main/java/cn/cslg/pas/service/importPatent/SavePatentToEsThread.java
  21. 2 0
      src/main/java/cn/cslg/pas/service/importPatent/SchedulingTaskService.java
  22. 9 1
      src/test/java/cn/cslg/pas/service/CommonServiceTests.java
  23. 3 3
      src/test/java/cn/cslg/pas/service/EventServiceTests.java
  24. 1 1
      src/test/java/cn/cslg/pas/service/PatentStarServiceTests.java

+ 4 - 4
src/main/java/cn/cslg/pas/common/config/WebSocketConfig.java

@@ -6,8 +6,8 @@ import org.springframework.web.socket.server.standard.ServerEndpointExporter;
 
 @Configuration
 public class WebSocketConfig {
-//    @Bean
-//    public ServerEndpointExporter serverEndpointExporter() {
-//        return new ServerEndpointExporter();
-//    }
+    @Bean
+    public ServerEndpointExporter serverEndpointExporter() {
+        return new ServerEndpointExporter();
+    }
 }

+ 0 - 5
src/main/java/cn/cslg/pas/common/dto/UploadPatentWebDTO.java

@@ -14,10 +14,5 @@ public class UploadPatentWebDTO {
     private Integer counter;
     private Integer totalCounter;
     private PictureData pictureData;
-    private Boolean ifAddPatent;
-    private Boolean ifAddPicture;
-    private Boolean shouldAddPicture;
-    private Boolean shouldAddPDF;
-    private Boolean ifAddPDF;
     private Integer haveSaveCounter;
 }

+ 53 - 35
src/main/java/cn/cslg/pas/common/utils/esDataForm/AddressSplitter.java

@@ -1,55 +1,73 @@
 package cn.cslg.pas.common.utils.esDataForm;
 
 import cn.cslg.pas.domain.es.PatentClassify;
+import cn.cslg.pas.domain.es.PersonAddress;
 import org.apache.commons.lang3.StringUtils;
 
 import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 public class AddressSplitter {
-    public static void main(String[] args) {
-        String address = "浙江省杭州市西湖区文一西路";
-       List<String> strings = splitAddress(address);
-       System.out.println(strings);
-    }
-
-    public static List<String> splitAddress(String address) {
-        List<String> addresses =new ArrayList<>();
-        // 定义省、市、区的正则表达式
-        String provinceRegex = "(?<=省|自治区|特别行政区).+?(?=(市|地区|州))";
-        String cityRegex = "(?<=市).+?(?=(区|县|市|自治州))";
-        String districtRegex = "(?<=(市|区|县|镇)).+?(?=(街道|乡|村))";
 
+    public static PersonAddress splitAddress(String address, String provinceStr) {
+//        List<String> addresses = new ArrayList<>();
+        PersonAddress personAddress =null;
         // 初始化省、市、区
         String province = "";
-        String city = "";
-        String district = "";
-
-        // 匹配省份
-        String[] provinceArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(address, "省");
-        if (provinceArray.length > 1) {
-            province = provinceArray[0] + "省";
-            address = provinceArray[1];
-        }
 
-        // 匹配城市
-        String[] cityArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(address, "市");
-        if (cityArray.length > 1) {
-            city = cityArray[0] + "市";
-            address = cityArray[1];
+        Pattern pattern = Pattern.compile("\\((.*?)\\)"); // 匹配(文本)形式的括号
+        Matcher matcher = pattern.matcher(provinceStr);
+        while (matcher.find()) {
+            province = matcher.group(1);// 输出括号内的文本
         }
-
-        // 匹配区县
-        String[] districtArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(address, "区");
-        if (districtArray.length > 1) {
-            district = districtArray[0] + "区";
+        if (!province.equals("")) {
+            personAddress =new PersonAddress();
+            String p = provinceStr.substring(0, 2);
+            Boolean f = AddressSplitter.isNumeric(p);
+            if (f) {
+               personAddress.setAddress(address);
+               personAddress.setProvince(province);
+            }
+            else {
+                personAddress.setAddress(address);
+                personAddress.setCountry(province);
+            }
         }
 
+//        // 匹配省份
+//        String[] provinceArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(address, "省");
+//        if (provinceArray.length > 1) {
+//            province = provinceArray[0] + "省";
+//            address = provinceArray[1];
+//        }
+//
+//        // 匹配城市
+//        String[] cityArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(address, "市");
+//        if (cityArray.length > 1) {
+//            city = cityArray[0] + "市";
+//            address = cityArray[1];
+//        }
+//
+//        // 匹配区县
+//        String[] districtArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(address, "区");
+//        if (districtArray.length > 1) {
+//            district = districtArray[0] + "区";
+//        }
+
         // 输出结果
-        addresses.add(province);
-        addresses.add(city);
-        addresses.add(district);
-       return addresses;
+//        addresses.add(province);
+//        addresses.add(city);
+//        addresses.add(district);
+        return personAddress;
+
+    }
+
 
+    public static boolean isNumeric(String str) {
+        return str.matches("-?\\d+(\\.\\d+)?");  // 正则表达式
     }
 }

+ 1 - 1
src/main/java/cn/cslg/pas/common/utils/esDataForm/PatentClassifySplitter.java

@@ -31,7 +31,7 @@ public class PatentClassifySplitter {
             patentClassify.setLevel3(level3);
 
             if (length >= 8) {
-                level4 = classify.substring(0, classify.indexOf("/") + 1) + "00";
+                level4 = classify.substring(0, classify.indexOf("/") );
                 patentClassify.setLevel4(level4);
                 level5 = classify;
                 patentClassify.setLevel5(level5);

+ 2 - 1
src/main/java/cn/cslg/pas/common/vo/ChinaLeagalStatus.java

@@ -4,6 +4,7 @@ import lombok.Data;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * 专利之星获得中国专利法律状态接口实体类
@@ -29,7 +30,7 @@ public class ChinaLeagalStatus implements Serializable {
     /**
      * 法律状态日期
      */
-    private String LegalDate;
+    private Date LegalDate;
     /**
      * 法律状态
      */

+ 4 - 0
src/main/java/cn/cslg/pas/common/vo/ImportTaskAMVO.java

@@ -92,4 +92,8 @@ public class ImportTaskAMVO {
     private Integer shouldSaveCounter;
 
     private Integer haveSaveCounter;
+
+
+    private Integer shouldSaveMessageCounter;
+    private Integer haveSaveMessageCounter;
 }

+ 6 - 2
src/main/java/cn/cslg/pas/common/vo/StarPatentVO.java

@@ -133,11 +133,15 @@ public class StarPatentVO implements Serializable {
     private String priorityDate;
 
     /**
-     * 优先权日
+     * 引用专利
      */
     @JSONField(name = "CC")
     private String quoteNos;
-
+    /**
+     * 省?国家
+     */
+    @JSONField(name = "CO")
+    private String provinceStr;
     private List<PatentInventor> inventor;
     private List<String> ipcList;
     private List<PatentApplicant> applicant;

+ 0 - 22
src/main/java/cn/cslg/pas/domain/es/EventMessage.java

@@ -7,27 +7,5 @@ import java.util.List;
 
 @Data
 public class EventMessage {
-    /**
-     * code码
-     */
-    @JsonProperty("code")
-    private String code;
 
-    /**
-     * 名称
-     */
-    @JsonProperty("name")
-    private String name;
-
-    /**
-     * 描述
-     */
-    @JsonProperty("description")
-    private String description;
-
-    /**
-     * 发生时间
-     */
-    @JsonProperty("event_date")
-    private String eventDate;
 }

+ 23 - 2
src/main/java/cn/cslg/pas/domain/es/LegalEvent.java

@@ -7,6 +7,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.springframework.stereotype.Component;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -18,9 +19,29 @@ import java.util.List;
 @NoArgsConstructor
 public class LegalEvent {
 
+    /**
+     * code码
+     */
+    @JsonProperty("code")
+    private String code;
+
+    /**
+     * 名称
+     */
+    @JsonProperty("name")
+    private String name;
 
-    @JsonProperty("event_message")
-    private List<EventMessage> eventMessages;
+    /**
+     * 描述
+     */
+    @JsonProperty("description")
+    private String description;
+
+    /**
+     * 发生时间
+     */
+    @JsonProperty("event_date")
+    private Date eventDate;
     /**
      * 专利号
      */

+ 28 - 4
src/main/java/cn/cslg/pas/service/business/ImportTaskService.java

@@ -20,13 +20,13 @@ import cn.cslg.pas.service.common.PatentStarApiService;
 import cn.cslg.pas.service.importPatent.SchedulingTaskService;
 import cn.cslg.pas.service.permissions.PermissionService;
 import cn.cslg.pas.service.query.FormatQueryService;
-import cn.hutool.cron.task.Task;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.compress.utils.IOUtils;
+import org.apache.poi.ss.usermodel.Sheet;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -184,8 +184,7 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
             } catch (Exception e) {
                 throw new XiaoShiException("文件错误");
             }
-        }
-        else if (importTaskCondition.getType().equals(4)) {
+        } else if (importTaskCondition.getType().equals(4)) {
             try {
                 PatentStarListDTO patentStarListDto = new PatentStarListDTO()
                         .setCurrentQuery(importTaskCondition.getSearchCondition())
@@ -206,8 +205,33 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                 throw new XiaoShiException("文件错误");
             }
         } else if (importTaskCondition.getType().equals(2) || importTaskCondition.getType().equals(3)) {
+            List<String> patentNos = new ArrayList<>();
+            if (importTaskCondition.getType().equals(2)) {
+                patentNos = Arrays.asList(importTaskCondition.getSearchCondition().split("[,|,]"));
+            } else if (importTaskCondition.getType().equals(3)) {
+                try {
+                    String res = fileManagerService.getSystemFileFromFMS(Arrays.asList(importTaskCondition.getFileGuid()));
+                    List<SystemFile> systemFiles = JSONArray.parseArray(res, SystemFile.class);
+                    SystemFile systemFile = systemFiles.get(0);
+                    String suffix = systemFile.getFileName().substring(systemFile.getFileName().lastIndexOf("."));
+                    //调用文件系统取出文件接口,获得文件流
+                    byte[] bytes = fileManagerService.downloadSystemFileFromFMS(importTaskCondition.getFileGuid());
+                    //创建临时文件tempFile,并将文件读取到tempFile
+                    File tempFile = File.createTempFile(systemFile.getFileName() + "temp", suffix);
+                    try (
+                            InputStream inputStream = new ByteArrayInputStream(bytes);
+                            FileOutputStream outputStream = new FileOutputStream(tempFile)
+                    ) {
+                        IOUtils.copy(inputStream, outputStream); // 将输入流复制到临时文件
+                    }
+                    Sheet sheet = ReadExcelUtils.readExcel(tempFile);
+                    patentNos = ReadExcelUtils.getPatentNoFromExcel(sheet);
+
+                } catch (Exception e) {
+                }
 
-
+            }
+            importTask.setAllNum(patentNos.size());
         }
         importTask.setProgress(0.0);
         String taskName = this.setImportTaskName(importTaskCondition, personnelVO.getName());

+ 68 - 46
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -321,6 +321,32 @@ public class EsService {
     }
 
     /**
+     * 查询是否存在专利
+     *
+     * @param parentId
+     * @param projectId
+     * @return
+     */
+    public Boolean ifInTask(String parentId, Integer projectId, Integer taskId) throws IOException {
+        boolean flag = false;
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("patent");
+
+        Query q1 = QueryBuilders.term(t -> t.field("import_task.project_id").value(projectId));
+        Query q3 = QueryBuilders.term(t -> t.field("import_task.task_id").value(projectId));
+        Query q2 = QueryBuilders.parentId(parent -> parent.type("import_task").id(parentId));
+        Query bool = QueryBuilders.bool(i -> i.must(q1, q2, q3));
+        builder.query(bool);
+        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+        long total = response.hits().total().value();
+        if (total > 0) {
+            flag = true;
+        }
+        return flag;
+    }
+
+    /**
      * 查询同族
      *
      * @param nos
@@ -369,7 +395,9 @@ public class EsService {
             List<FamilyPatent> familyPatents = patentFamilyMessage.getPatent();
             for (String no : nos) {
                 FamilyPatent familyPatent = familyPatents.stream()
-                        .filter(item -> item.getAppNo().equals(no) || item.getPublicNo().equals(no) || item.getGrantNo().equals(no))
+                        .filter(item -> item.getAppNo() != null && item.getAppNo().equals(no) ||
+                                item.getPublicNo() != null && item.getPublicNo().equals(no) ||
+                                item.getGrantNo() != null && item.getGrantNo().equals(no))
                         .findFirst().orElse(null);
                 if (familyPatent == null) {
                     notInNos.add(no);
@@ -646,64 +674,58 @@ public class EsService {
     }
 
     public String addEsLegalEvent(String patentNo) {
-        LegalEvent legalEvent =null;
-        String id="";
+        LegalEvent legalEvent = null;
+        String id = "";
 
         //根据专利号查询
         StarPatentVO starPatentVO = patentStarApiService.getPatentByNo(patentNo);
         if (starPatentVO == null) {
             return null;
         }
-        //根据专利号查询是否有引用信息
-        SearchRequest.Builder builder = new SearchRequest.Builder();
-
-        //设置查询索引
-        builder.index("legal_event");
-        //申请号
-        Query q1 = QueryBuilders.term(t -> t.field("app_no").value(starPatentVO.getApplicationNo()));
-        Query bool = QueryBuilders.bool(i -> i.must(q1));
-        builder.query(bool);
-        SearchResponse<LegalEvent> response = null;
-        try {
-            response = client.search(builder.build(), LegalEvent.class);
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        long total = response.hits().total().value();
-        if (total > 0) {
-            legalEvent = response.hits().hits().get(0).source();
-            id = response.hits().hits().get(0).id();
-        }
-
         String cnLegalApiStr = patentStarApiService.getCnLegalApi(starPatentVO.getRowApplicationNo());
         if (cnLegalApiStr != null && !cnLegalApiStr.equals("")) {
+            List<LegalEvent> legalEvents = new ArrayList<>();
+            //根据专利号查询是否有引用信息
+            SearchRequest.Builder builder = new SearchRequest.Builder();
+            //设置查询索引
+            builder.index("legal_event");
+            //申请号
+            Query q1 = QueryBuilders.term(t -> t.field("app_no").value(starPatentVO.getApplicationNo()));
+            Query bool = QueryBuilders.bool(i -> i.must(q1));
+            builder.query(bool);
+            SearchResponse<LegalEvent> response = null;
+            try {
+                response = client.search(builder.build(), LegalEvent.class);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            long total = response.hits().total().value();
+            if (total > 0) {
+                response.hits().hits().forEach(item -> {
+                    legalEvents.add(item.source());
+                });
+            }
+
             List<ChinaLeagalStatus> chinaLeagalStatuses = JSON.parseArray(cnLegalApiStr, ChinaLeagalStatus.class);
-            List<EventMessage> eventMessages = new ArrayList<>();
             chinaLeagalStatuses.forEach(item -> {
-                EventMessage eventMessage = new EventMessage();
-                eventMessage.setEventDate(item.getLegalDate());
-                eventMessage.setCode(item.getLegalCode());
-                eventMessage.setDescription(item.getLegalStatusInfo());
-                eventMessages.add(eventMessage);
+                if (legalEvents.size() > 0) {
+                    LegalEvent tem = legalEvents.stream().filter(em -> em.getEventDate() != null && em.getEventDate().compareTo(item.getLegalDate()) == 0).findFirst().orElse(null);
+                    if (tem == null) {
+                        LegalEvent legalEvent1 = new LegalEvent();
+                        legalEvent1.setEventDate(item.getLegalDate());
+                        legalEvent1.setCode(item.getLegalCode());
+                        legalEvent1.setAppNo(starPatentVO.getApplicationNo());
+                        legalEvent1.setDescription(item.getLegalStatusInfo());
+                        legalEvent1.setName(item.getLegalStatus());
+                        try {
+                            this.addLegalEvent(legalEvent1);
+                        } catch (Exception e) {
+                        }
+                    }
+                }
             });
 
 
-         if(legalEvent==null){
-             try {
-                 legalEvent =new LegalEvent();
-                 legalEvent.setAppNo(starPatentVO.getApplicationNo());
-                 legalEvent.setEventMessages(eventMessages);
-                 this.addLegalEvent(legalEvent);
-             } catch (Exception e) {
-                 e.printStackTrace();
-             }
-         }
-         else {
-             legalEvent.setAppNo(starPatentVO.getApplicationNo());
-             legalEvent.setEventMessages(eventMessages);
-             this.updateLegalEvent(legalEvent,id);
-
-         }
         }
         return "";
     }

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

@@ -226,10 +226,10 @@ public class PatentStarApiService {
 //        }
         Records records = new Records();
         records.setRetrieveRecordId(retrieveRecord.getId());
-        records.setCurrent((Long) map.get("current"));
-        records.setSize((Long) map.get("size"));
+        records.setCurrent(Long.parseLong(map.get("current").toString()));
+        records.setSize(Long.parseLong(map.get("size").toString()));
         records.setData(map.get("records"));
-        records.setTotal((Long) map.get("total"));
+        records.setTotal(Long.parseLong(map.get("total").toString()));
         return records;
     }
 
@@ -434,7 +434,7 @@ public class PatentStarApiService {
         try {
             Response response = okHttpClient.newCall(request).execute();
             // 判断请求是否成功
-            if (response.isSuccessful()) {
+            if (response.isSuccessful()&&response.code()==200) {
                 // 打印服务端返回结果
                 return Objects.requireNonNull(response.body()).string();
             }
@@ -856,7 +856,7 @@ public class PatentStarApiService {
 
     public StarPatentVO getPatentByNo(String patentNo) {
         StarPatentVO starPatentVO = null;
-        String condition ="AN=(" + patentNo + ") OR PN=(" + patentNo + ") OR GN=(" + patentNo + ")";
+        String condition = "AN=(" + patentNo + ") OR PN=(" + patentNo + ") OR GN=(" + patentNo + ")";
         String dbType = "CN";
         if (!patentNo.startsWith("CN")) {
             dbType = "WD";

+ 24 - 21
src/main/java/cn/cslg/pas/service/importPatent/GetCataloguingFromWebThread.java

@@ -46,16 +46,21 @@ public class GetCataloguingFromWebThread extends Thread {
 
     @Override
     public void run() {
-        try {
-            while ((!ifProductAll || uploadPatentWebDTOs.size() > 0) && importTaskAMVO.getState().equals(1)) {
 
+        while ((!ifProductAll || uploadPatentWebDTOs.size() > 0) && importTaskAMVO.getState().equals(1)) {
+
+            try {
                 //判断任务队列是否有任务,若没有则线程等待唤醒
                 if (uploadPatentWebDTOs.size() == 0) {
                     taskLock.lock();
                     taskCondition.await();
                 }
+            }catch (Exception e){
+
+            }
+            UploadPatentWebDTO  uploadPatentWebDTO =   uploadPatentWebDTOs.remove(0);
+            try{
                 //根据专利申请号查询著录并装载信息
-                UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOs.remove(0);
                 StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
                 String patentZhuLuStr = "";
                 patentStarApiService = applicationContext.getBean(PatentStarApiService.class);
@@ -67,7 +72,7 @@ public class GetCataloguingFromWebThread extends Thread {
                 if (patentZhuLuStr != null && !patentZhuLuStr.trim().equals("") && !patentZhuLuStr.equals("{}") && !patentZhuLuStr.contains("请求不合法")) {
                     this.loadPatent(uploadPatentWebDTO);
                     if (starPatentVO.getApplicationNo().startsWith("CN")) {
-                        this.loadCNPatent(patentZhuLuStr, uploadPatentWebDTO.getPatent());
+                        this.loadCNPatent(patentZhuLuStr, uploadPatentWebDTO.getPatent(),starPatentVO);
                     } else {
                         this.loadWorldPatent(patentZhuLuStr, uploadPatentWebDTO.getPatent());
                     }
@@ -79,7 +84,10 @@ public class GetCataloguingFromWebThread extends Thread {
                 String familyPatentNoStr = patentStarApiService.getFamilyByPubNoApi(uploadPatentWebDTO.getPatent().getPublicNo());
                 if (!familyPatentNoStr.equals("no data")) {
                     FamilyPatentNo familyPatentNo = JSON.parseObject(familyPatentNoStr, FamilyPatentNo.class);
-                    List<String> familyPatentNos = Arrays.asList(familyPatentNo.getFamilyinfo().split(";"));
+                    List<String> familyPatentNos = new ArrayList<>();
+                    if (familyPatentNo != null && familyPatentNo.getFamilyinfo() != null) {
+                        familyPatentNos = Arrays.asList(familyPatentNo.getFamilyinfo().split(";"));
+                    }
                     if (familyPatentNos.size() != 0) {
                         EsPatentFamilyDTO esPatentFamilyDTO = esService.addEsPatentFamily(familyPatentNos, "inpadoc");
                         uploadPatentWebDTO.getPatent().setInpadocFamilyNum(esPatentFamilyDTO.getFamilyNum());
@@ -88,21 +96,22 @@ public class GetCataloguingFromWebThread extends Thread {
                 }
 
                 //添加法律事务
-                esService.addEsLegalEvent(uploadPatentWebDTO.getPatent().getPublicNo());
+                esService.addEsLegalEvent(uploadPatentWebDTO.getStarPatentVO().getPublicNo());
 
                 //添加引用专利
                 String nos = starPatentVO.getQuoteNos();
-                if(nos!=null) {
+                if (nos != null) {
                     List<String> quotedNos = this.reQuotedNos(nos);
                     esService.addEsQuotePatent(uploadPatentWebDTO.getPatent().getPublicNo(), quotedNos);
                 }
                 //加入es保存队列
                 importFromWebToEsService.savePatentToEs(uploadPatentWebDTO);
+            } catch (Exception e) {
+                importFromWebToEsService.savePatentToEs(uploadPatentWebDTO);
+                e.printStackTrace();
             }
-            taskThread.awakeTaskThread();
-        } catch (Exception e) {
-            e.printStackTrace();
         }
+        importFromWebToEsService.setPatentToEsProductAll();
     }
 
 
@@ -110,6 +119,7 @@ public class GetCataloguingFromWebThread extends Thread {
         this.importTaskAMVO = taskThread.getImportTaskAMVO();
         this.importFromWebToEsService = importFromWebToEsService;
         this.applicationContext = taskThread.getApplicationContext();
+        this.taskThread =taskThread;
     }
 
     public void awakeTask(UploadPatentWebDTO uploadPatentWebDTO) {
@@ -146,11 +156,7 @@ public class GetCataloguingFromWebThread extends Thread {
         //装载申请人地址
         if (starPatentVO.getApplicationAddress() != null && !starPatentVO.getApplicationAddress().equals("")) {
             String applicationAddress = starPatentVO.getApplicationAddress();
-            List<String> addresses = AddressSplitter.splitAddress(applicationAddress);
-            PersonAddress personAddress = new PersonAddress();
-            personAddress.setProvince(addresses.get(0));
-            personAddress.setCity(addresses.get(1));
-            personAddress.setDistrict(addresses.get(2));
+            PersonAddress personAddress  = AddressSplitter.splitAddress(applicationAddress,starPatentVO.getProvinceStr());
             patent.setApplicantAddr(personAddress);
         }
 
@@ -307,7 +313,7 @@ public class GetCataloguingFromWebThread extends Thread {
     }
 
     //装载中国专利
-    private void loadCNPatent(String chinaPatentZhuLuStr, Patent patent) {
+    private void loadCNPatent(String chinaPatentZhuLuStr, Patent patent,StarPatentVO starPatentVO) {
         patent.setPatentNo(patent.getAppNo());
         if (chinaPatentZhuLuStr != null && !chinaPatentZhuLuStr.trim().equals("") && !chinaPatentZhuLuStr.equals("{}") && !chinaPatentZhuLuStr.contains("请求不合法")) {
             List<ChinaPatentZhuLu> chinaPatentZhuLus = JSON.parseArray(chinaPatentZhuLuStr, ChinaPatentZhuLu.class);
@@ -315,11 +321,8 @@ public class GetCataloguingFromWebThread extends Thread {
             //装载申请人地址
             if (patent.getApplicantAddr() == null) {
                 if (chinaPatentZhuLu.getDZ() != null && !chinaPatentZhuLu.getDZ().equals("")) {
-                    List<String> addresses = AddressSplitter.splitAddress(chinaPatentZhuLu.getDZ());
-                    PersonAddress personAddress = new PersonAddress();
-                    personAddress.setProvince(addresses.get(0));
-                    personAddress.setCity(addresses.get(1));
-                    personAddress.setDistrict(addresses.get(2));
+                    PersonAddress personAddress  = AddressSplitter.splitAddress(chinaPatentZhuLu.getDZ(),starPatentVO.getProvinceStr());
+                    patent.setApplicantAddr(personAddress);
                     patent.setApplicantAddr(personAddress);
                 }
             }

+ 0 - 2
src/main/java/cn/cslg/pas/service/importPatent/GetPatentFromExcelThread.java

@@ -70,8 +70,6 @@ public class GetPatentFromExcelThread extends Thread {
                 this.loadPatent(uploadParamsVO);
 
                 UploadPatentWebDTO uploadPatentWebDTO =new UploadPatentWebDTO();
-                uploadPatentWebDTO.setIfAddPatent(false);
-                uploadPatentWebDTO.setIfAddPicture(false);
                 uploadPatentWebDTO.setHaveSaveCounter(0);
                 uploadPatentWebDTO.setTotalCounter(importTaskAMVO.getShouldSaveCounter());
                 uploadPatentWebDTO.setPictureData(uploadParamsVO.getPictureData());

+ 25 - 15
src/main/java/cn/cslg/pas/service/importPatent/GetPatentPDFFromWebThread.java

@@ -31,8 +31,7 @@ import java.util.concurrent.locks.ReentrantLock;
 public class GetPatentPDFFromWebThread extends Thread {
     private ImportTaskAMVO importTaskAMVO;
     private ApplicationContext applicationContext;
-    private ImportFromWebToEsService importFromWebToEsService;
-    private List<UploadPatentWebDTO> uploadPatentWebDTOs =new ArrayList<>();
+    private List<UploadPatentWebDTO> uploadPatentWebDTOs = new ArrayList<>();
     private final Lock taskLock = new ReentrantLock();
     private final Condition taskCondition = taskLock.newCondition();
     private Boolean ifProductAll = false;
@@ -42,19 +41,26 @@ public class GetPatentPDFFromWebThread extends Thread {
 
     @Override
     public void run() {
-        try {
-            while ((!ifProductAll || uploadPatentWebDTOs.size() > 0) && importTaskAMVO.getState().equals(1)) {
-                String usedPatentNo;
+
+        while ((!ifProductAll || uploadPatentWebDTOs.size() > 0) && importTaskAMVO.getState().equals(1)) {
+
+            try {
+
                 if (uploadPatentWebDTOs.size() == 0) {
                     taskLock.lock();
                     taskCondition.await();
                 }
-                UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOs.remove(0);
+            } catch (Exception e) {
+
+            }
+            UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOs.remove(0);
+            try {
+                String usedPatentNo;
                 StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
                 if (starPatentVO.getPublicNo() != null && !starPatentVO.getPublicNo().equals("")) {
                     usedPatentNo = starPatentVO.getPublicNo();
                 } else {
-                    usedPatentNo = starPatentVO.getPatentNo();
+                    usedPatentNo = starPatentVO.getPublicAccreditNo();
                 }
 
                 String pdfUrl = "", pdfUrl1 = "", pdfUrl2 = "";
@@ -64,10 +70,9 @@ public class GetPatentPDFFromWebThread extends Thread {
                     String pdfUrlStr = patentStarApiService.getCnPdfApi(starPatentVO.getRowApplicationNo());
 
                     //若没有取到说明书pdf,则将当前申请号和备注信息存入问题记录表,并返回空对象
-                    if (pdfUrlStr.equals("")) {
+                    if (!pdfUrlStr.equals("")) {
 //                        recordQuestionPatent(starPatent.getApplicationNo(), task.getId(), 4);
-                        return;
-                    }
+
 
                     if (pdfUrlStr.contains("|http")) {  //若包含公开和授权两个pdf
                         String[] pdfUrlArr = pdfUrlStr.split("\\|http");
@@ -116,22 +121,26 @@ public class GetPatentPDFFromWebThread extends Thread {
                     fileManagerService.uploadFileWithGuid(file1, guid1);
 
                 }
+                }
                 taskThread.ifPatentDone(uploadPatentWebDTO);
+                importTaskAMVO.setPdfDoneNum(importTaskAMVO.getPdfDoneNum()+1);
+            } catch (Exception e) {
+                importTaskAMVO.setPdfDoneNum(importTaskAMVO.getPdfDoneNum()+1);
+                taskThread.ifPatentDone(uploadPatentWebDTO);
+                e.printStackTrace();
             }
-            taskThread.awakeTaskThread();
-        } catch (Exception e) {
-            e.printStackTrace();
         }
+        taskThread.awakeTaskThread();
+
     }
 
 
     public GetPatentPDFFromWebThread(TaskThread taskThread, ImportFromWebToEsService importFromWebToEsService) {
         this.importTaskAMVO = taskThread.getImportTaskAMVO();
-        this.importFromWebToEsService = importFromWebToEsService;
         this.applicationContext = taskThread.getApplicationContext();
         this.patentStarApiService = applicationContext.getBean(PatentStarApiService.class);
         this.fileManagerService = applicationContext.getBean(FileManagerService.class);
-        this.taskThread=taskThread;
+        this.taskThread = taskThread;
     }
 
     public void awakeTask(UploadPatentWebDTO uploadPatentWebDTO) {
@@ -141,6 +150,7 @@ public class GetPatentPDFFromWebThread extends Thread {
             taskLock.unlock();
         }
     }
+
     public void setIfProductAll(Boolean ifProductAll) {
 
         this.ifProductAll = ifProductAll;

+ 9 - 5
src/main/java/cn/cslg/pas/service/importPatent/GetPatentPictureFromExcelThread.java

@@ -50,13 +50,16 @@ public class GetPatentPictureFromExcelThread extends Thread {
 
     @Override
     public void run() {
-        try {
+
             while ((!ifProductAll || uploadPatentWebDTOS.size() > 0) && importTaskAMVO.getState().equals(1)) {
+
+                UploadPatentWebDTO uploadPatentWebDTO =new UploadPatentWebDTO();
+                try {
                 if (uploadPatentWebDTOS.size() == 0) {
                     taskLock.lock();
                     taskCondition.await();
                 }
-                UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOS.remove(0);
+                    uploadPatentWebDTO=  uploadPatentWebDTOS.remove(0);
                 String guid = FormatUtil.getPictureFormat(uploadPatentWebDTO.getPatent().getAppNo());
                 PictureData pictureData = uploadPatentWebDTO.getPictureData();
                 if(pictureData!=null){
@@ -71,10 +74,11 @@ public class GetPatentPictureFromExcelThread extends Thread {
                 MessageService messageService = applicationContext.getBean(MessageService.class);
                 messageService.sendWebsocketMessage(importTaskAMVO,2);
             }
+                catch (Exception e) {
+                    taskThread.ifPatentDone(uploadPatentWebDTO);
+                    e.printStackTrace();
+                }
             taskThread.awakeTaskThread();
-        } catch (Exception e) {
-            taskThread.awakeTaskThread();
-            e.printStackTrace();
         }
     }
 

+ 17 - 6
src/main/java/cn/cslg/pas/service/importPatent/GetPatentPictureFromWebThread.java

@@ -44,13 +44,19 @@ public class GetPatentPictureFromWebThread extends Thread {
 
     @Override
     public void run() {
-        try {
-            while ((!ifProductAll || uploadPatentWebDTOs.size() > 0) && importTaskAMVO.getState().equals(1)) {
+
+        while ((!ifProductAll || uploadPatentWebDTOs.size() > 0) && importTaskAMVO.getState().equals(1)) {
+
+            try {
                 if (uploadPatentWebDTOs.size() == 0) {
                     taskLock.lock();
                     taskCondition.await();
                 }
-                UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOs.remove(0);
+            }catch (Exception e){
+            }
+            UploadPatentWebDTO  uploadPatentWebDTO = uploadPatentWebDTOs.remove(0);
+            try {
+
                 PatentStarApiService patentStarApiService = applicationContext.getBean(PatentStarApiService.class);
                 String pictureUrl = patentStarApiService.getPictureApi(uploadPatentWebDTO.getStarPatentVO().getRowApplicationNo());
                 if (pictureUrl != null && pictureUrl != "{}") {
@@ -60,11 +66,15 @@ public class GetPatentPictureFromWebThread extends Thread {
                     fileManagerService.uploadFileWithGuid(file, guid);
                 }
                 taskThread.ifPatentDone(uploadPatentWebDTO);
+                importTaskAMVO.setPictureDoneNum(importTaskAMVO.getPictureDoneNum()+1);
+            } catch (Exception e) {
+                taskThread.ifPatentDone(uploadPatentWebDTO);
+                importTaskAMVO.setPictureDoneNum(importTaskAMVO.getPictureDoneNum()+1);
+                e.printStackTrace();
             }
-            taskThread.awakeTaskThread();
-        } catch (Exception e) {
-            e.printStackTrace();
+
         }
+        taskThread.awakeTaskThread();
     }
 
 
@@ -82,6 +92,7 @@ public class GetPatentPictureFromWebThread extends Thread {
             taskLock.unlock();
         }
     }
+
     public void setIfProductAll(Boolean ifProductAll) {
 
         this.ifProductAll = ifProductAll;

+ 18 - 12
src/main/java/cn/cslg/pas/service/importPatent/GetRightAndFullTextFromWebThread.java

@@ -38,16 +38,22 @@ public class GetRightAndFullTextFromWebThread extends Thread {
     private final Lock taskLock = new ReentrantLock();
     private final Condition taskCondition = taskLock.newCondition();
     private Boolean ifProductAll = false;
+    private TaskThread taskThread;
     @Override
     public void run() {
-        try {
+
             while ((!ifProductAll || uploadPatentWebDTOs.size() > 0) && importTaskAMVO.getState().equals(1)) {
-                if (uploadPatentWebDTOs.size() == 0) {
-                    taskLock.lock();
-                    taskCondition.await();
+
+                try {
+                    if (uploadPatentWebDTOs.size() == 0) {
+                        taskLock.lock();
+                        taskCondition.await();
+                    }
+                }catch (Exception e){
+
                 }
                 UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOs.remove(0);
-                Patent patent = uploadPatentWebDTO.getPatent();
+                try {
                 StarPatentVO starPatentVO =uploadPatentWebDTO.getStarPatentVO();
 
                 if ((starPatentVO.getPublicNo() != null && starPatentVO.getPublicNo().contains("CN")) || (starPatentVO.getPublicNo() == null && starPatentVO.getPublicNo().contains("CN"))) {
@@ -58,14 +64,13 @@ public class GetRightAndFullTextFromWebThread extends Thread {
                 }
                 //加入es保存队列
                 importFromWebToEsService.savePatentToEs(uploadPatentWebDTO);
-
             }
-
-
-
-        } catch (Exception e) {
-            e.printStackTrace();
+                catch (Exception e) {
+                    importFromWebToEsService.savePatentToEs(uploadPatentWebDTO);
+                    e.printStackTrace();
+                }
         }
+        importFromWebToEsService.setPatentToEsProductAll();
     }
 
 
@@ -73,7 +78,7 @@ public class GetRightAndFullTextFromWebThread extends Thread {
         this.importTaskAMVO = taskThread.getImportTaskAMVO();
         this.importFromWebToEsService = importFromWebToEsService;
         this.applicationContext = taskThread.getApplicationContext();
-
+        this.taskThread=taskThread;
     }
 
     public void awakeTask(UploadPatentWebDTO uploadPatentWebDTO) {
@@ -171,6 +176,7 @@ public class GetRightAndFullTextFromWebThread extends Thread {
             text.setTextContent(fullText);
             text.setLanguage(patent.getAppCountry());
             patent.setPublicFullText(Arrays.asList(text));
+
     } catch (Exception e) {
             e.printStackTrace();
         }

+ 25 - 13
src/main/java/cn/cslg/pas/service/importPatent/ImportFromWebToEsService.java

@@ -72,6 +72,8 @@ public class ImportFromWebToEsService implements PatentImportImp {
         importTaskAMVO.setIfAddPDF(ifPdf);
         importTaskAMVO.setShouldSaveCounter(0);
         importTaskAMVO.setHaveSaveCounter(0);
+        importTaskAMVO.setShouldSaveMessageCounter(0);
+        importTaskAMVO.setHaveSaveMessageCounter(0);
         savePatentToEsThread = new SavePatentToEsThread(taskThread, taskThread.getApplicationContext());
         savePatentToEsThread.start();
         if (ifAddPicture == '1') {
@@ -83,6 +85,7 @@ public class ImportFromWebToEsService implements PatentImportImp {
             getRightAndFullTextFromWebThread = new GetRightAndFullTextFromWebThread(taskThread, this);
             getRightAndFullTextFromWebThread.start();
             addPatentCounter += 1;
+            importTaskAMVO.setShouldSaveMessageCounter(importTaskAMVO.getShouldSaveMessageCounter()+1);
         }
         if (ifPdf == '1') {
             getPatentPDFFromWebThread = new GetPatentPDFFromWebThread(taskThread, this);
@@ -94,6 +97,7 @@ public class ImportFromWebToEsService implements PatentImportImp {
             getCataloguingFromWebThread = new GetCataloguingFromWebThread(taskThread, this);
             getCataloguingFromWebThread.start();
             addPatentCounter += 1;
+            importTaskAMVO.setShouldSaveMessageCounter(importTaskAMVO.getShouldSaveMessageCounter()+1);
         }
 
         if (ifCataloguing == '1' || ifFullText == '1') {
@@ -227,18 +231,19 @@ public class ImportFromWebToEsService implements PatentImportImp {
 
                 }
                 doneNum =overNum;
-                if (ifCataloguing == '1') {
-                    getCataloguingFromWebThread.setIfProductAll(true);
-                }
-                if (ifAddPicture == '1') {
-                    getPatentPictureFromWebThread.setIfProductAll(true);
-                }
-                if (ifAddFullText == '1') {
-                    getRightAndFullTextFromWebThread.setIfProductAll(true);
-                }
-                if (ifPdf == '1') {
-                    getPatentPDFFromWebThread.setIfProductAll(true);
-                }
+            }
+
+            if (ifCataloguing == '1') {
+                getCataloguingFromWebThread.setIfProductAll(true);
+            }
+            if (ifAddPicture == '1') {
+                getPatentPictureFromWebThread.setIfProductAll(true);
+            }
+            if (ifAddFullText == '1') {
+                getRightAndFullTextFromWebThread.setIfProductAll(true);
+            }
+            if (ifPdf == '1') {
+                getPatentPDFFromWebThread.setIfProductAll(true);
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -259,13 +264,20 @@ public class ImportFromWebToEsService implements PatentImportImp {
 
     //加入es保存队列
     public void savePatentToEs(UploadPatentWebDTO uploadPatentWebDTO) {
-
         uploadPatentWebDTO.setCounter(uploadPatentWebDTO.getCounter() + 1);
         if (uploadPatentWebDTO.getTotalCounter().equals(uploadPatentWebDTO.getCounter())) {
             savePatentToEsThread.awakeTask(uploadPatentWebDTO);
         }
     }
+    public void setPatentToEsProductAll() {
+        importTaskAMVO.setHaveSaveMessageCounter(importTaskAMVO.getHaveSaveMessageCounter()+1);
+        if(importTaskAMVO.getShouldSaveMessageCounter().equals(importTaskAMVO.getHaveSaveMessageCounter()))
+        {
+            savePatentToEsThread.setIfProductAll(true);
 
+        }
+
+    }
 
     private void loadPatent(StarPatentVO starPatentVO, Patent patent) {
 

+ 49 - 39
src/main/java/cn/cslg/pas/service/importPatent/SavePatentToEsThread.java

@@ -5,6 +5,7 @@ import cn.cslg.pas.common.utils.FormatUtil;
 import cn.cslg.pas.common.vo.ImportTaskAMVO;
 import cn.cslg.pas.common.vo.PatentWithIdVO;
 import cn.cslg.pas.domain.business.ImportTask;
+import cn.cslg.pas.domain.es.ESImportTask;
 import cn.cslg.pas.domain.es.Patent;
 import cn.cslg.pas.domain.es.PatentJoin;
 import cn.cslg.pas.service.business.ImportTaskService;
@@ -35,30 +36,33 @@ public class SavePatentToEsThread extends Thread {
 
     @Override
     public void run() {
-        while ((!ifProductAll || uploadPatentWebDTOS.size() > 0)&&importTaskAMVO.getState().equals(1)) {
+        while ((!ifProductAll || uploadPatentWebDTOS.size() > 0) && importTaskAMVO.getState().equals(1)) {
             try {
                 //判断任务队列是否有任务,若没有则线程等待唤醒
                 if (uploadPatentWebDTOS.size() == 0) {
                     taskLock.lock();
                     taskCondition.await();
                 }
-                UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOS.remove(0);
-                Patent patent =uploadPatentWebDTO.getPatent();
+            } catch (Exception e) {
+            }
+            UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOS.remove(0);
+            try {
+                Patent patent = uploadPatentWebDTO.getPatent();
                 //根据专利号查询专利
                 EsService esService = applicationContext.getBean(EsService.class);
                 PatentWithIdVO patentWithIdVO = esService.getIdByPatentNo(patent.getPatentNo());
-                String patentId =null;
+                String patentId = null;
                 // 若查出专利则更新
                 if (patentWithIdVO != null) {
-                    patentId =patentWithIdVO.getId();
+                    patentId = patentWithIdVO.getId();
                     Patent orgPatent = patentWithIdVO.getPatent();
                     BeanUtils.copyProperties(patent, orgPatent, FormatUtil.getNullPropertyNames(patent));
                     esService.updateDocument(orgPatent, patentWithIdVO.getId());
                 } else {
-                    PatentJoin patentJoin =new PatentJoin();
+                    PatentJoin patentJoin = new PatentJoin();
                     patentJoin.setName("patent");
                     patent.setPatentJoin(patentJoin);
-                    patentId =  esService.addPatent(patent);
+                    patentId = esService.addPatent(patent);
                 }
                 //判断是否和专题库或报告关联
                 ImportTaskAMVO importTaskAMVO = taskThread.getImportTaskAMVO();
@@ -66,35 +70,58 @@ public class SavePatentToEsThread extends Thread {
                 //和专题库或报告进行关联
                 if (importTaskAMVO.getProjectId() != null) {
                     //根据projectId和专利id查询
-                    if(patentId!=null){
-                     Boolean ifInproject=  esService.searchPatent(patentId,importTaskAMVO.getProjectId());
-                     if(!ifInproject) {
-                         Patent patentChild = new Patent();
-                         PatentJoin patentJoin = new PatentJoin();
-                         patentJoin.setParent(patentId);
-                         patentJoin.setName("project");
-                         patentChild.setPatentJoin(patentJoin);
-                         patentChild.setProjectId(importTaskAMVO.getProjectId());
-                         esService.addChildPatent(patentChild, patentId);
-                     }
+                    if (patentId != null) {
+                        Boolean ifInproject = esService.searchPatent(patentId, importTaskAMVO.getProjectId());
+                        if (!ifInproject) {
+                            Patent patentChild = new Patent();
+                            PatentJoin patentJoin = new PatentJoin();
+                            patentJoin.setParent(patentId);
+                            patentJoin.setName("project");
+                            patentChild.setPatentJoin(patentJoin);
+                            patentChild.setProjectId(importTaskAMVO.getProjectId());
+                            esService.addChildPatent(patentChild, patentId);
+                        }
+                    }
+                    //和任务关联
+                    if(importTaskAMVO.getId()!=null){
+
+                        if (patentId != null) {
+                            Boolean ifInTask = esService.ifInTask(patentId, importTaskAMVO.getProjectId(),importTaskAMVO.getId());
+                            if (!ifInTask) {
+                                Patent patentChild = new Patent();
+                                PatentJoin patentJoin = new PatentJoin();
+                                patentJoin.setParent(patentId);
+                                patentJoin.setName("import_task");
+                                patentChild.setPatentJoin(patentJoin);
+                                ESImportTask esImportTask =new ESImportTask();
+                                esImportTask.setProjectId(importTaskAMVO.getProjectId());
+                                esImportTask.setTaskId(importTaskAMVO.getId());
+                                patentChild.setImportTask(esImportTask);
+                                esService.addChildPatent(patentChild, patentId);
+                            }
+                        }
+
                     }
                 }
+
                 //导入完成,通知前台
                 MessageService messageService = applicationContext.getBean(MessageService.class);
-                messageService.sendWebsocketMessage(importTaskAMVO,1);
-                importTaskAMVO.setMessageDoneNum(importTaskAMVO.getMessageDoneNum()+1);
+                messageService.sendWebsocketMessage(importTaskAMVO, 1);
+                importTaskAMVO.setMessageDoneNum(importTaskAMVO.getMessageDoneNum() + 1);
                 taskThread.ifPatentDone(uploadPatentWebDTO);
             } catch (Exception e) {
-                System.out.println(e);
+                importTaskAMVO.setMessageDoneNum(importTaskAMVO.getMessageDoneNum() + 1);
+                taskThread.ifPatentDone(uploadPatentWebDTO);
             }
         }
         taskThread.awakeTaskThread();
+        System.out.println("done");
     }
 
     public SavePatentToEsThread(TaskThread taskThread, ApplicationContext applicationContext) {
         this.taskThread = taskThread;
         this.applicationContext = applicationContext;
-        this.importTaskAMVO =taskThread.getImportTaskAMVO();
+        this.importTaskAMVO = taskThread.getImportTaskAMVO();
     }
 
     public void awakeTask(UploadPatentWebDTO uploadPatentWebDTO) {
@@ -112,21 +139,4 @@ public class SavePatentToEsThread extends Thread {
     }
 
 
-    //保存同族专利信息
-
-public void saveFamilyMessage(List<String> patentNos,String type){
-    //根据专利号查询同族信息
-    PatentStarApiService patentStarApiService = applicationContext.getBean(PatentStarApiService.class);
-   String familyStr = patentStarApiService.getFamilyByPubNoApi("CN116825114A");
-     //根据专利号查询同族
-    EsService esService =applicationContext.getBean(EsService.class);
-
-
-}
-
-
-    //保存专利事务信息
-
-
-
 }

+ 2 - 0
src/main/java/cn/cslg/pas/service/importPatent/SchedulingTaskService.java

@@ -58,6 +58,8 @@ public class SchedulingTaskService {
                     importTaskAMVOS.get(i).setState(1);
                     importTaskAMVOS.get(i).setHaveSaveCounter(0);
                     importTaskAMVOS.get(i).setMessageDoneNum(0);
+                    importTaskAMVOS.get(i).setPictureDoneNum(0);
+                    importTaskAMVOS.get(i).setPdfDoneNum(0);
                     TaskThread taskThread = new TaskThread(importTaskAMVOS.get(i), applicationContext);
                     executor.execute(taskThread);
                 }

+ 9 - 1
src/test/java/cn/cslg/pas/service/CommonServiceTests.java

@@ -6,11 +6,13 @@ import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.FormatUtil;
 import cn.cslg.pas.common.utils.MathUtils;
 import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.utils.esDataForm.AddressSplitter;
 import cn.cslg.pas.common.vo.DepartmentVO;
 import cn.cslg.pas.common.vo.business.ScenarioVO;
 import cn.cslg.pas.controller.CommonController;
 import cn.cslg.pas.controller.EventController;
 import cn.cslg.pas.domain.business.Matter;
+import cn.cslg.pas.domain.es.PersonAddress;
 import cn.cslg.pas.service.business.CommonService;
 import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.importPatent.SchedulingTaskService;
@@ -27,6 +29,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -112,5 +115,10 @@ public class CommonServiceTests {
         File file = new File("src/main/resources/jsons/" + "patent.json");
         fileManagerService.uploadFileWithGuid(file, "1111");
     }
-
+    @Test
+    public void testAddress() throws IOException {
+        String te="201100 上海市闵行区园美路58号1幢2层203、204室";
+      PersonAddress personAddress = AddressSplitter.splitAddress(te,"91(上海)");
+       System.out.println(personAddress);
+    }
 }

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

@@ -193,8 +193,8 @@ public class EventServiceTests {
 
     @Test
     void test4() throws IOException {
-        List<String> stringList = Arrays.asList("US369258147", "US258369147", "14528");
-        EsPatentFamilyDTO test = esService.selectEsPatentFamily(stringList, "test");
-        System.out.println(test);
+//        List<String> stringList = Arrays.asList("US369258147", "US258369147", "14528");
+//        EsPatentFamilyDTO test = esService.selectEsPatentFamily(stringList, "test");
+//        System.out.println(test);
     }
 }

+ 1 - 1
src/test/java/cn/cslg/pas/service/PatentStarServiceTests.java

@@ -165,7 +165,7 @@ public class PatentStarServiceTests {
 
     @Test
     void getPatentByNo() throws Exception {
-        StarPatentVO a = patentStarApiService.getPatentByNo("CN116825114A");
+        StarPatentVO a = patentStarApiService.getPatentByNo("CN202311242784.4");
 
         System.out.println(a);
         Thread.sleep(1000000);