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

指标管理 应急处置 / 困人救援月度情况 代码提交

parent 785ca6df
......@@ -62,6 +62,7 @@ public class DPFilterParamForDetailDto {
* 设备类别
*/
private String equCategoryCode;
private String equCategory;
/**
* 监管单位名称(接收单位/管辖机构)
......@@ -202,4 +203,33 @@ public class DPFilterParamForDetailDto {
* 证件号码
*/
private String certificateNum;
/**
* 使用多个单位
*/
private String useUnitName;
/**
* 使用登记证
*/
private String useOrgCode;
/**
* 96333码
*/
private String code96333;
/**
* 监管码
*/
private String supervisoryCode;
/**
* 所属地区
*/
private String usePlace;
/**
* 设备状态
*/
private String equState;
/**
* 信息化
*/
private String informationSituation;
}
......@@ -10,8 +10,8 @@ import java.util.*;
public enum ZBGLEnum {
YJCZ("应急处置","yjcz",true,null,""),
DTGZYYZBFX("电梯故障原因占比分析","dtgzyyzbfx",false,"yjcz","dtgzyyzbfxServiceImpl"),
DTKRSJCSFX("电梯困人事件场所分布","dtkrsjcsfx",false,"yjcz",""),
KRJYYDQK("困人救援月度情况","krjyydqk",false,"yjcz",""),
DTKRSJCSFX("电梯困人事件场所分布","dtkrsjcsfx",false,"yjcz","dtkrsjcsfxServiceImpl"),
KRJYYDQK("困人救援月度情况","krjyydqk",false,"yjcz","krjyydqkServiceImpl"),
JDGL("监督管理","jdgl",true,null,""),
YWBLPJSXTJ("业务办理平均时效统计","ywblpjsxtj",false,"jdgl",""),
AQZS("安全追溯","aqzs",true,null,""),
......
package com.yeejoin.amos.boot.module.statistics.api.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgOtherInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -22,5 +18,12 @@ public interface ZBGLStatisticsMapper {
List<Map<String,String>> getTypeList(@Param("type") String type);
Long getDTGZYYZBFXChartData(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
List<Map<String, Object>> getPageData(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
List<Map<String, Object>> getDTGZYYZBFXPageData(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
Long getDTKRSJCSFXChartData(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
List<Map<String, Object>> getDTKRSJCSFXPageData(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
Map<String, Long> getKRJYYDQKChartData(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto, @Param("time") String time);
}
......@@ -25,7 +25,7 @@
AND tafv.field_code = 'error_result'
AND tafv.field_value IS NOT NULL
</select>
<select id="getPageData" resultType="java.util.Map">
<select id="getDTGZYYZBFXPageData" resultType="java.util.Map">
SELECT
tafv.field_value AS keyStr,
ifnull (SUM (CASE WHEN tac.father_alert IS NULL THEN 1 ELSE 0 END ), 0 ) AS longValue,
......@@ -41,5 +41,47 @@
GROUP BY
tafv.field_value
</select>
<select id="getDTKRSJCSFXChartData" resultType="java.lang.Long">
SELECT
count(1)
FROM
tz_alert_called tac
LEFT JOIN idx_biz_jg_use_info ibjuj ON tac.equipment_id = ibjuj.RECORD
WHERE
tac.biz_org_code LIKE concat(#{dpFilterParamForDetailDto.orgCode}, '%')
AND (tac.alarm_type_code = '960' or tac.alarm_type_code = '961')
AND ibjuj.USE_PLACE is NOT NULL
</select>
<select id="getDTKRSJCSFXPageData" resultType="java.util.Map">
SELECT
ifnull ( SUM ( CASE WHEN father_alert IS NULL THEN 1 ELSE 0 END ), 0 ) AS longValue,
ibjuj."USE_PLACE" AS fieldValueCode
FROM
tz_alert_called tac
LEFT JOIN idx_biz_jg_use_info ibjuj ON tac.equipment_id = ibjuj.RECORD
WHERE
tac.biz_org_code LIKE concat ( #{dpFilterParamForDetailDto.orgCode}, '%' )
AND ( tac.alarm_type_code = '960' OR tac.alarm_type_code = '961' )
AND ibjuj.USE_PLACE IS NOT NULL
GROUP BY
ibjuj."USE_PLACE"
</select>
<select id="getKRJYYDQKChartData" resultType="java.util.Map">
SELECT
sum(less_num) AS lessNum,
sum(greater_num) AS greaterNum,
sum(level_one) AS levelOne,
sum(level_two) AS levelTwo,
sum(level_three) AS levelThree
FROM
tzs_alert_rescue_statistics
WHERE
statistics_date = #{time}
AND supervisory_unit_org_code LIKE concat ( #{dpFilterParamForDetailDto.orgCode}, '%' )
GROUP BY
supervisory_unit_org_code
LIMIT 1
</select>
</mapper>
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
......@@ -19,6 +21,7 @@ import org.elasticsearch.client.core.CountResponse;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
......@@ -43,11 +46,15 @@ public class EquipmentStaticsServiceImpl {
@Autowired
private RestHighLevelClient restHighLevelClient;
private static final String EQUSTATE = "EQU_STATE";
private static final String SUPERVISORYCODE = "SUPERVISORY_CODE";
public Map<String, Object> normalChart(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode());
List<Map<String,Object>> result = regionModels.parallelStream().map(r -> {
String orgCode = stCommonService.getAndSetOrgCode(r.getRegionCode()+"");
DPFilterParamForDetailDto dpFilterParamForDetailDtoForSearch = new DPFilterParamForDetailDto();
BeanUtils.copyProperties(dpFilterParamForDetailDto,dpFilterParamForDetailDtoForSearch);
dpFilterParamForDetailDtoForSearch.setOrgCode(orgCode);
dpFilterParamForDetailDtoForSearch.setCityCode(r.getRegionCode()+"");
Map<String, Object> itemResult = new HashMap<>();
......@@ -318,7 +325,54 @@ public class EquipmentStaticsServiceImpl {
boolMust.must(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").lt(currentDayTime));
}
}
/**
* 使用单位
*/
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getUseUnitName())){
boolMust.must(QueryBuilders.matchPhraseQuery("USE_UNIT_NAME", "*" + dpFilterParamForDetailDto.getUseUnitName() + "*"));
}
/**
* 使用登记编号
*/
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getUseOrgCode())){
boolMust.must(QueryBuilders.wildcardQuery("USE_ORG_CODE", "*" + dpFilterParamForDetailDto.getUseOrgCode() + "*"));
}
/**
* 96333
*/
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getCode96333())){
boolMust.must(QueryBuilders.matchPhraseQuery("CODE96333", "*" + dpFilterParamForDetailDto.getCode96333() + "*"));
}
/**
* 监管码
*/
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getSupervisoryCode())){
boolMust.must(QueryBuilders.matchPhraseQuery("SUPERVISORY_CODE", "*" + dpFilterParamForDetailDto.getSupervisoryCode() + "*"));
}
/**
* 所属地区
*/
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getUsePlace())){
boolMust.must(QueryBuilders.matchPhraseQuery("USE_PLACE", "*" + dpFilterParamForDetailDto.getUsePlace() + "*"));
}
/**
* 设备状态
*/
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getEquState())){
boolMust.must(QueryBuilders.matchPhraseQuery("EQU_STATE", dpFilterParamForDetailDto.getEquState()));
}
/**
* 信息化
*/
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getInformationSituation())){
boolMust.must(QueryBuilders.matchPhraseQuery("INFORMATION_SITUATION","*" + dpFilterParamForDetailDto.getInformationSituation() + "*"));
}
/**
* 设备类别
*/
if(StrUtil.isNotEmpty(dpFilterParamForDetailDto.getEquCategory())){
boolMust.must(QueryBuilders.matchPhraseQuery("EQU_CATEGORY", "*" + dpFilterParamForDetailDto.getEquCategory() + "*"));
}
//监管码状态0已赋码1未赋码
if (StringUtils.isNotEmpty(dpFilterParamForDetailDto.getSupervisionCodeStatus())){
if(StringUtils.equals("0",dpFilterParamForDetailDto.getSupervisionCodeStatus())){
......@@ -330,7 +384,7 @@ public class EquipmentStaticsServiceImpl {
}
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getNextInspectionDate())){
boolMust.must(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(dpFilterParamForDetailDto.getNextInspectionDate()));
boolMust.must(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(DateUtil.parse(dpFilterParamForDetailDto.getNextInspectionDate()).getTime()));
}
searchSourceBuilder.query(boolMust);
......@@ -356,6 +410,16 @@ public class EquipmentStaticsServiceImpl {
System.out.println(hit);
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(hit);
JSONObject dto2 = jsonObject.getJSONObject("sourceAsMap");
if (!ValidationUtil.isEmpty(dto2.get(EQUSTATE))) {
Integer integer = Integer.valueOf(dto2.get(EQUSTATE).toString());
String equStatus = EquimentEnum.getName.get(integer);
dto2.put(EQUSTATE, equStatus);
}
if(!ValidationUtil.isEmpty(dto2.get(SUPERVISORYCODE)) && dto2.get(SUPERVISORYCODE) != "null"){
dto2.put("IS_SUPERVISORY_CODE","已赋码");
}else{
dto2.put("IS_SUPERVISORY_CODE","未赋码");
}
list.add(dto2);
}
total = response.getInternalResponse().hits().getTotalHits().value;
......
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl.ZBGLImpl;
import cn.hutool.core.lang.UUID;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.statistcs.biz.service.IZBGLService;
......@@ -40,7 +41,7 @@ public class DtgzyyzbfxServiceImpl implements IZBGLService {
Map<String,Object> returnMap = new HashMap<>();
List<Map<String,Object>> legendData = new ArrayList<>();
for(int i = 0;i<1; i++){
for(int i = 0;i<2; i++){
Map<String,Object> map = new HashMap<>();
if(i == 0){
map.put("dataKey","count");
......@@ -67,7 +68,7 @@ public class DtgzyyzbfxServiceImpl implements IZBGLService {
xdata.add(result.get(i).get("xdata"));
count.add(result.get(i).get("count") == null ? "0" : result.get(i).get("count")+"");
if(sum != 0 && (Long)result.get(i).get("count") != 0){
rate.add(decimalFormat.format(new BigDecimal(result.get(i).get("count")+"").divide(BigDecimal.valueOf(sum))));
rate.add(decimalFormat.format(new BigDecimal(result.get(i).get("count")+"").divide(BigDecimal.valueOf(sum),2, RoundingMode.HALF_UP)));
}else{
rate.add("0");
}
......@@ -88,7 +89,7 @@ public class DtgzyyzbfxServiceImpl implements IZBGLService {
DPFilterParamForDetailDto dpFilterParamForDetailDtoNew = new DPFilterParamForDetailDto();
dpFilterParamForDetailDtoNew.setOrgCode(orgCode);
Map<String, Object> itemResult = new HashMap<>();
List<Map<String,Object>> list = zbglStatisticsMapper.getPageData(dpFilterParamForDetailDtoNew);
List<Map<String,Object>> list = zbglStatisticsMapper.getDTGZYYZBFXPageData(dpFilterParamForDetailDtoNew);
Long sum = 0L;
for(int i = 0;i<list.size();i++){
sum = sum + (Long)list.get(i).get("longValue");
......@@ -99,6 +100,7 @@ public class DtgzyyzbfxServiceImpl implements IZBGLService {
}
}
itemResult.put("area",r.getRegionName());
itemResult.put("sequenceNbr", UUID.fastUUID().toString());
return itemResult;
}).collect(Collectors.toList());
page.setRecords(result);
......
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl.ZBGLImpl;
import cn.hutool.core.lang.UUID;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.statistcs.biz.service.IZBGLService;
import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.StCommonServiceImpl;
import com.yeejoin.amos.boot.module.statistics.api.mapper.ZBGLStatisticsMapper;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Component
public class DtkrsjcsfxServiceImpl implements IZBGLService {
@Resource
private StCommonServiceImpl stCommonService;
@Resource
private ZBGLStatisticsMapper zbglStatisticsMapper;
@Override
public Map<String, Object> getChart(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode());
List<Map<String,Object>> result = regionModels.parallelStream().map(r -> {
String orgCode = stCommonService.getAndSetOrgCode(r.getRegionCode()+"");
DPFilterParamForDetailDto dpFilterParamForDetailDtoNew = new DPFilterParamForDetailDto();
dpFilterParamForDetailDtoNew.setOrgCode(orgCode);
Map<String, Object> itemResult = new HashMap<>();
Long count = zbglStatisticsMapper.getDTKRSJCSFXChartData(dpFilterParamForDetailDtoNew);
itemResult.put("count",count);
itemResult.put("xdata",r.getRegionName());
return itemResult;
}).collect(Collectors.toList());
Map<String,Object> returnMap = new HashMap<>();
List<Map<String,Object>> legendData = new ArrayList<>();
for(int i = 0;i<2; i++){
Map<String,Object> map = new HashMap<>();
if(i == 0){
map.put("dataKey","count");
map.put("value","事件总数");
map.put("chartType","bar");
}else{
map.put("dataKey","rate");
map.put("value","占比");
map.put("chartType","line");
}
legendData.add(map);
}
returnMap.put("legendData",legendData);
List xdata = new ArrayList();
List count = new ArrayList();
List rate = new ArrayList();
Long sum = 0L;
for(int i = 0;i<result.size();i++){
sum = sum + (Long)result.get(i).get("count");
}
DecimalFormat decimalFormat = new DecimalFormat("0.00");
for(int i = 0;i<result.size();i++){
xdata.add(result.get(i).get("xdata"));
count.add(result.get(i).get("count") == null ? "0" : result.get(i).get("count")+"");
if(sum != 0 && (Long)result.get(i).get("count") != 0){
rate.add(decimalFormat.format(new BigDecimal(result.get(i).get("count")+"").divide(BigDecimal.valueOf(sum),2, RoundingMode.HALF_UP)));
}else{
rate.add("0");
}
}
returnMap.put("xdata",xdata);
returnMap.put("count",count);
returnMap.put("rate",rate);
return returnMap;
}
@Override
public Page<Map<String, Object>> getPage(Page page,DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode());
List<Map<String,Object>> result = regionModels.parallelStream().map(r -> {
String orgCode = stCommonService.getAndSetOrgCode(r.getRegionCode()+"");
DPFilterParamForDetailDto dpFilterParamForDetailDtoNew = new DPFilterParamForDetailDto();
dpFilterParamForDetailDtoNew.setOrgCode(orgCode);
Map<String, Object> itemResult = new HashMap<>();
List<Map<String,Object>> list = zbglStatisticsMapper.getDTKRSJCSFXPageData(dpFilterParamForDetailDtoNew);
Long sum = 0L;
for(int i = 0;i<list.size();i++){
sum = sum + (Long)list.get(i).get("longValue");
}
for(int i = 0;i<list.size();i++){
if(sum != 0 && (Long)list.get(i).get("longValue") != 0){
itemResult.put(list.get(i).get("fieldValueCode")+"",list.get(i).get("longValue")+" / "+new BigDecimal(list.get(i).get("longValue")+"").divide(BigDecimal.valueOf(sum),2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).stripTrailingZeros().toPlainString()+"%");
}
}
itemResult.put("area",r.getRegionName());
itemResult.put("sequenceNbr", UUID.fastUUID().toString());
return itemResult;
}).collect(Collectors.toList());
page.setRecords(result);
page.setTotal(result.size());
return page;
}
@Override
public List<Map<String, String>> getTitle(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<Map<String, String>> list = zbglStatisticsMapper.getTypeList("ADDRESS");
Map<String,String> map = new HashMap<>();
map.put("dataIndex","area");
map.put("title","区域");
list.add(0,map);
return list;
}
}
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl.ZBGLImpl;
import cn.hutool.core.lang.UUID;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.statistcs.biz.service.IZBGLService;
import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.StCommonServiceImpl;
import com.yeejoin.amos.boot.module.statistics.api.mapper.ZBGLStatisticsMapper;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@Component
public class KrjyydqkServiceImpl implements IZBGLService {
@Resource
private StCommonServiceImpl stCommonService;
@Resource
private ZBGLStatisticsMapper zbglStatisticsMapper;
@Override
public Map<String, Object> getChart(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode());
String time = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
List<Map<String,Object>> result = regionModels.parallelStream().map(r -> {
String orgCode = stCommonService.getAndSetOrgCode(r.getRegionCode()+"");
DPFilterParamForDetailDto dpFilterParamForDetailDtoNew = new DPFilterParamForDetailDto();
dpFilterParamForDetailDtoNew.setOrgCode(orgCode);
Map<String, Object> itemResult = new HashMap<>();
Map<String,Long> countMap = zbglStatisticsMapper.getKRJYYDQKChartData(dpFilterParamForDetailDtoNew,time);
itemResult.put("count",countMap);
itemResult.put("xdata",r.getRegionName());
return itemResult;
}).collect(Collectors.toList());
Map<String,Object> returnMap = new HashMap<>();
List<Map<String,Object>> legendData = new ArrayList<>();
for(int i = 0;i<5; i++){
Map<String,Object> map = new HashMap<>();
if(i == 0){
map.put("dataIndex","lessNum");
map.put("title","30分钟内到达次数");
}else if(i == 1) {
map.put("dataIndex", "greaterNum");
map.put("title", "超过30分钟到次数");
}else if(i ==2){
map.put("dataIndex","levelOne");
map.put("title","一级救援次数");
}else if(i == 3){
map.put("dataIndex","levelTwo");
map.put("title","二级救援次数");
}else {
map.put("dataIndex","levelThree");
map.put("title","三级救援次数");
}
legendData.add(map);
}
returnMap.put("legendData",legendData);
List xdata = new ArrayList();
List lessNum = new ArrayList();
List greaterNum = new ArrayList();
List levelOne = new ArrayList();
List levelTwo = new ArrayList();
List levelThree = new ArrayList();
for(int i = 0;i<result.size();i++){
Map<String,Object> map = (Map<String, Object>) result.get(i).get("count");
if(!CollectionUtils.isEmpty(map)) {
lessNum.add(map.get("lessNum") == null ? "0" : map.get("lessNum") + "");
greaterNum.add(map.get("greaterNum") == null ? "0" : map.get("greaterNum") + "");
levelOne.add(map.get("levelOne") == null ? "0" : map.get("levelOne") + "");
levelTwo.add(map.get("levelTwo") == null ? "0" : map.get("levelTwo") + "");
levelThree.add(map.get("levelThree") == null ? "0" : map.get("levelThree") + "");
}else{
lessNum.add("0");
greaterNum.add("0");
levelOne.add("0");
levelTwo.add("0");
levelThree.add("0");
}
xdata.add(result.get(i).get("xdata"));
}
returnMap.put("xdata",xdata);
returnMap.put("lessNum",lessNum);
returnMap.put("greaterNum",greaterNum);
returnMap.put("levelOne",levelOne);
returnMap.put("levelTwo",levelTwo);
returnMap.put("levelThree",levelThree);
return returnMap;
}
@Override
public Page<Map<String, Object>> getPage(Page page,DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode());
String time = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
List<Map<String,Object>> result = regionModels.parallelStream().map(r -> {
String orgCode = stCommonService.getAndSetOrgCode(r.getRegionCode()+"");
DPFilterParamForDetailDto dpFilterParamForDetailDtoNew = new DPFilterParamForDetailDto();
dpFilterParamForDetailDtoNew.setOrgCode(orgCode);
Map<String, Object> itemResult = new HashMap<>();
Map<String,Long> map = zbglStatisticsMapper.getKRJYYDQKChartData(dpFilterParamForDetailDtoNew,time);
AtomicReference<Long> sum = new AtomicReference<>(0L);
if(!CollectionUtils.isEmpty(map)) {
map.entrySet().forEach(key -> {
sum.set(sum.get() + key.getValue());
});
map.entrySet().forEach(key -> {
if (sum.get() != 0 && key.getValue() != 0) {
itemResult.put(key.getKey(), key.getValue() + " / " + BigDecimal.valueOf(key.getValue()).divide(BigDecimal.valueOf(sum.get()), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).stripTrailingZeros().toPlainString() + "%");
}
});
}
itemResult.put("area",r.getRegionName());
itemResult.put("sequenceNbr", UUID.fastUUID().toString());
return itemResult;
}).collect(Collectors.toList());
page.setRecords(result);
page.setTotal(result.size());
return page;
}
@Override
public List<Map<String, String>> getTitle(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<Map<String, String>> list = new ArrayList<>();
for(int i = 0; i < 6; i++) {
Map<String, String> map = new HashMap<>();
if(i == 0) {
map.put("dataIndex", "area");
map.put("title", "区域");
}else if(i == 1){
map.put("dataIndex","lessNum");
map.put("title","30分钟内到达次数");
}else if(i == 2) {
map.put("dataIndex", "greaterNum");
map.put("title", "超过30分钟到次数");
}else if(i ==3){
map.put("dataIndex","levelOne");
map.put("title","一级救援次数");
}else if(i == 4){
map.put("dataIndex","levelTwo");
map.put("title","二级救援次数");
}else {
map.put("dataIndex","levelThree");
map.put("title","三级救援次数");
}
list.add(map);
}
return list;
}
}
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