Commit c286b52f authored by hcing's avatar hcing

feat:统计服务,大屏综合统计查询接口-人员相关

parent 4dcd9ab2
...@@ -23,7 +23,9 @@ public enum UnitTypeEnum { ...@@ -23,7 +23,9 @@ public enum UnitTypeEnum {
azgzwxdw("安装改造维修单位", "1234", "license"), azgzwxdw("安装改造维修单位", "1234", "license"),
zzdw("制造单位", "1236", "license"), zzdw("制造单位", "1236", "license"),
sjdw("设计单位", "1235", "license"), sjdw("设计单位", "1235", "license"),
grzt("个人主体", "6599", "use"); grzt("个人主体", "6599", "use"),
jyjg("检验机构", "1233-1", "license"),
jcjg("检测机构", "1233-2", "license");
private String name; private String name;
private String code; private String code;
......
...@@ -2,6 +2,12 @@ package com.yeejoin.amos.boot.module.statistcs.biz.utils; ...@@ -2,6 +2,12 @@ package com.yeejoin.amos.boot.module.statistcs.biz.utils;
import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.script.Script;
import org.elasticsearch.script.ScriptType;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import java.util.Collections;
public class QueryBuilderUtils { public class QueryBuilderUtils {
// 复制BoolQueryBuilder // 复制BoolQueryBuilder
...@@ -29,4 +35,25 @@ public class QueryBuilderUtils { ...@@ -29,4 +35,25 @@ public class QueryBuilderUtils {
return copy; return copy;
} }
/**
* 组装分割符字段的聚合查询
*
* @param searchSourceBuilder es查询构造器
* @param field 需要查询的字段,如:unitType.keyword
* @param spiltSymbol 分割符号,如:#
* @param aggName 聚合名称,根据此名称从查询结果获取数据,如:Terms unitTypesTerms = searchResponse.getAggregations().get(aggName)
*/
public static void buildSplitFieldAggCondition(SearchSourceBuilder searchSourceBuilder, String field, String spiltSymbol, String aggName) {
// Painless 脚本内容
String scriptSource = "if (doc['" + field + "'].size() > 0) {" +
" String value = doc['" + field + "'].value;" +
" if (value != null && !value.isEmpty()) {" +
" return value.splitOnToken('" + spiltSymbol + "');" +
" }" +
"}" +
"return [];";
Script script = new Script(ScriptType.INLINE, "painless", scriptSource, Collections.emptyMap());
searchSourceBuilder.aggregation(AggregationBuilders.terms(aggName).script(script));
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment