ソースを参照

fixed translate

zero 1 年間 前
コミット
6a0ac49e53

+ 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);

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

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

+ 28 - 3
src/main/java/cn/cslg/pas/service/common/TranslateService.java

@@ -177,7 +177,7 @@ public class TranslateService {
         }
         //译文
         String translateContent = this.getTranslateContent(textContent);
-        String s1 = this.loadingTranslate(patentNo, patentField, "CN", false, 0, "-1", translateContent);
+        String s1 = this.loadingTranslate(patentNo, patentField, text.getLanguage(), false, 0, "-1", translateContent);
         if (StringUtils.isNotEmpty(s1)) {
             i += 1;
         }
@@ -304,7 +304,7 @@ public class TranslateService {
                 for (RePatentClaim rePatentClaim : rePatentClaims) {
                     //原文
                     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;
                     }
@@ -412,7 +412,7 @@ public class TranslateService {
             for (EsTranslateDTO translateDTO : translateDTOS) {
                 Content content = translateDTO.getContent();
                 String translateContent = this.getTranslateContent(content.getTextContent());
-                String s = this.loadingTranslate(translateDTO.getPatentNo(), translateDTO.getPatentField(), "CN", false,
+                String s = this.loadingTranslate(translateDTO.getPatentNo(), translateDTO.getPatentField(), translateDTO.getLanguage(), false,
                         content.getOrder(), content.getParentSort(), translateContent);
                 if (StringUtils.isNotEmpty(s)) {
                     i++;
@@ -471,4 +471,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;
+    }
 }