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

安全追溯大屏提交

1.问题类型主体统计 2.设备问题近30天统计 3.企业问题近30天统计 4.人员问题近30天统计 5.气瓶问题近30天统计 6.按月统计近12个月的问题数量趋势 7.按月统计近30天的问题数量趋势
parent ab457eb6
package com.yeejoin.amos.boot.module.common.api.enums;
import lombok.Getter;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
@Getter
public enum IssueMainBodyEnum {
//个人
PERSON("个人","1"),
//企业
COMPANY("企业","2"),
//设备
EQUIPMENT("设备","3"),
//气瓶
CYLINDER("气瓶","4"),
;
String name;
String code;
private IssueMainBodyEnum(String name, String code) {
this.name = name;
this.code = code;
}
public static List<HashMap<String,String>> getEnumList() {
List<HashMap<String, String>> list = new ArrayList<>();
for (IssueMainBodyEnum testEnum : EnumSet.allOf(IssueMainBodyEnum.class)) {
HashMap<String, String> map = new HashMap<>();
map.put(testEnum.name,testEnum.code.toString());
list.add(map);
}
return list;
}
public static List<String> getEnumNameList() {
List<String> list = new ArrayList<>();
for (IssueMainBodyEnum testEnum : EnumSet.allOf(IssueMainBodyEnum.class)) {
list.add(testEnum.getName());
}
return list;
}
}
package com.yeejoin.amos.boot.module.common.api.enums;
import lombok.Getter;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
@Getter
public enum IssueTypeEnum {
//检验超期(设备)
CHECK_OVERDUE_EQUMENT("检验超期","2","3"),
//维保超期(设备)
MAINTENANCE_OVERDUE_EQUMENT("维保超期","1","3"),
//资质超期(设备)
QUALIFICATION_OVERDUE_EQUMENT("资质超期","3","3"),
//检验不合格(设备)
CHECK_UNQUALIFIED_EQUMENT("检验不合格","4","3"),
//超设计使用年限(设备)
DESIGN_OVERDUE_EQUMENT("超设计使用年限","5","3"),
//电梯困人(设备)
ELEVATOR_TRAPPED_EQUMENT("电梯困人","6","3"),
//电梯故障(设备)
ELEVATOR_FAULT_EQUMENT("电梯故障","7","3"),
//许可临期(公司)
LICENSE_EXPIRY_COMPANY("许可临期","8","2"),
//许可超期(公司)
LICENSE_OVERDUE_COMPANY("许可超期","9","2"),
//维保备案超期(公司)
MAINTENANCE_RECORD_OVERDUE_COMPANY("维保备案超期","10","2"),
//许可临期(个人)
LICENSE_EXPIRY_PERSON("许可临期","11","1"),
//许可超期(个人)
LICENSE_OVERDUE_PERSON("许可超期","12","1"),
//许可超期(气瓶)
LICENSE_OVERDUE_CYLINDER("许可超期","13","4"),
//检验超期(气瓶)
CHECK_OVERDUE_CYLINDER("检验超期","14","4"),
//检验不合格(气瓶)
CHECK_UNQUALIFIED_CYLINDER("检验不合格","15","4"),
//操作人员资质超期(气瓶)
OPERATOR_QUALIFICATION_OVERDUE_CYLINDER("操作人员资质超期","16","1"),
//充装异常(气瓶)
CHARGE_EXCEPTION_CYLINDER("充装异常","17","4"),
;
String name;
String code;
String mainBody;
private IssueTypeEnum(String name, String code, String mainBody) {
this.name = name;
this.code = code;
this.mainBody = mainBody;
}
public static List<HashMap<String,String>> getEnumList() {
List<HashMap<String, String>> list = new ArrayList<>();
for (IssueTypeEnum testEnum : EnumSet.allOf(IssueTypeEnum.class)) {
HashMap<String, String> map = new HashMap<>();
map.put(testEnum.name,testEnum.code.toString());
list.add(map);
}
return list;
}
public static List<String> getEnumNameListByMainBody(String mainBody) {
List<String> list = new ArrayList<>();
for (IssueTypeEnum testEnum : EnumSet.allOf(IssueTypeEnum.class)) {
if(mainBody.equals(testEnum.getMainBody())){
list.add(testEnum.getName());
}
}
return list;
}
}
package com.yeejoin.amos.boot.module.cylinder.api.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@Mapper
public interface DPStatisticsMapper {
String getOrgCodeByCompanyCode(@Param("cityCode") String cityCode);
List<Map<String, Object>> selectByOrgAndMainBody(@Param("orgCode") String orgCode, @Param("mainBodyNameList") List<String> mainBodyNameList,
@Param("startDate") String startDate, @Param("status") String status);
List<Map<String, Object>> selectByOrgAndProblemType(@Param("orgCode") String orgCode, @Param("enumNameList") List<String> enumNameList,
@Param("startDate") String startDate, @Param("sourceType") String sourceType);
List<Map<String, Object>> getIssueCountByMonth(@Param("orgCode") String orgCode, @Param("year") String year, @Param("status") String status);
List<Map<String, Object>> getIssueCountByDate(@Param("orgCode") String orgCode, @Param("year") String year, @Param("status") String status);
}
<?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.cylinder.api.mapper.DPStatisticsMapper">
<select id="getOrgCodeByCompanyCode" resultType="java.lang.String">
select org_code from privilege_company where company_code = #{cityCode} limit 1
</select>
<select id="selectByOrgAndMainBody" resultType="java.util.Map">
SELECT COUNT
( 1 ),
source_type AS sourceType
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND create_date &gt;= #{startDate}
AND source_type IN
<foreach collection="mainBodyNameList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
<if test="null != status">
AND problem_status_code = #{status}
</if>
GROUP BY
source_type
</select>
<select id="selectByOrgAndProblemType" resultType="java.util.Map">
SELECT COUNT
( 1 ),
problem_type AS problemType
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND create_date &gt;= #{startDate}
AND source_type = #{sourceType}
AND problem_type IN
<foreach collection="enumNameList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
GROUP BY
problem_type
</select>
<select id="getIssueCountByMonth" resultType="java.util.Map">
SELECT COUNT
( 1 ),
DATE_FORMAT(create_date,'%Y-%m') AS time
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT(create_date,'%Y') = #{year}
<if test="null != status">
AND problem_status_code = #{status}
</if>
GROUP BY
DATE_FORMAT(create_date,'%Y-%m')
</select>
<select id="getIssueCountByDate" resultType="java.util.Map">
SELECT COUNT
( 1 ),
DATE_FORMAT(create_date,'%Y-%m-%d') AS time
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT(create_date,'%Y-%m-%d') &gt;= #{year}
<if test="null != status">
AND problem_status_code = #{status}
</if>
GROUP BY
DATE_FORMAT(create_date,'%Y-%m-%d')
</select>
</mapper>
......@@ -74,4 +74,88 @@ public class CylinderStatisticsController {
Map<String, Object> result = service.getsecurityIndex(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "问题类型主体统计")
@PostMapping(value = "/mainBodyCount")
public ResponseModel<Map<String, Object>> mainBodyCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.mainBodyCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "设备问题近30天统计")
@PostMapping(value = "/equipmentCount")
public ResponseModel<Map<String, Object>> equipmentCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.equipmentCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "企业问题近30天统计")
@PostMapping(value = "/companyCount")
public ResponseModel<List<Map<String, Object>>> companyCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = service.companyCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "人员问题近30天统计")
@PostMapping(value = "/personCount")
public ResponseModel<Map<String, Object>> personCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.personCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "气瓶问题近30天统计")
@PostMapping(value = "/cylinderCount")
public ResponseModel<Map<String, Object>> cylinderCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.cylinderCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按月统计近12个月的问题数量趋势")
@PostMapping(value = "/issueCountByMonth")
public ResponseModel<Map<String, Object>> issueCountByMonth(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.issueCountByMonth(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按月统计近30天的问题数量趋势")
@PostMapping(value = "/issueCountByDay")
public ResponseModel<Map<String, Object>> issueCountByDay(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.issueCountByDay(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
}
......@@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.yeejoin.amos.boot.module.common.api.constant.TZSCommonConstant;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.enums.IssueMainBodyEnum;
import com.yeejoin.amos.boot.module.common.api.enums.IssueTypeEnum;
import com.yeejoin.amos.boot.module.common.api.enums.ReginStepEnum;
import com.yeejoin.amos.boot.module.cylinder.api.dto.KeyValueDto;
import com.yeejoin.amos.boot.module.cylinder.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderFillingRecordDto;
import com.yeejoin.amos.boot.module.cylinder.api.mapper.DPStatisticsMapper;
import com.yeejoin.amos.boot.module.cylinder.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.boot.module.cylinder.biz.dao.ESCylinderFillingRecordRepository;
import com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CityCylinderInfoDto;
......@@ -39,11 +41,15 @@ import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import javax.annotation.Resource;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/**
......@@ -67,6 +73,12 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto
@Autowired
ITzBaseEnterpriseInfoService iTzBaseEnterpriseInfoService;
private static Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
@Resource
private DPStatisticsMapper statisticsMapper;
/**
* 分页查询
*/
......@@ -788,4 +800,265 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto
return result;
}
public Map<String, Object> mainBodyCount(String cityCode) {
Map<String,Object> resultMap = new HashMap<>();
Map<String,Object> dataMap = new HashMap<>();
String startDate = LocalDate.now().minusDays(100).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<String> mainBodyNameList = IssueMainBodyEnum.getEnumNameList();
String orgCode = getAndSetOrgCode(cityCode);
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndMainBody(orgCode, mainBodyNameList, startDate,null);
List<Object> legendDataList = new ArrayList<>();
for(int i = 0; i < 2; i++){
Map<String, Object> map = new HashMap<>();
if(0 == i) {
map.put("dataKey", "problemCount");
map.put("value","问题数量");
}else if(1 == i){
map.put("dataKey", "problemRate");
map.put("value","问题闭环率");
}
legendDataList.add(map);
}
resultMap.put("legendData",legendDataList);
List<String> xdata = new ArrayList<>();
List<Object> problemCount = new ArrayList<>();
List<Object> problemRate = new ArrayList<>();
list.stream().forEach(t->{
dataMap.put(t.get("sourceType").toString(),t.get("count").toString());
});
for(int i = 0; i < mainBodyNameList.size(); i++){
if(null != dataMap.get(mainBodyNameList.get(i))){
problemCount.add(dataMap.get(mainBodyNameList.get(i)));
List<String> list1 = new ArrayList<>();
list1.add(mainBodyNameList.get(i));
List<Map<String, Object>> maps = statisticsMapper.selectByOrgAndMainBody(orgCode, list1, startDate, "1");
if(maps.size() > 0){
problemRate.add(new DecimalFormat("0.00").format(Double.parseDouble(dataMap.get(mainBodyNameList.get(i)).toString()) / Double.parseDouble(maps.get(0).get("count").toString())));
}else{
problemRate.add("0");
}
}else{
problemCount.add("0");
problemRate.add("0");
}
xdata.add(mainBodyNameList.get(i));
}
resultMap.put("xdata",xdata);
resultMap.put("problemCount",problemCount);
resultMap.put("problemRate",problemRate);
return resultMap;
}
private String getAndSetOrgCode(String cityCode) {
String orgCode = regionCodeOrgCodeMap.get(cityCode);
if (orgCode == null) {
orgCode = statisticsMapper.getOrgCodeByCompanyCode(cityCode);
if (orgCode != null) {
regionCodeOrgCodeMap.put(cityCode, orgCode);
}
}
return orgCode;
}
public Map<String, Object> equipmentCount(String cityCode) {
Map<String,Object> resultMap = new HashMap<>();
Map<String,Object> dataMap = new HashMap<>();
List<Object> xdata = new ArrayList<>();
List<Object> ydata = new ArrayList<>();
String orgCode = getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("3");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String,Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate,IssueMainBodyEnum.EQUIPMENT.getName());
list.stream().forEach(t->{
dataMap.put(t.get("problemType").toString(),t.get("count").toString());
});
for(int i = 0; i < enumNameList.size(); i++){
xdata.add(enumNameList.get(i));
ydata.add(dataMap.getOrDefault(enumNameList.get(i),"0"));
}
resultMap.put("xdata",xdata);
resultMap.put("ydata",ydata);
return resultMap;
}
public List<Map<String, Object>> companyCount(String cityCode) {
List<Map<String,Object>> resultList = new ArrayList<>();
Map<String,Object> dataMap = new HashMap<>();
String orgCode = getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("2");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String,Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate,IssueMainBodyEnum.COMPANY.getName());
list.stream().forEach(t->{
dataMap.put(t.get("problemType").toString(),t.get("count").toString());
});
for(int i = 0; i < enumNameList.size(); i++){
Map<String,Object> map = new HashMap<>();
if(enumNameList.get(i).equals("许可临期")){
map.put("key","licenseExpirationDateNumber");
map.put("label","许可临期数");
map.put("value",dataMap.getOrDefault(enumNameList.get(i),"0"));
}else if(enumNameList.get(i).equals("许可超期")){
map.put("key","licenseOverdueNumber");
map.put("label","许可超期数");
map.put("value",dataMap.getOrDefault(enumNameList.get(i),"0"));
}else if(enumNameList.get(i).equals("维保备案超期")){
map.put("key","maintenanceFilingOverdueNumber");
map.put("label","维保备案超期数(仅电梯)");
map.put("value",dataMap.getOrDefault(enumNameList.get(i),"0"));
}
resultList.add(map);
}
return resultList;
}
public Map<String, Object> personCount(String cityCode) {
Map<String,Object> resultMap = new HashMap<>();
Map<String,Object> dataMap = new HashMap<>();
List<Object> xdata = new ArrayList<>();
List<Object> ydata = new ArrayList<>();
String orgCode = getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("1");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String,Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate, IssueMainBodyEnum.PERSON.getName());
list.stream().forEach(t->{
dataMap.put(t.get("problemType").toString(),t.get("count").toString());
});
for(int i = 0; i < enumNameList.size(); i++){
xdata.add(enumNameList.get(i));
ydata.add(dataMap.getOrDefault(enumNameList.get(i),"0"));
}
resultMap.put("xdata",xdata);
resultMap.put("ydata",ydata);
return resultMap;
}
public Map<String, Object> cylinderCount(String cityCode) {
Map<String,Object> resultMap = new HashMap<>();
Map<String,Object> dataMap = new HashMap<>();
List<Object> xdata = new ArrayList<>();
List<Object> ydata = new ArrayList<>();
String orgCode = getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("4");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String,Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate, IssueMainBodyEnum.CYLINDER.getName());
list.stream().forEach(t->{
dataMap.put(t.get("problemType").toString(),t.get("count").toString());
});
for(int i = 0; i < enumNameList.size(); i++){
xdata.add(enumNameList.get(i));
ydata.add(dataMap.getOrDefault(enumNameList.get(i),"0"));
}
resultMap.put("xdata",xdata);
resultMap.put("ydata",ydata);
return resultMap;
}
public Map<String, Object> issueCountByMonth(String cityCode) {
Map<String,Object> resultMap = new HashMap<>();
List<Object> legendData = new ArrayList<>();
for(int i = 0; i < 2; i++){
Map<String,Object> map = new HashMap<>();
if(i == 0){
map.put("key","problemCount");
map.put("value","问题数量");
}else{
map.put("key","processedRate");
map.put("value","已处理");
}
legendData.add(map);
}
resultMap.put("legendData",legendData);
String orgCode = getAndSetOrgCode(cityCode);
int year = LocalDate.now().getYear();
List<Map<String,Object>> allIssue = statisticsMapper.getIssueCountByMonth(orgCode,String.valueOf(year),null);
List<Map<String,Object>> endIssue = statisticsMapper.getIssueCountByMonth(orgCode,String.valueOf(year),"1");
Map<String,Object> allIssueMap = new HashMap<>();
Map<String,Object> endIssueMap = new HashMap<>();
allIssue.stream().forEach(t->{
allIssueMap.put(t.get("time").toString(),t.get("count"));
});
endIssue.stream().forEach(t->{
endIssueMap.put(t.get("time").toString(),t.get("count"));
});
List<Object> problemCount = new ArrayList<>();
List<Object> processedRate = new ArrayList<>();
List<Object> xdata = new ArrayList<>();
for(int i = 1; i <= 12; i++){
xdata.add(i+"月");
String time = LocalDate.now().minusMonths(i).format(DateTimeFormatter.ofPattern("yyyy-MM"));
if(allIssueMap.get(time) == null){
problemCount.add("0");
processedRate.add("0");
}else{
problemCount.add(allIssueMap.get(time));
if(endIssueMap.get(time) == null){
processedRate.add("0");
}else{
processedRate.add(new DecimalFormat("0.00").format(Double.parseDouble(endIssueMap.get(time).toString()) / Double.parseDouble(allIssueMap.get(time).toString())));
}
}
}
Collections.reverse(problemCount);
Collections.reverse(processedRate);
resultMap.put("xdata",xdata);
resultMap.put("problemCount",problemCount);
resultMap.put("processedRate",processedRate);
return resultMap;
}
public Map<String, Object> issueCountByDay(String cityCode) {
Map<String,Object> resultMap = new HashMap<>();
List<Object> legendData = new ArrayList<>();
for(int i = 0; i < 2; i++){
Map<String,Object> map = new HashMap<>();
if(i == 0){
map.put("key","problemCount");
map.put("value","问题数量");
}else{
map.put("key","processedRate");
map.put("value","已处理");
}
legendData.add(map);
}
resultMap.put("legendData",legendData);
String orgCode = getAndSetOrgCode(cityCode);
String year = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String,Object>> allIssue = statisticsMapper.getIssueCountByDate(orgCode,year,null);
List<Map<String,Object>> endIssue = statisticsMapper.getIssueCountByDate(orgCode,year,"1");
Map<String,Object> allIssueMap = new HashMap<>();
Map<String,Object> endIssueMap = new HashMap<>();
allIssue.stream().forEach(t->{
allIssueMap.put(t.get("time").toString(),t.get("count"));
});
endIssue.stream().forEach(t->{
endIssueMap.put(t.get("time").toString(),t.get("count"));
});
List<Object> problemCount = new ArrayList<>();
List<Object> processedRate = new ArrayList<>();
List<Object> xdata = new ArrayList<>();
for(int i = 0; i < 29; i++){
xdata.add(LocalDate.now().minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
String time = LocalDate.now().minusMonths(i).format(DateTimeFormatter.ofPattern("yyyy-MM"));
if(allIssueMap.get(time) == null){
problemCount.add("0");
processedRate.add("0");
}else{
problemCount.add(allIssueMap.get(time));
if(endIssueMap.get(time) == null){
processedRate.add("0");
}else{
processedRate.add(new DecimalFormat("0.00").format(Double.parseDouble(endIssueMap.get(time).toString()) / Double.parseDouble(allIssueMap.get(time).toString())));
}
}
}
Collections.reverse(xdata);
Collections.reverse(problemCount);
Collections.reverse(processedRate);
resultMap.put("xdata",xdata);
resultMap.put("problemCount",problemCount);
resultMap.put("processedRate",processedRate);
return resultMap;
}
}
\ No newline at end of file
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