Commit 8cbc699a authored by 麻笑宇's avatar 麻笑宇

修改大屏代码提交

1.设备状态情况统计 2.各地区业务办理平均时效 3.停用注销报废设备统计 4.维保电梯数量TOP10 5.维保电梯数量
parent 5aed799b
...@@ -26,4 +26,9 @@ public class DPFilterParamDto { ...@@ -26,4 +26,9 @@ public class DPFilterParamDto {
* 数据统计的结束日期 * 数据统计的结束日期
*/ */
private String endDate; private String endDate;
/**
* 业务类型0告知管理,1使用登记,2变更登记,3停用启用,4注销报废
*/
private String businessKey;
} }
package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface DPStatisticsMapper {
List<Map<String, Object>> maintenanceCountTopTen(@Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto);
List<Map<String, Object>> maintenanceCount(@Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto);
List<Map<String, Object>> installCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> maintenanceNoticeCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> reformCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> transferCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> useCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> vehicleCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> changeNameCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> changeReformCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> changeTransferCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> changeUnitCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> changeVehicleCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> disableCount(@Param("cityCode") String cityCode);
List<Map<String, Object>> cancelCount(@Param("cityCode") String cityCode);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jg.api.mapper.DPStatisticsMapper">
<select id="maintenanceCountTopTen" resultType="java.util.Map">
SELECT
COUNT(1),
pc.company_name AS companyName,
sr.region_name AS regionName
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN ( SELECT DISTINCT record, ME_UNIT_CREDIT_CODE FROM idx_biz_jg_maintenance_record_info ) AS jri ON jri.ME_UNIT_CREDIT_CODE = bi.use_unit_code
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{dpFilterParamDto.cityCode} )
GROUP BY
sr.region_code
ORDER BY
COUNT DESC
LIMIT 10;
</select>
<select id="maintenanceCount" resultType="java.util.Map">
SELECT
COUNT(1),
pc.company_name AS companyName,
sr.region_name AS regionName
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN ( SELECT DISTINCT record, ME_UNIT_CREDIT_CODE FROM idx_biz_jg_maintenance_record_info ) AS jri ON jri.ME_UNIT_CREDIT_CODE = bi.use_unit_code
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{dpFilterParamDto.cityCode} )
GROUP BY
sr.region_code
</select>
<select id="installCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code AS regionCode
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_installation_notice T ON T.use_unit_credit_code = bi.use_unit_code and T.notice_status = 6616
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="maintenanceNoticeCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_maintain_notice mn ON mn.use_unit_credit_code = bi.use_unit_code
AND mn.notice_status = 6616
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="reformCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_reform_notice rm ON rm.use_unit_credit_code = bi.use_unit_code
AND rm.notice_status = 6616
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="transferCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_transfer_notice tn ON tn.use_unit_credit_code = bi.use_unit_code
AND tn.notice_status = 6616
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="useCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_use_registration ur ON ur.use_unit_credit_code = bi.use_unit_code
AND ur.audit_status = '已完成'
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="vehicleCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_vehicle_information vi ON vi.use_unit_credit_code = bi.use_unit_code
AND vi.status = '已完成'
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="changeNameCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_change_registration_name crn ON crn.use_unit_credit_code = bi.use_unit_code
AND crn.audit_status = '已完成'
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="changeReformCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_change_registration_reform t ON t.use_unit_credit_code = bi.use_unit_code
AND t.audit_status = '已完成'
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="changeTransferCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_change_registration_transfer t ON t.use_unit_credit_code = bi.use_unit_code
AND t.audit_status = '已完成'
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="changeUnitCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_change_registration_unit t ON t.use_unit_credit_code = bi.use_unit_code
AND t.status = '已完成'
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="changeVehicleCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_change_registration_unit t ON t.use_unit_credit_code = bi.use_unit_code
AND t.status = '已完成'
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="disableCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_enable_disable t ON t.use_unit_credit_code = bi.use_unit_code
AND t.audit_status = '已完成'
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
<select id="cancelCount" resultType="java.util.Map">
SELECT COUNT
( 1 ),
pc.company_name AS companyName,
sr.region_name AS regionName,
sr.region_code
FROM
privilege_company pc
INNER JOIN tz_base_enterprise_info bi ON bi.supervise_org_code LIKE CONCAT ( pc.org_code, '%' )
INNER JOIN tzs_jg_scrap_cancel t ON t.use_unit_code = bi.use_unit_code
AND t.audit_status = '已完成'
INNER JOIN systemctl_region sr ON pc.company_code = sr.region_code
WHERE
pc.company_code IN ( SELECT region_code :: VARCHAR FROM systemctl_region WHERE parent_region_code = #{cityCode} )
GROUP BY
sr.region_code
</select>
</mapper>
...@@ -115,4 +115,80 @@ public class DPStatisticsController { ...@@ -115,4 +115,80 @@ public class DPStatisticsController {
} }
return ResponseHelper.buildResponse(statisticsService.queryBizCycleData(dpFilterParamDto)); return ResponseHelper.buildResponse(statisticsService.queryBizCycleData(dpFilterParamDto));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-左侧设备状态情况统计", notes = "监管大屏-左侧设备状态情况统计")
@PostMapping(value = "/equStateCount")
public ResponseModel<List<Map<String,Object>>> equStateCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.equStateCount(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-右侧停用、注销、报废设备状态情况统计", notes = "监管大屏-右侧停用、注销、报废设备状态情况统计")
@PostMapping(value = "/equStopStateCount")
public ResponseModel<Map<String,Object>> equStopStateCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.equStopStateCount(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-维保电梯数量TOP10", notes = "监管大屏-维保电梯数量TOP10")
@PostMapping(value = "/maintenanceCountTopTen")
public ResponseModel<List<Map<String,Object>>> maintenanceCountTopTen(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.maintenanceCountTopTen(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-维保电梯数量", notes = "监管大屏-维保电梯数量")
@PostMapping(value = "/maintenanceCount")
public ResponseModel<Map<String,Object>> maintenanceCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.maintenanceCount(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-左侧各地市业务办理平均时效", notes = "监管大屏-左侧各地市业务办理平均时效")
@PostMapping(value = "/cityBusinessCount")
public ResponseModel<Map<String,Object>> cityBusinessCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.cityBusinessCount(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-左侧获取业务类型", notes = "监管大屏-左侧获取业务类型")
@PostMapping(value = "/getBusinessKey")
public ResponseModel<List<Map<String,Object>>> getBusinessKey(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.getBusinessKey(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-左侧获取业务类型", notes = "监管大屏-左侧获取业务类型")
@PostMapping(value = "/getNoticeEquCount")
public ResponseModel<Map<String,Object>> getNoticeEquCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.getNoticeEquCount(dpFilterParamDto));
}
} }
...@@ -10,10 +10,7 @@ import com.yeejoin.amos.boot.module.jg.api.dto.FourColorCountDataDto; ...@@ -10,10 +10,7 @@ import com.yeejoin.amos.boot.module.jg.api.dto.FourColorCountDataDto;
import com.yeejoin.amos.boot.module.jg.api.enums.DPMapStatisticsItemEnum; import com.yeejoin.amos.boot.module.jg.api.enums.DPMapStatisticsItemEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.FourColorCountItemEnum; import com.yeejoin.amos.boot.module.jg.api.enums.FourColorCountItemEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.FourColorEnum; import com.yeejoin.amos.boot.module.jg.api.enums.FourColorEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgEnableDisableMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgScrapCancelMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper;
import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto; import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipTechParamPipelineMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipTechParamPipelineMapper;
...@@ -36,8 +33,11 @@ import org.elasticsearch.search.aggregations.AggregationBuilders; ...@@ -36,8 +33,11 @@ import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
...@@ -115,6 +115,9 @@ public class DPStatisticsServiceImpl { ...@@ -115,6 +115,9 @@ public class DPStatisticsServiceImpl {
private static List<RegionModel> regionModels = new ArrayList<>(); private static List<RegionModel> regionModels = new ArrayList<>();
@Resource
private DPStatisticsMapper dpStatisticsMapper;
public DPStatisticsServiceImpl(EquipmentCategoryMapper equipmentCategoryMapper, JgUseRegistrationMapper useRegistrationMapper, EquipTechParamPipelineMapper techParamsPipelineMapper, JgEnableDisableMapper enableDisableMapper, JgScrapCancelMapper scrapCancelMapper, RestHighLevelClient restHighLevelClient, TzBaseEnterpriseInfoMapper enterpriseInfoMapper, CommonMapper commonMapper, TzsUserInfoMapper userInfoMapper, RedisUtils redisUtils, RedisUtils redisUtils1) { public DPStatisticsServiceImpl(EquipmentCategoryMapper equipmentCategoryMapper, JgUseRegistrationMapper useRegistrationMapper, EquipTechParamPipelineMapper techParamsPipelineMapper, JgEnableDisableMapper enableDisableMapper, JgScrapCancelMapper scrapCancelMapper, RestHighLevelClient restHighLevelClient, TzBaseEnterpriseInfoMapper enterpriseInfoMapper, CommonMapper commonMapper, TzsUserInfoMapper userInfoMapper, RedisUtils redisUtils, RedisUtils redisUtils1) {
this.equipmentCategoryMapper = equipmentCategoryMapper; this.equipmentCategoryMapper = equipmentCategoryMapper;
...@@ -670,4 +673,379 @@ public class DPStatisticsServiceImpl { ...@@ -670,4 +673,379 @@ public class DPStatisticsServiceImpl {
} }
return orgCode; return orgCode;
} }
public List<Map<String,Object>> equStateCount(DPFilterParamDto dpFilterParamDto) {
List<Map<String,Object>> resultList = new ArrayList<>();
SearchRequest request = new SearchRequest();
request.indices("idx_biz_view_jg_all");
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
// 区域信息模糊查询
boolMust.must(QueryBuilders.wildcardQuery("USE_PLACE_CODE", "*" + dpFilterParamDto.getCityCode() + "*"));
// 纳管状态为已纳管
boolMust.must(QueryBuilders.termsQuery("IS_INTO_MANAGEMENT", true));
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(boolMust);
TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("EQU_STATE_COUNT").field("EQU_STATE");
builder.aggregation(aggregationBuilder);
request.source(builder);
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
Terms terms = response.getAggregations().get("EQU_STATE_COUNT");
Map<String, Long> dataMap = new HashMap<>();
Long total = terms.getBuckets().stream().mapToLong(Terms.Bucket::getDocCount).sum();
for (Terms.Bucket bucket : terms.getBuckets()) {
String category = bucket.getKeyAsString(); // 或者使用 bucket.getKey() 对于非字符串类型
long docCount = bucket.getDocCount();
dataMap.put(category, docCount);
}
/**
* 3 报废
* 1 在用
* 2 停用
* 4 注销
* 0 未登记
*/
for(int i = 0; i < 5; i++){
Map<String,Object> map = new HashMap();
if(i == 0){
map.put("name", "未登记");
}else if(i == 1){
map.put("name", "在用");
}else if(i == 2){
map.put("name", "停用");
}else if(i == 3){
map.put("name", "报废");
}else if(i == 4){
map.put("name", "注销");
}
map.put("value", dataMap.getOrDefault(String.valueOf(i), 0L));
resultList.add(map);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
return resultList;
}
public Map<String,Object> equStopStateCount(DPFilterParamDto dpFilterParamDto) {
SearchRequest request = new SearchRequest();
request.indices("idx_biz_view_jg_all");
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
// 区域信息模糊查询
boolMust.must(QueryBuilders.wildcardQuery("USE_PLACE_CODE", "*" + dpFilterParamDto.getCityCode() + "*"));
// 纳管状态为已纳管
boolMust.must(QueryBuilders.termsQuery("IS_INTO_MANAGEMENT", true));
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(boolMust);
// 设备状态
TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("EQU_STATE_COUNT").field("EQU_STATE")
//设备类型
.subAggregation(AggregationBuilders.terms("EQU_LIST_CODE_COUNT").field("EQU_LIST_CODE"));
builder.aggregation(aggregationBuilder);
request.source(builder);
try{
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
Terms terms = response.getAggregations().get("EQU_STATE_COUNT");
Map<String, Long> dataMap = new HashMap<>();
for (Terms.Bucket bucket : terms.getBuckets()) {
String category = bucket.getKeyAsString(); // 或者使用 bucket.getKey() 对于非字符串类型
Terms subTerms = bucket.getAggregations().get("EQU_LIST_CODE_COUNT");
for(Terms.Bucket subBucket :subTerms.getBuckets()){
String subCategory = subBucket.getKeyAsString();
long docCount = subBucket.getDocCount();
dataMap.put(category+"#"+subCategory, docCount);
}
}
/**
* 2300 气瓶
* 3000 电梯
* 4000 起重机械
* 2000 压力容器
* 5000 场(厂)内专用机动车辆
* 1000 锅炉
* 8000 压力管道
* F000 安全附件
* 7000 压力管道元件
* 9000 客运索道
* 6000 大型游乐设施
*/
/**
* 2 停用
* 4 注销
* 3 报废
*/
List<Map<String,Object>> legendDataList = new ArrayList<>();
for(int i = 0; i < 3; i++){
Map<String,Object> map = new HashMap();
if(i == 0){
map.put("dataKey","stop");
map.put("name","停用");
}else if(i == 1){
map.put("dataKey","logout");
map.put("name","注销");
}else if(i == 2){
map.put("dataKey","scrap");
map.put("name","报废");
}
legendDataList.add(map);
}
List<String> xDataList = Arrays.asList("气瓶", "电梯", "压力容器", "锅炉", "起重机械", "场(厂)内专用", "大型游乐设施", "压力管道", "客运索道");
List<Object> stop = new ArrayList<>();
List<Object> logout = new ArrayList<>();
List<Object> scrap = new ArrayList<>();
for(int i = 0; i < 9; i++){
if(i == 0){
stop.add(dataMap.getOrDefault("2#2300", 0L));
logout.add(dataMap.getOrDefault("4#2300", 0L));
scrap.add(dataMap.getOrDefault("3#2300", 0L));
}else if(i == 1){
stop.add(dataMap.getOrDefault("2#3000", 0L));
logout.add(dataMap.getOrDefault("4#3000", 0L));
scrap.add(dataMap.getOrDefault("3#3000", 0L));
}else if(i == 2){
stop.add(dataMap.getOrDefault("2#2000", 0L)-dataMap.getOrDefault("2#2300", 0L));
logout.add(dataMap.getOrDefault("4#2000", 0L)-dataMap.getOrDefault("4#2300", 0L));
scrap.add(dataMap.getOrDefault("3#2000", 0L)-dataMap.getOrDefault("3#2300", 0L));
}else if(i == 3){
stop.add(dataMap.getOrDefault("2#1000", 0L));
logout.add(dataMap.getOrDefault("4#1000", 0L));
scrap.add(dataMap.getOrDefault("3#1000", 0L));
}else if(i == 4){
stop.add(dataMap.getOrDefault("2#4000", 0L));
logout.add(dataMap.getOrDefault("4#4000", 0L));
scrap.add(dataMap.getOrDefault("3#4000", 0L));
}else if(i == 5){
stop.add(dataMap.getOrDefault("2#5000", 0L));
logout.add(dataMap.getOrDefault("4#5000", 0L));
scrap.add(dataMap.getOrDefault("3#5000", 0L));
}else if(i == 6){
stop.add(dataMap.getOrDefault("2#6000", 0L));
logout.add(dataMap.getOrDefault("4#6000", 0L));
scrap.add(dataMap.getOrDefault("3#6000", 0L));
}else if(i == 7){
stop.add(dataMap.getOrDefault("2#8000", 0L));
logout.add(dataMap.getOrDefault("4#8000", 0L));
scrap.add(dataMap.getOrDefault("3#8000", 0L));
}else if(i == 8){
stop.add(dataMap.getOrDefault("2#9000", 0L));
logout.add(dataMap.getOrDefault("4#9000", 0L));
scrap.add(dataMap.getOrDefault("3#9000", 0L));
}
}
Map<String,Object> returnMap = new HashMap<>();
returnMap.put("legendData", legendDataList);
returnMap.put("xdata", xDataList);
returnMap.put("stop",stop);
returnMap.put("logout",logout);
returnMap.put("scrap",scrap);
return returnMap;
}catch (Exception e){
throw new RuntimeException(e);
}
}
public List<Map<String,Object>> maintenanceCountTopTen(DPFilterParamDto dpFilterParamDto) {
List<Map<String,Object>> list = dpStatisticsMapper.maintenanceCountTopTen(dpFilterParamDto);
List<Map<String,Object>> resultList = new ArrayList<>();
for(int i = 0; i < list.size(); i++){
Map<String,Object> result = new HashMap<>();
result.put("key",i);
result.put("city",list.get(i).get("regionName"));
result.put("count",list.get(i).get("count"));
result.put("name",list.get(i).get("companyName"));
resultList.add(result);
}
return resultList;
}
public Map<String,Object> maintenanceCount(DPFilterParamDto dpFilterParamDto) {
List<Map<String,Object>> list = dpStatisticsMapper.maintenanceCount(dpFilterParamDto);
Map<String,Object> resultMap = new HashMap<>();
List xList = new ArrayList();
List yList = new ArrayList();
for(int i = 0; i < list.size(); i++){
xList.add(list.get(i).get("regionName"));
yList.add(list.get(i).get("count"));
}
resultMap.put("xdata",xList);
resultMap.put("ydata",yList);
return resultMap;
}
public Map<String,Object> cityBusinessCount(DPFilterParamDto dpFilterParamDto) {
Map<String,Object> resultMap = new HashMap<>();
/**
* 业务类型0告知管理,1使用登记,2变更登记,3停用启用,4注销报废
*/
if("0".equals(dpFilterParamDto.getBusinessKey())){
resultMap = noticeCount(resultMap,dpFilterParamDto.getCityCode());
}else if("1".equals(dpFilterParamDto.getBusinessKey())){
resultMap = useCount(resultMap,dpFilterParamDto.getCityCode());
}else if("2".equals(dpFilterParamDto.getBusinessKey())){
resultMap = changeCount(resultMap,dpFilterParamDto.getCityCode());
}else if("3".equals(dpFilterParamDto.getBusinessKey())){
resultMap = disableCount(resultMap,dpFilterParamDto.getCityCode());
}else if("4".equals(dpFilterParamDto.getBusinessKey())){
resultMap = cancelCount(resultMap,dpFilterParamDto.getCityCode());
}
return resultMap;
}
private Map<String, Object> cancelCount(Map<String, Object> resultMap, String cityCode) {
Map<String,Integer> countMap = new HashMap<>();
//注销报废
List<Map<String,Object>> cancelList = dpStatisticsMapper.cancelCount(cityCode);
countByMap(countMap,cancelList);
List<Object> xDataList = new ArrayList<>();
List<Object> yDataList = new ArrayList<>();
countMap.forEach((k,v)->{
xDataList.add(k);
yDataList.add(v);
});
resultMap.put("xdata",xDataList);
resultMap.put("ydata",yDataList);
return resultMap;
}
private Map<String, Object> disableCount(Map<String, Object> resultMap, String cityCode) {
Map<String,Integer> countMap = new HashMap<>();
//启用停用
List<Map<String,Object>> disableList = dpStatisticsMapper.disableCount(cityCode);
countByMap(countMap,disableList);
List<Object> xDataList = new ArrayList<>();
List<Object> yDataList = new ArrayList<>();
countMap.forEach((k,v)->{
xDataList.add(k);
yDataList.add(v);
});
resultMap.put("xdata",xDataList);
resultMap.put("ydata",yDataList);
return resultMap;
}
private Map<String, Object> changeCount(Map<String, Object> resultMap, String cityCode) {
Map<String,Integer> countMap = new HashMap<>();
//更名变更登记
List<Map<String,Object>>changeNameList = dpStatisticsMapper.changeNameCount(cityCode);
countByMap(countMap,changeNameList);
//改造变更登记
List<Map<String,Object>> reformList = dpStatisticsMapper.changeReformCount(cityCode);
countByMap(countMap,reformList);
//移装变更登记
List<Map<String,Object>> transferList = dpStatisticsMapper.changeTransferCount(cityCode);
countByMap(countMap,transferList);
//单位变更登记
List<Map<String,Object>> unitList = dpStatisticsMapper.changeUnitCount(cityCode);
countByMap(countMap,unitList);
//单位变更登记
List<Map<String,Object>> vehicleList = dpStatisticsMapper.changeVehicleCount(cityCode);
countByMap(countMap,vehicleList);
List<Object> xDataList = new ArrayList<>();
List<Object> yDataList = new ArrayList<>();
countMap.forEach((k,v)->{
xDataList.add(k);
yDataList.add(v);
});
resultMap.put("xdata",xDataList);
resultMap.put("ydata",yDataList);
return resultMap;
}
private Map<String, Object> useCount(Map<String, Object> resultMap, String cityCode) {
Map<String,Integer> countMap = new HashMap<>();
//使用登记
List<Map<String,Object>> useList = dpStatisticsMapper.useCount(cityCode);
countByMap(countMap,useList);
//气瓶登记
List<Map<String,Object>> vehicleList = dpStatisticsMapper.vehicleCount(cityCode);
countByMap(countMap,vehicleList);
List<Object> xDataList = new ArrayList<>();
List<Object> yDataList = new ArrayList<>();
countMap.forEach((k,v)->{
xDataList.add(k);
yDataList.add(v);
});
resultMap.put("xdata",xDataList);
resultMap.put("ydata",yDataList);
return resultMap;
}
private Map<String, Object> noticeCount(Map<String, Object> resultMap, String cityCode) {
Map<String,Integer> countMap = new HashMap<>();
//安装告知
List<Map<String,Object>> installlist = dpStatisticsMapper.installCount(cityCode);
countByMap(countMap,installlist);
//维修告知
List<Map<String,Object>> maintenancelist = dpStatisticsMapper.maintenanceNoticeCount(cityCode);
countByMap(countMap,maintenancelist);
//改造告知
List<Map<String,Object>> reformlist = dpStatisticsMapper.reformCount(cityCode);
countByMap(countMap,reformlist);
//移装告知
List<Map<String,Object>> transferlist = dpStatisticsMapper.transferCount(cityCode);
countByMap(countMap,transferlist);
List<Object> xDataList = new ArrayList<>();
List<Object> yDataList = new ArrayList<>();
countMap.forEach((k,v)->{
xDataList.add(k);
yDataList.add(v);
});
resultMap.put("xdata",xDataList);
resultMap.put("ydata",yDataList);
return resultMap;
}
private void countByMap(Map<String,Integer> countMap, List<Map<String,Object>> list){
for(int i = 0; i < list.size(); i++){
if(null == countMap.get(list.get(i).get("regionName"))){
countMap.put(list.get(i).get("regionName").toString(),Integer.valueOf(list.get(i).get("count")+""));
}else{
countMap.put(list.get(i).get("regionName").toString(),countMap.get(list.get(i).get("regionName").toString())+Integer.valueOf(list.get(i).get("count")+""));
}
}
}
public List<Map<String,Object>> getBusinessKey(DPFilterParamDto dpFilterParamDto) {
List<Map<String,Object>> resultList = new ArrayList<>();
/**
* 告知管理、使用登记、变更登记、停用启用、注销报废
*/
for(int i = 0; i < 5; i++){
Map<String,Object> result = new HashMap<>();
if(i == 0){
result.put("key",i);
result.put("name","告知管理");
}else if(i == 1){
result.put("key",i);
result.put("name","使用登记");
}else if(i == 2){
result.put("key",i);
result.put("name","变更登记");
}else if(i == 3){
result.put("key",i);
result.put("name","停用启用");
}else if(i == 4){
result.put("key",i);
result.put("name","注销报废");
}
resultList.add(result);
}
return resultList;
}
public Map<String,Object> getNoticeEquCount(DPFilterParamDto dpFilterParamDto) {
return null;
}
} }
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