Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

lwhhszx 1 yıl önce
ebeveyn
işleme
0e05c99cc5

+ 3 - 0
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/DateQueryBuilder.java

@@ -134,6 +134,9 @@ public class DateQueryBuilder implements IQueryBuilder {
                                 .range(range -> range.field(field).gte(JsonData.of(dayTime)).lte(JsonData.of(nextDayTime)));
                         break;
                 }
+            } else {
+                query = QueryBuilders
+                        .range(range -> range.field(field).gte(JsonData.of(1)).lte(JsonData.of(2)));
             }
         }
         return query;

+ 185 - 0
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/PrioritiesNestedQueryBuilder.java

@@ -0,0 +1,185 @@
+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 co.elastic.clients.json.JsonData;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+@Component
+public class PrioritiesNestedQueryBuilder implements IQueryBuilder{
+    private String field = "";
+    private String value = "";
+    private String operator = "";
+    public String path = "";
+    public static final int YEAR = 4;
+    public static final int MONTHONE = 6;
+    public static final int MONTH = 7;
+    public static final int DAYONE = 8;
+    public static final int DAY = 10;
+    public static final String EQ = "=";
+
+    @Override
+    public Query creteQuery() throws ParseException {
+        Query query = null;
+        if (value != null && !"".equals(value)) {
+            Calendar calendar = Calendar.getInstance();
+            if (value.length() == YEAR) {
+                SimpleDateFormat format = new SimpleDateFormat("yyyy");
+                Date year = format.parse(value);
+                calendar.setTime(year);
+                String yearTime = String.valueOf(calendar.getTime().getTime());
+                calendar.add(Calendar.YEAR, 1);
+                String yearNextTime = String.valueOf(calendar.getTime().getTime());
+                switch (operator) {
+                    case NumberQueryBuilder.LT:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).lt(JsonData.of(yearTime)));
+                        break;
+                    case NumberQueryBuilder.LTE:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).lte(JsonData.of(yearTime)));
+                        break;
+                    case NumberQueryBuilder.GT:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).gt(JsonData.of(yearTime)));
+                        break;
+                    case NumberQueryBuilder.GTE:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).gte(JsonData.of(yearTime)));
+                        break;
+                    default:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).gte(JsonData.of(yearTime)).lte(JsonData.of(yearNextTime)));
+                        break;
+                }
+            } else if (value.length() == MONTH || value.length() == MONTHONE) {
+                Date month = new Date();
+                if (value.contains("-")) {
+                    SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM");
+                    month = format2.parse(value);
+                } else if (value.contains("/")) {
+                    SimpleDateFormat format3 = new SimpleDateFormat("yyyy/MM");
+                    month = format3.parse(value);
+                } else {
+                    SimpleDateFormat format1 = new SimpleDateFormat("yyyyMM");
+                    month = format1.parse(value);
+                }
+                calendar.setTime(month);
+                String monthTime = String.valueOf(calendar.getTime().getTime());
+                calendar.add(Calendar.MONTH, 1);
+                String monthNextTime = String.valueOf(calendar.getTime().getTime());
+                switch (operator) {
+                    case NumberQueryBuilder.LT:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).lt(JsonData.of(monthTime)));
+                        break;
+                    case NumberQueryBuilder.LTE:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).lte(JsonData.of(monthTime)));
+                        break;
+                    case NumberQueryBuilder.GT:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).gt(JsonData.of(monthTime)));
+                        break;
+                    case NumberQueryBuilder.GTE:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).gte(JsonData.of(monthTime)));
+                        break;
+                    default:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).gte(JsonData.of(monthTime)).lte(JsonData.of(monthNextTime)));
+                        break;
+                }
+            } else if (value.length() == DAY || value.length() == DAYONE) {
+                Date day = new Date();
+                if (value.contains("-")) {
+                    SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
+                    day = format2.parse(value);
+                } else if (value.contains("/")) {
+                    SimpleDateFormat format3 = new SimpleDateFormat("yyyy/MM/dd");
+                    day = format3.parse(value);
+                } else {
+                    SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
+                    day = format1.parse(value);
+                }
+                calendar.setTime(day);
+                String dayTime = String.valueOf(day.getTime());
+                calendar.add(Calendar.DAY_OF_MONTH, 1);
+                String nextDayTime = String.valueOf(calendar.getTime().getTime());
+                switch (operator) {
+                    case NumberQueryBuilder.LT:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).lt(JsonData.of(dayTime)));
+                        break;
+                    case NumberQueryBuilder.LTE:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).lte(JsonData.of(dayTime)));
+                        break;
+                    case NumberQueryBuilder.GT:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).gt(JsonData.of(dayTime)));
+                        break;
+                    case NumberQueryBuilder.GTE:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).gte(JsonData.of(dayTime)));
+                        break;
+                    default:
+                        query = QueryBuilders
+                                .range(range -> range.field(field).gte(JsonData.of(dayTime)).lte(JsonData.of(nextDayTime)));
+                        break;
+                }
+            } else {
+                query = QueryBuilders
+                        .range(range -> range.field(field).gte(JsonData.of(1)).lte(JsonData.of(2)));
+            }
+        }
+        Query finalQuery = query;
+        Query nestedQuery = QueryBuilders.nested(z -> z.path(path).query(finalQuery));
+        return nestedQuery;
+    }
+
+    @Override
+    public String getField() {
+        return field;
+    }
+
+    @Override
+    public void setField(String field) {
+        this.field = field;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    @Override
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String getOperator() {
+        return operator;
+    }
+
+    @Override
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    @Override
+    public String getPath() {
+        return path;
+    }
+
+    @Override
+    public void setPath(String path) {
+        this.path = path;
+    }
+}

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

@@ -29,20 +29,21 @@ public class AssoScenarioMatterService extends ServiceImpl<AssoScenarioMatterMap
      * @param scenarioIds
      * @return
      */
-    public List<Matter> queryMatterIds(List<Integer> scenarioIds){
+    public List<Matter> queryMatterIds(List<Integer> scenarioIds) {
         List<Integer> matterIds = new ArrayList<>();
         List<Matter> matters = new ArrayList<>();
 
-            LambdaQueryWrapper<AssoScenarioMatter> queryWrapper = new LambdaQueryWrapper<>();
-        if(scenarioIds != null && scenarioIds.size() != 0) {
+        LambdaQueryWrapper<AssoScenarioMatter> queryWrapper = new LambdaQueryWrapper<>();
+        if (scenarioIds != null && scenarioIds.size() != 0) {
             queryWrapper.in(AssoScenarioMatter::getScenarioId, scenarioIds);
         }
-            List<AssoScenarioMatter> assoScenarioMatters = this.list(queryWrapper);
+        List<AssoScenarioMatter> assoScenarioMatters = this.list(queryWrapper);
+        if (!assoScenarioMatters.isEmpty()) {
             matterIds = assoScenarioMatters.stream().map(AssoScenarioMatter::getMatterId).distinct().collect(Collectors.toList());
             LambdaQueryWrapper<Matter> matterLambdaQueryWrapper = new LambdaQueryWrapper<>();
             matterLambdaQueryWrapper.in(Matter::getId, matterIds);
             matters = matterService.list(matterLambdaQueryWrapper);
-
+        }
         return matters;
     }
 }

+ 31 - 15
src/main/java/cn/cslg/pas/service/business/PatentProjectService.java

@@ -449,22 +449,38 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         //根据传入对象id查询project对象
         Project project = projectService.getById(updatePatentProjectDTO.getId());
         BeanUtils.copyProperties(updatePatentProjectDTO, project);
-        //当委托方id不为空时
-        if (updatePatentProjectDTO.getEntrustId() != null) {
-            project.setEntrustId(updatePatentProjectDTO.getEntrustId());
-        } else {//若且租户类型为代理机构,并且委托方id为空,委托方名称不为空时,新增委托方
-            ClientDTO clientDTO = new ClientDTO();
-            clientDTO.setName(updatePatentProjectDTO.getEntrustName());
-            clientDTO.setTenantId(personnelVO.getTenantId());
-            try {
-                String res = permissionService.addClient(clientDTO);
-                JSONObject jsonObject = JSONObject.parseObject(res);
-                Integer clientId = Integer.parseInt(jsonObject.get("data").toString());
-                project.setEntrustId(clientId.toString());
-            } catch (Exception e) {
-                throw new XiaoShiException("网络异常");
-            }
+        //TODO 当委托方id或者委托方名称不为空时,
+        if (updatePatentProjectDTO.getEntrustId() != null || updatePatentProjectDTO.getEntrustName() != null) {
+
+            //根据创建人的租户类型设置project的委托类型
+            if (personnelVO.getTenantType().equals("1")) {
+                project.setEntrustType(1);
+
+                //当委托方id不为空时
+                if (updatePatentProjectDTO.getEntrustId() != null) {
+                    project.setEntrustId(updatePatentProjectDTO.getEntrustId());
+                }
+                //若且租户类型为代理机构,并且委托方id为空,委托方名称不为空时,新增委托方
+                else {
+                    ClientDTO clientDTO = new ClientDTO();
+                    clientDTO.setName(updatePatentProjectDTO.getEntrustName());
+                    clientDTO.setTenantId(personnelVO.getTenantId());
+                    try {
+                        String res = permissionService.addClient(clientDTO);
+                        JSONObject jsonObject = JSONObject.parseObject(res);
+                        Integer clientId = Integer.parseInt(jsonObject.get("data").toString());
+                        project.setEntrustId(clientId.toString());
+                    } catch (Exception e) {
+                        throw new XiaoShiException("网络异常");
+                    }
+                }
+            } else {
 
+                if (updatePatentProjectDTO.getEntrustId() != null) {
+                    project.setEntrustType(0);
+                    project.setEntrustId(updatePatentProjectDTO.getEntrustId());
+                }
+            }
         }
         project.updateById();
         /**

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

@@ -234,8 +234,8 @@ public class EsPatentService {
         List<PatentMergePerson> list = new ArrayList<>();
         for (Hit<Patent> hit : hits) {
             Patent patent = hit.source();
-            if (!CollectionUtils.isEmpty(patent.getMergeApplicant())) {
-                list.addAll(patent.getMergeApplicant());
+            if (!CollectionUtils.isEmpty(patent.getMergeRightHolder())) {
+                list.addAll(patent.getMergeRightHolder());
             }
         }
         List<String> data = new ArrayList<>();
@@ -263,8 +263,8 @@ public class EsPatentService {
         List<PatentMergePerson> list = new ArrayList<>();
         for (Hit<Patent> hit : hits) {
             Patent patent = hit.source();
-            if (!CollectionUtils.isEmpty(patent.getMergeApplicant())) {
-                list.addAll(patent.getMergeApplicant());
+            if (!CollectionUtils.isEmpty(patent.getMergeInventor())) {
+                list.addAll(patent.getMergeInventor());
             }
         }
         List<String> data = new ArrayList<>();

+ 1 - 1
src/main/java/cn/cslg/pas/service/common/PersonFieldService.java

@@ -396,7 +396,7 @@ public class PersonFieldService {
         }
         Boolean flag = true;
         List<GetAllPatentCountVO> fieldVOS = JSON.parseArray(fieldJson, GetAllPatentCountVO.class);
-        fieldVOS = fieldVOS.stream().filter(item -> flag.equals(item.getIfStats()) || flag.equals(item.getIfGroup())).collect(Collectors.toList());
+        fieldVOS = fieldVOS.stream().filter(item -> flag.equals(item.getIfStats())).collect(Collectors.toList());
         fieldVOS.forEach(item -> item.setFiledKind(-1));
 
         //当专题库id或者报告id不为null时

+ 35 - 59
src/main/resources/jsons/esCountAnalysis.json

@@ -1,9 +1,9 @@
 [
   {
-    "name": "IPC分类号一级",
+    "name": "IPC",
     "type": "String",
     "value": "ipcLevel1",
-    "field": "IC",
+    "field": "IC1",
     "esField": "mipc.level1",
     "esClass": "termsCountAnalysisBuilder",
     "ifSearch": "false",
@@ -12,7 +12,7 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "IPC分类号二级",
+    "name": "IPC大类",
     "type": "String",
     "value": "ipcLevel2",
     "field": "IC2",
@@ -24,7 +24,7 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "IPC分类号三级",
+    "name": "IPC小类",
     "type": "String",
     "value": "ipcLevel3",
     "field": "IC3",
@@ -36,7 +36,7 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "IPC分类号四级",
+    "name": "IPC大组",
     "type": "String",
     "value": "ipcLevel4",
     "field": "IC4",
@@ -48,10 +48,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "IPC分类号五级",
+    "name": "IPC",
     "type": "String",
     "value": "ipcLevel5",
-    "field": "IC5",
+    "field": "IC",
     "esField": "mipc.level5",
     "esClass": "termsCountAnalysisBuilder",
     "ifSearch": "false",
@@ -60,10 +60,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "CPC分类号一级",
+    "name": "CPC",
     "type": "String",
     "value": "cpcLevel1",
-    "field": "CPC",
+    "field": "CPC1",
     "esField": "mcpc.level1",
     "esClass": "termsCountAnalysisBuilder",
     "ifSearch": "false",
@@ -72,7 +72,7 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "CPC分类号二级",
+    "name": "CPC大类",
     "type": "String",
     "value": "cpcLevel2",
     "field": "CPC2",
@@ -84,7 +84,7 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "CPC分类号三级",
+    "name": "CPC小类",
     "type": "String",
     "value": "cpcLevel3",
     "field": "CPC3",
@@ -96,7 +96,7 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "CPC分类号四级",
+    "name": "CPC大组",
     "type": "String",
     "value": "cpcLevel4",
     "field": "CPC4",
@@ -108,10 +108,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "CPC分类号五级",
+    "name": "CPC",
     "type": "String",
     "value": "cpcLevel5",
-    "field": "CPC5",
+    "field": "CPC",
     "esField": "mcpc.level5",
     "esClass": "termsCountAnalysisBuilder",
     "ifSearch": "false",
@@ -120,10 +120,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "UPC分类号一级",
+    "name": "UPC大类",
     "type": "String",
     "value": "upcLevel1",
-    "field": "UPC",
+    "field": "UPC1",
     "esField": "mupc.level1",
     "esClass": "termsCountAnalysisBuilder",
     "ifSearch": "false",
@@ -132,10 +132,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "UPC分类号二级",
+    "name": "UPC",
     "type": "String",
     "value": "upcLevel2",
-    "field": "UPC2",
+    "field": "UPC",
     "esField": "mupc.level2",
     "esClass": "termsCountAnalysisBuilder",
     "ifSearch": "false",
@@ -144,22 +144,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "UPC分类号三级",
-    "type": "String",
-    "value": "upcLevel3",
-    "field": "UPC3",
-    "esField": "mupc.level3",
-    "esClass": "termsCountAnalysisBuilder",
-    "ifSearch": "false",
-    "ifGroup": "false",
-    "ifShow": "true",
-    "ifAsCondition": "true"
-  },
-  {
-    "name": "LOC分类号一级",
+    "name": "LOC大类",
     "type": "String",
     "value": "locLevel1",
-    "field": "LOC",
+    "field": "LOC1",
     "esField": "mloc.level1",
     "esClass": "termsCountAnalysisBuilder",
     "ifSearch": "false",
@@ -168,10 +156,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "LOC分类号二级",
+    "name": "LOC",
     "type": "String",
     "value": "locLevel2",
-    "field": "LOC2",
+    "field": "LOC",
     "esField": "mloc.level2",
     "esClass": "termsCountAnalysisBuilder",
     "ifSearch": "false",
@@ -180,18 +168,6 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "LOC分类号三级",
-    "type": "String",
-    "value": "locLevel3",
-    "field": "LOC3",
-    "esField": "mloc.level3",
-    "esClass": "termsCountAnalysisBuilder",
-    "ifSearch": "false",
-    "ifGroup": "false",
-    "ifShow": "true",
-    "ifAsCondition": "true"
-  },
-  {
     "name": "申请人",
     "type": "String",
     "value": "applicant",
@@ -435,7 +411,7 @@
     "name": "优先权国家",
     "type": "String",
     "value": "priorityCountry",
-    "field": "priorityCountry",
+    "field": "PRCO",
     "esField": "priorities.prioritycountry",
     "esClass": "termsCountAnalysisBuilder",
     "ifSearch": "false",
@@ -444,6 +420,18 @@
     "ifAsCondition": "true"
   },
   {
+    "name": "优先权日",
+    "type": "String",
+    "value": "priorityDate",
+    "field": "PRD",
+    "esField": "priorities.prioritydate",
+    "esClass": "termsCountAnalysisBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false",
+    "ifAsCondition": "true"
+  },
+  {
     "name": "引用专利数量",
     "type": "Integer",
     "value": "quotePatentNoNum",
@@ -528,18 +516,6 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "法律状态",
-    "type": "String",
-    "value": "legalStatus",
-    "field": "LG",
-    "esField": "legal_status.raw",
-    "esClass": "termsCountAnalysisBuilder",
-    "ifSearch": "false",
-    "ifGroup": "false",
-    "ifShow": "true",
-    "ifAsCondition": "true"
-  },
-  {
     "name": "自定义栏位id",
     "type": "String",
     "value": "field",

+ 147 - 142
src/main/resources/jsons/patent.json

@@ -3,7 +3,7 @@
     "name": "专利号",
     "type": "String",
     "value": "patentNo",
-    "field": "patentNo",
+    "field": "NO",
     "esField": "patent_no.keyword",
     "esClass": "wildcardQueryBuilder",
     "ifSearch": "true",
@@ -156,22 +156,10 @@
     "ifGroup": "true",
     "ifShow": "true",
     "ifAsCondition": "true",
+    "ifStats": "false",
     "groupBy": "text"
   },
   {
-    "name": "实审日",
-    "type": "DateTime",
-    "value": "EXD",
-    "field": "examinationDate",
-    "esField": "examination_date",
-    "esClass": "dateQueryBuilder",
-    "ifSearch": "true",
-    "ifGroup": "true",
-    "ifShow": "true",
-    "ifAsCondition": "true",
-    "groupBy": "dateType"
-  },
-  {
     "name": "申请人",
     "type": "Array",
     "value": "applicant",
@@ -306,8 +294,8 @@
     "field": "GFT",
     "esField": "grant_full_text.text_content",
     "esClass": "matchQueryBuilder",
-    "ifSearch": "true",
-    "ifGroup": "true",
+    "ifSearch": "false",
+    "ifGroup": "false",
     "ifShow": "false",
     "ifStats": "false",
     "ifAsCondition": "true",
@@ -415,7 +403,7 @@
     "esClass": "matchQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "address"
@@ -429,7 +417,7 @@
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "nation"
@@ -443,7 +431,7 @@
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "nation"
@@ -457,7 +445,7 @@
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "nation"
@@ -471,8 +459,8 @@
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
-    "ifStats": "false",
+    "ifShow": "true",
+    "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "nation"
   },
@@ -485,7 +473,8 @@
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
+    "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "nation"
   },
@@ -498,7 +487,7 @@
     "esClass": "matchQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "address"
@@ -512,7 +501,7 @@
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "nation"
@@ -526,7 +515,7 @@
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "nation"
@@ -540,7 +529,7 @@
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "nation"
@@ -554,39 +543,39 @@
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifAsCondition": "true",
     "groupBy": "nation"
   },
   {
     "name": "IPC分类号",
     "type": "String",
-    "value": "IPC",
-    "field": "MC",
+    "value": "MIPC",
+    "field": "MIPC",
     "esField": "mipc",
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "classify"
   },
   {
-    "name": "IPC分类号部",
+    "name": "IPC部",
     "type": "String",
     "value": "ipcLevel1",
-    "field": "IC",
+    "field": "IC1",
     "esField": "mipc.level1",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "false",
     "ifAsCondition": "true"
   },
   {
-    "name": "IPC分类号大类",
+    "name": "IPC大类",
     "type": "String",
     "value": "ipcLevel2",
     "field": "IC2",
@@ -594,12 +583,12 @@
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "false",
     "ifAsCondition": "true"
   },
   {
-    "name": "IPC分类号小类",
+    "name": "IPC小类",
     "type": "String",
     "value": "ipcLevel3",
     "field": "IC3",
@@ -607,12 +596,12 @@
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "false",
     "ifAsCondition": "true"
   },
   {
-    "name": "IPC分类号大组",
+    "name": "IPC大组",
     "type": "String",
     "value": "ipcLevel4",
     "field": "IC4",
@@ -620,42 +609,42 @@
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "false",
     "ifAsCondition": "true"
   },
   {
-    "name": "IPC分类号小组",
+    "name": "IPC",
     "type": "String",
     "value": "ipcLevel5",
-    "field": "IC5",
+    "field": "IC",
     "esField": "mipc.level5",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "false",
     "ifAsCondition": "true"
   },
   {
     "name": "CPC分类号",
     "type": "String",
-    "value": "CPC",
-    "field": "CPC",
+    "value": "MCPC",
+    "field": "MCPC",
     "esField": "mcpc",
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "classify"
   },
   {
-    "name": "CPC分类号部",
+    "name": "CPC部",
     "type": "String",
     "value": "cpcLevel1",
-    "field": "cpcLevel1",
+    "field": "CPC1",
     "esField": "mcpc.level1",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
@@ -665,10 +654,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "CPC分类号大类",
+    "name": "CPC大类",
     "type": "String",
     "value": "cpcLevel2",
-    "field": "cpcLevel2",
+    "field": "CPC2",
     "esField": "mcpc.level2",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
@@ -678,10 +667,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "CPC分类号小类",
+    "name": "CPC小类",
     "type": "String",
     "value": "cpcLevel3",
-    "field": "cpcLevel3",
+    "field": "CPC3",
     "esField": "mcpc.level3",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
@@ -691,10 +680,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "CPC分类号大组",
+    "name": "CPC大组",
     "type": "String",
     "value": "cpcLevel4",
-    "field": "cpcLevel4",
+    "field": "CPC4",
     "esField": "mcpc.level4",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
@@ -704,10 +693,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "CPC分类号小组",
+    "name": "CPC",
     "type": "String",
     "value": "cpcLevel5",
-    "field": "cpcLevel5",
+    "field": "CPC",
     "esField": "mcpc.level5",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
@@ -719,22 +708,22 @@
   {
     "name": "UPC分类号",
     "type": "String",
-    "value": "UPC",
-    "field": "UPC",
+    "value": "MUPC",
+    "field": "MUPC",
     "esField": "mupc",
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "classify"
   },
   {
-    "name": "UPC分类号部",
+    "name": "UPC大类",
     "type": "String",
     "value": "upcLevel1",
-    "field": "upcLevel1",
+    "field": "UPC1",
     "esField": "mupc.level1",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
@@ -744,10 +733,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "UPC分类号大类",
+    "name": "UPC",
     "type": "String",
     "value": "upcLevel2",
-    "field": "upcLevel2",
+    "field": "UPC",
     "esField": "mupc.level2",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
@@ -757,37 +746,24 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "UPC分类号小类",
-    "type": "String",
-    "value": "upcLevel3",
-    "field": "upcLevel3",
-    "esField": "mupc.level3",
-    "esClass": "keyWordQueryBuilder",
-    "ifSearch": "false",
-    "ifGroup": "false",
-    "ifShow": "true",
-    "ifStats": "false",
-    "ifAsCondition": "true"
-  },
-  {
     "name": "LOC分类号",
     "type": "String",
-    "value": "LOC",
-    "field": "LOC",
+    "value": "MLOC",
+    "field": "MLOC",
     "esField": "mloc",
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "classify"
   },
   {
-    "name": "LOC分类号",
+    "name": "LOC分类号大类",
     "type": "String",
     "value": "locLevel1",
-    "field": "locLevel1",
+    "field": "LOC1",
     "esField": "mloc.level1",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
@@ -797,10 +773,10 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "LOC分类号大类",
+    "name": "LOC",
     "type": "String",
     "value": "locLevel2",
-    "field": "locLevel2",
+    "field": "LOC2",
     "esField": "mloc.level2",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
@@ -810,19 +786,6 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "LOC分类号小类",
-    "type": "String",
-    "value": "locLevel3",
-    "field": "locLevel3",
-    "esField": "mloc.level3",
-    "esClass": "keyWordQueryBuilder",
-    "ifSearch": "false",
-    "ifGroup": "false",
-    "ifShow": "true",
-    "ifStats": "false",
-    "ifAsCondition": "true"
-  },
-  {
     "name": "权利要求",
     "type": "String",
     "value": "claim",
@@ -836,7 +799,7 @@
     "groupBy": "text"
   },
   {
-    "name": "专利状态",
+    "name": "法律状态",
     "type": "String",
     "value": "simpleStatus",
     "field": "SS",
@@ -866,29 +829,15 @@
     "groupBy": "typeStatus"
   },
   {
-    "name": "法律状态",
-    "type": "Array",
-    "value": "legalStatus",
-    "field": "LG",
-    "esField": "legal_status.raw",
-    "esClass": "keyWordQueryBuilder",
-    "ifSearch": "true",
-    "ifGroup": "true",
-    "ifShow": "true",
-    "ifStats": "true",
-    "ifAsCondition": "true",
-    "groupBy": "typeStatus"
-  },
-  {
     "name": "审查员",
     "type": "String",
     "value": "examiner",
     "field": "EXAM",
     "esField": "examiner.key",
     "esClass": "keyWordQueryBuilder",
-    "ifSearch": "true",
-    "ifGroup": "true",
-    "ifShow": "true",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "company"
@@ -900,23 +849,65 @@
     "field": "ADEXAM",
     "esField": "aid_examiner.key",
     "esClass": "keyWordQueryBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false",
+    "ifStats": "false",
+    "ifAsCondition": "true",
+    "groupBy": "company"
+  },
+  {
+    "name": "优先权国家",
+    "type": "String",
+    "value": "priorityCountry",
+    "field": "PRCO",
+    "esField": "priorities.prioritycountry",
+    "esClass": "nestedPersonQueryBuilder",
+    "ifSearch": "true",
+    "ifGroup": "true",
+    "ifShow": "true",
+    "ifStats": "true",
+    "ifAsCondition": "true",
+    "groupBy": "nation"
+  },
+  {
+    "name": "优先权日",
+    "type": "String",
+    "value": "priorityDate",
+    "field": "PRD",
+    "esField": "priorities.prioritydate",
+    "esClass": "prioritiesNestedQueryBuilder",
+    "ifSearch": "true",
+    "ifGroup": "true",
+    "ifShow": "true",
+    "ifStats": "true",
+    "ifAsCondition": "true",
+    "groupBy": "dateType"
+  },
+  {
+    "name": "优先权号",
+    "type": "String",
+    "value": "priorityNo",
+    "field": "PRN",
+    "esField": "priorities.priorityno",
+    "esClass": "nestedPersonQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
     "ifStats": "false",
     "ifAsCondition": "true",
-    "groupBy": "company"
+    "groupBy": "number"
   },
   {
     "name": "pct申请号",
     "type": "String",
     "value": "pctAppNo",
-    "field": "PAN",
+    "field": "PCTAN",
     "esField": "pctappno",
     "esClass": "keyWordQueryBuilder",
-    "ifSearch": "true",
+    "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "number"
@@ -925,12 +916,12 @@
     "name": "pct申请日",
     "type": "DateTime",
     "value": "pctAppDate",
-    "field": "PAD",
+    "field": "PCTAD",
     "esField": "pctappdate",
     "esClass": "dateQueryBuilder",
-    "ifSearch": "true",
+    "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "dateType"
@@ -939,12 +930,12 @@
     "name": "pct进入日期",
     "type": "DateTime",
     "value": "pctEnterDate",
-    "field": "PED",
+    "field": "PCTED",
     "esField": "pctenterdate",
     "esClass": "dateQueryBuilder",
-    "ifSearch": "true",
+    "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "dateType"
@@ -953,12 +944,12 @@
     "name": "pct公开号",
     "type": "String",
     "value": "pctPubNo",
-    "field": "PPN",
+    "field": "PCTPN",
     "esField": "pctpubno",
     "esClass": "keyWordQueryBuilder",
-    "ifSearch": "true",
+    "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "number"
@@ -967,12 +958,26 @@
     "name": "pct公开日",
     "type": "DateTime",
     "value": "pctPubDate",
-    "field": "PPD",
+    "field": "PCTPD",
     "esField": "pctpubdate",
     "esClass": "dateQueryBuilder",
-    "ifSearch": "true",
+    "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "true",
+    "ifShow": "false",
+    "ifStats": "false",
+    "ifAsCondition": "true",
+    "groupBy": "dateType"
+  },
+  {
+    "name": "实审日",
+    "type": "DateTime",
+    "value": "EXD",
+    "field": "examinationDate",
+    "esField": "examination_date",
+    "esClass": "dateQueryBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "dateType"
@@ -981,12 +986,12 @@
     "name": "wo指定国",
     "type": "String",
     "value": "wo",
-    "field": "WOC",
+    "field": "WOCO",
     "esField": "wo",
     "esClass": "keyWordQueryBuilder",
-    "ifSearch": "true",
+    "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "nation"
@@ -995,12 +1000,12 @@
     "name": "ep申请号",
     "type": "String",
     "value": "epNo",
-    "field": "EPNO",
+    "field": "EPAN",
     "esField": "ep_no",
     "esClass": "keyWordQueryBuilder",
-    "ifSearch": "true",
+    "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "number"
@@ -1009,12 +1014,12 @@
     "name": "EP指定国",
     "type": "String",
     "value": "epCountry",
-    "field": "EPC",
+    "field": "EPCO",
     "esField": "ep_country",
     "esClass": "keyWordQueryBuilder",
-    "ifSearch": "true",
+    "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "nation"
@@ -1023,12 +1028,12 @@
     "name": "ep申请日",
     "type": "DateTime",
     "value": "epDate",
-    "field": "EPD",
+    "field": "EPAD",
     "esField": "ep_date",
     "esClass": "dateQueryBuilder",
-    "ifSearch": "true",
+    "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "true",
+    "ifShow": "false",
     "ifStats": "false",
     "ifAsCondition": "true",
     "groupBy": "dateType"