浏览代码

Merge remote-tracking branch 'origin/master'

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

+ 4 - 1
src/main/java/cn/cslg/pas/common/vo/PatentRightTree.java

@@ -31,10 +31,13 @@ public class PatentRightTree {
      */
     private List<PatentRightTree> children;
 
-    public PatentRightTree(Integer sort, List<Integer> parentSorts, String content) {
+    private String translateContent;
+
+    public PatentRightTree(Integer sort, List<Integer> parentSorts, String content,String translateContent) {
         this.sort = sort;
         this.parentSorts = parentSorts;
         this.content = content;
+        this.translateContent = translateContent;
     }
 
 }

+ 23 - 2
src/main/java/cn/cslg/pas/service/business/FeatureService.java

@@ -15,6 +15,7 @@ import cn.cslg.pas.common.vo.*;
 import cn.cslg.pas.common.vo.business.SplitVO;
 import cn.cslg.pas.common.vo.invalidVO.QueryClaimSplitHistoryVO;
 import cn.cslg.pas.domain.business.*;
+import cn.cslg.pas.domain.es.PatentTranslate;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.FeatureMapper;
 import cn.cslg.pas.service.ClaimMessageService;
@@ -22,12 +23,18 @@ import cn.cslg.pas.service.business.es.EsService;
 import cn.cslg.pas.service.business.invalidReport.AssoGroupFeatureService;
 import cn.cslg.pas.service.business.invalidReport.PatentClaimService;
 import cn.cslg.pas.service.common.PatentStarApiService;
+import cn.cslg.pas.service.common.TranslateService;
+import co.elastic.clients.elasticsearch._types.query_dsl.Query;
+import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
+import co.elastic.clients.elasticsearch.core.SearchRequest;
+import co.elastic.clients.elasticsearch.core.SearchResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
 import java.util.*;
@@ -66,6 +73,9 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
     @Autowired
     private PatentClaimService patentClaimService;
 
+    @Autowired
+    private TranslateService translateService;
+
     @Transactional(rollbackFor = Exception.class)
     public List<PatentRightVo> splitPatentFeature(SplitVO splitVO) throws IOException {
         String patentNo = splitVO.getPatentNo();
@@ -285,13 +295,24 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
 
             //判断若处理后的权要集合只有1个元素并且类型type=-1、排序号sort=-1,则表示本次拆分失败,则直接返回整个权要
             if (patentRights.size() == 1 && patentRights.get(0).getType() == -1 && patentRights.get(0).getSort() == -1) {
-                treeNodeList.add(new PatentRightTree(patentRights.get(0).getSort(), null, patentRights.get(0).getContent()));
+                List<String> list = translateService.getTranslateOrder(patentNo, patentRights.get(0).getSort());
+                String translateContent = "";
+                if (!CollectionUtils.isEmpty(list)) {
+                    translateContent = list.get(0);
+                }
+                treeNodeList.add(new PatentRightTree(patentRights.get(0).getSort(), null, patentRights.get(0).getContent(),translateContent));
                 return treeNodeList;
             }
             List<PatentRightContent> patentRightContents = this.loadPatentRightContent(patentRights);
             for (PatentRightContent patentRightContent : patentRightContents) {
-                treeNodeList.add(new PatentRightTree(patentRightContent.getSort(), patentRightContent.getParentSorts(), patentRightContent.getContent()));
+                List<String> list = translateService.getTranslateOrder(patentNo, patentRightContent.getSort());
+                String translateContent = "";
+                if (!CollectionUtils.isEmpty(list)) {
+                    translateContent = list.get(0);
+                }
+                treeNodeList.add(new PatentRightTree(patentRightContent.getSort(), patentRightContent.getParentSorts(), patentRightContent.getContent(), translateContent));
             }
+
             //开始进行权要树装载
             try {
                 TreeBuild treeBuild = new TreeBuild(treeNodeList);

+ 6 - 0
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -351,6 +351,12 @@ public class EsService {
     public PatentColumnDTO getPatentColumnDTO(Patent patent, Integer projectId, String id) {
         PatentColumnDTO columnDTO = new PatentColumnDTO();
         BeanUtils.copyProperties(patent, columnDTO);
+        if (!CollectionUtils.isEmpty(patent.getIpc())){
+            boolean b = patent.getIpc().stream().allMatch(Objects::isNull);
+            if (b) {
+                columnDTO.setIpc(new ArrayList<>());
+            }
+        }
         if (projectId != null) {
             try {
                 columnDTO.setMergeApplicant(esPatentService.getMergeApp(projectId, id));

+ 31 - 2
src/main/java/cn/cslg/pas/service/common/TranslateService.java

@@ -302,9 +302,13 @@ public class TranslateService {
                 params.setCountry(text.getLanguage());
                 List<RePatentClaim> rePatentClaims = ClaimSplitUtils.formatPatentRight(params);
                 for (RePatentClaim rePatentClaim : rePatentClaims) {
+                    if (rePatentClaim.getContent().contains("&nbsp;")) {
+                        String replace = rePatentClaim.getContent().replace("&nbsp;", " ");
+                        rePatentClaim.setContent(replace);
+                    }
                     //原文
                     String s = this.loadingTranslate(patentNo, patentField, text.getLanguage(), true,
-                            i, rePatentClaim.getParentSort(), rePatentClaim.getContent());
+                            rePatentClaim.getSort(), rePatentClaim.getParentSort(), rePatentClaim.getContent());
                     if (StringUtils.isNotEmpty(s)) {
                         i += 1;
                     }
@@ -383,7 +387,7 @@ public class TranslateService {
                     if (fVO != null) {
                         TranslateVO translateVO = new TranslateVO();
                         translateVO.setPatentNo(tVO.getPatentNo());
-                        translateVO.setLanguage(fVO.getLanguage());
+                        translateVO.setLanguage(tVO.getLanguage());
                         translateVO.setPatentField(tVO.getPatentField());
                         translateVO.setOriginalContent(tVO.getOriginalContent());
                         translateVO.setParentSort(tVO.getParentSort());
@@ -471,4 +475,29 @@ public class TranslateService {
         }
         return explainTextVOS;
     }
+
+    public List<String> getTranslateOrder(String patentNo, Integer sort) throws IOException {
+        List<String> list = new ArrayList<>();
+        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("3"));
+        Query q3 = QueryBuilders.term(t -> t.field("content.order").value(sort));
+        Query q4 = QueryBuilders.term(i -> i.field("language").value("CN"));
+        Query bool = QueryBuilders.bool(i -> i.must(q1, q2, q3,q4));
+        builder.query(bool);
+        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 list;
+    }
 }