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 selectCompanyDataStatistics(DataStatistics dataStatistics) { List riskDataStatistics = selectRiskDataStatistics(dataStatistics); List 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 selectRiskDataStatistics(DataStatistics dataStatistics) { List 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 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 selectDangerDataStatistics(DataStatistics dataStatistics) { List 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 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; } }