Commit b55a4494 authored by 麻笑宇's avatar 麻笑宇

监管大屏中间地图调整

parent 599098d4
......@@ -15,6 +15,10 @@ public enum DPMapStatisticsItemEnum {
*/
TOTAL("特种设备总量 (台)", "total", ""),
OVER15YEARS_ELEVATORS("超过15年电梯数量", "over15yearsCount", ""),
USE_REGISTRATION_COUNT("使用登记办理量", "useRegistrationCount", ""),
CONSTRUCTION_NOTICE_COUNT("施工告知办理量", "constructionNoticeCount", ""),
CHANGE_COUNT("变更办理量", "changeCount", ""),
GAS("气瓶 (台)", "gas", ""),
ELEVATORS("电梯 (台)", "elevators", "3000"),
PRESSURE_VESSELS("压力容器 (台)", "pressureVessels", "2000"),
......
......@@ -66,4 +66,14 @@ public interface DPStatisticsMapper {
List<Map<String, Object>> disableCountByOrgCodes(@Param("orgCodes") List<String> orgCodes);
List<Map<String, Object>> cancelCountByOrgCodes(@Param("orgCodes") List<String> orgCodes);
long certificateCountByOrgCode(@Param("orgCode") String orgCode);
long useCountByOrgCode(@Param("orgCode") String orgCode);
Long over15yearsCount(@Param("orgCode") String orgCode, @Param("time") String time);
Long constructionNoticeCount(@Param("orgCode") String orgCode);
Long changeCountByOrgCode(@Param("orgCode") String orgCode);
}
......@@ -527,4 +527,114 @@
GROUP BY
T.org_code
</select>
<select id="certificateCountByOrgCode" resultType="java.lang.Long">
SELECT COUNT
(1)
FROM
tzs_jg_use_registration_manage A
INNER JOIN privilege_company C ON A.receive_company_code = C.company_code
WHERE
A.certificate_status = '已登记'
AND C.org_code LIKE concat ( #{orgCode}, '%' )
</select>
<select id="useCountByOrgCode" resultType="java.lang.Long">
SELECT COUNT
( 1 )
FROM
tzs_jg_use_registration T
WHERE
T.audit_status = '已完成'
AND T.receive_company_org_code LIKE CONCAT ( #{orgCode}, '%' )
</select>
<select id="over15yearsCount" resultType="java.lang.Long">
SELECT COUNT
( 1 )
FROM
idx_biz_jg_factory_info A
INNER JOIN idx_biz_jg_supervision_info B ON A.RECORD = B.RECORD
INNER JOIN idx_biz_jg_register_info C ON A.RECORD = C.RECORD
WHERE
B.ORG_BRANCH_CODE LIKE CONCAT ( #{orgCode}, '%' )
AND A.PRODUCE_DATE &lt; #{time}
AND C.EQU_LIST = '3000'
</select>
<select id="constructionNoticeCount" resultType="java.lang.Long">
SELECT SUM
( T.COUNT )
FROM
(
SELECT COUNT
( 1 )
FROM
tzs_jg_installation_notice T
WHERE
T.notice_status = 6616
AND T.receive_company_org_code LIKE CONCAT ( #{orgCode}, '%' ) UNION
SELECT COUNT
( 1 )
FROM
tzs_jg_maintain_notice T
WHERE
T.notice_status = 6616
AND T.receive_company_org_code LIKE CONCAT ( #{orgCode}, '%' ) UNION
SELECT COUNT
( 1 )
FROM
tzs_jg_reform_notice T
WHERE
T.notice_status = 6616
AND T.receive_company_org_code LIKE CONCAT ( #{orgCode}, '%' ) UNION
SELECT COUNT
( 1 )
FROM
tzs_jg_transfer_notice T
WHERE
T.notice_status = 6616
AND T.receive_company_org_code LIKE CONCAT ( #{orgCode}, '%' )
) T
</select>
<select id="changeCountByOrgCode" resultType="java.lang.Long">
SELECT SUM
( T.COUNT )
FROM
(
SELECT COUNT
( 1 )
FROM
privilege_company pc
INNER JOIN tzs_jg_change_registration_name crn ON crn.receive_org_code = pc.company_code
AND crn.audit_status = '已完成'
WHERE
pc.org_code LIKE CONCAT ( #{orgCode}, '%' ) UNION
SELECT COUNT
( 1 )
FROM
tzs_jg_change_registration_reform T
WHERE
T.audit_status = '已完成'
AND T.receive_company_org_code LIKE CONCAT ( #{orgCode}, '%' ) UNION
SELECT COUNT
( 1 )
FROM
tzs_jg_change_registration_transfer T
WHERE
T.audit_status = '已完成'
AND T.receive_company_org_code LIKE CONCAT ( #{orgCode}, '%' ) UNION
SELECT COUNT
( 1 )
FROM
tzs_jg_change_registration_unit T
WHERE
T.status = '已完成'
AND T.receive_company_org_code LIKE CONCAT ( #{orgCode}, '%' ) UNION
SELECT COUNT
( 1 )
FROM
tzs_jg_change_vehicle_registration_unit T
WHERE
T.status = '已完成'
AND T.receive_company_org_code LIKE CONCAT ( #{orgCode}, '%' )
) T
</select>
</mapper>
......@@ -247,4 +247,25 @@ public class JGDPStatisticsController {
}
return ResponseHelper.buildResponse(statisticsService.dataStatisticCountByReginCode(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-中间地图左右两侧8大类、单位、人员数量全局统计", notes = "大屏总览中间-地图左右两侧8大类、单位、人员数量全局统计")
@PostMapping(value = "/center-map/legend")
public ResponseModel<Map<String, Object>> JGCenterMapCountForGlobal(@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.JGCenterMapCountForGlobal(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-中间地图地市统计", notes = "大屏总览中间-地图地市统计")
@PostMapping(value = "/center-map/overview")
public ResponseModel<List<Map<String, Object>>> JGCenterMapCountForOverview(@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.JGCenterMapCountForOverview(dpFilterParamDto));
}
}
......@@ -1677,4 +1677,92 @@ public class JGDPStatisticsServiceImpl {
return resultList;
}
public Map<String, Object> JGCenterMapCountForGlobal(DPFilterParamDto dpFilterParamDto) {
Map<String, Object> result = new HashMap<>();
String orgCode = this.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if (StringUtils.isEmpty(orgCode)) {
return new HashMap<>();
}
// 0.气瓶数量统计
long cylinderNum = this.staticsCenterMapCountDataForCylinder(result, orgCode);
// 1.8大类设备数量统计,压力容器里包括气瓶所以需要特殊处理,在统计压力容器时去掉气瓶的数量
this.staticsCenterMapCountDataForEquip(result, cylinderNum, orgCode);
// 2.压力管道长度统计
this.staticsCenterMapCountDataForPipeline(result, orgCode);
// 3.已纳管设备总数
this.staticsCenterMapCountDataForEquipIsManage(result, orgCode);
// 4.登记证总数
this.staticsCenterMapCountCertificate(result, orgCode);
// 5.超过15年电梯数量
this.staticsCenterMapCountDataForOver15Years(result, orgCode);
// 6.使用登记办理量
this.staticsCenterMapCountDataForUseReg(result, orgCode);
// 7.施工告知办理量
this.staticsCenterMapCountDataForConstructionNotice(result, orgCode);
// 8.变更办理量
this.staticsCenterMapCountDataForChange(result, orgCode);
return result;
}
private void staticsCenterMapCountDataForChange(Map<String, Object> result, String orgCode) {
Long num = dpStatisticsMapper.changeCountByOrgCode(orgCode);
result.put(DPMapStatisticsItemEnum.CHANGE_COUNT.getCode(), num);
}
private void staticsCenterMapCountDataForConstructionNotice(Map<String, Object> result, String orgCode) {
Long num = dpStatisticsMapper.constructionNoticeCount(orgCode);
result.put(DPMapStatisticsItemEnum.CONSTRUCTION_NOTICE_COUNT.getCode(), num);
}
private void staticsCenterMapCountDataForOver15Years(Map<String, Object> result, String orgCode) {
String time = LocalDate.now().minusYears(15).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
Long num = dpStatisticsMapper.over15yearsCount(orgCode,time);
result.put(DPMapStatisticsItemEnum.OVER15YEARS_ELEVATORS.getCode(), num);
}
private void staticsCenterMapCountDataForUseReg(Map<String, Object> result, String orgCode) {
//使用告知
long num = dpStatisticsMapper.useCountByOrgCode(orgCode);
result.put(DPMapStatisticsItemEnum.USE_REGISTRATION_COUNT.getCode(), num);
}
private void staticsCenterMapCountCertificate(Map<String, Object> result, String orgCode) {
long num = dpStatisticsMapper.certificateCountByOrgCode(orgCode);
result.put(DPMapStatisticsItemEnum.CERTIFICATE_COUNT.getCode(), num);
}
private void staticsCenterMapCountDataForEquipIsManage(Map<String, Object> result, String orgCode) {
long num = 0;
CountRequest request = new CountRequest();
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.termQuery("IS_INTO_MANAGEMENT", true));
request.query(boolMust);
try {
CountResponse response = restHighLevelClient.count(request, RequestOptions.DEFAULT);
num = response.getCount();
} catch (IOException e) {
throw new RuntimeException(e);
}
result.put(DPMapStatisticsItemEnum.DEVICE_COUNT.getCode(), num);
}
public List<Map<String, Object>> JGCenterMapCountForOverview(DPFilterParamDto dpFilterParamDto) {
List<RegionModel> regionModels = this.setRegionIfRootParent(dpFilterParamDto);
List<Map<String, Object>> result = regionModels.parallelStream().map(r -> {
DPFilterParamDto filterParamDto = new DPFilterParamDto();
filterParamDto.setCityCode(r.getRegionCode().toString());
Map<String, Object> itemResult = JGCenterMapCountForGlobal(filterParamDto);
itemResult.put("regionCode", r.getRegionCode());
itemResult.put("regionName", r.getRegionName());
return itemResult;
}).collect(Collectors.toList());
return result;
}
}
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