瀏覽代碼

合并相关接口

zero 1 年之前
父節點
當前提交
e7709c200e

+ 11 - 0
src/main/java/cn/cslg/pas/common/dto/MergePersonQueryDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto;
 package cn.cslg.pas.common.dto;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.util.Date;
 import java.util.Date;
@@ -10,16 +11,26 @@ public class MergePersonQueryDTO {
 
 
     private Integer id;
     private Integer id;
 
 
+    private Integer projectId;
+
+    private Integer type;
+
     private String name;
     private String name;
 
 
     private String abbreviation;
     private String abbreviation;
 
 
+    private String province;
+
     private String country;
     private String country;
 
 
     private String address;
     private String address;
 
 
     private String remark;
     private String remark;
 
 
+    @JsonFormat(
+            pattern = "yyyy-MM-dd",
+            timezone = "GMT+8"
+    )
     private Date createTime;
     private Date createTime;
 
 
     private List<String> mergedName;
     private List<String> mergedName;

+ 1 - 1
src/main/java/cn/cslg/pas/common/vo/business/MergePersonIdVO.java

@@ -3,7 +3,7 @@ package cn.cslg.pas.common.vo.business;
 import lombok.Data;
 import lombok.Data;
 
 
 @Data
 @Data
-public class MergePersonIdVO {
+public class   MergePersonIdVO {
 
 
     private Integer id;
     private Integer id;
 
 

+ 17 - 0
src/main/java/cn/cslg/pas/common/vo/business/MergedNameVO.java

@@ -0,0 +1,17 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MergedNameVO {
+
+    private String name;
+
+    private Integer projectId;
+
+    private String delName;
+
+    private Integer type;
+}

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

@@ -1,25 +1,21 @@
 package cn.cslg.pas.controller;
 package cn.cslg.pas.controller;
 
 
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.core.base.Constants;
-import cn.cslg.pas.common.dto.GetAllPersonDTO;
+import cn.cslg.pas.common.dto.MergePersonQueryDTO;
 import cn.cslg.pas.common.dto.PatentColumnDTO;
 import cn.cslg.pas.common.dto.PatentColumnDTO;
-import cn.cslg.pas.common.dto.PatentDetailDTO;
 import cn.cslg.pas.common.dto.PatentExport.PatentExportParams;
 import cn.cslg.pas.common.dto.PatentExport.PatentExportParams;
 import cn.cslg.pas.common.dto.PatentExport.TaskParams;
 import cn.cslg.pas.common.dto.PatentExport.TaskParams;
 import cn.cslg.pas.common.dto.PatentKinDTO;
 import cn.cslg.pas.common.dto.PatentKinDTO;
 import cn.cslg.pas.common.dto.business.EsCountDTO;
 import cn.cslg.pas.common.dto.business.EsCountDTO;
 import cn.cslg.pas.common.dto.business.SelectClaimDTO;
 import cn.cslg.pas.common.dto.business.SelectClaimDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.cronModel.Records;
-import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.vo.business.*;
 import cn.cslg.pas.common.vo.business.*;
-import cn.cslg.pas.common.vo.PatentPageMessageVO;
 import cn.cslg.pas.common.vo.PatentWithIdVO;
 import cn.cslg.pas.common.vo.PatentWithIdVO;
 import cn.cslg.pas.common.vo.StarPatentVO;
 import cn.cslg.pas.common.vo.StarPatentVO;
 import cn.cslg.pas.common.vo.business.EsAllCountVO;
 import cn.cslg.pas.common.vo.business.EsAllCountVO;
-import cn.cslg.pas.common.vo.business.EsCountVO;
 import cn.cslg.pas.common.vo.business.PatentKinVO;
 import cn.cslg.pas.common.vo.business.PatentKinVO;
 import cn.cslg.pas.common.vo.business.PatentNoVO;
 import cn.cslg.pas.common.vo.business.PatentNoVO;
 import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.factorys.businessFactory.Business;
@@ -37,7 +33,6 @@ import io.swagger.v3.oas.annotations.Operation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.InputStreamResource;
 import org.springframework.core.io.InputStreamResource;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
@@ -46,7 +41,6 @@ import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.IOException;
 import java.net.URLEncoder;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.nio.charset.StandardCharsets;
-import java.util.Collections;
 import java.util.List;
 import java.util.List;
 
 
 @RequestMapping(Constants.API_XiaoSHI + "/patent")
 @RequestMapping(Constants.API_XiaoSHI + "/patent")
@@ -167,6 +161,13 @@ public class PatentController {
         return Response.success(records);
         return Response.success(records);
     }
     }
 
 
+    @Operation(summary = "合并人员详情")
+    @PostMapping("/selectMergePersonDetail")
+    public Response selectMergePersonDetail(@RequestBody MergePersonIdVO vo) {
+        MergePersonQueryDTO dto = mergePersonService.selectMergePersonDetail(vo);
+        return Response.success(dto);
+    }
+
     @Operation(summary = "获取所有发明人/权利人/申请人")
     @Operation(summary = "获取所有发明人/权利人/申请人")
     @PostMapping("/getMergePerson")
     @PostMapping("/getMergePerson")
     public Response getMergePerson(@RequestBody GetAllPersonVO vo) throws Exception {
     public Response getMergePerson(@RequestBody GetAllPersonVO vo) throws Exception {
@@ -174,6 +175,13 @@ public class PatentController {
         return Response.success(records);
         return Response.success(records);
     }
     }
 
 
+    @Operation(summary = "发明人/权利人/申请人合并后的名称移除")
+    @PostMapping("/delMergedName")
+    public Response delMergedName(@RequestBody MergedNameVO vo) throws Exception {
+        Integer id = mergePersonService.delMergedName(vo);
+        return Response.success(id);
+    }
+
     @Operation(summary = "发明人/权利人/申请人合并记录删除")
     @Operation(summary = "发明人/权利人/申请人合并记录删除")
     @PostMapping("/delMergePerson")
     @PostMapping("/delMergePerson")
     public Response delMergePerson(@RequestBody MergePersonIdVO vo) throws Exception {
     public Response delMergePerson(@RequestBody MergePersonIdVO vo) throws Exception {

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

@@ -8,6 +8,7 @@ import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.vo.QueryExternalFamilyVO;
 import cn.cslg.pas.common.vo.QueryExternalFamilyVO;
 import cn.cslg.pas.common.vo.business.PatentNoVO;
 import cn.cslg.pas.common.vo.business.PatentNoVO;
+import cn.cslg.pas.domain.es.Text;
 import cn.cslg.pas.service.common.PatentStarApiService;
 import cn.cslg.pas.service.common.PatentStarApiService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -116,4 +117,11 @@ public class PatentStarController {
         Records records = patentStarApiService.queryExternalFamily(vo);
         Records records = patentStarApiService.queryExternalFamily(vo);
         return Response.success(records);
         return Response.success(records);
     }
     }
+
+    @GetMapping("/getCnFullText")
+    @Operation(summary = "获得中国专利说明书全文文本")
+    public Response getCnFullText(String appNo) throws IOException {
+        List<Text> fullText = patentStarApiService.getCnFullText(appNo);
+        return Response.success(fullText);
+    }
 }
 }

+ 131 - 21
src/main/java/cn/cslg/pas/service/business/MergePersonService.java

@@ -11,10 +11,7 @@ import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.utils.parseQueryToTree.expressManager;
 import cn.cslg.pas.common.utils.parseQueryToTree.expressManager;
 import cn.cslg.pas.common.utils.parseQueryToTree.operateNode;
 import cn.cslg.pas.common.utils.parseQueryToTree.operateNode;
 import cn.cslg.pas.common.utils.parseQueryToTree.treeNode;
 import cn.cslg.pas.common.utils.parseQueryToTree.treeNode;
-import cn.cslg.pas.common.vo.business.GetAllPersonVO;
-import cn.cslg.pas.common.vo.business.MergePersonIdVO;
-import cn.cslg.pas.common.vo.business.MergePersonQueryVO;
-import cn.cslg.pas.common.vo.business.MergePersonVO;
+import cn.cslg.pas.common.vo.business.*;
 import cn.cslg.pas.domain.BaseEntity;
 import cn.cslg.pas.domain.BaseEntity;
 import cn.cslg.pas.domain.business.FollowUp;
 import cn.cslg.pas.domain.business.FollowUp;
 import cn.cslg.pas.domain.business.MergePerson;
 import cn.cslg.pas.domain.business.MergePerson;
@@ -81,7 +78,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
     private EsService esService;
     private EsService esService;
 
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
-    public Integer mergePerson(MergePersonVO vo) throws IOException {
+    public Integer mergePerson(MergePersonVO vo) throws Exception {
         Integer type = vo.getType();
         Integer type = vo.getType();
         List<String> mergedNames = vo.getMergedName();
         List<String> mergedNames = vo.getMergedName();
         //获取登陆人信息 用于设置创建人
         //获取登陆人信息 用于设置创建人
@@ -91,6 +88,15 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         } catch (Exception e) {
         } catch (Exception e) {
             throw new UnLoginException("未登录");
             throw new UnLoginException("未登录");
         }
         }
+        //判断是否名称重复
+        LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
+                .eq(MergePerson::getProjectId, vo.getProjectId())
+                .eq(MergePerson::getName, vo.getName());
+        List<MergePerson> list = mergePersonMapper.selectList(wrapper);
+        if (list.size() > 1) {
+            throw new Exception("合并名称不可重复");
+        }
+
         MergePerson person = new MergePerson();
         MergePerson person = new MergePerson();
         BeanUtils.copyProperties(vo, person);
         BeanUtils.copyProperties(vo, person);
         person.setMergedName(JSONArray.toJSONString(mergedNames));
         person.setMergedName(JSONArray.toJSONString(mergedNames));
@@ -105,13 +111,16 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         List<Query> queries = new ArrayList<>();
         List<Query> queries = new ArrayList<>();
         if (type == 0) {
         if (type == 0) {
             for (String mergedName : mergedNames) {
             for (String mergedName : mergedNames) {
-                Query q = QueryBuilders.term(i -> i.field("applicant.name").value(mergedName));
-                Query query = QueryBuilders.nested(i -> i.path("applicant").query(q));
-                queries.add(query);
+                Query q1 = QueryBuilders.term(i -> i.field("applicant.name.key").value(mergedName));
+                Query query1 = QueryBuilders.nested(i -> i.path("applicant").query(q1));
+                Query q2 = QueryBuilders.term(i -> i.field("right_holder.name.key").value(mergedName));
+                Query query2 = QueryBuilders.nested(i -> i.path("right_holder").query(q2));
+                queries.add(query1);
+                queries.add(query2);
             }
             }
         } else {
         } else {
             for (String mergedName : mergedNames) {
             for (String mergedName : mergedNames) {
-                Query q = QueryBuilders.term(i -> i.field("inventor.name").value(mergedName));
+                Query q = QueryBuilders.term(i -> i.field("inventor.name.key").value(mergedName));
                 Query query = QueryBuilders.nested(i -> i.path("inventor").query(q));
                 Query query = QueryBuilders.nested(i -> i.path("inventor").query(q));
                 queries.add(query);
                 queries.add(query);
             }
             }
@@ -138,7 +147,6 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
             for (String id : map.keySet()) {
             for (String id : map.keySet()) {
                 Patent patent = map.get(id);
                 Patent patent = map.get(id);
                 List<PatentMergePerson> mergeApplicants = patent.getMergeApplicant();
                 List<PatentMergePerson> mergeApplicants = patent.getMergeApplicant();
-                List<String> Names = mergeApplicants.stream().map(PatentMergePerson::getName).collect(Collectors.toList());
                 mergePersonList.addAll(mergeApplicants);
                 mergePersonList.addAll(mergeApplicants);
                 patent.setMergeApplicant(mergePersonList);
                 patent.setMergeApplicant(mergePersonList);
                 patent.setMergeRightHolder(mergePersonList);
                 patent.setMergeRightHolder(mergePersonList);
@@ -149,7 +157,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
     }
     }
 
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
-    public Integer updateMergePerson(MergePersonVO vo) throws IOException {
+    public Integer updateMergePerson(MergePersonVO vo) throws Exception {
         //获取登陆人信息 用于设置创建人
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
         PersonnelVO personnelVO = new PersonnelVO();
         Integer type = vo.getType();
         Integer type = vo.getType();
@@ -158,9 +166,19 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         } catch (Exception e) {
         } catch (Exception e) {
             throw new UnLoginException("未登录");
             throw new UnLoginException("未登录");
         }
         }
+        //判断是否名称重复
+        LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
+                .eq(MergePerson::getProjectId, vo.getProjectId())
+                .eq(MergePerson::getName, vo.getName());
+        List<MergePerson> list = mergePersonMapper.selectList(wrapper);
+        if (list.size() > 1) {
+            throw new Exception("合并名称不可重复");
+        }
+        //获取老专利
         MergePerson person = this.getById(vo.getId());
         MergePerson person = this.getById(vo.getId());
         String mergedName = person.getMergedName();
         String mergedName = person.getMergedName();
         String name = person.getName();
         String name = person.getName();
+
         if (ObjectUtil.isNotEmpty(person)) {
         if (ObjectUtil.isNotEmpty(person)) {
             BeanUtils.copyProperties(vo, person);
             BeanUtils.copyProperties(vo, person);
             person.setMergedName(JSONArray.toJSONString(vo.getMergedName()));
             person.setMergedName(JSONArray.toJSONString(vo.getMergedName()));
@@ -176,13 +194,16 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
             List<Query> queries = new ArrayList<>();
             List<Query> queries = new ArrayList<>();
             if (type == 0) {
             if (type == 0) {
                 for (String merged : mergedNames) {
                 for (String merged : mergedNames) {
-                    Query q = QueryBuilders.term(i -> i.field("applicant.name").value(merged));
-                    Query query = QueryBuilders.nested(i -> i.path("applicant").query(q));
-                    queries.add(query);
+                    Query q1 = QueryBuilders.term(i -> i.field("applicant.name.key").value(merged));
+                    Query query1 = QueryBuilders.nested(i -> i.path("applicant").query(q1));
+                    Query q2 = QueryBuilders.term(i -> i.field("right_holder.name.key").value(merged));
+                    Query query2 = QueryBuilders.nested(i -> i.path("right_holder").query(q2));
+                    queries.add(query1);
+                    queries.add(query2);
                 }
                 }
             } else {
             } else {
                 for (String merged : mergedNames) {
                 for (String merged : mergedNames) {
-                    Query q = QueryBuilders.term(i -> i.field("inventor.name").value(merged));
+                    Query q = QueryBuilders.term(i -> i.field("inventor.name.key").value(merged));
                     Query query = QueryBuilders.nested(i -> i.path("inventor").query(q));
                     Query query = QueryBuilders.nested(i -> i.path("inventor").query(q));
                     queries.add(query);
                     queries.add(query);
                 }
                 }
@@ -231,9 +252,12 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         for (MergePerson person : record.getRecords()) {
         for (MergePerson person : record.getRecords()) {
             MergePersonQueryDTO dto = new MergePersonQueryDTO();
             MergePersonQueryDTO dto = new MergePersonQueryDTO();
             dto.setId(person.getId());
             dto.setId(person.getId());
+            dto.setProjectId(person.getProjectId());
+            dto.setType(person.getType());
             dto.setName(person.getName());
             dto.setName(person.getName());
             dto.setAddress(person.getAddress());
             dto.setAddress(person.getAddress());
             dto.setCountry(person.getCountry());
             dto.setCountry(person.getCountry());
+            dto.setProvince(person.getProvince());
             dto.setRemark(person.getRemark());
             dto.setRemark(person.getRemark());
             dto.setAbbreviation(person.getAbbreviation());
             dto.setAbbreviation(person.getAbbreviation());
             dto.setCreateTime(person.getCreateTime());
             dto.setCreateTime(person.getCreateTime());
@@ -249,6 +273,17 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         return records;
         return records;
     }
     }
 
 
+    public MergePersonQueryDTO selectMergePersonDetail(MergePersonIdVO vo) {
+        MergePersonQueryDTO dto = new MergePersonQueryDTO();
+        MergePerson person = mergePersonMapper.selectById(vo.getId());
+        if (ObjectUtil.isNotEmpty(person)) {
+            BeanUtils.copyProperties(person, dto);
+            List<String> names = JSONArray.parseArray(person.getMergedName(), String.class);
+            dto.setMergedName(names);
+        }
+        return dto;
+    }
+
     public Records getMergePerson(GetAllPersonVO vo) throws Exception {
     public Records getMergePerson(GetAllPersonVO vo) throws Exception {
         Integer projectId = vo.getProjectId();
         Integer projectId = vo.getProjectId();
         Integer taskId = vo.getTaskId();
         Integer taskId = vo.getTaskId();
@@ -258,7 +293,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         String searchCondition = "";
         String searchCondition = "";
         if (type == 0 && StringUtils.isNotEmpty(vo.getName())) {
         if (type == 0 && StringUtils.isNotEmpty(vo.getName())) {
             searchCondition = searchCondition + "PA = " + vo.getName();
             searchCondition = searchCondition + "PA = " + vo.getName();
-        } else if (type == 2 && StringUtils.isNotEmpty(vo.getName())){
+        } else if (type == 2 && StringUtils.isNotEmpty(vo.getName())) {
             searchCondition = searchCondition + "IN = " + vo.getName();
             searchCondition = searchCondition + "IN = " + vo.getName();
         }
         }
         if (taskId != null) {
         if (taskId != null) {
@@ -369,21 +404,96 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         return records;
         return records;
     }
     }
 
 
+
+    public Integer delMergedName(MergedNameVO vo) throws IOException {
+        Integer type = vo.getType();
+        String delName = vo.getDelName();
+        String name = vo.getName();
+        Integer projectId = vo.getProjectId();
+        MergePerson mergePerson = mergePersonMapper.selectOne(new LambdaQueryWrapper<MergePerson>()
+                .eq(MergePerson::getMergedName, name)
+                .eq(MergePerson::getProjectId, projectId));
+        if (ObjectUtil.isNotEmpty(mergePerson)) {
+            Integer personId = mergePerson.getId();
+            String mergedName = mergePerson.getMergedName();
+            List<String> list = JSONArray.parseArray(mergedName, String.class);
+            list.remove(delName);
+            MergePerson person = mergePersonMapper.selectById(personId);
+            person.setMergedName(JSONArray.toJSONString(list));
+            person.updateById();
+
+            SearchRequest.Builder builder = new SearchRequest.Builder();
+            //设置查询索引
+            builder.index("patent");
+            List<Query> queries = new ArrayList<>();
+            List<Query> mustQueries = new ArrayList<>();
+            if (type == 0) {
+                Query q1 = QueryBuilders.term(i -> i.field("applicant.name.key").value(delName));
+                Query query1 = QueryBuilders.nested(i -> i.path("applicant").query(q1));
+                Query q2 = QueryBuilders.term(i -> i.field("right_holder.name.key").value(delName));
+                Query query2 = QueryBuilders.nested(i -> i.path("right_holder").query(q2));
+                queries.add(query1);
+                queries.add(query2);
+                Query q3 = QueryBuilders.term(i -> i.field("merge_applicant.name.raw").value(name));
+                Query query3 = QueryBuilders.nested(i -> i.path("merge_applicant").query(q3));
+                Query q4 = QueryBuilders.term(i -> i.field("merge_right_holder.name.raw").value(name));
+                Query query4 = QueryBuilders.nested(i -> i.path("merge_right_holder").query(q4));
+                mustQueries.add(query3);
+                mustQueries.add(query4);
+            } else {
+                Query q = QueryBuilders.term(i -> i.field("inventor.name.key").value(delName));
+                Query query = QueryBuilders.nested(i -> i.path("inventor").query(q));
+                queries.add(query);
+                Query q1 = QueryBuilders.term(i -> i.field("merge_inventor.name.raw").value(name));
+                Query query1 = QueryBuilders.nested(i -> i.path("merge_inventor").query(q1));
+                queries.add(query1);
+            }
+            Query query = QueryBuilders.bool(i -> i.must(mustQueries).should(queries));
+            builder.query(query);
+            SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+            List<Hit<Patent>> hits = response.hits().hits();
+            Map<String, Patent> map = new HashMap<>();
+            for (Hit<Patent> hit : hits) {
+                String id = hit.id();
+                map.put(id, hit.source());
+            }
+
+            if (!CollectionUtils.isEmpty(map)) {
+                for (String id : map.keySet()) {
+                    Patent patent = map.get(id);
+                    esService.delMergePerson(patent, id, type, mergePerson.getName());
+                }
+            }
+        }
+        return mergePerson.getId();
+    }
+
     public Integer delMergePerson(MergePersonIdVO vo) throws IOException {
     public Integer delMergePerson(MergePersonIdVO vo) throws IOException {
         Integer type = vo.getType();
         Integer type = vo.getType();
         MergePerson mergePerson = mergePersonMapper.selectById(vo.getId());
         MergePerson mergePerson = mergePersonMapper.selectById(vo.getId());
+        String name = mergePerson.getName();
         if (ObjectUtil.isNotEmpty(mergePerson)) {
         if (ObjectUtil.isNotEmpty(mergePerson)) {
             LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
             LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
                     .eq(BaseEntity::getId, vo.getId());
                     .eq(BaseEntity::getId, vo.getId());
             this.remove(wrapper);
             this.remove(wrapper);
 
 
-            //todo 删掉相关合并的名称
             SearchRequest.Builder builder = new SearchRequest.Builder();
             SearchRequest.Builder builder = new SearchRequest.Builder();
             //设置查询索引
             //设置查询索引
             builder.index("patent");
             builder.index("patent");
-
-            Query q = QueryBuilders.term(i -> i.field("merge_applicant.name").value(mergePerson.getName()));
-            Query query = QueryBuilders.nested(i -> i.path("merge_applicant").query(q));
+            List<Query> queries = new ArrayList<>();
+            if (type == 0) {
+                Query q1 = QueryBuilders.term(i -> i.field("merge_applicant.name.raw").value(name));
+                Query query1 = QueryBuilders.nested(i -> i.path("merge_applicant").query(q1));
+                Query q2 = QueryBuilders.term(i -> i.field("merge_right_holder.name.raw").value(name));
+                Query query2 = QueryBuilders.nested(i -> i.path("merge_right_holder").query(q2));
+                queries.add(query1);
+                queries.add(query2);
+            } else {
+                Query q = QueryBuilders.term(i -> i.field("merge_inventor.name.raw").value(name));
+                Query query3 = QueryBuilders.nested(i -> i.path("merge_inventor").query(q));
+                queries.add(query3);
+            }
+            Query query = QueryBuilders.bool(i -> i.must(queries));
             builder.query(query);
             builder.query(query);
             SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
             SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
             List<Hit<Patent>> hits = response.hits().hits();
             List<Hit<Patent>> hits = response.hits().hits();
@@ -396,7 +506,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
             if (!CollectionUtils.isEmpty(map)) {
             if (!CollectionUtils.isEmpty(map)) {
                 for (String id : map.keySet()) {
                 for (String id : map.keySet()) {
                     Patent patent = map.get(id);
                     Patent patent = map.get(id);
-                    esService.delMergePerson(patent, id, type,mergePerson.getName());
+                    esService.delMergePerson(patent, id, type, mergePerson.getName());
                 }
                 }
             }
             }
         }
         }

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

@@ -875,24 +875,6 @@ public class PatentStarApiService {
             //获取摘要附图
             //获取摘要附图
             String pictureApi = this.getPictureApi(item.getRowApplicationNo());
             String pictureApi = this.getPictureApi(item.getRowApplicationNo());
             patentColumnDTO.setPictureGuid(pictureApi);
             patentColumnDTO.setPictureGuid(pictureApi);
-            //获取公开说明书
-            String cnFullXmlApi = null;
-            try {
-                cnFullXmlApi = this.getCnFullXmlApi(item.getRowApplicationNo());
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-            try {
-                String fullText = this.getFullText(cnFullXmlApi);
-                List<Text> pubTextList = new ArrayList<>();
-                Text pubText = new Text();
-                pubText.setTextContent(fullText);
-                pubText.setIfOrigin(true);
-                pubTextList.add(pubText);
-                patentColumnDTO.setPublicFullText(pubTextList);
-            } catch (DocumentException e) {
-                e.printStackTrace();
-            }
             //获取外部专利原始申请号
             //获取外部专利原始申请号
             patentColumnDTO.setRowApplicationNo(item.getRowApplicationNo());
             patentColumnDTO.setRowApplicationNo(item.getRowApplicationNo());
             //获取法律状态
             //获取法律状态
@@ -1034,4 +1016,29 @@ public class PatentStarApiService {
         return records;
         return records;
     }
     }
 
 
+    /**
+     * 获取公开说明书
+     * @param appNo
+     * @return
+     */
+    public List<Text> getCnFullText(String appNo) {
+        List<Text> pubTextList = new ArrayList<>();
+        //获取公开说明书
+        String cnFullXmlApi = null;
+        try {
+            cnFullXmlApi = this.getCnFullXmlApi(appNo);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        try {
+            String fullText = this.getFullText(cnFullXmlApi);
+            Text pubText = new Text();
+            pubText.setTextContent(fullText);
+            pubText.setIfOrigin(true);
+            pubTextList.add(pubText);
+        } catch (DocumentException e) {
+            e.printStackTrace();
+        }
+        return pubTextList;
+    }
 }
 }