package com.zcloud.controller.bus; import java.io.File; import java.text.SimpleDateFormat; import java.util.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import com.zcloud.entity.Page; import com.zcloud.entity.system.Department; import com.zcloud.service.hiddenApi.HiddenApiService; import org.apache.commons.lang.StringUtils; import org.apache.logging.log4j.util.Strings; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.session.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse; import com.zcloud.controller.base.BaseController; import com.zcloud.entity.PageData; import com.zcloud.entity.system.Dictionaries; import com.zcloud.entity.system.User; import com.zcloud.service.announcement.TemplateAnnounService; import com.zcloud.service.bus.*; import com.zcloud.service.inspection.SafetyEnvironmentalService; import com.zcloud.service.system.DepartmentService; import com.zcloud.service.system.DictionariesService; import com.zcloud.service.system.FHlogService; import com.zcloud.service.system.UsersService; import com.zcloud.util.*; import com.zcloud.util.event.DeviceHiddenEvent; import com.zcloud.util.message.MessageService; /** * 说明:隐患 作者:luoxiaobao 时间:2021-01-04 官网:www.zcloudchina.com */ @Controller @RequestMapping("/hiddenExcel") public class HiddenExcelController extends BaseController { @Autowired private HiddenApiService hiddenApiService; @Autowired private DictionariesService dictionariesService; @Autowired private ImgFilesService imgFilesService; @Autowired private HiddenCheckService hiddenCheckService; @Autowired private DepartmentService departmentService; // 部门信息 @RequestMapping(value = "/exportExcelToSession") // // @RequiresPermissions("toExcel") @ResponseBody public Map exportExcelToSession() throws Exception { PageData pd = new PageData(); pd = this.getPageData(); Session session = Jurisdiction.getSession(); // session.setAttribute("HIDDENTOSESSION_5ff9daf78e9a4fb1b40d77980656799d", "0"); Object a = session.getAttribute(pd.getString("sessionID")); float progressA = 0f; if (!Tools.isEmpty(a)) { progressA = Float.parseFloat(a.toString()); } else { progressA = 100f; } float progressB = 100f; float diff = 1e-6F; if (Math.abs(progressA - progressB) < diff) { session.removeAttribute(pd.getString("sessionID")); } Map map = new HashMap<>(); // 16886367956574190090011741 map.put("progress", progressA); map.put("result", "success"); return map; } /** * 导出到excel * 1.查询什么 导出什么 * 2.增加 整改资金 字段 * 3.导出慢 * 4.没有图标 * 5.增加进度条 * * @param * @throws Exception */ @RequestMapping(value = "/excel2") // // @RequiresPermissions("toExcel") public ModelAndView exportExcel2() throws Exception { ModelAndView mv = new ModelAndView(); PageData pdx = this.getPageData(); PageData pd = new PageData(); Set> set = pdx.entrySet(); for (Map.Entry stringObjectEntry : set) { if (!Tools.isEmpty(pdx.getString(stringObjectEntry.getKey()))) { pd.put(stringObjectEntry.getKey(), pdx.getString(stringObjectEntry.getKey())); } } Session session = Jurisdiction.getSession(); session.setAttribute(pd.getString("sessionID"), "0"); Map dataMap = new HashMap<>(); List varList = new ArrayList(); List wertitles = this.setTitles(); // 增加隐患整改部门查询 开始 if(StringUtils.isNotBlank(pd.getString("RECTIFICATIONDEPT"))){ String url ="department_list.html?DEPARTMENT_ID="; List departments = departmentService.listAllDepartment(pd.getString("RECTIFICATIONDEPT"), url); List departmentIds = new ArrayList<>(); departmentIds.add(pd.getString("RECTIFICATIONDEPT")); for(Department department:departments){ departmentIds.add(department.getDEPARTMENT_ID()); } pd.put("departmentIds",departmentIds); } // 增加发现整改部门查询 开始 if(StringUtils.isNotBlank(pd.getString("creatorUserDept"))){ String url ="department_list.html?DEPARTMENT_ID="; List departments = departmentService.listAllDepartment(pd.getString("creatorUserDept"), url); List departmentIds = new ArrayList<>(); departmentIds.add(pd.getString("creatorUserDept")); for(Department department:departments){ departmentIds.add(department.getDEPARTMENT_ID()); } pd.put("creatorUserDepts",departmentIds); } // 增加隐患发现部门查询 结束 List hiddenListAll = getHiddenList(pd);// 获取 隐患数据 /** * 转义的数据. */ // 隐患等级 Map levelMap = this.zyDicByIds("5ff9daf78e9a4fb1b40d77980656799d,efca93dcaf7a427785f0815ab2781a59"); Integer imgCountToSession = 0; List imgkey = new ArrayList<>(); for (int i = 0; i < hiddenListAll.size(); i++) { imgkey.add(hiddenListAll.get(i).getString("HIDDEN_ID")); } Map accMap = this.getaccepMap(imgkey); List acceptIds = new ArrayList<>(); Map acceptMap = new HashMap<>(); if (null != accMap) { acceptIds = (List) accMap.get("accIds");//隐患验收人信息图片 acceptMap = (Map) accMap.get("accMap");//隐患验收人信息 } if (acceptIds != null) { for (int i = 0; i < acceptIds.size(); i++) { imgkey.add(acceptIds.get(i)); } } Map> imgMap = this.getHiddenImgs(imgkey);//隐患图片信息 for (int i = 0; i < hiddenListAll.size(); i++) { PageData hidden = hiddenListAll.get(i); PageData vpd = new PageData(); vpd.put("var1", this.zySourec(hidden.getString("SOURCE"))); // 隐患来源 if (levelMap.containsKey(hidden.getString("HIDDENLEVEL"))) { vpd.put("var2", levelMap.get(hidden.getString("HIDDENLEVEL")).getString("NAME")); // 隐患级别 } vpd.put("var3", hidden.getString("type1Name")); // 隐患类型 vpd.put("var4", this.zyState(hidden.getString("STATE"))); // 隐患状态 vpd.put("var5", hidden.getString("HIDDENDESCR")); // 隐患描述 vpd.put("var6", hidden.getString("HIDDENPARTNAME")); //隐患部位 vpd.put("var7", hidden.getString("POSITIONDESC")); // 隐患位置描述 if(StringUtils.equals("6aa255d41602497fa0f934a822820df4",hidden.getString("fxUserDeptNameId"))){ vpd.put("var8", hidden.getString("fxUserDeptName"));//隐患发现部门 }else { vpd.put("var8", hidden.getString("fxUserDeptDName"));//隐患发现部门 } vpd.put("var9", hidden.getString("fxUserName")); // 发现人 vpd.put("var10", hidden.getString("DISCOVERYTIME")); //发现时间 vpd.put("var11", this.zyRectificationtype(hidden.getString("RECTIFICATIONTYPE"))); //隐患处置 vpd.put("var12", hidden.getString("conUsername")); vpd.put("var13", hidden.getString("CONFIRM_TIME")); vpd.put("var14", hidden.getString("RECTIFICATIONDEADLINE")); if (imgMap.containsKey(hidden.getString("HIDDEN_ID") + "--" + "3")) { // 隐患图片 List hiddenimg = imgMap.get(hidden.getString("HIDDEN_ID") + "--" + "3"); for (int himg = 0; himg < 4; himg++) { if (himg < hiddenimg.size()) { vpd.put("img" + (15 + himg), hiddenimg.get(himg).getString("FILEPATH")); imgCountToSession++; } else { vpd.put("var" + (15 + himg), ""); } } } vpd.put("var19", hidden.getString("RECTIFYDESCR"));//整改描述 if(StringUtils.equals("6aa255d41602497fa0f934a822820df4",hidden.getString("zgUserDeptId"))){ vpd.put("var20", hidden.getString("zgUserDeptName")); }else { vpd.put("var20", hidden.getString("zgUserDeptDName")); } vpd.put("var21", hidden.getString("zgUserName")); // 整改人 vpd.put("var22", hidden.getString("RECTIFICATIONTIME"));//整改时间 vpd.put("var23", hidden.getString("INVESTMENT_FUNDS"));//投入资金 if (imgMap.containsKey(hidden.getString("HIDDEN_ID") + "--" + "4")) { //整改后图片 List hiddenimg = imgMap.get(hidden.getString("HIDDEN_ID") + "--" + "4"); for (int himg = 0; himg < 4; himg++) { if (himg < hiddenimg.size()) { vpd.put("img" + (24 + himg), hiddenimg.get(himg).getString("FILEPATH")); imgCountToSession++; } else { vpd.put("var" + (24 + himg), ""); } } } if ("1".equals(hidden.getString("HAVESCHEME"))) { //整改方案 vpd.put("var28", "有"); } else { vpd.put("var28", "无"); } if (acceptMap.containsKey(hidden.getString("HIDDEN_ID"))) { PageData acc = (PageData) acceptMap.get(hidden.getString("HIDDEN_ID")); vpd.put("var29", acc.getString("CHECKDESCR")); //验收描述 if ("1".equals(acc.getString("STATUS"))) {//是否合格 vpd.put("var30", "合格"); } else if ("2".equals(acc.getString("STATUS"))) {//是否合格 vpd.put("var30", "不合格"); } vpd.put("var31", acc.getString("DEPARTMENT_NAME"));//验收部门 vpd.put("var32", acc.getString("NAME")); //验收人 vpd.put("var33", acc.getString("CHECK_TIME")); // 验收时间 if (imgMap.containsKey(acc.getString("HIDDENCHECK_ID") + "--" + "5")) { //验收照片 List hiddenimg = imgMap.get(acc.getString("HIDDENCHECK_ID") + "--" + "5"); for (int himg = 0; himg < 4; himg++) { if (himg < hiddenimg.size()) { vpd.put("img" + (34 + himg), hiddenimg.get(himg).getString("FILEPATH")); imgCountToSession++; } else { vpd.put("var" + (34 + himg), ""); } } } } varList.add(vpd); } dataMap.put("titles", wertitles); dataMap.put("varList", varList); dataMap.put("sessionID", pd.getString("sessionID")); dataMap.put("imgCountToSession", imgCountToSession); session.setAttribute(pd.getString("sessionID"), "10"); HiddenExcelImgToSessionView erv2 = new HiddenExcelImgToSessionView(); mv = new ModelAndView(erv2, dataMap); System.out.println(""); System.out.println(""); System.out.println(""); System.out.println(""); System.out.println(""); System.out.println("|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"); System.out.println(""); System.out.println(""); System.out.println(""); System.out.println(""); System.out.println(""); return mv; } public List getHiddenList(PageData pd) throws Exception { pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); if (!Jurisdiction.getIS_MAIN().equals("1")) { //主账号 pd.put("queryUserId", Jurisdiction.getUSER_ID()); } if ("confirm".equals(pd.getString("hiddenVueType"))) { // 确认隐患 if (!"1".equals(Jurisdiction.getIS_MAIN())) { pd.put("CONFIRM_USER", Jurisdiction.getUSER_ID()); } } if ("rectify".equals(pd.getString("hiddenVueType"))) { // 整改隐患 if (!"1".equals(Jurisdiction.getIS_MAIN())) { pd.put("SELFUSERID", Jurisdiction.getUSER_ID()); } } if ("check".equals(pd.getString("hiddenVueType"))) { // 验收隐患 只显示我验收的隐患 pd.put("checkUser", Jurisdiction.getUSER_ID()); } if ("list".equals(pd.getString("hiddenVueType"))) { // 整改隐患 pd = Jurisdiction.getUserDataJurisdiction(pd); } List getListAll = hiddenApiService.getListAll(pd); // 列出Hidden列表 return getListAll; } /** * 写入上方的列信息 * * @return */ public List setTitles() { List titles = new ArrayList(); titles.add("隐患来源"); //1 titles.add("隐患级别"); //1 titles.add("隐患类型"); //2 titles.add("隐患状态"); //3 titles.add("隐患描述"); //4 titles.add("隐患部位"); //5 titles.add("隐患位置描述"); //6 titles.add("隐患发现部门"); //7 titles.add("发现人"); //8 titles.add("发现时间"); //9 titles.add("隐患处置"); //10 titles.add("确认人"); //11 titles.add("确认时间"); //12 titles.add("整改期限"); //13 titles.add("隐患图片"); //14 titles.add("隐患图片"); //15 titles.add("隐患图片"); //16 titles.add("隐患图片"); //17 titles.add("整改描述"); //18 titles.add("整改部门"); //19 titles.add("整改人"); //20 titles.add("整改时间"); //21 titles.add("投入资金"); //22 titles.add("整改后图片"); //23 titles.add("整改后图片"); //24 titles.add("整改后图片"); //25 titles.add("整改后图片"); //26 titles.add("整改方案"); //27 titles.add("验收描述"); //28 titles.add("是否合格"); //29 titles.add("验收部门"); //30 titles.add("验收人"); //31 titles.add("验收时间"); //32 titles.add("验收图片"); //33 titles.add("验收图片"); //34 titles.add("验收图片"); //35 titles.add("验收图片"); //36 return titles; } /** * 转义 隐患来源 * * @param hiddenSourec * @return */ public String zySourec(String hiddenSourec) { if ("1".equals(hiddenSourec)) { return "隐患快报"; } else if ("2".equals(hiddenSourec)) { return "清单排查"; } else if ("3".equals(hiddenSourec)) { return "清单排查"; } else if ("4".equals(hiddenSourec)) { return "安全环保检查(监管端)"; } else if ("5".equals(hiddenSourec)) { return "安全环保检查(企业端)"; } else if ("6".equals(hiddenSourec)) { return "消防检查"; } return ""; } public String zyRectificationtype(String rectificationtype) { if ("1".equals(rectificationtype)) { return "立即整改"; } else if ("2".equals(rectificationtype)) { return "限期整改"; } return ""; } /** * 转义 隐患状态 * * @param hiddenState * @return */ public String zyState(String hiddenState) { if ("-2".equals(hiddenState)) { return "待确认"; } else if ("-1".equals(hiddenState)) { return "已过期"; } else if ("0".equals(hiddenState)) { return "未提交"; } else if ("1".equals(hiddenState)) { return "未整改"; } else if ("2".equals(hiddenState)) { return "已整改"; } else if ("3".equals(hiddenState)) { return "已复查"; } else if ("4".equals(hiddenState)) { return "已验收"; } else if ("5".equals(hiddenState)) { return "忽略隐患"; } else if ("6".equals(hiddenState)) { return "重大隐患"; } else if ("7".equals(hiddenState)) { return "待处理的特殊隐患"; } else if ("8".equals(hiddenState)) { return "已处理的特殊隐患"; } else if ("10".equals(hiddenState)) { return "验收打回"; } return ""; } /** * 数据字典转换 * * @param dicPids * @return * @throws Exception */ public Map zyDicByIds(String dicPids) throws Exception { List ids = new ArrayList<>(); String[] idsString = dicPids.split(","); for (int i = 0; i < idsString.length; i++) { ids.add(idsString[i]); } Map map = new HashMap<>(); List dicList = dictionariesService.getIdsByParentIds(ids); for (PageData pageData : dicList) { map.put(pageData.getString("BIANMA"), pageData); } return map; } /** * 获取隐患相关的照片信息 * * @param imgIdList * @return * @throws Exception */ public Map> getHiddenImgs(List imgIdList) throws Exception { Map> map = new HashMap<>(); String[] imgId = new String[imgIdList.size()]; for (int i = 0; i < imgIdList.size(); i++) { imgId[i] = imgIdList.get(i); } PageData imgpd2 = new PageData(); imgpd2.put("ArrayDATA_IDS", imgId); if (imgId.length == 0) { return map; } List imgList = imgFilesService.listAllByIds(imgpd2); for (PageData pageData : imgList) { String FOREIGN_KEY = pageData.getString("FOREIGN_KEY"); String TYPE = pageData.getString("TYPE"); String mapKey = FOREIGN_KEY + "--" + TYPE; List vallist = new ArrayList<>(); if (map.containsKey(mapKey)) { vallist = map.get(mapKey); } vallist.add(pageData); map.put(mapKey, vallist); } return map; } /** * 获取隐患验收信息 * * @return * @throws Exception */ public Map getaccepMap(List hiddenIds) throws Exception { Map map = new HashMap<>(); String[] imgId = new String[hiddenIds.size()]; for (int i = 0; i < hiddenIds.size(); i++) { imgId[i] = hiddenIds.get(i); } PageData hiddenIdsMap = new PageData(); hiddenIdsMap.put("ArrayDATA_IDS", imgId); if (hiddenIds.size() == 0) { return map; } List acceptlist = hiddenCheckService.listAllByIds(hiddenIdsMap); Map accMap = new HashMap<>(); List accIds = new ArrayList<>(); for (PageData pageData : acceptlist) { accMap.put(pageData.getString("HIDDEN_ID"), pageData); accIds.add(pageData.getString("HIDDENCHECK_ID")); } map.put("accMap", accMap); map.put("accIds", accIds); return map; } }