diff --git a/src/main/java/com/zcloud/config/ShiroConfiguration.java b/src/main/java/com/zcloud/config/ShiroConfiguration.java index 629d6292..3adc0306 100644 --- a/src/main/java/com/zcloud/config/ShiroConfiguration.java +++ b/src/main/java/com/zcloud/config/ShiroConfiguration.java @@ -81,6 +81,7 @@ public class ShiroConfiguration { filterChainMap.put("/openApi/**/**", "anon"); filterChainMap.put("/Api**/**", "anon"); filterChainMap.put("/api/**/**", "anon"); + filterChainMap.put("/getStatisticsData/**","anon"); filterChainMap.put("/**", "authc"); factoryBean.setFilterChainDefinitionMap(filterChainMap); } diff --git a/src/main/java/com/zcloud/controller/app/AppSystemController.java b/src/main/java/com/zcloud/controller/app/AppSystemController.java index 08e26ec9..3e0cdfb9 100644 --- a/src/main/java/com/zcloud/controller/app/AppSystemController.java +++ b/src/main/java/com/zcloud/controller/app/AppSystemController.java @@ -65,7 +65,7 @@ public class AppSystemController extends BaseController { depar.setSubDepartment(this.departmentService.listAllDepartment(depar.getDEPARTMENT_ID(),url)); depar.setTarget("treeFrame"); depar.setIcon("../../../assets/images/user.gif"); - zdepartmentPdList.add(depar); + zdepartmentPdList.addAll(depar.getSubDepartment()); // zdepartmentPdList.addAll(departmentService.listAllDepartment(ZDEPARTMENT_ID)); JSONArray arr = JSONArray.fromObject(zdepartmentPdList); String json = arr.toString(); diff --git a/src/main/java/com/zcloud/controller/statisticsdata/StatisticsDataController.java b/src/main/java/com/zcloud/controller/statisticsdata/StatisticsDataController.java new file mode 100644 index 00000000..5d046d49 --- /dev/null +++ b/src/main/java/com/zcloud/controller/statisticsdata/StatisticsDataController.java @@ -0,0 +1,955 @@ +package com.zcloud.controller.statisticsdata; + +import com.zcloud.controller.base.BaseController; +import com.zcloud.entity.Page; +import com.zcloud.entity.PageData; +import com.zcloud.entity.system.Dictionaries; +import com.zcloud.service.bus.*; +import com.zcloud.service.highriskwork.HighWorkService; +import com.zcloud.service.majordangersource.MajordangersourceDisposalService; +import com.zcloud.service.system.*; +import com.zcloud.util.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.*; + +@Controller +@RequestMapping("/getStatisticsData") +public class StatisticsDataController extends BaseController { + + private final static String CORPINFO_ID = "21590a00ea5e462e9ee44dd332dddc26"; + private final static String USER_ID = "48a8ca9815814c979814ddcf041c5cd5"; + private final static String USER_NAME = "秦港股份九公司"; + private final static String DEPT_ID = "21590a00ea5e462e9ee44dd332dddc26"; + + @Autowired + private RiskPointService riskpointService; + @Autowired + private UsersService usersService; + @Autowired + private DepartmentService departmentService; + @Autowired + private ListManagerService listmanagerService; + @Autowired + private HiddenService hiddenService; + @Autowired + private CardUserService cardUserService; + @Autowired + private MajordangersourceDisposalService majordangersourceDisposalService; + @Autowired + private HighWorkService highworkService; + @Autowired + private DictionariesService dictionariesService; + @Autowired + private VideoService videoService; + @Autowired + private MajordangersourceDisposalService majordangersourcedisposalService; + @Autowired + private PhotoService photoService; + @Autowired + private FhsmsService fhsmsService; + @Autowired + private RoleService roleService; + @Autowired + private PostService postService; + @Autowired + private CheckRecordService checkrecordService; + @Autowired + private ListStatisticsService listStatisticsService; + @Autowired + private IdentificationPartsService identificationPartsService; + @Autowired + private RiskUnitService riskUnitService; + @Autowired + private NoticeCorpService noticecorpService; + @Autowired + private ServiceNoticeService noticeService; + + /** + * 可视化首页统计数据 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findFormCount") + @ResponseBody + public Object findFormCount() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + + /*风险管控 数据统计*/ + PageData risk = riskpointService.statisticsRiskCount(pd); + map.put("risk", risk); + + /* 隐患排查数据统计 */ + Map corp = new HashMap<>(); + //部门 + List userCount = usersService.statisticsByCorp(pd); + corp.put("USERCOUNT", userCount.get(0).get("COUNT")); //人员总数 + corp.put("USERCHECKCOUNT", userCount.get(1).get("COUNT")); //人员总数 + //部门 + List deptCount = departmentService.statisticsByCorp(pd); + corp.put("DEPTCOUNT", deptCount.get(0).get("COUNT")); //人员总数 + corp.put("DEPTCHECKCOUNT", deptCount.get(1).get("COUNT")); //人员总数 + //清单 + List listCount = listmanagerService.statisticsByCorp(pd); //列出ListManager列表 + corp.put("LISTCOUNT", listCount.get(0).get("COUNT")); //人员总数 + corp.put("LISTCHECKCOUNT", listCount.get(1).get("COUNT")); //人员总数 + map.put("corp", corp); + + map.put("result", errInfo); + return map; + } + + /** + * 可视化首页 清单类型占比统计 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findListTypeChartData") + @ResponseBody + public Object findListTypeChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID",CORPINFO_ID); + + //清单类型占比统计 + List chartData = listmanagerService.statisticsGroupType(pd); + map.put("chartData", chartData); + map.put("result", errInfo); + return map; + } + + /** + * 可视化首页 隐患整改趋势 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findHdRecTrendChartData") + @ResponseBody + public Object findHdRecTrendChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + //隐患整改趋势(近半年) + Map chartData = new HashMap(); + List legendData = Arrays.asList(new String[]{"已发现", "待确认", "已确认", "待验收", "已验收", "延期处置"}); + chartData.put("legendData", legendData); + List halfYearMonth = DateUtil.getHalfYearMonth(true); + chartData.put("xAxisData", halfYearMonth); + + List seriesData = new ArrayList(); + for (int i = 0; i < legendData.size(); i++) { + PageData pd = new PageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + pd.put("STATENAME",legendData.get(i)); + List data = new ArrayList(); + List hdRecChart = hiddenService.statisticsGroupMonthByState(pd); //根据状态按时间分组统计隐患数据 + for (int j = 0; j < halfYearMonth.size(); j++) { + boolean flag = true; + for (int k = 0; k < hdRecChart.size(); k++) { + if (halfYearMonth.get(j).equals(hdRecChart.get(k).getString("CREATMONTH"))) { + flag = false; + data.add(hdRecChart.get(k).get("COUNT")); + break; + } + } + if (flag) { + data.add(0); + } + } + seriesData.add(data); + } + chartData.put("seriesData", seriesData); + map.put("chartData", chartData); + + map.put("result", errInfo); + return map; + } + + + /** + * 可视化首页 风险程度统计 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findRiskPointChartData") + @ResponseBody + public Object findRiskPointChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + Map chartData = new HashMap(); + List deptList = riskpointService.listDeptByPoint(pd); + List yAxisData = new ArrayList(); + for(PageData d :deptList){ + PageData pdf = new PageData(); + yAxisData.add(d.getString("DEPT_NAME")); + } + chartData.put("yAxisData", yAxisData); + + List varList = dictionariesService.listSubDictByParentId("5a81e63ec0e94d919b3138bc01dbef6b"); + List legendData = new ArrayList(); + List seriesData = new ArrayList(); + for(Dictionaries d :varList){ + PageData pdf = new PageData(); + legendData.add(d.getNAME()); + seriesData.add(new ArrayList()); + } + chartData.put("legendData", legendData); + //隐患整改趋势(近半年) + for (int i = 0; i < deptList.size(); i++) { + PageData dept = new PageData(); + dept.put("DEPARTMENT_ID",deptList.get(i).getString("DEPARTMENT_ID")); + List dataChart = riskpointService.statisticsGroupLevelByDept(dept); //按照级别分类统计各部门风险管控数据 + for (int j = 0; j < varList.size(); j++) { + List secondList = (List) seriesData.get(j); + secondList.add(i, dataChart.get(j).getString("COUNT")); + } + } + chartData.put("seriesData", seriesData); + map.put("chartData", chartData); + map.put("result", errInfo); + return map; + } + + /** + * 可视化首页 本月人员进出 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findCarUserChartData") + @ResponseBody + public Object findCarUserChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + //隐患整改趋势(近半年) + Map chartData = new HashMap(); +// List legendData = Arrays.asList(new String[]{"进入人员", "外出人员", "刷卡率"}); + List legendData = Arrays.asList(new String[]{"进入人员", "外出人员"}); + chartData.put("legendData", legendData); + List thisMonth = DateUtil.getThisMonth(false); // 本月日期 + chartData.put("xAxisData", thisMonth); + + List seriesData = new ArrayList(); + for (int i = 0; i < legendData.size(); i++) { + PageData pd = new PageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + pd.put("STATENAME", legendData.get(i)); + List data = new ArrayList(); + List hdRecChart = cardUserService.statisticsGroupDay(pd); //根据状态按时间分组统计人员进出刷卡 + for (int j = 0; j < thisMonth.size(); j++) { + boolean flag = true; + for (int k = 0; k < hdRecChart.size(); k++) { + if (thisMonth.get(j).equals(hdRecChart.get(k).getString("CREATDAY"))) { + flag = false; + data.add(hdRecChart.get(k).get("COUNT")); + break; + } + } + if (flag) { + data.add(0); + } + } + seriesData.add(data); + } + chartData.put("seriesData", seriesData); + map.put("chartData", chartData); + + map.put("result", errInfo); + return map; + } + + /** + * 可视化首页 报警处置情况 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findAlarmDisposalChartData") + @ResponseBody + public Object findAlarmDisposalChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + //隐患整改趋势(近半年) + Map chartData = new HashMap(); + List legendData = Arrays.asList(new String[]{"报警数", "已处置", "处置中"}); + chartData.put("legendData", legendData); + List xAxisData = new ArrayList(); + List seriesData1 = new ArrayList(); + List seriesData2 = new ArrayList(); + List seriesData3 = new ArrayList(); + + List disposalChart = majordangersourceDisposalService.statisticsGroupMajordangersource(pd); //根据重大危险源分组统计报警处置情况 + List seriesData = new ArrayList(); + for (PageData data : disposalChart) { + xAxisData.add(data.getString("MAJORDANGERSOURCE_NAME")); + seriesData1.add(data.get("COUNTALARM")); + seriesData2.add(data.get("COUNTDISPOSED")); + seriesData3.add(data.get("COUNTDISPOSAL")); + } + chartData.put("xAxisData", xAxisData); + seriesData.add(seriesData1); + seriesData.add(seriesData2); + seriesData.add(seriesData3); + chartData.put("seriesData", seriesData); + map.put("chartData", chartData); + + map.put("result", errInfo); + return map; + } + + /** + * 可视化首页 作业类型统计分析 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findHighRiskWorkChartData") + @ResponseBody + public Object findHighRiskWorkChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + //隐患整改趋势(近半年) + Map chartData = new HashMap(); + List legendData = Arrays.asList(new String[]{"动火作业", "临时用电作业", "盲板作业", "高处作业", "有限空间作业", "吊装作业"}); + + List workChart = highworkService.statisticsAllHighRiskWork(pd); //统计高危作业里各作业数 + List seriesData = new ArrayList(); + for (int i = 0; i < legendData.size(); i++) { + PageData pie = new PageData(); + pie.put("name", legendData.get(i)); + pie.put("value", workChart.get(i).get("COUNT")); + seriesData.add(pie); + } + chartData.put("seriesData", seriesData); + map.put("chartData", chartData); + + map.put("result", errInfo); + return map; + } + + /**数据可视化平台首页获取 + * 1.获取企业的置顶视频 + * 2.获取管理的置顶视频 + * 3.没有视频或者没有置顶视频 + * @param + * @throws Exception + */ + @RequestMapping(value="/getObjectForBiLogin") + @ResponseBody + public Object getObjectForBiLogin() throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = new PageData(); + pd.put("TYPE", "1"); + pd.put("CORPINFO_TYPE", "1"); + pd.put("CORPINFO_ID", CORPINFO_ID); + List cpvarList = videoService.listAll(pd); //企业视频 + pd = new PageData(); + pd.put("CORPINFO_TYPE", "2"); + pd.put("TYPE", "1"); + List ptVarList = videoService.listAll(pd); //平台视频 + + map.put("ptVarList", ptVarList); + map.put("cpvarList", cpvarList); + map.put("result", errInfo); + return map; + } + + /**获取重大危险源数据 + * @param + * @throws Exception + */ + @RequestMapping(value="/findValidateData") + @ResponseBody + public Object findValidateData() throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + List varList = majordangersourcedisposalService.listAll(pd); //根据ID读取 + map.put("varList", varList); + map.put("result", errInfo); + return map; + } + + + /** + * 清单检查完成率统计 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/goIndexCount") + @ResponseBody + public Object goIndexCount() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); // 企业 + String STARTTIME = pd.getString("STARTTIME"); // 关键词检索条件 + if (Tools.notEmpty(STARTTIME)) + pd.put("STARTTIME", STARTTIME.trim() + " 00:00:00"); + String ENDTIME = pd.getString("ENDTIME"); // 关键词检索条件 + if (Tools.notEmpty(ENDTIME)) + pd.put("ENDTIME", ENDTIME.trim() + " 23:59:59"); + + List varList = new ArrayList(); + PageData listType0001 = new PageData(); + PageData listType0002 = new PageData(); + PageData listType0003 = new PageData(); + PageData listType0004 = new PageData(); + PageData listType0005 = new PageData(); + PageData all = new PageData(); + + Map varMap = new HashMap(); + + listType0001.put("type", "listType0001"); + listType0001.put("name", "日常"); + listType0001.put("molecule", 0); + listType0001.put("denominator", 0); + listType0001.put("percentage", 0d); + listType0002.put("type", "listType0002"); + listType0002.put("name", "综合"); + listType0002.put("molecule", 0); + listType0002.put("denominator", 0); + listType0002.put("percentage", 0d); + + listType0003.put("type", "listType0003"); + listType0003.put("name", "专业"); + listType0003.put("molecule", 0); + listType0003.put("denominator", 0); + listType0003.put("percentage", 0d); + + listType0004.put("type", "listType0004"); + listType0004.put("name", "季节性"); + listType0004.put("molecule", 0); + listType0004.put("denominator", 0); + listType0004.put("percentage", 0d); + + listType0005.put("type", "listType0005"); + listType0005.put("name", "节假日"); + listType0005.put("molecule", 0); + listType0005.put("denominator", 0); + listType0005.put("percentage", 0d); + + all.put("type", "all"); + all.put("name", "合计"); + all.put("molecule", 0); + all.put("denominator", 0); + all.put("percentage", 0d); + + varMap.put("listType0001", listType0001); + varMap.put("listType0002", listType0002); + varMap.put("listType0003", listType0003); + varMap.put("listType0004", listType0004); + varMap.put("listType0005", listType0005); + varMap.put("all", all); + + List countList = listStatisticsService.getCountList(pd);// 统计分母 + + if (countList != null && countList.size() > 0) { + List dayList = checkrecordService.listCountDay(pd); // 统计--日 + if (dayList != null && dayList.size() > 0) { + for (PageData count : dayList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + List weekList = checkrecordService.listCountWeek(pd); // 统计--周 + if (weekList != null && weekList.size() > 0) { + for (PageData count : weekList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + List monthList = checkrecordService.listCountMonth(pd); // 统计--月 + + if (monthList != null && monthList.size() > 0) { + for (PageData count : monthList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + List quarterList = checkrecordService.listCountQuarter(pd); // 统计--季 + + if (quarterList != null && quarterList.size() > 0) { + for (PageData count : quarterList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + List halfYearList = checkrecordService.listCountHalfYear(pd); // 统计--半年 + + if (halfYearList != null && halfYearList.size() > 0) { + for (PageData count : halfYearList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + List yearList = checkrecordService.listCountYear(pd); // 统计--年 + if (yearList != null && yearList.size() > 0) { + for (PageData count : yearList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + // 处理旬时间 + StringBuffer stt = new StringBuffer(); + stt.append(pd.getString("STARTTIME")); + stt.setCharAt(9, '1'); + pd.put("STARTTIME", stt.toString()); + + String endDay = ENDTIME.substring(8, 10); + Integer endTime = Integer.parseInt(endDay); + StringBuffer et = new StringBuffer(); + et.append(pd.getString("ENDTIME")); + + if (endTime <= 10) { + stt.setCharAt(8, '1'); + stt.setCharAt(9, '0'); + pd.put("ENDTIME", et.toString()); + } else if (endTime <= 20) { + stt.setCharAt(8, '2'); + stt.setCharAt(9, '0'); + pd.put("ENDTIME", et.toString()); + } else { + Integer endMonth = Integer.parseInt(ENDTIME.substring(5, 7)); + Integer endYear = Integer.parseInt(ENDTIME.substring(0, 4)); + pd.put("ENDTIME", getLastDayOfMonth(endYear, endMonth) + " 23:59:59"); + } + List tenDaysList = checkrecordService.listCountTenDays(pd); // 统计--旬 + if (tenDaysList != null && tenDaysList.size() > 0) { + for (PageData count : tenDaysList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + // 分母 + for (PageData count : countList) { + Integer denominator = Integer.parseInt(count.get("NOTEXAMINEDNUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("denominator").toString()); + varMap.get(count.get("TYPE")).put("denominator", denominator); + + Integer allDenominator = Integer.parseInt(count.get("NOTEXAMINEDNUM").toString()) + + Integer.parseInt(varMap.get("all").get("denominator").toString()); + varMap.get("all").put("denominator", allDenominator); + } + } + for (int i = 1; i < 5; i++) { + String type = "listType000" + i; + if (!varMap.get(type).get("denominator").toString().equals("0")) { + if (varMap.get(type).get("molecule").toString().equals("0")) { + varMap.get(type).put("percentage", 0d); + } else { + Double denominator = Double.parseDouble(varMap.get(type).get("denominator").toString()); + Double molecule = Double.parseDouble(varMap.get(type).get("molecule").toString()); + Double percentage = molecule / denominator * 100; + DecimalFormat df = new DecimalFormat("#.00"); + varMap.get(type).put("percentage", df.format(percentage)); + } + + } + varList.add(varMap.get(type)); + } + if (!varMap.get("listType0005").get("denominator").toString().equals("0")) { + Integer jjr = checkrecordService.listCountJjr(pd) == null ? 0 : checkrecordService.listCountJjr(pd); + if (jjr == 0) { + varMap.get("listType0005").put("percentage", 0d); + } else { + Double denominator = Double.parseDouble(varMap.get("listType0005").get("denominator").toString()); + Double molecule = Double.valueOf(jjr); + Double percentage = molecule / denominator * 100; + DecimalFormat df = new DecimalFormat("#.00"); + varMap.get("listType0005").put("percentage", df.format(percentage)); + } + } + Integer allMolecule = Integer.parseInt(varMap.get("listType0005").get("molecule").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + varList.add(varMap.get("listType0005")); + if (!varMap.get("all").get("denominator").toString().equals("0")) { + if (varMap.get("all").get("molecule").toString().equals("0")) { + varMap.get("all").put("percentage", 0d); + } else { + Double denominator = Double.parseDouble(varMap.get("all").get("denominator").toString()); + Double molecule = Double.parseDouble(varMap.get("all").get("molecule").toString()); + Double percentage = molecule / denominator * 100; + DecimalFormat df = new DecimalFormat("#.00"); + varMap.get("all").put("percentage", df.format(percentage)); + } + } + varList.add(varMap.get("all")); + map.put("varList", varList); + map.put("varMap", varMap); + map.put("result", errInfo); + return map; + } + + public static String getLastDayOfMonth(int year, int month) { + Calendar cal = Calendar.getInstance(); + // 设置年份 + cal.set(Calendar.YEAR, year); + // 设置月份 + cal.set(Calendar.MONTH, month - 1); + // 获取某月最大天数 + int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); + // 设置日历中月份的最大天数 + cal.set(Calendar.DAY_OF_MONTH, lastDay); + // 格式化日期 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String lastDayOfMonth = sdf.format(cal.getTime()); + + return lastDayOfMonth; + } + + /**首页 获取折线图 + * @param + * @throws Exception + */ + @RequestMapping(value="/listmanagerIndexCount") + @ResponseBody + public Object listmanagerIndexCount() throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); //企业 + List valList = listmanagerService.goIndexCount(pd); + List valList1 = new ArrayList(); + + //杨明图标数据 +// {months: "2022-06", count: 0, screenType: "riskChecklistType0001"} +// 6 * 3 近6個月 ,3 三种类型 + + Map monSCrMap = new HashMap<>(); + for (PageData pageData : valList){ + String key = pageData.getString("months")+"*"+pageData.getString("screenType"); + monSCrMap.put(key,pageData.getString("count")); + } + + + List halfYearMonth = DateUtil.getHalfYearMonth(true); + String [] typeAll = new String[]{"riskChecklistType0001","riskChecklistType0002","zhqd03"}; + + + List> list = new ArrayList<>(); // 整理完成的数据 size 6 * 3 + for(String month : halfYearMonth){ + for (String type : typeAll){ + String count = "0"; + + String key = month +"*" + type; + if (monSCrMap.containsKey(key)){ + count = monSCrMap.get(key); + } + Map monAndType = new HashMap<>(); + monAndType.put("months",month); + monAndType.put("screenType",type); + monAndType.put("count",count); + list.add(monAndType); + } + } + + System.out.println(list); + map.put("xAxisData", halfYearMonth); + map.put("valList", list); + map.put("result", errInfo); + return map; + } + + /** + * 隐患数量统计 + * + * @param page + * @throws Exception + */ + @RequestMapping(value = "/getCountByUserId") + @ResponseBody + public Object getCountByUserId(Page page) throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + Map hidCount = new HashMap<>(); + + pd.put("userId", USER_ID); // 发现人 + Integer dzg = 0;// 待整改 1 + Integer ycq = 0;// 已超期 5 + Integer dfc = 0;// 待复查 2 + Integer yys = 0;// 已验收 4 + // STATE -- 隐患状态 0-未提交 1- 未整改 2-已整改 3-已复查 4-已验收 5-已过期 + if (Tools.notEmpty(pd.get("userId").toString())) { + pd.put("SELFUSERID", USER_ID); + pd.put("CORPINFO_ID", CORPINFO_ID); + + List rectifiHid = hiddenService.getCountByRectifiCationorId(pd); // 根据人员id获取整改隐患信息 state 1 5 + for (int i = 0; i < rectifiHid.size(); i++) { + PageData rec = rectifiHid.get(i); + if (null == rec.get("STATE")) { + continue; + } + if (rec.get("STATE").equals("1") || rec.get("STATE").equals("-1")) { + dzg++; + } + } + List creatorHid = hiddenService.getCountByCreatorId(pd); // 根据人员id获取发现隐患信息 + for (int i = 0; i < creatorHid.size(); i++) { + PageData cre = creatorHid.get(i); + if (null == cre.get("STATE")) { + continue; + } + if (cre.get("STATE").equals("2")) { + dfc++; + } + if (cre.get("STATE").equals("4")) { + yys++; + } + if (cre.get("STATE").equals("-1")) { + ycq++; + } + } + } + hidCount.put("dzg", dzg); + hidCount.put("ycq", ycq); + hidCount.put("dfc", dfc); + hidCount.put("yys", yys); + + map.put("hidCount", hidCount); + map.put("page", page); + map.put("result", errInfo); + return map; + } + + /** + * 风险点统计 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/statistic") + @ResponseBody + public Object statistic() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + + List riskAll = riskpointService.statisticsAll(pd); + List idAll = identificationPartsService.listIndexAll(pd); + List unitAll = riskUnitService.listIndexAll(pd); + Integer idcount = 0; + Integer unitcount = 0; + Integer cnzfx = 0; + if (idAll != null && idAll.size() > 0) { + idcount = idAll.size(); + } + if (unitAll != null && unitAll.size() > 0) { + unitcount = unitAll.size(); + } + for (int i = 0; riskAll.size() > i; i++) { + if (riskAll.get(i).get("LEVELID") != null && Tools.notEmpty(riskAll.get(i).get("LEVELID").toString())) { + if ("levelA".equals(riskAll.get(i).get("LEVELID").toString()) + || "levelB".equals(riskAll.get(i).get("LEVELID").toString()) + || "levelC".equals(riskAll.get(i).get("LEVELID").toString()) + || "levelD".equals(riskAll.get(i).get("LEVELID").toString())) { + cnzfx += Integer.valueOf(riskAll.get(i).get("COUNT").toString()); + } + } + } + + Map riskCount = new HashMap<>(); + + riskCount.put("idcount", idcount); + riskCount.put("unitcount", unitcount); + riskCount.put("cnzfx", cnzfx); + // 风险点-只按名称统计 辨识部位-统计不同单元内的辨识部位名称的总数 + + map.put("riskCount", riskCount); + map.put("riskAll", riskAll); + map.put("idAll", idAll); + map.put("unitAll", unitAll); + map.put("result", errInfo); + return map; + } + + + /** + * 隐患类型数量统计 + * + * @param page + * @throws Exception + */ + @RequestMapping(value = "/getCountByHiddenType") + @ResponseBody + public Object getCountByHiddenType(Page page) throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + + List dicIdsList = dictionariesService.getIdsByRecuByParentId("3babc15144444bdc8d763d0af2bdfff6"); + int anl = 0; + int hbl = 0; + String anlIDs = dicIdsList.get(0).getString("ids"); + String hblIDs = dicIdsList.get(1).getString("ids"); + List hiddList = hiddenService.getCountByHiddenType(pd); + for (PageData pageData : hiddList) { + String hiddenType = pageData.getString("DICTIONARIES_ID"); + if (anlIDs.indexOf(hiddenType) != -1) { + anl += Integer.parseInt(pageData.getString("count")); + } + if (hblIDs.indexOf(hiddenType) != -1) { + hbl += Integer.parseInt(pageData.getString("count")); + } + } + + List valList = new ArrayList(); + Map valMap = new HashMap<>(); + valMap.put("name", "安全隐患"); + valMap.put("value", anl); + valList.add(valMap); + valMap = new HashMap<>(); + valMap.put("name", "卫生环保"); + valMap.put("value", hbl); + + valList.add(valMap); + map.put("hiddenTypeCount", valList); + map.put("result", errInfo); + return map; + } + + /**平台公告 + * @param page + * @throws Exception + */ + @RequestMapping(value="/listByIndex") + @ResponseBody + public Object listByIndex(Page page) throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + //获取发布给这个企业的信息 + pd.put("CORP_INFO_ID", CORPINFO_ID); + page.setPd(pd); + List varList = noticeService.getNotAndCorpByCorpId(page); + + map.put("varList", varList); + map.put("page", page); + map.put("result", errInfo); + return map; + } + + /**企业公告 + * @param page + * @throws Exception + */ + @RequestMapping(value="/enterpriseListByIndex") + @ResponseBody + public Object enterpriseListByIndex(Page page) throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 + if(Tools.notEmpty(KEYWORDS))pd.put("KEYWORDS", KEYWORDS.trim()); + pd.put("USER_ID", USER_ID); + page.setPd(pd); + List varList = noticecorpService.listByIndex(page); //列出NOTICECORP列表 + map.put("varList", varList); + map.put("page", page); + map.put("result", errInfo); + return map; + } + + + /**清單列表 + * @param + * @throws Exception + */ + @RequestMapping(value="/checkListIndex") + @ResponseBody + public Object checkListIndex() throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = new PageData(); + pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); //企业 + pd.put("USER_ID",USER_ID); + pd.put("DEPARTMENT_ID", DEPT_ID); + + pd.put("USER_ID",""); + List varList = listmanagerService.listAll(pd); //列出ListManager列表 + int wjcNum = 0; + int yjcNum = 0; + for (PageData list : varList) { + if(list.getString("TYPE").equals("listType0005")) { + if(Integer.parseInt(list.get("checkCount").toString()) > 0) { + yjcNum++; + } else { + wjcNum++; + } + continue; + } + if(Integer.parseInt(list.get("checkCount").toString()) > 0) { + yjcNum++; + } else { + wjcNum++; + } + } + map.put("yjcNum", yjcNum); + map.put("wjcNum", wjcNum); + map.put("varList", varList); + map.put("result", errInfo); + return map; + } + + +} diff --git a/src/main/resources/mybatis/datasource/bus/CheckRecordMapper.xml b/src/main/resources/mybatis/datasource/bus/CheckRecordMapper.xml index 98b1f378..35b58d38 100644 --- a/src/main/resources/mybatis/datasource/bus/CheckRecordMapper.xml +++ b/src/main/resources/mybatis/datasource/bus/CheckRecordMapper.xml @@ -192,7 +192,7 @@ f.TYPE, f.PERIODSTART DATESTART, f.PERIODEND DATEEND, - u.NAME AS USER_NAME, + getUnameByUid(u.USER_ID) AS USER_NAME, su.NAME AS PRINCIPALNAME, (select group_concat(chr.NAME) from BUS_CHECKUSER bh left join sys_user chr on chr.USER_ID=bh.USER_ID where bh.CHECKRECORD_ID=f.CHECKRECORD_ID) CHECK_USERS from diff --git a/src/main/resources/mybatis/datasource/bus/ListManagerMapper.xml b/src/main/resources/mybatis/datasource/bus/ListManagerMapper.xml index ab860678..274a6ac4 100644 --- a/src/main/resources/mybatis/datasource/bus/ListManagerMapper.xml +++ b/src/main/resources/mybatis/datasource/bus/ListManagerMapper.xml @@ -192,7 +192,7 @@ sp.NAME AS POST_NAME, s.NAME AS SCREENTYPENAME, - u.NAME AS USER_NAME + getUnameByUid(f.USER_ID) AS USER_NAME from f @@ -220,7 +220,7 @@ d.NAME as DEPARTMENT_NAME, sp.NAME AS POST_NAME, - u.NAME USER_NAME, + getUnameByUid(f.USER_ID) USER_NAME, s.NAME AS SCREENTYPENAME, (select count(1) from BUS_LIST_CHECKITEM ch where ch.LISTMANAGER_ID=f.LISTMANAGER_ID and ch.ISDELETE = '0') as count , @@ -271,7 +271,7 @@ and f.DEPARTMENT_ID = #{pd.DEPARTMENT_ID} - and u.NAME LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%') + and getUnameByUid(f.USER_ID) LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%') and f.TYPE = #{pd.TYPE} @@ -500,7 +500,7 @@ d.NAME as DEPARTMENT_NAME, sp.NAME AS POST_NAME, - u.NAME USER_NAME, + getUnameByUid(f.USER_ID) USER_NAME, (select count(1) from BUS_LIST_CHECKITEM ch where ch.LISTMANAGER_ID=f.LISTMANAGER_ID and ch.ISDELETE =0) as count, @@ -593,7 +593,7 @@ d.NAME as DEPARTMENT_NAME, sp.NAME AS POST_NAME, - u.NAME USER_NAME, + getUnameByUid(f.USER_ID) USER_NAME, (select count(1) from BUS_LIST_CHECKITEM ch where ch.LISTMANAGER_ID=f.LISTMANAGER_ID and ch.ISDELETE =0) as count, ve.numCount checkCount from @@ -649,7 +649,7 @@ and f.DEPARTMENT_ID = #{pd.DTID} - and u.NAME LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%') + and getUnameByUid(f.USER_ID) LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%') and f.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')