瀏覽代碼

8/27 定时更新修改

lwhhszx 1 年之前
父節點
當前提交
f0b6ee5fd7

+ 1 - 1
src/main/java/cn/cslg/pas/common/utils/ClaimUtils/ClaimSplitUtils.java

@@ -114,7 +114,7 @@ public class ClaimSplitUtils {
                             end = content.length();
                             String str1 = content.substring(start, end);
                             RePatentClaim rePatentClaim1 = new RePatentClaim();
-                            rePatentClaim1.setSort(num - 1);
+                            rePatentClaim1.setSort(num - 2);
                             rePatentClaim1.setContent(str1);
                             patentRights.add(rePatentClaim1);
                         }

+ 5 - 4
src/main/java/cn/cslg/pas/service/ReportExportService.java

@@ -1191,10 +1191,11 @@ public class ReportExportService {
 
             List<PatentPerson> applicantJSONs = item.getApplicant();
             StringBuilder applicants = new StringBuilder();
-            applicantJSONs.forEach(tem -> {
-                applicants.append(tem.getName() + "\r");
-            });
-
+            if(applicantJSONs!=null) {
+                applicantJSONs.forEach(tem -> {
+                    applicants.append(tem.getName() + "\r");
+                });
+            }
             CompareLiteratureVO compareLiteratureVO = compareLiteratures.stream().filter(t -> t.getLiteratureNo().equals(item.getPatentNo())).findFirst().orElse(null);
 
             List<AssoReasonLiterature> assoReasonLiteratures1 = new ArrayList<>();

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

@@ -79,17 +79,17 @@ public class PatentStarApiService {
 
     public Records patentStarSearchLocal(PatentStarListDTO patentStarListDTO) throws IOException {
         RetrieveRecord retrieveRecord = new RetrieveRecord();
-        retrieveRecord.setConditions(patentStarListDTO.getCurrentQuery() );
+        retrieveRecord.setConditions(patentStarListDTO.getCurrentQuery());
 
         if (patentStarListDTO.getRetrieveRecordId() != null) {
             retrieveRecord = retrieveRecordService.getById(patentStarListDTO.getRetrieveRecordId());
             patentStarListDTO.setCurrentQuery(retrieveRecord.getConditions());
             patentStarListDTO.setDBType(retrieveRecord.getDbType());
         }
-    long start =    System.currentTimeMillis();
+        long start = System.currentTimeMillis();
         Map<String, Object> map = this.patentStarSearchApi(patentStarListDTO);
-long end =System.currentTimeMillis();
-System.out.println("search time:"+(end-start));
+        long end = System.currentTimeMillis();
+        System.out.println("search time:" + (end - start));
         if (map == null) {
             ThrowException.throwXiaoShiException("检索失败,请检查检索式");
         }
@@ -144,7 +144,7 @@ System.out.println("search time:"+(end-start));
         PatentStarDTO patentStarDto = new PatentStarDTO();
         BeanUtils.copyProperties(PatentStarListDTO, patentStarDto);
 
-        if(patentStarDto.getOrderBy()==null){
+        if (patentStarDto.getOrderBy() == null) {
             patentStarDto.setOrderBy("AD");
             patentStarDto.setOrderByType("DESC");
         }
@@ -172,12 +172,12 @@ System.out.println("search time:"+(end-start));
         Request request = new Request.Builder().url(url).post(requestBody).build();
         // 发送请求获取响应
         try {
-            long start =    System.currentTimeMillis();
+            long start = System.currentTimeMillis();
 
             Response response = okHttpClient.newCall(request).execute();
 
-            long end =System.currentTimeMillis();
-            System.out.println("search11time:"+(end-start));
+            long end = System.currentTimeMillis();
+            System.out.println("search11time:" + (end - start));
             // 判断请求是否成功
             if (response.isSuccessful()) {
                 JSONObject jsonObject = JSONObject.parseObject(Objects.requireNonNull(response.body()).string());
@@ -397,8 +397,7 @@ System.out.println("search time:"+(end-start));
             if (response.isSuccessful()) {
                 // 打印服务端返回结果
                 return Objects.requireNonNull(response.body()).string();
-            }
-            else {
+            } else {
                 response.close();
             }
         } catch (IOException e) {
@@ -484,8 +483,7 @@ System.out.println("search time:"+(end-start));
             if (response.isSuccessful()) {
                 // 打印服务端返回结果
                 return Objects.requireNonNull(response.body()).string();
-            }
-            else {
+            } else {
                 response.close();
             }
 
@@ -638,8 +636,7 @@ System.out.println("search time:"+(end-start));
             if (response.isSuccessful()) {
                 // 打印服务端返回结果
                 return Objects.requireNonNull(response.body()).string();
-            }
-            else {
+            } else {
                 response.close();
             }
         } catch (IOException e) {
@@ -698,7 +695,7 @@ System.out.println("search time:"+(end-start));
      * 从专利之星获取同族专利
      */
     public String getFamilyByPubNoApi(String patentNo) {
-        patentNo="CN217038881U";
+        patentNo = "CN217038881U";
         String url = "https://api.patentstar.com.cn/api/Patent/FamilyByPubNo/" + patentNo;
         JSONObject configObject = this.getConfigObject(4, 2);
         String appId = configObject.getString("appId");
@@ -1144,7 +1141,7 @@ System.out.println("search time:"+(end-start));
      * @return
      */
     public List<Text> getCnFullText(String appNo) {
-        appNo="202410796708";
+        appNo = "202410796708";
         List<Text> pubTextList = new ArrayList<>();
         //获取公开说明书
         String cnFullXmlApi = null;
@@ -1208,21 +1205,20 @@ System.out.println("search time:"+(end-start));
                         dto.setType(0);
                         list.add(dto);
                     }
-                }
-                else {  //若只有一个
+                } else {  //若只有一个
                     pdfUrl1 = pdfUrlStr.substring(pdfUrlStr.indexOf("http"));
                     if (pdfUrl1.contains("0A_CN_0.pdf")) {
 
-                            InnerPatentPdfDTO dto = new InnerPatentPdfDTO();
-                            dto.setPdfGuid(pdfUrl1);
-                            dto.setType(0);
-                            list.add(dto);
+                        InnerPatentPdfDTO dto = new InnerPatentPdfDTO();
+                        dto.setPdfGuid(pdfUrl1);
+                        dto.setType(0);
+                        list.add(dto);
 
                     } else {
-                            InnerPatentPdfDTO dto = new InnerPatentPdfDTO();
-                            dto.setPdfGuid(pdfUrl1);
-                            dto.setType(1);
-                            list.add(dto);
+                        InnerPatentPdfDTO dto = new InnerPatentPdfDTO();
+                        dto.setPdfGuid(pdfUrl1);
+                        dto.setType(1);
+                        list.add(dto);
 
                     }
                 }
@@ -1230,11 +1226,11 @@ System.out.println("search time:"+(end-start));
         } else {
             String usedPatentNo;
             if (publicNo != null && !publicNo.equals("")) {
-                usedPatentNo =publicNo;
+                usedPatentNo = publicNo;
             } else {
                 usedPatentNo = grantNo;
             }
-            if(usedPatentNo!=null){
+            if (usedPatentNo != null) {
                 pdfUrl = this.getEnPdfApi(usedPatentNo);
                 if (!pdfUrl.equals("")) {
                     InnerPatentPdfDTO dto = new InnerPatentPdfDTO();

+ 20 - 12
src/main/java/cn/cslg/pas/service/common/TranslateService.java

@@ -20,10 +20,7 @@ import co.elastic.clients.elasticsearch._types.Refresh;
 import co.elastic.clients.elasticsearch._types.Script;
 import co.elastic.clients.elasticsearch._types.query_dsl.Query;
 import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
-import co.elastic.clients.elasticsearch.core.IndexResponse;
-import co.elastic.clients.elasticsearch.core.SearchRequest;
-import co.elastic.clients.elasticsearch.core.SearchResponse;
-import co.elastic.clients.elasticsearch.core.UpdateByQueryRequest;
+import co.elastic.clients.elasticsearch.core.*;
 import co.elastic.clients.elasticsearch.core.search.Hit;
 import com.aliyun.alimt20181012.models.TranslateGeneralResponse;
 import com.aliyun.alimt20181012.models.TranslateGeneralResponseBody;
@@ -567,14 +564,25 @@ public class TranslateService {
         builder.size(1000);
         builder.trackTotalHits(i -> i.enabled(true));
         SearchResponse<PatentTranslate> response = client.search(builder.build(), PatentTranslate.class);
-//        List<Hit<PatentTranslate>> hits = response.hits().hits();
-//        for (Hit<PatentTranslate> hit : hits) {
-//            PatentTranslate source = hit.source();
-//            String content = source.getContent().getTextContent();
-//            if (StringUtils.isNotEmpty(content)) {
-//                list.add(content);
-//            }
-//        }
+
         return response.hits().total().value();
     }
+
+
+    public Integer deleteTranslatePatentNo(String patentNo,String type) throws IOException {
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("translate");
+        Query q1 = QueryBuilders.term(t -> t.field("patent_no").value(patentNo));
+        //公开号
+        Query q2 = QueryBuilders.term(t -> t.field("patent_field").value(type));
+        Query bool = QueryBuilders.bool(i -> i.must(q1, q2));
+        DeleteByQueryRequest request = DeleteByQueryRequest.of(i -> i.index("translate").refresh(true).query(bool));
+        try {
+            client.deleteByQuery(request);
+            return 1;
+        } catch (IOException e) {
+            return -1;
+        }
+    }
 }

+ 1 - 2
src/main/java/cn/cslg/pas/service/importPatent/GetCataloguingFromWebThread.java

@@ -74,13 +74,12 @@ public class GetCataloguingFromWebThread extends Thread {
                 } else {
                     patentZhuLuStr = patentStarApiService.getENBibApi(uploadPatentWebDTO.getStarPatentVO().getPN());
                 }
-                if (patentZhuLuStr != null && !patentZhuLuStr.trim().equals("") && !patentZhuLuStr.equals("{}") && !patentZhuLuStr.contains("请求不合法")) {
                     if (starPatentVO.getAN().startsWith("CN")) {
                         webVOTransformService.loadCNPatent(patentZhuLuStr, uploadPatentWebDTO);
                     } else {
                         webVOTransformService.loadWorldPatent(patentZhuLuStr, uploadPatentWebDTO);
                     }
-                }
+
 
                 EsService esService = applicationContext.getBean(EsService.class);
  //添加事务

+ 1 - 2
src/main/java/cn/cslg/pas/service/importPatent/GetRightAndFullTextFromWebThread.java

@@ -59,7 +59,7 @@ public class GetRightAndFullTextFromWebThread extends Thread {
             try {
                 StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
                 Patent patent = uploadPatentWebDTO.getPatent();
-                if (!patent.getPatentType().equals("3")) {
+                if (patent.getPatentType()!=null&&!patent.getPatentType().equals("3")) {
                     if ((starPatentVO.getPN() != null && starPatentVO.getPN().contains("CN")) || (starPatentVO.getAN() != null && starPatentVO.getAN().contains("CN")) || (starPatentVO.getGN() != null && starPatentVO.getGN().contains("CN"))) {
                         patentStarApiService = applicationContext.getBean(PatentStarApiService.class);
                         String cnFullXmlStr = patentStarApiService.getCnFullXmlApi(starPatentVO.getANO());
@@ -98,7 +98,6 @@ public class GetRightAndFullTextFromWebThread extends Thread {
         }
     }
 
-
     public void setIfProductAll(Boolean ifProductAll) {
         this.ifProductAll = ifProductAll;
         if (taskLock.tryLock()) {

+ 30 - 2
src/main/java/cn/cslg/pas/service/importPatent/SavePatentToEsThread.java

@@ -18,6 +18,7 @@ import cn.cslg.pas.service.business.es.EsService;
 import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.common.MessageService;
 import cn.cslg.pas.service.common.PatentStarApiService;
+import cn.cslg.pas.service.common.TranslateService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
@@ -51,7 +52,10 @@ public class SavePatentToEsThread extends Thread {
                     taskLock.lock();
                     taskCondition.await();
                 }
-            } catch (Exception e) {
+
+            }
+            catch (Exception e) {
+
             }
             if (uploadPatentWebDTOS.size() == 0) {
                 break;
@@ -66,14 +70,37 @@ public class SavePatentToEsThread extends Thread {
                 // 若查出专利则更新
                 Patent orgPatent = null;
 
-
                 //更新专利
                 if (patentWithIdVO != null) {
                     patentId = patentWithIdVO.getId();
                     orgPatent = patentWithIdVO.getPatent();
                     patent = this.formPatent(patent, orgPatent);
+
+                    //更新翻译
+                    if(patent.getClaim()!=null&&patent.getClaim()!=orgPatent.getClaim()){
+                        TranslateService translateService =applicationContext.getBean(TranslateService.class);
+                        if(orgPatent.getPatentNo()!=null) {
+                            translateService.deleteTranslatePatentNo(orgPatent.getPatentNo(),"3");
+                        }
+                    }
+
+                    if(patent.getPublicFullText()!=null&&patent.getPublicFullText()!=orgPatent.getPublicFullText()){
+                        TranslateService translateService =applicationContext.getBean(TranslateService.class);
+                        if(orgPatent.getPatentNo()!=null) {
+                            translateService.deleteTranslatePatentNo(orgPatent.getPatentNo(),"4");
+                        }
+                    }
+
+                    if(patent.getGrantFullText()!=null&&patent.getGrantFullText()!=orgPatent.getGrantFullText()){
+                        TranslateService translateService =applicationContext.getBean(TranslateService.class);
+                        if(orgPatent.getPatentNo()!=null) {
+                            translateService.deleteTranslatePatentNo(orgPatent.getPatentNo(),"4");
+                        }
+                    }
+
                     BeanUtils.copyProperties(patent, orgPatent, FormatUtil.getNullPropertyNames(patent));
                     esService.updatePatent(orgPatent, patentWithIdVO.getId());
+
                 } else {
                     PatentJoin patentJoin = new PatentJoin();
                     patentJoin.setName("patent");
@@ -86,6 +113,7 @@ public class SavePatentToEsThread extends Thread {
 
                 //和专题库或报告进行关联
                 if (importTaskAMVO.getProjectId() != null) {
+
                     //根据projectId和专利id查询
                     if (patentId != null) {
                         Boolean ifInproject = esService.searchPatent(patentId, importTaskAMVO.getProjectId());

+ 145 - 96
src/main/java/cn/cslg/pas/service/importPatent/WebVOTransformService.java

@@ -64,6 +64,7 @@ public class WebVOTransformService {
     //装载中国专利
     public void loadCNPatent(String chinaPatentZhuLuStr, UploadPatentWebDTO uploadPatentWebDTO) {
         this.loadPatent(uploadPatentWebDTO, true);
+
         Patent patent = uploadPatentWebDTO.getPatent();
         patent.setPatentNo(patent.getAppNo());
         if (chinaPatentZhuLuStr != null && !chinaPatentZhuLuStr.trim().equals("") && !chinaPatentZhuLuStr.equals("{}") && !chinaPatentZhuLuStr.contains("请求不合法")) {
@@ -73,14 +74,13 @@ public class WebVOTransformService {
             //装载优先权号、优先权国家、优先权日
             this.loadPriorities(patent, chinaPatentZhuLu.getPR());
 
-            this.loadCountry(patent, true);
         }
     }
 
 
     //装载专利信息
     public void loadPatent(UploadPatentWebDTO uploadPatentWebDTO, Boolean ifCn) {
-        String country = "";
+
         Patent patent = uploadPatentWebDTO.getPatent();
         StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
         //装载专利类型
@@ -109,7 +109,7 @@ public class WebVOTransformService {
         }
 
         //装载发明人
-        this.loadInventor(patent, starPatentVO.getIV());
+        this.loadInventor(patent, starPatentVO.getIN());
 
         //装载申请人
         this.loadApplicant(patent, starPatentVO.getPA());
@@ -121,10 +121,12 @@ public class WebVOTransformService {
         this.loadAgency(patent, starPatentVO.getAGN());
 
         //装载IPC分类号
-        if (patent.getPatentType()!=null&&patent.getPatentType().equals("3")) {
-            this.loadPatentLoc(patent, starPatentVO.getMC(), starPatentVO.getIC());
+        if (patent.getPatentType() != null && patent.getPatentType().equals("3")) {
+            this.loadPatentLoc(patent,starPatentVO.getIC());
+            this.loadPatentMainLoc(patent,starPatentVO.getMC());
         } else {
-            this.loadPatentIPC(patent, starPatentVO.getMC(), starPatentVO.getIC());
+            this.loadPatentIPC(patent, starPatentVO.getIC());
+            this.loadPatentMainIPC(patent,starPatentVO.getMC());
         }
         //装载公告日
         this.loadGrantDate(patent, starPatentVO.getPD(), starPatentVO.getGD());
@@ -139,7 +141,6 @@ public class WebVOTransformService {
 
         //装载法律状态(os_patent表status字段值)
         this.loadPatentStatus(patent, starPatentVO.getLG());
-        patent.setAppCountry(country);
     }
 
 
@@ -148,31 +149,34 @@ public class WebVOTransformService {
         List<StarPatentVO> worldPatentZhuLus = JSON.parseArray(worldPatentZhuLuStr, StarPatentVO.class);
         StarPatentVO worldPatentZhuLu = worldPatentZhuLus.get(0);
         Patent patent = uploadPatentWebDTO.getPatent();
+        if (worldPatentZhuLuStr != null && !worldPatentZhuLuStr.trim().equals("") && !worldPatentZhuLuStr.equals("{}") && !worldPatentZhuLuStr.contains("请求不合法")) {
 
-        this.loadPatent(uploadPatentWebDTO, false);
-        //装载申请日
-        this.loadAppDate(patent, worldPatentZhuLu.getAppDate());
+            this.loadPatent(uploadPatentWebDTO, false);
+            this.loadWorldPatentNo(patent);
+            //装载申请日
+            this.loadAppDate(patent, worldPatentZhuLu.getAppDate());
 
-        //装载公开日
-        this.loadPublicDate(patent, worldPatentZhuLu.getPubDate(), null);
+            //装载公开日
+            this.loadPublicDate(patent, worldPatentZhuLu.getPubDate(), null);
 
-        //装载CPC分类号
-        this.loadPatentCPC(patent, worldPatentZhuLu.getCpc());
+            //装载CPC分类号
+            this.loadPatentCPC(patent, worldPatentZhuLu.getCpc());
 
-        //装载申请人
-        this.loadApplicant(patent, worldPatentZhuLu.getPA());
+            //装载申请人
+            this.loadApplicant(patent, worldPatentZhuLu.getPA());
 
-        //装载发明人
-        this.loadInventor(patent, worldPatentZhuLu.getIV());
+            //装载发明人
+            this.loadInventor(patent, worldPatentZhuLu.getIV());
 
-        //装载优先权号、优先权国家、优先权日
-        this.loadPriorities(patent, worldPatentZhuLu.getPR());
+            //装载优先权号、优先权国家、优先权日
+            this.loadPriorities(patent, worldPatentZhuLu.getPR());
 
-        //装载标题
-        this.loadTitle(patent, worldPatentZhuLu.getTitle());
+            //装载标题
+            this.loadTitle(patent, worldPatentZhuLu.getTitle());
 
-        //装载摘要
-        this.loadAbstractStr(patent, worldPatentZhuLu.getAbstract());
+            //装载摘要
+            this.loadAbstractStr(patent, worldPatentZhuLu.getAbstract());
+        }
     }
 
     /**
@@ -279,7 +283,7 @@ public class WebVOTransformService {
                 List<PatentPerson> patentPeople = new ArrayList<>();
                 for (int i = 0; i < patentInventorNames.size(); i++) {
                     PatentPerson patentPerson = new PatentPerson();
-                    patentPerson.setOrder(0);
+                    patentPerson.setOrder(i);
                     patentPerson.setType("1");
                     patentPerson.setName(patentInventorNames.get(i));
                     patentPeople.add(patentPerson);
@@ -292,7 +296,7 @@ public class WebVOTransformService {
     public void loadInventor(Patent patent, List<String> patentInventorNames) {
         if (patent.getInventor() == null || patent.getInventor().size() == 0) {
 
-            if (patentInventorNames != null && patentInventorNames.size()!=0) {
+            if (patentInventorNames != null && patentInventorNames.size() != 0) {
 
                 List<PatentPerson> patentPeople = new ArrayList<>();
                 for (int i = 0; i < patentInventorNames.size(); i++) {
@@ -314,7 +318,7 @@ public class WebVOTransformService {
      * @param mainIpc
      * @param ipcs
      */
-    public void loadPatentIPC(Patent patent, String mainIpc, String ipcs) {
+    public void loadPatentIPC1(Patent patent, String mainIpc, String ipcs) {
         //装载IPC分类号
         if (ipcs != null && !ipcs.equals("")) {
             List<PatentClassify> patentClassifies = new ArrayList<>();
@@ -341,63 +345,108 @@ public class WebVOTransformService {
         }
     }
 
-    public void loadPatentIPC(Patent patent, String mainIpc,  List<String> ipcArr ) {
+    /**
+     * 装载ipc分类号
+     *
+     * @param patent
+     * @param ipcs
+     */
+    public void loadPatentIPC(Patent patent, String ipcs) {
         //装载IPC分类号
-        if (ipcArr != null && ipcArr.size()>0) {
+        if (ipcs != null && !ipcs.equals("")) {
             List<PatentClassify> patentClassifies = new ArrayList<>();
+            List<String> ipcArr = Arrays.asList(ipcs.split(";"));
             for (int i = 0; i < ipcArr.size(); i++) {
                 PatentClassify patentClassify = PatentClassifySplitter.split(ipcArr.get(i));
                 patentClassifies.add(patentClassify);
             }
             patent.setIpc(patentClassifies);
-            if (mainIpc == null || mainIpc.equals("")) {
-                if (patentClassifies.size() > 0) {
-                    patent.setMipc(patentClassifies.get(0));
-                }
-            } else {
-                PatentClassify patentClassify = PatentClassifySplitter.split(mainIpc);
-                patent.setMipc(patentClassify);
+            if (patentClassifies.size() > 0) {
+                patent.setMipc(patentClassifies.get(0));
             }
-        } else {
-            if (mainIpc != null && !mainIpc.equals("")) {
-                PatentClassify patentClassify = PatentClassifySplitter.split(mainIpc);
-                patent.setMipc(patentClassify);
+
+        }
+    }
+
+
+    /**
+     * 装载ipc主分类号
+     *
+     * @param patent
+     */
+    public void loadPatentMainIPC(Patent patent, String mainIpc) {
+        //装载IPC分类号
+        if (mainIpc != null && !mainIpc.equals("")) {
+            PatentClassify patentClassify = PatentClassifySplitter.split(mainIpc);
+            patent.setMipc(patentClassify);
+            if (patent.getIpc() == null || patent.getIpc().size() <= 0) {
                 patent.setIpc(Arrays.asList(patentClassify));
             }
         }
     }
 
 
+    public void loadPatentIPC(Patent patent, List<String> ipcArr) {
+        //装载IPC分类号
+        if (ipcArr != null && ipcArr.size() > 0) {
+            List<PatentClassify> patentClassifies = new ArrayList<>();
+            for (int i = 0; i < ipcArr.size(); i++) {
+                PatentClassify patentClassify = PatentClassifySplitter.split(ipcArr.get(i));
+                patentClassifies.add(patentClassify);
+            }
+            patent.setIpc(patentClassifies);
+            if (patentClassifies.size() > 0) {
+                patent.setMipc(patentClassifies.get(0));
+            }
+
+        }
+    }
+
     /**
      * 装载loc分类号
      *
      * @param patent
-     * @param mainIpc
      * @param ipcs
      */
-    public void loadPatentLoc(Patent patent, String mainIpc, String ipcs) {
+    public void loadPatentLoc(Patent patent, String ipcs) {
         //装载Loc分类号
         if (ipcs != null && !ipcs.equals("")) {
-            List<PatentClassify> patentClassifies = new ArrayList<>();
             List<String> ipcArr = Arrays.asList(ipcs.split(";"));
-            for (int i = 0; i < ipcArr.size(); i++) {
-                PatentClassify patentClassify = PatentClassifySplitter.split(ipcArr.get(i));
-                patentClassifies.add(patentClassify);
-            }
-            patent.setLoc(patentClassifies);
-
-            if (mainIpc == null || mainIpc.equals("")) {
+            //装载IPC分类号
+            if (ipcArr != null && ipcArr.size() > 0) {
+                List<PatentClassify> patentClassifies = new ArrayList<>();
+                for (int i = 0; i < ipcArr.size(); i++) {
+                    PatentClassify patentClassify = PatentClassifySplitter.split(ipcArr.get(i));
+                    patentClassifies.add(patentClassify);
+                }
+                patent.setLoc(patentClassifies);
                 if (patentClassifies.size() > 0) {
                     patent.setMloc(patentClassifies.get(0));
                 }
-            } else {
-                PatentClassify patentClassify = PatentClassifySplitter.split(mainIpc);
-                patent.setMloc(patentClassify);
+
             }
-        } else {
-            if (mainIpc != null && !mainIpc.equals("")) {
-                PatentClassify patentClassify = PatentClassifySplitter.split(mainIpc);
-                patent.setMloc(patentClassify);
+        }
+        PatentClassify patentClassify = new PatentClassify();
+        patentClassify.setLevel1("");
+        patentClassify.setLevel2("");
+        patentClassify.setLevel3("");
+        patent.setMipc(patentClassify);
+        patent.setIpc(new ArrayList<>());
+    }
+
+
+    /**
+     * 装载loc分类号
+     *
+     * @param patent
+     * @param mainLoc
+     */
+    public void loadPatentMainLoc(Patent patent, String mainLoc) {
+        //装载Loc分类号
+        if (mainLoc != null && !mainLoc.equals("")) {
+            PatentClassify patentClassify = PatentClassifySplitter.split(mainLoc);
+            patent.setMloc(patentClassify);
+            if (patent.getLoc() == null || patent.getLoc().size() <= 0) {
                 patent.setLoc(Arrays.asList(patentClassify));
             }
         }
@@ -429,18 +478,19 @@ public class WebVOTransformService {
     }
 
     public void loadPatentCPC(Patent patent, List<String> cpcArr) {
-        if(cpcArr==null){
+        if (cpcArr == null) {
             return;
         }
         //装载IPC分类号
-            List<PatentClassify> patentClassifies = new ArrayList<>();
-            for (int i = 0; i < cpcArr.size(); i++) {
-                PatentClassify patentClassify = PatentClassifySplitter.split(cpcArr.get(i));
-                patentClassifies.add(patentClassify);
-            }
-            patent.setIpc(patentClassifies);
+        List<PatentClassify> patentClassifies = new ArrayList<>();
+        for (int i = 0; i < cpcArr.size(); i++) {
+            PatentClassify patentClassify = PatentClassifySplitter.split(cpcArr.get(i));
+            patentClassifies.add(patentClassify);
+        }
+        patent.setIpc(patentClassifies);
 
     }
+
     /**
      * 装载摘要
      *
@@ -486,7 +536,7 @@ public class WebVOTransformService {
         if (publicDate != null && !publicDate.equals("")) {
             Date date = DateUtils.strToDate(publicDate);
             patent.setPublicDate(date);
-        } else if (patent.getPatentType()!=null&&!patent.getPatentType().equals("1") && !patent.getPatentType().equals("8")) {
+        } else if (patent.getPatentType() != null && !patent.getPatentType().equals("1") && !patent.getPatentType().equals("8")) {
             if (grantDate != null && !grantDate.trim().equals("")) {
                 Date date = DateUtils.strToDate(grantDate);
                 patent.setPublicDate(date);
@@ -505,7 +555,7 @@ public class WebVOTransformService {
         if (grantDate != null && !grantDate.equals("")) {
             Date date = DateUtils.strToDate(grantDate);
             patent.setGrantDate(date);
-        } else if (patent.getPatentType()!=null&&!patent.getPatentType().equals("1") && !patent.getPatentType().equals("8")) {
+        } else if (patent.getPatentType() != null && !patent.getPatentType().equals("1") && !patent.getPatentType().equals("8")) {
             if (publicDate != null && !publicDate.trim().equals("")) {
                 Date date = DateUtils.strToDate(publicDate);
                 patent.setGrantDate(date);
@@ -523,7 +573,7 @@ public class WebVOTransformService {
         publicNo = publicNo.trim();
         if (publicNo != null && !publicNo.equals("")) {
             patent.setPublicNo(publicNo);
-        } else if (patent.getPatentType()!=null&&!patent.getPatentType().equals("1") && !patent.getPatentType().equals("8")) {
+        } else if (patent.getPatentType() != null && !patent.getPatentType().equals("1") && !patent.getPatentType().equals("8")) {
             if (grantNo != null && !grantNo.equals("")) {
                 patent.setPublicNo(grantNo);
             }
@@ -539,7 +589,7 @@ public class WebVOTransformService {
     public void loadGrantNo(Patent patent, String publicNo, String grantNo) {
         if (grantNo != null && !grantNo.equals("")) {
             patent.setGrantNo(grantNo);
-        } else if (patent.getPatentType()!=null&&!patent.getPatentType().equals("1") && !patent.getPatentType().equals("8")) {
+        } else if (patent.getPatentType() != null && !patent.getPatentType().equals("1") && !patent.getPatentType().equals("8")) {
             if (publicNo != null && !publicNo.equals("")) {
                 patent.setGrantNo(publicNo);
             }
@@ -587,7 +637,7 @@ public class WebVOTransformService {
 
     public void loadRightHolder(Patent patent, List<String> names) {
         //装载权利人
-        if (names != null && names.size()>0) {
+        if (names != null && names.size() > 0) {
             List<PatentPerson> patentPeople = new ArrayList<>();
             for (int i = 0; i < names.size(); i++) {
                 String name = names.get(i);
@@ -603,6 +653,7 @@ public class WebVOTransformService {
             patent.setRightHolder(patent.getApplicant());
         }
     }
+
     /**
      * 装载代理机构
      *
@@ -640,7 +691,7 @@ public class WebVOTransformService {
     }
 
     public void loadApplicant(Patent patent, List<String> names) {
-        if (names != null && names.size()>0) {
+        if (names != null && names.size() > 0) {
             List<PatentPerson> patentPeople = new ArrayList<>();
             for (int i = 0; i < names.size(); i++) {
                 String name = names.get(i);
@@ -733,11 +784,11 @@ public class WebVOTransformService {
      * @param patent
      * @param cnFullXmlStr
      */
-    public void loadFullText(Patent patent, String cnFullXmlStr,Integer taskId) {
+    public void loadFullText(Patent patent, String cnFullXmlStr, Integer taskId) {
         try {
             //若没有取到全文文本,即取不到说明书文本,则将当前申请号或专利号和备注信息记录到问题记录表
             if (cnFullXmlStr.equals("")) {
-                recordQuestionPatent(patent.getAppNo(),taskId,1);
+                recordQuestionPatent(patent.getAppNo(), taskId, 1);
                 return;
             }
 
@@ -807,7 +858,7 @@ public class WebVOTransformService {
      * @param patent
      * @param cnFullXmlStr
      */
-    public void loadClaim(Patent patent, String cnFullXmlStr,Integer taskId) {
+    public void loadClaim(Patent patent, String cnFullXmlStr, Integer taskId) {
         try {
             if (cnFullXmlStr != null && cnFullXmlStr != "") {
                 SAXReader reader = new SAXReader();
@@ -850,31 +901,31 @@ public class WebVOTransformService {
                 params.setContent(reClaim);
                 params.setPatentNo(patent.getPatentNo());
                 List<RePatentClaim> rePatentClaims = ClaimSplitUtils.formatPatentRight(params);
-            List<RePatentClaim> mainClaims =rePatentClaims.stream().filter(item->item.getParentSort()!=null&&item.getParentSort().equals("-1")).collect(Collectors.toList());
-                if(rePatentClaims!=null){
+                List<RePatentClaim> mainClaims = rePatentClaims.stream().filter(item -> item.getParentSort() != null && item.getParentSort().equals("-1")).collect(Collectors.toList());
+                if (rePatentClaims != null) {
                     patent.setRightNum(rePatentClaims.size());
                 }
-                if(mainClaims!=null){
+                if (mainClaims != null) {
                     patent.setMainRightNum(mainClaims.size());
                 }
-            }
-            else {
-                this.recordQuestionPatent(patent.getAppNo(),taskId,2);
+            } else {
+                this.recordQuestionPatent(patent.getAppNo(), taskId, 2);
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
-    public void recordQuestionPatent(String appNo,Integer taskId,Integer type) {
+    public void recordQuestionPatent(String appNo, Integer taskId, Integer type) {
         PatentImportErrorLog patentImportErrorLog = new PatentImportErrorLog();
         patentImportErrorLog.setPatentNo(appNo);
         patentImportErrorLog.setErrorType(type);
         patentImportErrorLog.setTaskId(taskId);
         patentImportErrorLog.insert();
     }
+
     public String getPersonType(String name, List<PatentPerson> personList) {
-        if(name==null){
+        if (name == null) {
             return null;
         }
         List<String> names = new ArrayList<>();
@@ -957,7 +1008,7 @@ public class WebVOTransformService {
         UploadParamsVO.Field field = new UploadParamsVO.Field();
         field.setKey("监控周期:4");
         Date date = new Date();
-        String cycle = DateUtils2.getDateIndexStr(date,importTaskAMVO.getUpdateCycle());
+        String cycle = DateUtils2.getDateIndexStr(date, importTaskAMVO.getUpdateCycle());
 
         field.setFieldList(Arrays.asList(cycle));
 
@@ -986,7 +1037,7 @@ public class WebVOTransformService {
         return list;
     }
 
-    public void getCNPatentPicture(UploadPatentWebDTO uploadPatentWebDTO,Integer taskId) {
+    public void getCNPatentPicture(UploadPatentWebDTO uploadPatentWebDTO, Integer taskId) {
         try {
             Long startMillis = System.currentTimeMillis();
             List<String> pictureUrls = patentStarApiService.getExternalFigure(uploadPatentWebDTO.getStarPatentVO().getANO());
@@ -1006,9 +1057,8 @@ public class WebVOTransformService {
                     file.delete();
                 }
 
-            }
-            else {
-                this.recordQuestionPatent(patent.getAppNo(),taskId,4);
+            } else {
+                this.recordQuestionPatent(patent.getAppNo(), taskId, 4);
             }
 
         } catch (Exception e) {
@@ -1018,11 +1068,11 @@ public class WebVOTransformService {
     }
 
 
-    public  void getCnPatentPDF(String pdfUrlStr,StarPatentVO starPatentVO) throws Exception {
-       if(pdfUrlStr==null){
-           return;
-       }
-        String  pdfUrl1 = "", pdfUrl2 = "";
+    public void getCnPatentPDF(String pdfUrlStr, StarPatentVO starPatentVO) throws Exception {
+        if (pdfUrlStr == null) {
+            return;
+        }
+        String pdfUrl1 = "", pdfUrl2 = "";
         if (pdfUrlStr.contains("|http")) {  //若包含公开和授权两个pdf
             String[] pdfUrlArr = pdfUrlStr.split("\\|http");
             pdfUrl1 = pdfUrlArr[0].substring(pdfUrlArr[0].indexOf("http"), pdfUrlArr[0].indexOf("?"));
@@ -1045,10 +1095,9 @@ public class WebVOTransformService {
                 fileManagerService.uploadFileWithGuid(file2, guid2);
             }
         } else {  //若只有一个
-            if(pdfUrlStr.contains("?")) {
+            if (pdfUrlStr.contains("?")) {
                 pdfUrl1 = pdfUrlStr.substring(pdfUrlStr.indexOf("http"), pdfUrlStr.indexOf("?"));
-            }
-            else {
+            } else {
                 pdfUrl1 = pdfUrlStr.substring(pdfUrlStr.indexOf("http"));
             }
             if (pdfUrl1.contains("0A_CN_0.pdf")) {
@@ -1063,8 +1112,8 @@ public class WebVOTransformService {
         }
     }
 
-    public void getWdPatentPDF(String pdfUrl,String usedPatentNo) throws Exception{
-        if(pdfUrl==null){
+    public void getWdPatentPDF(String pdfUrl, String usedPatentNo) throws Exception {
+        if (pdfUrl == null) {
             return;
         }
         if (!pdfUrl.equals("")) {

+ 2 - 2
src/main/resources/application-dev.yml

@@ -51,7 +51,7 @@ spring:
             threadsInheritContextClassLoaderOfInitializingThread: true
           dataSource:
             default:
-              URL: jdbc:mysql://192.168.2.24:3306/pas?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+              URL: jdbc:mysql://192.168.2.24:3306/pas_prod2?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
               user: root
               password: rrzTwWAYX8Gxh5JH
               driver: com.mysql.jdbc.Driver
@@ -60,7 +60,7 @@ spring:
     job-store-type: jdbc
     #初始化表结构
     jdbc:
-      initialize-schema: always
+      initialize-schema:  never
 authorUrl: http://localhost:8885
 PCSUrl: http://localhost:8885
 #OPSUrl: http://192.168.2.24:5001

+ 1 - 1
src/main/resources/application-testNetIn.yml

@@ -60,7 +60,7 @@ spring:
     job-store-type: jdbc
     #初始化表结构`
     jdbc:
-      initialize-schema: always
+      initialize-schema: never
 authorUrl: http://localhost:8880
 PCSUrl: http://localhost:8880
 #OPSUrl: http://192.168.1.24:5001

文件差異過大導致無法顯示
+ 17 - 2
src/test/java/cn/cslg/pas/service/ClaimTextTests.java


文件差異過大導致無法顯示
+ 85 - 0
src/test/java/cn/cslg/pas/service/patentImportTest.java