From 685a27db221bd4033ff040d933e1fb03f15689b2 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期五, 11 十一月 2022 14:23:46 +0800 Subject: [PATCH] controller中首页调用方法 --- src/main/java/com/ruoyi/project/system/user/controller/IndexController.java | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 207 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ruoyi/project/system/user/controller/IndexController.java b/src/main/java/com/ruoyi/project/system/user/controller/IndexController.java index cb952ea..d3670b9 100644 --- a/src/main/java/com/ruoyi/project/system/user/controller/IndexController.java +++ b/src/main/java/com/ruoyi/project/system/user/controller/IndexController.java @@ -1,12 +1,21 @@ package com.ruoyi.project.system.user.controller; -import java.util.List; -import java.util.Set; +import java.text.DecimalFormat; +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; +import com.alibaba.fastjson.JSON; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.security.ShiroUtils; +import com.ruoyi.project.system.company.domain.Company; import com.ruoyi.project.system.company.service.ICompanyService; import com.ruoyi.project.system.role.domain.Role; import com.ruoyi.project.system.role.service.IRoleService; +import com.ruoyi.project.tr.report.domain.Danger; +import com.ruoyi.project.tr.report.domain.DangerByTime; +import com.ruoyi.project.tr.report.domain.RiskDomain; +import com.ruoyi.project.tr.report.mapper.ReportMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -17,7 +26,6 @@ import com.ruoyi.project.system.menu.domain.Menu; import com.ruoyi.project.system.menu.service.IMenuService; import com.ruoyi.project.system.user.domain.User; - /** * 首页 业务处理 * @@ -40,11 +48,14 @@ @Autowired private IRoleService roleService; - + @Autowired + private ReportMapper reportMapper; // 系统首页 @GetMapping("/index") public String index(ModelMap mmap) { + + // 取身份信息 User user = getSysUser(); // 根据用户id取出菜单 @@ -56,14 +67,18 @@ mmap.put("copyrightYear", ruoYiConfig.getCopyrightYear()); mmap.put("demoEnabled", ruoYiConfig.isDemoEnabled()); + +// List fourColorPic = getFourColorPic(companyId); +// //四色图 +// mmap.put("fourColorMapUrl", fourColorPic); Set<String> stringSet = roleService.selectRoleKeys(user.getUserId()); if (stringSet.contains("regionUser")||stringSet.contains("straightRegionUser")){ return "indexByRegionUser"; }else{ return "index"; } - } + } // 切换主题 @GetMapping("/system/switchSkin") public String switchSkin(ModelMap mmap) @@ -74,10 +89,194 @@ // 系统介绍 @GetMapping("/system/main") public String main(ModelMap mmap){ - //返回该公司的四色图 + User user = getSysUser(); + long companyId = user.getCompanyId(); + List fourColorPic = getFourColorPic(companyId); + //四色图 + mmap.put("fourColorMapUrl", fourColorPic); + List<RiskDomain> riskDomains = reportMapper.selectPublicityRisk(companyId); + //风险总量 + mmap.put("allRiskCount", riskDomains.size()); + AtomicReference<Integer> lowRiskCount = new AtomicReference<>(0); + AtomicReference<Integer> normalRiskCount = new AtomicReference<>(0); + AtomicReference<Integer> middleRiskCount = new AtomicReference<>(0); + AtomicReference<Integer> seriesRiskCount = new AtomicReference<>(0); + ArrayList<RiskDomain> seriesRisks = new ArrayList<>(); + riskDomains.forEach(riskDomain -> { + if (StringUtils.isNotEmpty(riskDomain.getRiskColor())) { + switch (riskDomain.getRiskColor()) { + case "蓝色": + lowRiskCount.getAndSet(lowRiskCount.get() + 1); + break; + case "黄色": + normalRiskCount.getAndSet(normalRiskCount.get() + 1); + break; + case "橙色": + middleRiskCount.getAndSet(middleRiskCount.get() + 1); + break; + case "红色": + seriesRiskCount.getAndSet(seriesRiskCount.get() + 1); + seriesRisks.add(riskDomain); + break; + } + } + }); + //低风险数量 + mmap.put("lowRiskCount", lowRiskCount); + //一般风险数量 + mmap.put("normalRiskCount", normalRiskCount); + //较大风险数量 + mmap.put("middleRiskCount", middleRiskCount); + //重大风险数量 + mmap.put("seriesRiskCount", seriesRiskCount); + //重大风险公示信息 + mmap.put("seriesRisks", seriesRisks); + List<Danger> dangers = reportMapper.selectPublicityDanger(companyId); + ArrayList<Danger> seriesDangers = new ArrayList<>(); + AtomicReference<Integer> unRectifyDangerCount = new AtomicReference<>(0); + dangers.forEach(danger -> { + if (danger != null) { + if (StringUtils.isNotEmpty(danger.getDangerLevel()) && "1".equals(danger.getDangerLevel())) { + seriesDangers.add(danger); + } + if (StringUtils.isNotEmpty(danger.getRectifyStatus()) && "0".equals(danger.getRectifyStatus())) { + unRectifyDangerCount.getAndSet(unRectifyDangerCount.get() + 1); + } + } + }); + //重大隐患公示信息 + mmap.put("seriesDangers", seriesDangers); + //未整改隐患数量 + mmap.put("unRectifyDangerCount", unRectifyDangerCount); + Map monthlyDangerMap = selectMonthlyDangers(companyId); + ArrayList normalDanger = (ArrayList) monthlyDangerMap.get("normalDanger"); + long thisMonthNormalDangerCount = (long) normalDanger.get(normalDanger.size() - 1); + ArrayList highDanger = (ArrayList) monthlyDangerMap.get("highDanger"); + long thisMonthHighDangerCount = (long) highDanger.get(highDanger.size() - 1); + //当月一般隐患数量 + mmap.put("thisMonthNormalDangerCount", thisMonthNormalDangerCount); + //当月重大隐患数量 + mmap.put("thisMonthHighDangerCount", thisMonthHighDangerCount); + //月度隐患总量 + mmap.put("thisMonthDangerCount", thisMonthHighDangerCount + thisMonthNormalDangerCount); + Map yearlyDangersMap = selectYearlyDangers(companyId); + ArrayList normalDanger1 = (ArrayList) yearlyDangersMap.get("normalDanger"); + ArrayList highDanger1 = (ArrayList) yearlyDangersMap.get("highDanger"); + long yearlyDangerCount = (long) normalDanger1.get(normalDanger1.size() - 1) + (long) highDanger1.get(highDanger1.size() - 1); + //年度隐患总量 + mmap.put("yearlyDangerCount", yearlyDangerCount); + Long allDangers = (Long) yearlyDangersMap.get("allDangers"); + double tempPercent = 1.00; + if (allDangers != 0) { + tempPercent = (double) (allDangers - unRectifyDangerCount.get()) / allDangers; + } + String dangerRectifyPercent = new DecimalFormat("0.00%").format(tempPercent); + //隐患整改率 + mmap.put("dangerRectifyPercent", dangerRectifyPercent); + + + mmap.put("companyImages",companyService.getCompanyImagesById(ShiroUtils.getSysUser().getCompanyId())); mmap.put("version", ruoYiConfig.getVersion()); return "main"; + } + + public Map selectYearlyDangers(long companyId) { + List<DangerByTime> dangerByTimes = reportMapper.selectDangersByYear(companyId); + return handleYearlyDangers(dangerByTimes); + } + + private Map handleYearlyDangers(List<DangerByTime> list) { + String nowYear = DateUtils.parseDateToStr("YYYY", DateUtils.getNowDate()); + Long allDangers = 0l; + String startYear = nowYear; + if (list.size() != 0) { + startYear = list.get(0).getDateTime(); + for (int i = 0; i < list.size(); i++) { + allDangers += list.get(i).getCount(); + } + } + ArrayList<Integer> reportNames = new ArrayList<>(); + ArrayList<Long> normalDanger = new ArrayList<>(); + ArrayList<Long> highDanger = new ArrayList<>(); + for (int i = 0; i <= Integer.parseInt(nowYear) - Integer.parseInt(startYear); i++) { + Integer temp = Integer.parseInt(startYear) + i; + reportNames.add(temp); + normalDanger.add(0l); + highDanger.add(0l); + int finalI = i; + list.forEach(dt -> { + if (dt != null) { + if (temp.toString().equals(dt.getDateTime()) && dt.getDangerLevel() != null) { + switch (dt.getDangerLevel()) { + case "0": + normalDanger.set(finalI, dt.getCount()); + break; + case "1": + highDanger.set(finalI, dt.getCount()); + break; + } + } + } + }); + } + HashMap<String, Object> reportMap = new HashMap<>(); + reportMap.put("reportNames", reportNames); + reportMap.put("normalDanger", normalDanger); + reportMap.put("highDanger", highDanger); + reportMap.put("allDangers", allDangers); + return reportMap; + } + + public Map selectMonthlyDangers(long companyId) { + Date date = DateUtils.addMonths(DateUtils.getNowDate(), -12); + List<DangerByTime> dangerByTimes = reportMapper.selectDangersByMonths(date, companyId); + return handleMonthlyDangers(date, dangerByTimes); + } + private Map handleMonthlyDangers(Date date, List<DangerByTime> list) { + ArrayList<String> reportNames = new ArrayList<>(); + ArrayList<Long> normalDanger = new ArrayList<>(); + ArrayList<Long> highDanger = new ArrayList<>(); + for (int i = 0; i < 12; i++) { + date = DateUtils.addMonths(date, 1); + String str = DateUtils.parseDateToStr("YYYY-MM", date); + reportNames.add(str); + normalDanger.add(0l); + highDanger.add(0l); + int finalI = i; + list.forEach(dt -> { + if (dt != null) { + if (str.equals(dt.getDateTime()) && dt.getDangerLevel() != null) { + switch (dt.getDangerLevel()) { + case "0": + normalDanger.set(finalI, dt.getCount()); + break; + case "1": + highDanger.set(finalI, dt.getCount()); + break; + } + } + } + }); + } + HashMap<String, List> reportMap = new HashMap<>(); + reportMap.put("reportNames", reportNames); + reportMap.put("normalDanger", normalDanger); + reportMap.put("highDanger", highDanger); + return reportMap; + } + + public List getFourColorPic(long companyId) { + Company company = companyService.selectCompanyById(companyId); + String companyFourColorMapUrl = company.getCompanyFourColorMapUrl(); + Map colorPicMap = JSON.parseObject(companyFourColorMapUrl); + Collection<String> values = colorPicMap.values(); + ArrayList<String> colorPic = new ArrayList<>(); + values.forEach(v -> { + v = v.replaceAll("^http:\\/\\/[^/]+", ""); + colorPic.add(v); + }); + return colorPic; } // 数据统计 @@ -87,3 +286,5 @@ return "main_two"; } } + + -- Gitblit v1.9.2