Commit 6f1b98f3 authored by tianyiming's avatar tianyiming

优化筛选条件,增加设备所属单位类型筛选条件

parent 3dd3718d
......@@ -33,10 +33,7 @@ import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.NestedQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.TermsQueryBuilder;
import org.elasticsearch.index.query.*;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.FieldSortBuilder;
......@@ -413,7 +410,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
boolMust.minimumShouldMatch(1);
} else if (k.equals("industrySupervisor") || k.equals("operatingStatus")) {
boolMust.must(QueryBuilders.existsQuery(field));
TermsQueryBuilder termsQuery = QueryBuilders.termsQuery(field+".keyword", ((JSONArray) v).get(0));
TermsQueryBuilder termsQuery = QueryBuilders.termsQuery(field + ".keyword", ((JSONArray) v).get(0));
boolMust.must(termsQuery);
} else if (k.equals("itemCode") || k.equals("subItemCode") || k.equals("permitStatus")) {
String path = "licenses";
......@@ -544,40 +541,50 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
if (v instanceof JSONArray) {
if (!((JSONArray) v).contains("all")) {
String field = k;
// todo 所属单位筛选争议,需确认后完成
if (k.equals("NEXT_INSPECT_DATE")) {
if (k.equals("unitType")) {
String finalField = field;
EnhancedDynamicQueryBuilder queryBuilder = new EnhancedDynamicQueryBuilder();
((JSONArray) v).forEach(item -> {
queryBuilder.add(QueryBuilders.wildcardQuery(finalField, "*" + item + "*"), or);
});
boolMust.must(queryBuilder.build());
} else if (k.equals("NEXT_INSPECT_DATE")) {
String finalField = field;
boolMust.must(QueryBuilders.existsQuery(finalField));
EnhancedDynamicQueryBuilder queryBuilder = new EnhancedDynamicQueryBuilder();
((JSONArray) v).forEach(item -> {
if (item.equals("overdue")) {
// 超期:小于当前日期
boolMust.filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().format(formatter)));
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().format(formatter))), or);
} else if (item.equals("near")) {
// 临期:小于等于当前日期加上30天
boolMust.filter(QueryBuilders.rangeQuery(finalField).gte(LocalDate.now().format(formatter)).lte(LocalDate.now().plusDays(30).format(formatter)));
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).gte(LocalDate.now().format(formatter)).lte(LocalDate.now().plusDays(30).format(formatter))), or);
} else {
// 正常:大于当前日期加上30天
boolMust.filter(QueryBuilders.rangeQuery(finalField).gt(LocalDate.now().plusDays(30).format(formatter)));
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).gt(LocalDate.now().plusDays(30).format(formatter))), or);
}
});
boolMust.must(queryBuilder.build());
} else if (k.equals("USC_DATE")) {
String finalField = field;
boolMust.must(QueryBuilders.existsQuery(finalField));
EnhancedDynamicQueryBuilder queryBuilder = new EnhancedDynamicQueryBuilder();
((JSONArray) v).forEach(item -> {
if (item.equals("15")) {
// 15年以上:大于当前日期减去15年
boolMust.filter(QueryBuilders.rangeQuery(finalField).gt(LocalDate.now().minusYears(15).format(formatter)));
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).gt(LocalDate.now().minusYears(15).format(formatter))), or);
} else if (item.equals("10-15")) {
// 10-15年:小于当前日期减去15年,大于等于当前日期减去10年
boolMust.filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().minusYears(15).format(formatter)).gte(LocalDate.now().minusYears(10).format(formatter)));
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().minusYears(15).format(formatter)).gte(LocalDate.now().minusYears(10).format(formatter))), or);
} else if (item.equals("5-10")) {
// 5-10年:小于当前日期减去10年,大于等于当前日期减去5年
boolMust.filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().minusYears(10).format(formatter)).gte(LocalDate.now().minusYears(5).format(formatter)));
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().minusYears(10).format(formatter)).gte(LocalDate.now().minusYears(5).format(formatter))), or);
} else if (item.equals("0-5")) {
// 0-5年:小于当前日期减去5年
boolMust.filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().minusYears(5).format(formatter)));
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().minusYears(5).format(formatter))), or);
}
});
boolMust.must(queryBuilder.build());
} else if (k.equals("IS_SUPERVISORY_CODE")) {
String finalField = k;
((JSONArray) v).forEach(item -> {
......
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