|
@@ -3,6 +3,7 @@ package cn.cslg.pas.factorys.EsCountAnalyseBuilderFactory;
|
|
import co.elastic.clients.elasticsearch._types.aggregations.*;
|
|
import co.elastic.clients.elasticsearch._types.aggregations.*;
|
|
import co.elastic.clients.elasticsearch._types.query_dsl.Query;
|
|
import co.elastic.clients.elasticsearch._types.query_dsl.Query;
|
|
import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
|
|
import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
|
|
|
|
+import co.elastic.clients.json.JsonData;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
@@ -32,12 +33,17 @@ public class PrioritiesCountAnalysisBuilder implements IEsCountAnalysisBuilder{
|
|
public Aggregation createCountAnalyseAgg() throws Exception {
|
|
public Aggregation createCountAnalyseAgg() throws Exception {
|
|
Aggregation aggregation = null;
|
|
Aggregation aggregation = null;
|
|
if (StringUtils.isNotEmpty(valueOne) && StringUtils.isNotEmpty(valueTwo)) {
|
|
if (StringUtils.isNotEmpty(valueOne) && StringUtils.isNotEmpty(valueTwo)) {
|
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy");
|
|
|
|
+ Date beginDate = format.parse(valueOne);
|
|
|
|
+ long beginTime = beginDate.getTime();
|
|
String end = String.valueOf(Integer.parseInt(valueTwo) + 1);
|
|
String end = String.valueOf(Integer.parseInt(valueTwo) + 1);
|
|
- Query query = QueryBuilders.range(j -> j.field(field).from(valueOne).to(end).format("yyyy"));
|
|
|
|
|
|
+ Date endDate = format.parse(end);
|
|
|
|
+ long endTime = endDate.getTime();
|
|
|
|
+ Query query = QueryBuilders.range(j -> j.field(field).gte(JsonData.of(beginTime)).lt(JsonData.of(endTime)));
|
|
Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query)));
|
|
Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query)));
|
|
aggregation = new Aggregation.Builder().dateHistogram(new DateHistogramAggregation.Builder()
|
|
aggregation = new Aggregation.Builder().dateHistogram(new DateHistogramAggregation.Builder()
|
|
.field(field).format("yyyy")
|
|
.field(field).format("yyyy")
|
|
- .calendarInterval(CalendarInterval.Year).build())
|
|
|
|
|
|
+ .calendarInterval(CalendarInterval.Year).timeZone("+08:00").build())
|
|
.aggregations(new HashMap() {{
|
|
.aggregations(new HashMap() {{
|
|
put("filter_agg", filter);
|
|
put("filter_agg", filter);
|
|
}}).build();
|
|
}}).build();
|
|
@@ -164,9 +170,9 @@ public class PrioritiesCountAnalysisBuilder implements IEsCountAnalysisBuilder{
|
|
aggregation = AggregationBuilders.dateRange(i -> i.field(field).format("yyyy-MM").ranges(rangeExpressions));
|
|
aggregation = AggregationBuilders.dateRange(i -> i.field(field).format("yyyy-MM").ranges(rangeExpressions));
|
|
} else if (StringUtils.isNotEmpty(format) && CollectionUtils.isEmpty(values)) {
|
|
} else if (StringUtils.isNotEmpty(format) && CollectionUtils.isEmpty(values)) {
|
|
if (format.equals("年")) {
|
|
if (format.equals("年")) {
|
|
- aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year));
|
|
|
|
|
|
+ aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year).timeZone("+08:00"));
|
|
} else if (format.equals("半年")) {
|
|
} else if (format.equals("半年")) {
|
|
- Aggregation halfYearAgg = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month));
|
|
|
|
|
|
+ Aggregation halfYearAgg = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month).timeZone("+08:00"));
|
|
aggregation = new Aggregation.Builder().dateHistogram(new DateHistogramAggregation.Builder()
|
|
aggregation = new Aggregation.Builder().dateHistogram(new DateHistogramAggregation.Builder()
|
|
.field(field).format("yyyy")
|
|
.field(field).format("yyyy")
|
|
.calendarInterval(CalendarInterval.Year).build())
|
|
.calendarInterval(CalendarInterval.Year).build())
|
|
@@ -174,12 +180,12 @@ public class PrioritiesCountAnalysisBuilder implements IEsCountAnalysisBuilder{
|
|
put("halfYearAgg", halfYearAgg);
|
|
put("halfYearAgg", halfYearAgg);
|
|
}}).build();
|
|
}}).build();
|
|
} else if (format.equals("季")) {
|
|
} else if (format.equals("季")) {
|
|
- aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Quarter));
|
|
|
|
|
|
+ aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Quarter).timeZone("+08:00"));
|
|
} else if (format.equals("月")) {
|
|
} else if (format.equals("月")) {
|
|
- aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month));
|
|
|
|
|
|
+ aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month).timeZone("+08:00"));
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year));
|
|
|
|
|
|
+ aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year).timeZone("+08:00"));
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|