package com.ruoyi.project.tr.dataStatistics.service;
|
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.project.mobile.service.ApiHiddenDangerCheckService;
|
import com.ruoyi.project.tr.dataStatistics.domain.DangerData;
|
import com.ruoyi.project.tr.dataStatistics.domain.DataStatistics;
|
import com.ruoyi.project.tr.dataStatistics.domain.RiskData;
|
import com.ruoyi.project.tr.dataStatistics.mapper.DataStatisticsMapper;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.text.DecimalFormat;
|
import java.text.NumberFormat;
|
import java.util.List;
|
|
@Service
|
public class DataStatisticsService {
|
@Autowired
|
private DataStatisticsMapper dataStatisticsMapper;
|
|
|
/**
|
* 查询各个公司风险隐患统计数据
|
*
|
* @return
|
*/
|
public List<DataStatistics> selectCompanyDataStatistics(DataStatistics dataStatistics) {
|
List<DataStatistics> riskDataStatistics = selectRiskDataStatistics(dataStatistics);
|
List<DataStatistics> dangerDataStatistics = selectDangerDataStatistics(dataStatistics);
|
if (riskDataStatistics != null && riskDataStatistics.size() != 0 && dangerDataStatistics != null && dangerDataStatistics.size() != 0) {
|
for (int i = 0; i < riskDataStatistics.size(); i++) {
|
for (int i1 = 0; i1 < dangerDataStatistics.size(); i1++) {
|
if ((dangerDataStatistics.get(i1).getCompanyId()).equals(riskDataStatistics.get(i).getCompanyId())) {
|
riskDataStatistics.get(i).setThisMonthHighDangerCount(dangerDataStatistics.get(i1).getThisMonthHighDangerCount());
|
riskDataStatistics.get(i).setThisMonthNormalDangerCount(dangerDataStatistics.get(i1).getThisMonthNormalDangerCount());
|
riskDataStatistics.get(i).setUnRectifyDangerCount(dangerDataStatistics.get(i1).getUnRectifyDangerCount());
|
riskDataStatistics.get(i).setDangerRectifyPercent(dangerDataStatistics.get(i1).getDangerRectifyPercent());
|
riskDataStatistics.get(i).setAllDangers(dangerDataStatistics.get(i).getAllDangers());
|
}
|
}
|
}
|
}
|
return riskDataStatistics;
|
}
|
|
/**
|
* 查询各个公司风险统计数据
|
*
|
* @return
|
*/
|
private List<DataStatistics> selectRiskDataStatistics(DataStatistics dataStatistics) {
|
List<DataStatistics> dataStatisticsList = dataStatisticsMapper.selectCompanyRisks(dataStatistics);
|
if (dataStatisticsList != null && dataStatisticsList.size() != 0) {
|
for (int i = 0; i < dataStatisticsList.size(); i++) {
|
long seriesRiskCount = 0;
|
long middleRiskCount = 0;
|
long normalRiskCount = 0;
|
long lowRiskCount = 0;
|
if (dataStatisticsList.get(i) != null && dataStatisticsList.get(i).getRisks() != null
|
&& dataStatisticsList.get(i).getRisks().size() != 0) {
|
List<RiskData> risks = dataStatisticsList.get(i).getRisks();
|
for (int i1 = 0; i1 < risks.size(); i1++) {
|
if (risks.get(i1) != null && risks.get(i1).getCheckPointId() != null && StringUtils.isNotEmpty(risks.get(i1).getReviewStatus())
|
&& StringUtils.isNotEmpty(risks.get(i1).getRiskColor())) {
|
switch (risks.get(i1).getRiskColor()) {
|
case "蓝色":
|
lowRiskCount += 1;
|
break;
|
case "黄色":
|
normalRiskCount += 1;
|
break;
|
case "橙色":
|
middleRiskCount += 1;
|
break;
|
case "红色":
|
seriesRiskCount += 1;
|
break;
|
}
|
}
|
}
|
}
|
dataStatisticsList.get(i).setLowRiskCount(lowRiskCount);
|
dataStatisticsList.get(i).setNormalRiskCount(normalRiskCount);
|
dataStatisticsList.get(i).setMiddleRiskCount(middleRiskCount);
|
dataStatisticsList.get(i).setSeriesRiskCount(seriesRiskCount);
|
dataStatisticsList.get(i).setRisks(null);
|
dataStatisticsList.get(i).setDangers(null);
|
}
|
}
|
return dataStatisticsList;
|
}
|
|
/**
|
* 查询各个公司隐患统计数据
|
*
|
* @return
|
*/
|
private List<DataStatistics> selectDangerDataStatistics(DataStatistics dataStatistics) {
|
List<DataStatistics> dataStatisticsList = dataStatisticsMapper.selectCompanyDangers(dataStatistics);
|
String thisMonth = DateUtils.parseDateToStr("yyyy-MM", DateUtils.getNowDate());
|
if (dataStatisticsList != null && dataStatisticsList.size() != 0) {
|
for (int i = 0; i < dataStatisticsList.size(); i++) {
|
long thisMonthHighDangerCount = 0;
|
long thisMonthNormalDangerCount = 0;
|
long unRectifyDangerCount = 0;
|
long allDangers = 0;
|
if (dataStatisticsList.get(i) != null && dataStatisticsList.get(i).getDangers() != null
|
&& dataStatisticsList.get(i).getDangers().size() != 0) {
|
List<DangerData> dangers = dataStatisticsList.get(i).getDangers();
|
for (int i1 = 0; i1 < dangers.size(); i1++) {
|
if (dangers.get(i1) != null && dangers.get(i1).getCheckId() != null) {
|
if (StringUtils.isNotEmpty(dangers.get(i1).getCreateTime()) && thisMonth.equals(dangers.get(i1).getCreateTime())) {
|
switch (dangers.get(i1).getDangerLevel()) {
|
case "0":
|
thisMonthNormalDangerCount += 1;
|
break;
|
case "1":
|
thisMonthHighDangerCount += 1;
|
break;
|
}
|
}
|
if (StringUtils.isNotEmpty(dangers.get(i1).getRectifyStatus()) && "0".equals(dangers.get(i1).getRectifyStatus())) {
|
unRectifyDangerCount += 1;
|
}
|
allDangers += 1;
|
}
|
}
|
}
|
dataStatisticsList.get(i).setThisMonthNormalDangerCount(thisMonthNormalDangerCount);
|
dataStatisticsList.get(i).setThisMonthHighDangerCount(thisMonthHighDangerCount);
|
dataStatisticsList.get(i).setUnRectifyDangerCount(unRectifyDangerCount);
|
String dangerRectifyPercent = "100%";
|
if (allDangers != 0) {
|
BigDecimal tempBigDecimal = ApiHiddenDangerCheckService.divide(((int) allDangers - (int) unRectifyDangerCount), ((int) allDangers), 4);
|
//下面将结果转化成百分比
|
NumberFormat percent5 = NumberFormat.getPercentInstance();
|
percent5.setMaximumFractionDigits(2);
|
dangerRectifyPercent = percent5.format(tempBigDecimal.doubleValue());
|
}
|
dataStatisticsList.get(i).setDangerRectifyPercent(dangerRectifyPercent);
|
dataStatisticsList.get(i).setAllDangers(allDangers);
|
dataStatisticsList.get(i).setDangers(null);
|
dataStatisticsList.get(i).setRisks(null);
|
}
|
}
|
return dataStatisticsList;
|
}
|
}
|