Commit 3b4c2681 authored by suhuiguang's avatar suhuiguang

1.接口性能优化

parent 4859c968
......@@ -39,7 +39,7 @@ public class DPStatisticsController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏总览右侧-使用登记统计", notes = "大屏总览右侧-使用登记统计")
@ApiOperation(httpMethod = "POST", value = "大屏总览-右侧使用登记统计", notes = "大屏总览右侧-使用登记统计")
@PostMapping(value = "/useRegister/count/byEquList")
public ResponseModel<Map<String, Object>> useRegisterCountByEquList(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
......@@ -50,7 +50,7 @@ public class DPStatisticsController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏总览中间-地图左右两侧8大类、单位、人员数量全局统计", notes = "大屏总览中间-地图左右两侧8大类、单位、人员数量全局统计")
@ApiOperation(httpMethod = "POST", value = "大屏总览-中间地图左右两侧8大类、单位、人员数量全局统计", notes = "大屏总览中间-地图左右两侧8大类、单位、人员数量全局统计")
@PostMapping(value = "/zl/center-map/legend")
public ResponseModel<Map<String, Object>> centerMapCountForGlobal(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
......@@ -61,7 +61,7 @@ public class DPStatisticsController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏总览中间-地图地市统计", notes = "大屏总览中间-地图地市统计")
@ApiOperation(httpMethod = "POST", value = "大屏总览-中间地图地市统计", notes = "大屏总览中间-地图地市统计")
@PostMapping(value = "/zl/center-map/overview")
public ResponseModel<List<Map<String, Object>>> centerMapCountForOverview(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
......@@ -72,7 +72,7 @@ public class DPStatisticsController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏八大类左侧-使用登记统计", notes = "大屏八大类左侧-使用登记统计")
@ApiOperation(httpMethod = "POST", value = "大屏8大类-左侧气瓶使用登记统计", notes = "大屏八大类左侧-使用登记统计")
@PostMapping(value = "/useRegisterCount")
public ResponseModel<Map<String, Object>> useRegisterCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
......
......@@ -211,6 +211,7 @@ public class DPStatisticsServiceImpl {
}
}
public Map<String, Object> getCenterMapCountDataForGlobal(DPFilterParamDto dpFilterParamDto) {
Map<String, Object> result = new HashMap<>();
// 1.气瓶数量统计
......@@ -226,6 +227,19 @@ public class DPStatisticsServiceImpl {
return result;
}
public Map<String, Object> getCenterMapOverviewData(DPFilterParamDto dpFilterParamDto) {
Map<String, Object> result = new HashMap<>();
// 1.气瓶数量统计
long cylinderNum = this.staticsCenterMapCountDataForCylinder(result, dpFilterParamDto);
//1.8大类设备数量统计,压力容器里包括气瓶所以需要特殊处理,在统计压力容器时去掉气瓶的数量
this.staticsCenterMapCountDataForEquip(result, dpFilterParamDto, cylinderNum);
//2.压力管道长度统计
this.staticsCenterMapCountDataForPipeline(result, dpFilterParamDto);
//3.人员数量统计
this.staticsCenterMapCountDataForPerson(result, dpFilterParamDto);
return result;
}
private void staticsCenterMapCountDataForPerson(Map<String, Object> result, DPFilterParamDto dpFilterParamDto) {
// 效率太慢暂时注释掉
String orgCode = regionCodeOrgCodeMap.get(dpFilterParamDto.getCityCode());
......@@ -246,10 +260,7 @@ public class DPStatisticsServiceImpl {
if (orgCode == null) {
orgCode = commonMapper.getOrgCodeByCompanyCode(dpFilterParamDto.getCityCode());
if (orgCode == null) {
result.put(DPMapStatisticsItemEnum.USERS_UNITS.getCode(), 0);
result.put(DPMapStatisticsItemEnum.CONSTRUCTION_UNITS.getCode(), 0);
result.put(DPMapStatisticsItemEnum.MANUFACTURING_UNITS.getCode(), 0);;
result.put(DPMapStatisticsItemEnum.GAS_UNITS.getCode(), 0);
setDefaultCompanyCountData(result);
return;
}
regionCodeOrgCodeMap.put(dpFilterParamDto.getCityCode(), orgCode);
......@@ -368,16 +379,42 @@ public class DPStatisticsServiceImpl {
}
public List<Map<String, Object>> getCenterMapCountDataForOverview(DPFilterParamDto dpFilterParamDto) {
return regionModels.parallelStream().filter(e -> e.getParentRegionCode() != null && (e.getParentRegionCode().toString()).equals(dpFilterParamDto.getCityCode())).map(r -> {
List<Map<String, Object>> result = regionModels.parallelStream().filter(e -> e.getParentRegionCode() != null && (e.getParentRegionCode().toString()).equals(dpFilterParamDto.getCityCode())).map(r -> {
DPFilterParamDto filterParamDto = new DPFilterParamDto();
filterParamDto.setCityCode(r.getRegionCode().toString());
Map<String, Object> itemResult = getCenterMapCountDataForGlobal(filterParamDto);
Map<String, Object> itemResult = getCenterMapOverviewData(filterParamDto);
if (itemResult == null) {
itemResult = new HashMap<>();
}
itemResult.put("cityCode", r.getRegionCode());
return itemResult;
}).collect(Collectors.toList());
this.setCompanyDataBatch(result);
return result;
}
private void setCompanyDataBatch(List<Map<String, Object>> result) {
List<CountDto> countDtos = enterpriseInfoMapper.countByUnitTypeAndOrgCodeNoParam();
result.forEach(m -> {
String cityCode = m.get("cityCode").toString();
String orgCode = regionCodeOrgCodeMap.get(cityCode);
if (orgCode != null) {
m.put(DPMapStatisticsItemEnum.USERS_UNITS.getCode(), countDtos.stream().filter(c -> c.getKeyStr().contains(COMPANY_TYPE_USE) && c.getLabel().contains(orgCode)).mapToInt(CountDto::getIntValue).sum());
m.put(DPMapStatisticsItemEnum.CONSTRUCTION_UNITS.getCode(), countDtos.stream().filter(c -> c.getKeyStr().contains(COMPANY_TYPE_MAINTENANCE) && c.getLabel().contains(orgCode)).mapToInt(CountDto::getIntValue).sum());
m.put(DPMapStatisticsItemEnum.MANUFACTURING_UNITS.getCode(), countDtos.stream().filter(c -> c.getKeyStr().contains(COMPANY_TYPE_MANUFACTURE) && c.getLabel().contains(orgCode)).mapToInt(CountDto::getIntValue).sum());
m.put(DPMapStatisticsItemEnum.GAS_UNITS.getCode(), countDtos.stream().filter(c -> c.getKeyStr().contains(COMPANY_TYPE_FILLING) && c.getLabel().contains(orgCode)).mapToInt(CountDto::getIntValue).sum());
} else {
setDefaultCompanyCountData(m);
}
});
}
private void setDefaultCompanyCountData(Map<String, Object> m) {
m.put(DPMapStatisticsItemEnum.USERS_UNITS.getCode(), 0);
m.put(DPMapStatisticsItemEnum.CONSTRUCTION_UNITS.getCode(), 0);
m.put(DPMapStatisticsItemEnum.MANUFACTURING_UNITS.getCode(), 0);
m.put(DPMapStatisticsItemEnum.GAS_UNITS.getCode(), 0);
}
private void initReginCode() {
......
......@@ -38,7 +38,7 @@ public class DPStatisticsController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "检验检测次数统计", notes = "按照维度设备种类、检验类型进行统计")
@ApiOperation(httpMethod = "POST", value = "大屏总览-右侧检验检测次数统计", notes = "按照维度设备种类、检验类型进行统计")
@PostMapping(value = "/inspectTime/count/byEquListAndInspectType")
public ResponseModel<Map<String, Object>> inspectTimeCountByTypeAndEquList(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
......@@ -49,7 +49,7 @@ public class DPStatisticsController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "气瓶检验检测次数统计", notes = "气瓶检验检测次数统计")
@ApiOperation(httpMethod = "POST", value = "大屏8大类-气瓶检验检测次数统计", notes = "气瓶检验检测次数统计")
@PostMapping(value = "/inspectTimeCount")
public ResponseModel<Map<String, Object>> inspectTimeCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
......
......@@ -67,4 +67,8 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
TzBaseEnterpriseInfo selectBySeq(Long sequenceNbr);
List<CountDto> countByUnitTypeAndOrgCode(@Param("orgCode") String orgCode);
List<CountDto> countByUnitTypeAndOrgCodeNoParam();
}
......@@ -206,4 +206,13 @@
a.supervise_org_code like concat(#{orgCode},'%')
group by a.unit_type
</select>
<select id="countByUnitTypeAndOrgCodeNoParam" resultType="com.yeejoin.amos.boot.biz.common.dto.CountDto">
SELECT
count(1) as intValue,
a.unit_type as keyStr,
a.supervise_org_code as label
FROM
"tz_base_enterprise_info" a
group by a.unit_type,a.supervise_org_code
</select>
</mapper>
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