Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

lwhhszx vor 1 Jahr
Ursprung
Commit
26fd0506dd

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

@@ -237,7 +237,7 @@ public class PatentController {
     @Operation(summary = "获取所有发明人/权利人/申请人")
     @PostMapping("/getMergePerson")
     public Response getMergePerson(@RequestBody GetAllPersonVO vo) throws Exception {
-        Records records = mergePersonService.getMergePerson(vo);
+        Records records = mergePersonService.getAllMergePerson(vo);
         return Response.success(records);
     }
 

+ 66 - 0
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/NestedMergePersonQueryBuilder.java

@@ -0,0 +1,66 @@
+package cn.cslg.pas.factorys.EsBuilderFactory;
+
+import co.elastic.clients.elasticsearch._types.query_dsl.Query;
+import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+
+@Component
+public class NestedMergePersonQueryBuilder implements IQueryBuilder{
+    private String field = "";
+    private String value = "";
+    private String operator = "";
+    public String path = "";
+    public Integer projectId = null;
+
+    @Override
+    public Query creteQuery() throws ParseException {
+        String str = "*";
+        String s = str.concat(value).concat("*");
+        Query query = QueryBuilders.wildcard(i -> i.field(field).value(s));
+        Query q1 = QueryBuilders.term(i -> i.field(path + ".project_id").value(projectId));
+        Query bool = QueryBuilders.bool(i -> i.must(query, q1));
+        return QueryBuilders.nested(z -> z.path(path).query(bool));
+    }
+
+    public String getField() {
+        return field;
+    }
+
+    public void setField(String field) {
+        this.field = field;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
+}

+ 10 - 5
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/ChildNestedAnalyseBuilder.java

@@ -33,12 +33,17 @@ public class ChildNestedAnalyseBuilder implements IEsCountAnalysisBuilder{
             String str = "*";
             String s = str.concat(valueOne).concat("*");
             Query query = QueryBuilders.wildcard(i -> i.field(field).value(s));
-            Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query,q1)));
-            terms = new Aggregation.Builder().terms(new TermsAggregation.Builder()
-                    .field(field).size(topN).build())
+//            Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query,q1)));
+//            terms = new Aggregation.Builder().terms(new TermsAggregation.Builder()
+//                    .field(field).size(topN).build())
+//                    .aggregations(new HashMap() {{
+//                        put("filter_agg", filter);
+//                    }}).build();
+            Aggregation aggregation = AggregationBuilders.terms(j -> j.field(field).size(topN));
+            terms = new Aggregation.Builder().filter(i -> i.bool(j -> j.must(query,q1)))
                     .aggregations(new HashMap() {{
-                        put("filter_agg", filter);
-                    }}).build();
+                put("filter_agg", aggregation);
+            }}).build();
         } else if (!CollectionUtils.isEmpty(values)) {
             Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(q1)));
             terms = new Aggregation.Builder().terms(new TermsAggregation.Builder()

+ 12 - 10
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/NestedCountAnalysisBuilder.java

@@ -1,9 +1,6 @@
 package cn.cslg.pas.factorys.EsCountAnalyseBuilderFactory;
 
-import co.elastic.clients.elasticsearch._types.aggregations.Aggregation;
-import co.elastic.clients.elasticsearch._types.aggregations.AggregationBuilders;
-import co.elastic.clients.elasticsearch._types.aggregations.NestedAggregation;
-import co.elastic.clients.elasticsearch._types.aggregations.TermsAggregation;
+import co.elastic.clients.elasticsearch._types.aggregations.*;
 import co.elastic.clients.elasticsearch._types.query_dsl.Query;
 import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
 import org.apache.commons.lang3.StringUtils;
@@ -11,6 +8,7 @@ import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 
@@ -36,12 +34,16 @@ public class NestedCountAnalysisBuilder implements IEsCountAnalysisBuilder {
             String str = "*";
             String s = str.concat(valueOne).concat("*");
             Query query = QueryBuilders.wildcard(i -> i.field(field).value(s));
-            Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query)));
-            terms = new Aggregation.Builder().terms(new TermsAggregation.Builder()
-                    .field(field).size(topN).build())
-                    .aggregations(new HashMap() {{
-                        put("filter_agg", filter);
-                    }}).build();
+//            Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query)));
+//            terms = new Aggregation.Builder().terms(new TermsAggregation.Builder()
+//                    .field(field).size(topN).build())
+//                    .aggregations(new HashMap() {{
+//                        put("filter_agg", filter);
+//                    }}).build();
+            Aggregation aggregation = AggregationBuilders.terms(j -> j.field(field).size(topN));
+            terms = new Aggregation.Builder().filter(i -> i.bool(j -> j.must(query))).aggregations(new HashMap() {{
+                put("filter_agg", aggregation);
+            }}).build();
         } else if (!CollectionUtils.isEmpty(values)) {
             terms = AggregationBuilders.terms(i -> i.field(field).include(j -> j.terms(values)).size(topN));
         } else {

+ 10 - 6
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/TermsCountAnalysisBuilder.java

@@ -35,12 +35,16 @@ public class TermsCountAnalysisBuilder implements IEsCountAnalysisBuilder {
             String str = "*";
             String s = str.concat(valueOne).concat("*");
             Query query = QueryBuilders.wildcard(i -> i.field(field).value(s));
-            Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query)));
-            aggregation = new Aggregation.Builder().terms(new TermsAggregation.Builder()
-                    .field(field).size(topN).build())
-                    .aggregations(new HashMap() {{
-                        put("filter_agg", filter);
-                    }}).build();
+//            Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query)));
+//            aggregation = new Aggregation.Builder().terms(new TermsAggregation.Builder()
+//                    .field(field).size(topN).build())
+//                    .aggregations(new HashMap() {{
+//                        put("filter_agg", filter);
+//                    }}).build();
+            Aggregation term = AggregationBuilders.terms(j -> j.field(field).size(topN));
+            aggregation = new Aggregation.Builder().filter(i -> i.bool(j -> j.must(query))).aggregations(new HashMap() {{
+                put("filter_agg", term);
+            }}).build();
         } else if (!CollectionUtils.isEmpty(values)) {
             aggregation = AggregationBuilders.terms(i -> i.field(field).include(j -> j.terms(values)).size(topN));
         } else {

+ 6 - 6
src/main/java/cn/cslg/pas/service/business/InvalidRecordService.java

@@ -295,17 +295,17 @@ public class InvalidRecordService extends ServiceImpl<InvalidRecordMapper, Inval
             return reportAffair.getDescription();
         } else {
             Integer affairType = 3;
-            LambdaQueryWrapper<ReportAffair> queryWrapper1 = new LambdaQueryWrapper<>();
-            queryWrapper1.eq(ReportAffair::getAffairType, affairType)
+            LambdaQueryWrapper<ReportAffair> invalidRecordWrapper = new LambdaQueryWrapper<>();
+            invalidRecordWrapper.eq(ReportAffair::getAffairType, affairType)
                     .eq(ReportAffair::getProjectId, reportProject.getProjectId())
                     .orderByDesc(ReportAffair::getCreateTime)
                     .last("LIMIT 1");
-            ReportAffair reportAffair1 = reportAffairService.getOne(queryWrapper, false);
+            ReportAffair reportAffair1 = reportAffairService.getOne(invalidRecordWrapper, false);
             if (reportAffair1 != null) {
                 Integer reportAffairId2 = reportAffair1.getId();
-                LambdaQueryWrapper<InvalidDecisionFile> queryWrapper2 = new LambdaQueryWrapper<>();
-                queryWrapper2.eq(InvalidDecisionFile::getReportAffairId, reportAffairId2);
-                InvalidDecisionFile invalidDecisionFile = invalidDecisionFileService.getOne(queryWrapper2, false);
+                LambdaQueryWrapper<InvalidDecisionFile> invalidDecisionFileWrapper = new LambdaQueryWrapper<>();
+                invalidDecisionFileWrapper.eq(InvalidDecisionFile::getReportAffairId, reportAffairId2);
+                InvalidDecisionFile invalidDecisionFile = invalidDecisionFileService.getOne(invalidDecisionFileWrapper, false);
                 if (invalidDecisionFile != null) {
                     return invalidDecisionFile.getDecisionKey();
                 } else {

+ 225 - 5
src/main/java/cn/cslg/pas/service/business/MergePersonService.java

@@ -31,10 +31,7 @@ import cn.hutool.core.util.PageUtil;
 import co.elastic.clients.elasticsearch.ElasticsearchClient;
 import co.elastic.clients.elasticsearch._types.InlineScript;
 import co.elastic.clients.elasticsearch._types.Script;
-import co.elastic.clients.elasticsearch._types.aggregations.Aggregation;
-import co.elastic.clients.elasticsearch._types.aggregations.AggregationBuilders;
-import co.elastic.clients.elasticsearch._types.aggregations.NestedAggregation;
-import co.elastic.clients.elasticsearch._types.aggregations.TermsAggregation;
+import co.elastic.clients.elasticsearch._types.aggregations.*;
 import co.elastic.clients.elasticsearch._types.query_dsl.IdsQuery;
 import co.elastic.clients.elasticsearch._types.query_dsl.Query;
 import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
@@ -669,7 +666,19 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         SearchRequest.Builder builder = new SearchRequest.Builder();
         //设置查询索引
         builder.index("patent");
-//        Query mustQ = QueryBuilders.hasChild(i -> i.type("project").query(j -> j.term(n -> n.field("project_id").value(projectId))));
+//        Query query11 = null;
+//        if (type == 0) {
+//            if (StringUtils.isNotEmpty(condition)) {
+//                String s = condition.substring(condition.indexOf("=")+1);
+//                //1. 解析检索条件
+//                treeNode tree = expressManager.getInstance().Parse(condition, false);
+//                //2. 从es中检索数据
+//                query11 = formatQueryService.EsQueryToQuery((operateNode) tree, "patent",projectId);
+//            }
+//        } else {
+//
+//        }
+
         if (!CollectionUtils.isEmpty(conditionList)) {
             for (String name : conditionList) {
                 List<Query> queries = new ArrayList<>();
@@ -911,6 +920,217 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         return records;
     }
 
+    public Records getAllMergePerson(GetAllPersonVO vo) throws Exception {
+        Integer projectId = vo.getProjectId();
+        Long pageNum = vo.getPageNum();
+        Long pageSize = vo.getPageSize();
+        Integer type = vo.getType();
+        String condition = vo.getSearchQuery();
+
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("patent");
+        builder.size(0);
+        String searchCondition = "";
+        if (StringUtils.isNotEmpty(condition)) {
+            //1. 解析检索条件
+            treeNode tree = expressManager.getInstance().Parse(condition, false);
+            //3. 从es中检索数据
+            Query q = formatQueryService.EsQueryToQuery((operateNode) tree, "patent",projectId);
+            builder.query(q);
+            if (type == 0) {
+                Aggregation bucketSort = AggregationBuilders.bucketSort(i -> i.from((pageNum.intValue() - 1) * pageSize.intValue()).size(pageSize.intValue()));
+                Aggregation termAgg = new Aggregation.Builder().terms(i -> i.field("merge_applicant.name.raw").size(100000))
+                        .aggregations(new HashMap() {{
+                            put("termAgg", bucketSort);
+                        }}).build();
+                Aggregation aggregation = new Aggregation.Builder().nested(new NestedAggregation.Builder().
+                        path("merge_applicant").build())
+                        .aggregations(new HashMap() {{
+                            put("nestedAgg", termAgg);
+                        }}).build();
+                builder.aggregations("Agg", aggregation);
+
+                Aggregation cardinality = AggregationBuilders.cardinality(i -> i.field("merge_applicant.name.raw"));
+                Aggregation totalAgg = new Aggregation.Builder().nested(new NestedAggregation.Builder().
+                        path("merge_applicant").build())
+                        .aggregations(new HashMap() {{
+                            put("total", cardinality);
+                        }}).build();
+                builder.aggregations("totalAgg", totalAgg);
+
+                //权利人
+                Aggregation bucketSort1 = AggregationBuilders.bucketSort(i -> i.from((pageNum.intValue() - 1) * pageSize.intValue()).size(pageSize.intValue()));
+                Aggregation termAgg1 = new Aggregation.Builder().terms(i -> i.field("merge_right_holder.name.raw").size(100000))
+                        .aggregations(new HashMap() {{
+                            put("rightTermAgg", bucketSort1);
+                        }}).build();
+                Aggregation aggregation1 = new Aggregation.Builder().nested(new NestedAggregation.Builder().
+                        path("merge_right_holder").build())
+                        .aggregations(new HashMap() {{
+                            put("rightNestedAgg", termAgg1);
+                        }}).build();
+                builder.aggregations("rightAgg", aggregation1);
+            } else {
+                Aggregation bucketSort = AggregationBuilders.bucketSort(i -> i.from((pageNum.intValue() - 1) * pageSize.intValue()).size(pageSize.intValue()));
+                Aggregation termAgg = new Aggregation.Builder().terms(i -> i.field("merge_inventor.name.raw").size(100000))
+                        .aggregations(new HashMap() {{
+                            put("termAgg", bucketSort);
+                        }}).build();
+                Aggregation aggregation = new Aggregation.Builder().nested(new NestedAggregation.Builder().
+                        path("merge_inventor").build())
+                        .aggregations(new HashMap() {{
+                            put("nestedAgg", termAgg);
+                        }}).build();
+                builder.aggregations("Agg", aggregation);
+
+                Aggregation cardinality = AggregationBuilders.cardinality(i -> i.field("merge_inventor.name.raw"));
+                Aggregation totalAgg = new Aggregation.Builder().nested(new NestedAggregation.Builder().
+                        path("merge_inventor").build())
+                        .aggregations(new HashMap() {{
+                            put("total", cardinality);
+                        }}).build();
+                builder.aggregations("totalAgg", totalAgg);
+            }
+        } else {
+            if (type == 0) {
+                //申请人
+                Query q1 = QueryBuilders.term(i -> i.field("merge_applicant.project_id").value(projectId));
+                Query nestedQ1 = QueryBuilders.nested(i -> i.path("merge_applicant").query(q1));
+                Query q2 = QueryBuilders.term(i -> i.field("merge_right_holder.project_id").value(projectId));
+                Query nestedQ2 = QueryBuilders.nested(i -> i.path("merge_right_holder").query(q2));
+                Query bool = QueryBuilders.bool(i -> i.should(nestedQ1, nestedQ2));
+                builder.query(bool);
+                Aggregation bucketSort = AggregationBuilders.bucketSort(i -> i.from((pageNum.intValue() - 1) * pageSize.intValue()).size(pageSize.intValue()));
+                Aggregation termAgg = new Aggregation.Builder().terms(i -> i.field("merge_applicant.name.raw").size(100000))
+                        .aggregations(new HashMap() {{
+                            put("termAgg", bucketSort);
+                        }}).build();
+                Aggregation aggregation = new Aggregation.Builder().nested(new NestedAggregation.Builder().
+                        path("merge_applicant").build())
+                        .aggregations(new HashMap() {{
+                            put("nestedAgg", termAgg);
+                        }}).build();
+                builder.aggregations("Agg", aggregation);
+
+                Aggregation cardinality = AggregationBuilders.cardinality(i -> i.field("merge_applicant.name.raw"));
+                Aggregation totalAgg = new Aggregation.Builder().nested(new NestedAggregation.Builder().
+                        path("merge_applicant").build())
+                        .aggregations(new HashMap() {{
+                            put("total", cardinality);
+                        }}).build();
+                builder.aggregations("totalAgg", totalAgg);
+
+                //权利人
+                Aggregation bucketSort1 = AggregationBuilders.bucketSort(i -> i.from((pageNum.intValue() - 1) * pageSize.intValue()).size(pageSize.intValue()));
+                Aggregation termAgg1 = new Aggregation.Builder().terms(i -> i.field("merge_right_holder.name.raw").size(100000))
+                        .aggregations(new HashMap() {{
+                            put("rightTermAgg", bucketSort1);
+                        }}).build();
+                Aggregation aggregation1 = new Aggregation.Builder().nested(new NestedAggregation.Builder().
+                        path("merge_right_holder").build())
+                        .aggregations(new HashMap() {{
+                            put("rightNestedAgg", termAgg1);
+                        }}).build();
+                builder.aggregations("rightAgg", aggregation1);
+            } else {
+                Query q = QueryBuilders.term(i -> i.field("merge_inventor.project_id").value(projectId));
+                Query nestedQ = QueryBuilders.nested(i -> i.path("merge_inventor").query(q));
+                builder.query(nestedQ);
+                Aggregation bucketSort = AggregationBuilders.bucketSort(i -> i.from((pageNum.intValue() - 1) * pageSize.intValue()).size(pageSize.intValue()));
+                Aggregation termAgg = new Aggregation.Builder().terms(i -> i.field("merge_inventor.name.raw").size(100000))
+                        .aggregations(new HashMap() {{
+                            put("termAgg", bucketSort);
+                        }}).build();
+                Aggregation aggregation = new Aggregation.Builder().nested(new NestedAggregation.Builder().
+                        path("merge_inventor").build())
+                        .aggregations(new HashMap() {{
+                            put("nestedAgg", termAgg);
+                        }}).build();
+                builder.aggregations("Agg", aggregation);
+
+                Aggregation cardinality = AggregationBuilders.cardinality(i -> i.field("merge_inventor.name.raw"));
+                Aggregation totalAgg = new Aggregation.Builder().nested(new NestedAggregation.Builder().
+                        path("merge_inventor").build())
+                        .aggregations(new HashMap() {{
+                            put("total", cardinality);
+                        }}).build();
+                builder.aggregations("totalAgg", totalAgg);
+            }
+        }
+
+        builder.trackTotalHits(i -> i.enabled(true));
+        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+        Aggregate totalAgg = response.aggregations().get("totalAgg");
+        Aggregate totalAggregate = totalAgg.nested().aggregations().get("total");
+        long total = totalAggregate.cardinality().value();
+        List<String> mergeList = new ArrayList<>();
+        Aggregate agg = response.aggregations().get("Agg");
+        Aggregate nestedAgg = agg.nested().aggregations().get("nestedAgg");
+        List<StringTermsBucket> buckets = nestedAgg.sterms().buckets().array();
+        for (StringTermsBucket bucket : buckets) {
+            String value = bucket.key().stringValue();
+            mergeList.add(value);
+        }
+        Aggregate rightAgg = response.aggregations().get("rightAgg");
+        Aggregate rightNestedAgg = rightAgg.nested().aggregations().get("rightNestedAgg");
+        List<StringTermsBucket> bucketList = rightNestedAgg.sterms().buckets().array();
+        if (!CollectionUtils.isEmpty(bucketList)) {
+            for (StringTermsBucket bucket : bucketList) {
+                String value = bucket.key().stringValue();
+                mergeList.add(value);
+            }
+        }
+
+        List<GetAllPersonDTO> personDTOList = new ArrayList<>();
+        List<GetAllPersonDTO> mergePersonList = new ArrayList<>();
+        List<GetAllPersonDTO> personList = new ArrayList<>();
+
+        List<String> nameList = mergeList.stream().distinct().collect(Collectors.toList());
+        if (nameList.size() > pageSize) {
+            nameList.remove(nameList.size() - 1);
+        }
+        List<MergePerson> mergePeopleList = mergePersonMapper.selectList(new LambdaQueryWrapper<MergePerson>()
+                .eq(MergePerson::getProjectId, projectId));
+        if (!CollectionUtils.isEmpty(mergePeopleList)) {
+            for (MergePerson person : mergePeopleList) {
+                GetAllPersonDTO dto = new GetAllPersonDTO();
+                dto.setName(person.getName());
+                dto.setMergeId(person.getId());
+                dto.setType(person.getType());
+                dto.setRemark(person.getRemark());
+                dto.setAbbreviation(person.getAbbreviation());
+                dto.setCountry(person.getCountry());
+                dto.setProvince(person.getProvince());
+                dto.setAddress(person.getAddress());
+                mergePersonList.add(dto);
+            }
+        } else {
+            for (String name : nameList) {
+                GetAllPersonDTO dto = new GetAllPersonDTO();
+                dto.setName(name);
+                personList.add(dto);
+            }
+        }
+
+        if (!CollectionUtils.isEmpty(mergePersonList)) {
+            List<GetAllPersonDTO> collect = mergePersonList.stream().sorted(Comparator.comparing(GetAllPersonDTO::getName)).collect(Collectors.toList());
+            personDTOList.addAll(collect);
+        }
+        if (!CollectionUtils.isEmpty(personList)) {
+            List<GetAllPersonDTO> collect = personList.stream().filter(i -> !StringUtils.isEmpty(i.getName())).collect(Collectors.toList());
+            List<GetAllPersonDTO> list = collect.stream().sorted(Comparator.comparing(GetAllPersonDTO::getName).reversed()).collect(Collectors.toList());
+            personDTOList.addAll(list);
+        }
+
+        Records records = new Records();
+        records.setCurrent(pageNum);
+        records.setSize(pageSize);
+        records.setData(personDTOList);
+        records.setTotal(total);
+        return records;
+    }
+
     /**
      * 发明人/权利人/申请人合并后的名称移除
      *

+ 32 - 18
src/main/java/cn/cslg/pas/service/business/ReferencesService.java

@@ -21,6 +21,7 @@ import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.permissions.PermissionService;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -30,7 +31,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Author xiexiang
@@ -111,32 +114,31 @@ public class ReferencesService extends ServiceImpl<ReferencesMapper, References>
      * @return
      */
     public Records query(GetReferencesDTO getReferencesDTO) {
+        //初始化
         Integer projectId = getReferencesDTO.getProjectId();
         String fileName = getReferencesDTO.getFileName();
         Integer pageNum = getReferencesDTO.getCurrent();
         Integer pageSize = getReferencesDTO.getSize();
         List<OrderDTO> orderDTOList = getReferencesDTO.getOrderDTOList();
+        //分页配置
         Page<References> page = new Page<>(pageNum, pageSize);
-        LambdaQueryWrapper<References> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(References::getProjectId, projectId);
-        queryWrapper.orderByDesc(References::getCreateTime);
+        QueryWrapper<References> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(References::getProjectId, projectId);
         if (fileName != null && !fileName.equals("")) {
-            queryWrapper.like(References::getReferencesName, fileName);
+            queryWrapper.lambda().like(References::getReferencesName, fileName);
+        }
+        //添加排序逻辑
+        if (!orderDTOList.isEmpty() && orderDTOList.size() == 1) {
+            OrderDTO orderDTO = orderDTOList.get(0);
+            String orderByField = orderDTO.getOrderBy();
+            String column = this.getColumns(orderByField);
+            boolean isTrue = orderDTO.getOrderType() == 0 ? true : false;
+            if (orderByField != null && !orderByField.equals("")) {
+                queryWrapper.orderBy(true, isTrue, column);
+            }
+        } else {
+            queryWrapper.orderBy(true, true, "create_time");
         }
-        // 添加排序逻辑
-//        if (!orderDTOList.isEmpty() && orderDTOList.size() == 1) {
-//            OrderDTO orderDTO = orderDTOList.get(0);
-//            String orderByField = orderDTO.getOrderBy();
-//            Integer type = orderDTO.getOrderType();
-//            if (orderByField != null && !orderByField.equals("")) {
-//                if (type.equals(0)) {
-//                    queryWrapper.orderByAsc();
-//                } else {
-//                    queryWrapper.orderByDesc(orderByField);
-//                }
-//            }
-//        }
-
         IPage<References> referencesPage = this.page(page, queryWrapper);
         List<References> references = referencesPage.getRecords();
         List<ReferencesVO> referencesVOS = this.loadReferencesVO(references);
@@ -228,4 +230,16 @@ public class ReferencesService extends ServiceImpl<ReferencesMapper, References>
         return referencesVOS;
     }
 
+    public String getColumns(String column){
+        Map<String, String> map = new HashMap<>();
+        map.put("remark","remark");
+        map.put("projectName","project_id");
+        map.put("fileGuid","file_guid");
+        map.put("referencesName","references_name");
+        map.put("createName","create_id");
+        map.put("createTime","create_time");
+        String reStr = map.get(column);
+        return reStr;
+    }
+
 }

+ 155 - 83
src/main/java/cn/cslg/pas/service/business/es/EsCountService.java

@@ -160,20 +160,20 @@ public class EsCountService {
             }
         }
 
-        if (countVOS.size() == 1) {
-            EsCountVO countVO = countVOS.get(0);
-            String field = countVO.getField();
-            String valueOne = countVO.getValueOne();
-            String valueTwo = countVO.getValueTwo();
-            if (StringUtils.isNotEmpty(valueOne) && StringUtils.isEmpty(valueTwo)) {
-                String filterCondition = field + " = " + valueOne;
-                if (searchCondition != null && !"".equals(searchCondition.trim())) {
-                    searchCondition = filterCondition + " AND " + searchCondition;
-                } else {
-                    searchCondition = filterCondition;
-                }
-            }
-        }
+//        if (countVOS.size() == 1) {
+//            EsCountVO countVO = countVOS.get(0);
+//            String field = countVO.getField();
+//            String valueOne = countVO.getValueOne();
+//            String valueTwo = countVO.getValueTwo();
+//            if (StringUtils.isNotEmpty(valueOne) && StringUtils.isEmpty(valueTwo)) {
+//                String filterCondition = field + " = " + valueOne;
+//                if (searchCondition != null && !"".equals(searchCondition.trim())) {
+//                    searchCondition = filterCondition + " AND " + searchCondition;
+//                } else {
+//                    searchCondition = filterCondition;
+//                }
+//            }
+//        }
 
         if (!CollectionUtils.isEmpty(customFields)) {
             searchCondition = esService.parseCustomField(customFields,projectId,taskId);
@@ -184,7 +184,6 @@ public class EsCountService {
         SearchRequest.Builder builder = new SearchRequest.Builder();
         //设置查询索引
         builder.index("patent");
-        //设置查询索引
         Query query = null;
         if (StringUtils.isNotEmpty(searchCondition)) {
             //1. 解析检索条件
@@ -246,7 +245,8 @@ public class EsCountService {
                     } else if (nestedList.contains(field)) {
                         filtersBuckets.forEach(filtersBucket -> {
                             Aggregate filtersAgg = filtersBucket.aggregations().get("filters_agg");
-                            this.getNestedCountDTOS(filtersAgg, field, topN, detailDTOS, esCountDTO, firstName, map, values);
+                            this.getNestedCountDTOS(filtersAgg, field, topN, detailDTOS, esCountDTO,
+                                    firstName, map, values,valueOne);
                             if (!CollectionUtils.isEmpty(values)) {
                                 esCountDTO.setAllNumber(filtersAgg.nested().docCount());
                             }
@@ -273,7 +273,7 @@ public class EsCountService {
                         filtersBuckets.forEach(filtersBucket -> {
                             Aggregate filtersAgg = filtersBucket.aggregations().get("filters_agg");
                             Aggregate childAgg = filtersAgg.children().aggregations().get("childAgg");
-                            this.getNestedCountDTOS(childAgg, field, topN, detailDTOS, esCountDTO, firstName, map, values);
+                            this.getNestedCountDTOS(childAgg, field, topN, detailDTOS, esCountDTO, firstName, map, values,valueOne);
                             if (!CollectionUtils.isEmpty(values)) {
                                 esCountDTO.setAllNumber(childAgg.nested().docCount());
                             }
@@ -309,7 +309,7 @@ public class EsCountService {
                     } else {
                         filtersBuckets.forEach(filtersBucket -> {
                             Aggregate filtersAgg = filtersBucket.aggregations().get("filters_agg");
-                            this.getTermCountDTOS(filtersAgg, field, topN, detailDTOS, esCountDTO, firstName, map, values);
+                            this.getTermCountDTOS(filtersAgg, field, topN, detailDTOS, esCountDTO, firstName, map, values,valueOne);
                         });
                     }
                 } else {
@@ -323,7 +323,7 @@ public class EsCountService {
                         this.getDateAnalysisDTOS(agg, field, topN, detailDTOS, esCountDTO, firstName, map, values);
                     }
                 } else if (nestedList.contains(field)) {
-                    this.getNestedCountDTOS(agg, field, topN, detailDTOS, esCountDTO, firstName, map, values);
+                    this.getNestedCountDTOS(agg, field, topN, detailDTOS, esCountDTO, firstName, map, values,valueOne);
                     if (!CollectionUtils.isEmpty(values)) {
                         esCountDTO.setAllNumber(agg.nested().docCount());
                     }
@@ -332,7 +332,7 @@ public class EsCountService {
                     this.getDateCountDTOS(termsAgg, field, topN, format, detailDTOS, esCountDTO,valueOne,valueTwo);
                 } else if (nestChildList.contains(field)) {
                     Aggregate childAgg = agg.children().aggregations().get("childAgg");
-                    this.getNestedCountDTOS(childAgg, field, topN, detailDTOS, esCountDTO, firstName, map, values);
+                    this.getNestedCountDTOS(childAgg, field, topN, detailDTOS, esCountDTO, firstName, map, values,valueOne);
                     if (!CollectionUtils.isEmpty(values)) {
                         esCountDTO.setAllNumber(childAgg.nested().docCount());
                     }
@@ -346,7 +346,7 @@ public class EsCountService {
                 } else if (numberList.contains(field)) {
                     this.getNumberAnalysisDTOS(agg, field, topN, detailDTOS, esCountDTO, firstName, map, values);
                 } else {
-                    this.getTermCountDTOS(agg, field, topN, detailDTOS, esCountDTO, firstName, map, values);
+                    this.getTermCountDTOS(agg, field, topN, detailDTOS, esCountDTO, firstName, map, values,valueOne);
                 }
             }
             esCountDTO.setCondition(searchCondition);
@@ -540,45 +540,81 @@ public class EsCountService {
      */
     public void getTermCountDTOS(Aggregate agg, String field, Integer topN, List<EsCountDetailDTO> detailDTOS,
                                  EsCountDTO esCountDTO, String firstName,
-                                 Map<String, List<EsCountDetailDTO>> map,List<String> values) {
+                                 Map<String, List<EsCountDetailDTO>> map,List<String> values,String valueOne) {
         List<EsCountDetailDTO> countDetailDTOS = new ArrayList<>();
         long otherNum = 0l;
-        List<StringTermsBucket> list = agg.sterms().buckets().array();
-        for (StringTermsBucket bucket : list) {
-            EsCountDetailDTO dto = new EsCountDetailDTO();
-            dto.setField(field);
-            Aggregate aggregate = bucket.aggregations().get("filter_agg");
-            String value = bucket.key().stringValue();
-            if (StringUtils.isNotEmpty(value)) {
-                dto.setName(value);
-                dto.setNumber(bucket.docCount());
-                dto.setTopN(topN);
-                dto.setFirstName(firstName);
-                if (aggregate != null) {
-                    dto.setNumber(aggregate.filter().docCount());
+        if (StringUtils.isNotEmpty(valueOne)) {
+            Aggregate filterAgg = agg.filter().aggregations().get("filter_agg");
+            List<StringTermsBucket> list = filterAgg.sterms().buckets().array();
+            for (StringTermsBucket bucket : list) {
+                EsCountDetailDTO dto = new EsCountDetailDTO();
+                dto.setField(field);
+                String value = bucket.key().stringValue();
+                if (StringUtils.isNotEmpty(value)) {
+                    dto.setName(value);
+                    dto.setNumber(bucket.docCount());
+                    dto.setTopN(topN);
+                    dto.setFirstName(firstName);
+                    if (dto.getNumber() > 0) {
+                        countDetailDTOS.add(dto);
+                    }
+                } else {
+                    otherNum += 1;
                 }
-                if (dto.getNumber() > 0) {
-                    countDetailDTOS.add(dto);
+            }
+            if (countDetailDTOS.size() > topN) {
+                countDetailDTOS.remove(countDetailDTOS.size() - 1);
+            }
+
+            EsCountDetailDTO countDTO = new EsCountDetailDTO();
+            countDTO.setField(field);
+            countDTO.setName("其他");
+            countDTO.setTopN(topN);
+            Long count = filterAgg.sterms().sumOtherDocCount();
+            if (count > 0) {
+                countDTO.setNumber(count + otherNum);
+                countDetailDTOS.add(countDTO);
+            }
+            esCountDTO.setRemainingNum(count);
+        } else {
+            List<StringTermsBucket> list = agg.sterms().buckets().array();
+            for (StringTermsBucket bucket : list) {
+                EsCountDetailDTO dto = new EsCountDetailDTO();
+                dto.setField(field);
+                Aggregate aggregate = bucket.aggregations().get("filter_agg");
+                String value = bucket.key().stringValue();
+                if (StringUtils.isNotEmpty(value)) {
+                    dto.setName(value);
+                    dto.setNumber(bucket.docCount());
+                    dto.setTopN(topN);
+                    dto.setFirstName(firstName);
+                    if (aggregate != null) {
+                        dto.setNumber(aggregate.filter().docCount());
+                    }
+                    if (dto.getNumber() > 0) {
+                        countDetailDTOS.add(dto);
+                    }
+                } else {
+                    otherNum += 1;
                 }
-            } else {
-                otherNum += 1;
             }
-        }
 
-        if (countDetailDTOS.size() > topN) {
-            countDetailDTOS.remove(countDetailDTOS.size() - 1);
-        }
+            if (countDetailDTOS.size() > topN) {
+                countDetailDTOS.remove(countDetailDTOS.size() - 1);
+            }
 
-        EsCountDetailDTO countDTO = new EsCountDetailDTO();
-        countDTO.setField(field);
-        countDTO.setName("其他");
-        countDTO.setTopN(topN);
-        Long count = agg.sterms().sumOtherDocCount();
-        if (count > 0) {
-            countDTO.setNumber(count + otherNum);
-            detailDTOS.add(countDTO);
+            EsCountDetailDTO countDTO = new EsCountDetailDTO();
+            countDTO.setField(field);
+            countDTO.setName("其他");
+            countDTO.setTopN(topN);
+            Long count = agg.sterms().sumOtherDocCount();
+            if (count > 0) {
+                countDTO.setNumber(count + otherNum);
+                detailDTOS.add(countDTO);
+            }
+            esCountDTO.setRemainingNum(count);
         }
-        esCountDTO.setRemainingNum(count);
+
 
         List<String> strs = new ArrayList<>();
         if (!CollectionUtils.isEmpty(values)) {
@@ -1058,46 +1094,82 @@ public class EsCountService {
      */
     public void getNestedCountDTOS(Aggregate agg, String field, Integer topN, List<EsCountDetailDTO> detailDTOS,
                                    EsCountDTO esCountDTO, String firstName,
-                                   Map<String, List<EsCountDetailDTO>> map, List<String> values) {
+                                   Map<String, List<EsCountDetailDTO>> map, List<String> values,String valueOne) {
         Aggregate termsAgg = agg.nested().aggregations().get("terms_agg");
         List<EsCountDetailDTO> countDetailDTOS = new ArrayList<>();
         long otherNum = 0l;
-        List<StringTermsBucket> list = termsAgg.sterms().buckets().array();
-        for (StringTermsBucket bucket : list) {
-            EsCountDetailDTO dto = new EsCountDetailDTO();
-            dto.setField(field);
-            Aggregate aggregate = bucket.aggregations().get("filter_agg");
-            String value = bucket.key().stringValue();
-            if (StringUtils.isNotEmpty(value)) {
-                dto.setName(value);
-                dto.setNumber(bucket.docCount());
-                dto.setTopN(topN);
-                dto.setFirstName(firstName);
-                if (aggregate != null) {
-                    dto.setNumber(aggregate.filter().docCount());
+        if (StringUtils.isNotEmpty(valueOne)) {
+            Aggregate filterAgg = termsAgg.filter().aggregations().get("filter_agg");
+            List<StringTermsBucket> list = filterAgg.sterms().buckets().array();
+            for (StringTermsBucket bucket : list) {
+                EsCountDetailDTO dto = new EsCountDetailDTO();
+                dto.setField(field);
+                String value = bucket.key().stringValue();
+                if (StringUtils.isNotEmpty(value)) {
+                    dto.setName(value);
+                    dto.setNumber(bucket.docCount());
+                    dto.setTopN(topN);
+                    dto.setFirstName(firstName);
+                    if (dto.getNumber() > 0) {
+                        countDetailDTOS.add(dto);
+                    }
+                } else {
+                    otherNum += 1;
                 }
-                if (dto.getNumber() > 0) {
-                    countDetailDTOS.add(dto);
+            }
+            if (countDetailDTOS.size() > topN) {
+                countDetailDTOS.remove(countDetailDTOS.size() - 1);
+            }
+
+            EsCountDetailDTO countDTO = new EsCountDetailDTO();
+            countDTO.setField(field);
+            countDTO.setName("其他");
+            countDTO.setTopN(topN);
+            Long count = filterAgg.sterms().sumOtherDocCount();
+            if (count > 0) {
+                countDTO.setNumber(count + otherNum);
+                countDetailDTOS.add(countDTO);
+            }
+            esCountDTO.setRemainingNum(count);
+        } else {
+            List<StringTermsBucket> list = termsAgg.sterms().buckets().array();
+            for (StringTermsBucket bucket : list) {
+                EsCountDetailDTO dto = new EsCountDetailDTO();
+                dto.setField(field);
+                Aggregate aggregate = bucket.aggregations().get("filter_agg");
+                String value = bucket.key().stringValue();
+                if (StringUtils.isNotEmpty(value)) {
+                    dto.setName(value);
+                    dto.setNumber(bucket.docCount());
+                    dto.setTopN(topN);
+                    dto.setFirstName(firstName);
+                    if (aggregate != null) {
+                        dto.setNumber(aggregate.filter().docCount());
+                    }
+                    if (dto.getNumber() > 0) {
+                        countDetailDTOS.add(dto);
+                    }
+                } else {
+                    otherNum += 1;
                 }
-            } else {
-                otherNum += 1;
             }
-        }
 
-        if (countDetailDTOS.size() > topN) {
-            countDetailDTOS.remove(countDetailDTOS.size() - 1);
-        }
+            if (countDetailDTOS.size() > topN) {
+                countDetailDTOS.remove(countDetailDTOS.size() - 1);
+            }
 
-        EsCountDetailDTO countDTO = new EsCountDetailDTO();
-        countDTO.setField(field);
-        countDTO.setName("其他");
-        countDTO.setTopN(topN);
-        Long count = termsAgg.sterms().sumOtherDocCount();
-        if (count > 0) {
-            countDTO.setNumber(count + otherNum);
-            countDetailDTOS.add(countDTO);
+            EsCountDetailDTO countDTO = new EsCountDetailDTO();
+            countDTO.setField(field);
+            countDTO.setName("其他");
+            countDTO.setTopN(topN);
+            Long count = termsAgg.sterms().sumOtherDocCount();
+            if (count > 0) {
+                countDTO.setNumber(count + otherNum);
+                countDetailDTOS.add(countDTO);
+            }
+            esCountDTO.setRemainingNum(count);
         }
-        esCountDTO.setRemainingNum(count);
+
 
         List<String> strs = new ArrayList<>();
         if (!CollectionUtils.isEmpty(values)) {

+ 50 - 55
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -196,7 +196,6 @@ public class EsService {
         builder.index("patent");
         //1. 解析检索条件
         treeNode tree = expressManager.getInstance().Parse(searchCondition, false);
-        //格式化检索式
         //3. 从es中检索数据
         Query q = formatQueryService.EsQueryToQuery((operateNode) tree, "patent",projectId);
         //判断同族分组
@@ -225,12 +224,11 @@ public class EsService {
                     .aggregations(new HashMap() {{
                         put("hitAgg", hits);
                     }}).build();
-            Aggregation filtersAgg = new Aggregation.Builder().filters(new FiltersAggregation.Builder()
-                    .filters(i -> i.array(Arrays.asList(q))).build())
+            Aggregation filterAgg = new Aggregation.Builder().filter(i -> i.bool(j -> j.must(q)))
                     .aggregations(new HashMap() {{
-                        put("filtersAgg", aggregation);
+                        put("filterAgg", aggregation);
                     }}).build();
-            builder.aggregations("Agg", filtersAgg);
+            builder.aggregations("Agg", filterAgg);
         } else {
             //4. 返回数据
             builder.query(q);
@@ -275,59 +273,56 @@ public class EsService {
         long total = 0L;
         if (StringUtils.isNotEmpty(esField)) {
             Aggregate agg = response.aggregations().get("Agg");
-            List<FiltersBucket> buckets = agg.filters().buckets().array();
-            for (FiltersBucket bucket : buckets) {
-                Aggregate filtersAgg = bucket.aggregations().get("filtersAgg");
-                List<StringTermsBucket> termsBuckets = filtersAgg.sterms().buckets().array();
-                for (StringTermsBucket termsBucket : termsBuckets) {
-                    Aggregate hitAgg = termsBucket.aggregations().get("hitAgg");
-                    total = hitAgg.topHits().hits().total().value();
-                    List<Hit<JsonData>> hits = hitAgg.topHits().hits().hits();
-                    hits.forEach(hit -> {
-                        String id = hit.id();
-                        JsonData data = hit.source();
-                        Patent patent1 = JSONObject.parseObject(String.valueOf(data), Patent.class);
-                        PatentColumnDTO columnDTO = new PatentColumnDTO();
-                        BeanUtils.copyProperties(patent1, columnDTO);
-                        if (projectId != null) {
-                            try {
-                                columnDTO.setMergeApplicant(esPatentService.getMergeApp(projectId, id));
-                            } catch (IOException e) {
-                                columnDTO.setMergeApplicant(new ArrayList<>());
-                            }
-                            try {
-                                columnDTO.setMergeRightHolder(esPatentService.getMergeRight(projectId, id));
-                            } catch (IOException e) {
-                                columnDTO.setMergeRightHolder(new ArrayList<>());
-                            }
-                            try {
-                                columnDTO.setMergeInventor(esPatentService.getMergeInventor(projectId, id));
-                            } catch (IOException e) {
-                                columnDTO.setMergeInventor(new ArrayList<>());
-                            }
+            Aggregate filtersAgg = agg.filter().aggregations().get("filterAgg");
+            List<StringTermsBucket> termsBuckets = filtersAgg.sterms().buckets().array();
+            for (StringTermsBucket termsBucket : termsBuckets) {
+                Aggregate hitAgg = termsBucket.aggregations().get("hitAgg");
+                total = hitAgg.topHits().hits().total().value();
+                List<Hit<JsonData>> hits = hitAgg.topHits().hits().hits();
+                hits.forEach(hit -> {
+                    String id = hit.id();
+                    JsonData data = hit.source();
+                    Patent patent1 = JSONObject.parseObject(String.valueOf(data), Patent.class);
+                    PatentColumnDTO columnDTO = new PatentColumnDTO();
+                    BeanUtils.copyProperties(patent1, columnDTO);
+                    if (projectId != null) {
+                        try {
+                            columnDTO.setMergeApplicant(esPatentService.getMergeApp(projectId, id));
+                        } catch (IOException e) {
+                            columnDTO.setMergeApplicant(new ArrayList<>());
                         }
-                        if (ObjectUtils.isNotEmpty(patent1.getApplicantAddr())) {
-                            PersonAddress applicantAddr = patent1.getApplicantAddr();
-                            columnDTO.setAppAddress(applicantAddr.getAddress());
-                            columnDTO.setApplicantCountry(applicantAddr.getCountry());
-                            columnDTO.setAppProvince(applicantAddr.getProvince());
-                            columnDTO.setAppCity(applicantAddr.getCity());
-                            columnDTO.setAppDistrict(applicantAddr.getDistrict());
+                        try {
+                            columnDTO.setMergeRightHolder(esPatentService.getMergeRight(projectId, id));
+                        } catch (IOException e) {
+                            columnDTO.setMergeRightHolder(new ArrayList<>());
                         }
-                        if (ObjectUtils.isNotEmpty(patent1.getRightHolderAddr())) {
-                            PersonAddress rightAddr = patent1.getRightHolderAddr();
-                            columnDTO.setRightAddress(rightAddr.getAddress());
-                            columnDTO.setRightCountry(rightAddr.getCountry());
-                            columnDTO.setRightProvince(rightAddr.getProvince());
-                            columnDTO.setRightCity(rightAddr.getCity());
-                            columnDTO.setRightDistrict(rightAddr.getDistrict());
+                        try {
+                            columnDTO.setMergeInventor(esPatentService.getMergeInventor(projectId, id));
+                        } catch (IOException e) {
+                            columnDTO.setMergeInventor(new ArrayList<>());
                         }
-                        columnDTO.setApplicant(esPatentService.loadName(patent1.getApplicant()));
-                        columnDTO.setRightHolder(esPatentService.loadName(patent1.getRightHolder()));
-                        columnDTO.setInventor(esPatentService.loadName(patent1.getInventor()));
-                        list.add(columnDTO);
-                    });
-                }
+                    }
+                    if (ObjectUtils.isNotEmpty(patent1.getApplicantAddr())) {
+                        PersonAddress applicantAddr = patent1.getApplicantAddr();
+                        columnDTO.setAppAddress(applicantAddr.getAddress());
+                        columnDTO.setApplicantCountry(applicantAddr.getCountry());
+                        columnDTO.setAppProvince(applicantAddr.getProvince());
+                        columnDTO.setAppCity(applicantAddr.getCity());
+                        columnDTO.setAppDistrict(applicantAddr.getDistrict());
+                    }
+                    if (ObjectUtils.isNotEmpty(patent1.getRightHolderAddr())) {
+                        PersonAddress rightAddr = patent1.getRightHolderAddr();
+                        columnDTO.setRightAddress(rightAddr.getAddress());
+                        columnDTO.setRightCountry(rightAddr.getCountry());
+                        columnDTO.setRightProvince(rightAddr.getProvince());
+                        columnDTO.setRightCity(rightAddr.getCity());
+                        columnDTO.setRightDistrict(rightAddr.getDistrict());
+                    }
+                    columnDTO.setApplicant(esPatentService.loadName(patent1.getApplicant()));
+                    columnDTO.setRightHolder(esPatentService.loadName(patent1.getRightHolder()));
+                    columnDTO.setInventor(esPatentService.loadName(patent1.getInventor()));
+                    list.add(columnDTO);
+                });
             }
         } else {
             List<Hit<Patent>> hits = response.hits().hits();

+ 45 - 0
src/main/resources/jsons/patent.json

@@ -218,6 +218,21 @@
     "ifSort": "false"
   },
   {
+    "name": "合并申请人1",
+    "type": "Array",
+    "value": "mergeApplicant1",
+    "field": "MATM",
+    "esField": "merge_applicant.name.raw",
+    "esClass": "nestedMergePersonQueryBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false",
+    "ifStats": "false",
+    "ifAsCondition": "false",
+    "groupBy": "company",
+    "ifSort": "false"
+  },
+  {
     "name": "发明人",
     "type": "Array",
     "value": "inventor",
@@ -248,6 +263,21 @@
     "ifSort": "false"
   },
   {
+    "name": "合并发明人1",
+    "type": "Array",
+    "value": "mergeInventor1",
+    "field": "MINM",
+    "esField": "merge_inventor.name.raw",
+    "esClass": "nestedMergePersonQueryBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false",
+    "ifStats": "false",
+    "ifAsCondition": "false",
+    "groupBy": "company",
+    "ifSort": "false"
+  },
+  {
     "name": "权利人",
     "type": "Array",
     "value": "rightHolder",
@@ -293,6 +323,21 @@
     "ifSort": "false"
   },
   {
+    "name": "合并权利人1",
+    "type": "Array",
+    "value": "mergeRightHolder1",
+    "field": "MRHM",
+    "esField": "merge_right_holder.name.raw",
+    "esClass": "nestedMergePersonQueryBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false",
+    "ifStats": "false",
+    "ifAsCondition": "false",
+    "groupBy": "company",
+    "ifSort": "false"
+  },
+  {
     "name": "公开说明书文本",
     "type": "String",
     "value": "publicFullText",

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

@@ -10,10 +10,7 @@ import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.*;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.utils.StringUtils;
-import cn.cslg.pas.common.vo.business.EsCountVO;
-import cn.cslg.pas.common.vo.business.PatentKinVO;
-import cn.cslg.pas.common.vo.business.PatentNoVO;
-import cn.cslg.pas.common.vo.business.TempleByReportTypeVO;
+import cn.cslg.pas.common.vo.business.*;
 import cn.cslg.pas.controller.EventController;
 import cn.cslg.pas.controller.PatentController;
 import cn.cslg.pas.domain.es.FamilyPatent;
@@ -503,15 +500,14 @@ public class EventServiceTests {
     }
 
     @Test
-    public void test103() throws IOException {
-        List<String> values = new ArrayList<>();
-        values.add("48");
-        values.add("45");
-        values.add("未选择");
-        values.add("Test测试");
-        values.removeIf(value -> value.equals("未选择"));
-
-        System.out.println(values);
-
+    public void test103() throws Exception {
+        GetAllPersonVO personVO = new GetAllPersonVO();
+        personVO.setProjectId(208);
+        personVO.setType(0);
+        personVO.setPageNum(1l);
+        personVO.setPageSize(10l);
+        Records mergePerson = mergePersonService.getAllMergePerson(personVO);
+        Object personData = mergePerson.getData();
+        System.out.println(personData);
     }
 }