Commit 6b333737 authored by 韩桐桐's avatar 韩桐桐

大屏应急统计调整电梯数量

parent a40bcdc2
...@@ -93,9 +93,9 @@ public class YJDPStatisticsServiceImpl { ...@@ -93,9 +93,9 @@ public class YJDPStatisticsServiceImpl {
} }
/** /**
* 电梯设备品种 * 电梯设备类别
*/ */
private final static String ELEVATOR_EQU_DEFINE_CODES = "3410,3420,3430,3310,3320,3210,3220,3120,3130,3110"; private final static String EQU_CATEGORY_CODE_CODES = "3100,3200,3300,3400";
/** /**
* 电梯种类 * 电梯种类
*/ */
...@@ -464,39 +464,53 @@ public class YJDPStatisticsServiceImpl { ...@@ -464,39 +464,53 @@ public class YJDPStatisticsServiceImpl {
// 统计完成的事件包括困人、故障、投诉咨询 // 统计完成的事件包括困人、故障、投诉咨询
List<CountDto> countDtos = alertStatisticsMapper.countEmergencyEventsByOrgCodeAndDate2(orgCode, filterParamDto); List<CountDto> countDtos = alertStatisticsMapper.countEmergencyEventsByOrgCodeAndDate2(orgCode, filterParamDto);
Map<String, Long> alertTypeNumMap = countDtos.stream().collect(Collectors.toMap(CountDto::getKeyStr, CountDto::getLongValue)); Map<String, Long> alertTypeNumMap = countDtos.stream().collect(Collectors.toMap(CountDto::getKeyStr, CountDto::getLongValue));
Map<String, Long> equDefineNumMap = staticsElevatorByEquDefine(filterParamDto.getCityCode()); Map<String, Long> countMap = new HashMap<>();
this.staticsElevatorByEquCategory(filterParamDto.getCityCode(),countMap);
this.staticsElevatorByEquList(filterParamDto.getCityCode(),countMap);
// 电梯总量(台) // 电梯总量(台)
Long dtCount = equDefineNumMap.getOrDefault(ELEVATOR_EQU_LIST_CODE, 0L); Long dtCount = countMap.getOrDefault(ELEVATOR_EQU_LIST_CODE, 0L);
result.put("dtCount", dtCount); result.put("dtCount", dtCount);
// 无设备品种的电梯数量(台) // 曳引与强制驱动电梯(台)
long dtEquDefineCount = equDefineNumMap.entrySet() result.put("yyyqzqddtCount", countMap.getOrDefault("3100", 0L));
// 液压驱动电梯(台)
result.put("yyqddtCount", countMap.getOrDefault("3200", 0L));
// 自动扶梯与自动人行道(台)
result.put("zdftyzdrxddtCount", countMap.getOrDefault("3300", 0L));
// 其它类型电梯(台)
result.put("qtlxdtCount", countMap.getOrDefault("3400", 0L));
// 无设备类别的电梯数量(台)
long dtEquCategoryCount = countMap.entrySet()
.stream() .stream()
.filter(entry -> !ELEVATOR_EQU_LIST_CODE.equals(entry.getKey())) .filter(entry -> !ELEVATOR_EQU_LIST_CODE.equals(entry.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))
.values() .values()
.stream() .stream()
.mapToLong(e -> e).sum(); .mapToLong(e -> e)
result.put("dtCountNotEquDefine", dtCount - dtEquDefineCount); .sum();
result.put("dtCountNotEquCategory", dtCount - dtEquCategoryCount);
// 电梯总量(台)
// result.put("dtCount", equDefineNumMap.values().stream().mapToLong(e -> e).sum());
// 曳引驱动乘客电梯(台) // 曳引驱动乘客电梯(台)
result.put("zyqdcjdtCount", equDefineNumMap.getOrDefault("3110", 0L)); // result.put("zyqdcjdtCount", equDefineNumMap.getOrDefault("3110", 0L));
// 曳引驱动载货电梯(台) // 曳引驱动载货电梯(台)
result.put("zyqdzhdtCount", equDefineNumMap.getOrDefault("3120", 0L)); // result.put("zyqdzhdtCount", equDefineNumMap.getOrDefault("3120", 0L));
// 强制驱动载货电梯(台) // 强制驱动载货电梯(台)
result.put("qzqdzgdtCount", equDefineNumMap.getOrDefault("3130", 0L)); // result.put("qzqdzgdtCount", equDefineNumMap.getOrDefault("3130", 0L));
// 液压乘客电梯(台) // 液压乘客电梯(台)
result.put("yackdtount", equDefineNumMap.getOrDefault("3210", 0L)); // result.put("yackdtount", equDefineNumMap.getOrDefault("3210", 0L));
// 液压载货电梯(台) // 液压载货电梯(台)
result.put("yyzhdtCount", equDefineNumMap.getOrDefault("3220", 0L)); // result.put("yyzhdtCount", equDefineNumMap.getOrDefault("3220", 0L));
// 自动扶梯(台) // 自动扶梯(台)
result.put("zdftCount", equDefineNumMap.getOrDefault("3310", 0L)); // result.put("zdftCount", equDefineNumMap.getOrDefault("3310", 0L));
// 自动人行道(台) // 自动人行道(台)
result.put("zdrxdCount", equDefineNumMap.getOrDefault("3320", 0L)); // result.put("zdrxdCount", equDefineNumMap.getOrDefault("3320", 0L));
// 防爆电梯(台) // 防爆电梯(台)
result.put("fbdtCount", equDefineNumMap.getOrDefault("3410", 0L)); // result.put("fbdtCount", equDefineNumMap.getOrDefault("3410", 0L));
// 消防员电梯(台) // 消防员电梯(台)
result.put("xfydtCount", equDefineNumMap.getOrDefault("3420", 0L)); // result.put("xfydtCount", equDefineNumMap.getOrDefault("3420", 0L));
// 杂物电梯(台) // 杂物电梯(台)
result.put("zhdtCount", equDefineNumMap.getOrDefault("3430", 0L)); // result.put("zhdtCount", equDefineNumMap.getOrDefault("3430", 0L));
// 应急事件(起) = 困人救援事件(起) + 故障维修(起) + 投诉咨询(起) // 应急事件(起) = 困人救援事件(起) + 故障维修(起) + 投诉咨询(起)
result.put("alarmCount", alertTypeNumMap.getOrDefault(DispatchPaperEnums.KRJY.getId(), 0L) + result.put("alarmCount", alertTypeNumMap.getOrDefault(DispatchPaperEnums.KRJY.getId(), 0L) +
alertTypeNumMap.getOrDefault(DispatchPaperEnums.GZWX.getId(), 0L) + alertTypeNumMap.getOrDefault(DispatchPaperEnums.GZWX.getId(), 0L) +
...@@ -556,12 +570,11 @@ public class YJDPStatisticsServiceImpl { ...@@ -556,12 +570,11 @@ public class YJDPStatisticsServiceImpl {
return num; return num;
} }
private Map<String, Long> staticsElevatorByEquDefine(String regionCode) { private void staticsElevatorByEquCategory(String regionCode, Map<String, Long> countMap) {
String orgCode = stCommonService.getAndSetOrgCode(regionCode); BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
Map<String, Long> countMap = new HashMap<>();
SearchRequest request = new SearchRequest(); SearchRequest request = new SearchRequest();
String orgCode = stCommonService.getAndSetOrgCode(regionCode);
request.indices("idx_biz_view_jg_all"); request.indices("idx_biz_view_jg_all");
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
// 按照管辖机构区域信息模糊查询 // 按照管辖机构区域信息模糊查询
boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*")); boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*"));
//已赋码 //已赋码
...@@ -570,25 +583,49 @@ public class YJDPStatisticsServiceImpl { ...@@ -570,25 +583,49 @@ public class YJDPStatisticsServiceImpl {
//状态为已认领 //状态为已认领
String[] status = {"草稿","已拒领","待认领"}; String[] status = {"草稿","已拒领","待认领"};
boolMust.mustNot(QueryBuilders.termsQuery("STATUS",Arrays.asList(status))); boolMust.mustNot(QueryBuilders.termsQuery("STATUS",Arrays.asList(status)));
// 且设备品种3级,按照真实的过滤,防止有脏数据
boolMust.must(QueryBuilders.termsQuery("EQU_DEFINE_CODE.keyword", ELEVATOR_EQU_DEFINE_CODES.split(",")));
boolMust.must(QueryBuilders.termsQuery("EQU_LIST_CODE",ELEVATOR_EQU_LIST_CODE)); boolMust.must(QueryBuilders.termsQuery("EQU_LIST_CODE",ELEVATOR_EQU_LIST_CODE));
boolMust.must(QueryBuilders.termsQuery("EQU_CATEGORY_CODE", EQU_CATEGORY_CODE_CODES.split(",")));
SearchSourceBuilder builder = new SearchSourceBuilder(); SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(boolMust); builder.query(boolMust);
builder.size(0); builder.size(0);
// 原因默认10个,由于业务最多有10个,担心有脏数据,故多查询 // 原因默认10个,由于业务最多有10个,担心有脏数据,故多查询
TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("count_by_equ_define_code").field("EQU_DEFINE_CODE.keyword").size(20); TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("count_by_equ_category_code").field("EQU_CATEGORY_CODE").size(20);
builder.aggregation(aggregationBuilder); builder.aggregation(aggregationBuilder);
TermsAggregationBuilder aggregationBuilder1 = AggregationBuilders.terms("count_by_equ_list_code").field("EQU_LIST_CODE").size(20);
builder.aggregation(aggregationBuilder1);
request.source(builder); request.source(builder);
try { try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT); SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
Terms equDefineTerms = response.getAggregations().get("count_by_equ_define_code"); Terms equDefineTerms = response.getAggregations().get("count_by_equ_category_code");
for (Terms.Bucket bucket : equDefineTerms.getBuckets()) { for (Terms.Bucket bucket : equDefineTerms.getBuckets()) {
countMap.put(bucket.getKeyAsString(), bucket.getDocCount()); countMap.put(bucket.getKeyAsString(), bucket.getDocCount());
} }
} catch (IOException e) {
throw new RuntimeException(e);
}
}
private void staticsElevatorByEquList(String regionCode, Map<String, Long> countMap) {
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
SearchRequest request = new SearchRequest();
String orgCode = stCommonService.getAndSetOrgCode(regionCode);
request.indices("idx_biz_view_jg_all");
// 按照管辖机构区域信息模糊查询
boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*"));
//已赋码
boolMust.must(QueryBuilders.existsQuery("SUPERVISORY_CODE"));
boolMust.mustNot(QueryBuilders.termQuery("SUPERVISORY_CODE","null"));
//状态为已认领
String[] status = {"草稿","已拒领","待认领"};
boolMust.mustNot(QueryBuilders.termsQuery("STATUS",Arrays.asList(status)));
boolMust.must(QueryBuilders.termsQuery("EQU_LIST_CODE",ELEVATOR_EQU_LIST_CODE));
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(boolMust);
builder.size(0);
// 原因默认10个,由于业务最多有10个,担心有脏数据,故多查询
TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("count_by_equ_list_code").field("EQU_LIST_CODE").size(20);
builder.aggregation(aggregationBuilder);
request.source(builder);
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
Terms equListTerms = response.getAggregations().get("count_by_equ_list_code"); Terms equListTerms = response.getAggregations().get("count_by_equ_list_code");
for (Terms.Bucket bucket : equListTerms.getBuckets()) { for (Terms.Bucket bucket : equListTerms.getBuckets()) {
countMap.put(bucket.getKeyAsString(), bucket.getDocCount()); countMap.put(bucket.getKeyAsString(), bucket.getDocCount());
...@@ -596,7 +633,6 @@ public class YJDPStatisticsServiceImpl { ...@@ -596,7 +633,6 @@ public class YJDPStatisticsServiceImpl {
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
return countMap;
} }
public JSONObject alertRecordBarChartForDP(DPFilterParamForDetailDto recordFilterVo) { public JSONObject alertRecordBarChartForDP(DPFilterParamForDetailDto recordFilterVo) {
......
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