520 lines
20 KiB
Java
520 lines
20 KiB
Java
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<String, Object> 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<Map.Entry<String, Object>> set = pdx.entrySet();
|
||
for (Map.Entry<String, Object> 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<String, Object> dataMap = new HashMap<>();
|
||
|
||
List<PageData> varList = new ArrayList<PageData>();
|
||
List<String> wertitles = this.setTitles();
|
||
// 增加隐患整改部门查询 开始
|
||
if(StringUtils.isNotBlank(pd.getString("RECTIFICATIONDEPT"))){
|
||
String url ="department_list.html?DEPARTMENT_ID=";
|
||
List<Department> departments = departmentService.listAllDepartment(pd.getString("RECTIFICATIONDEPT"), url);
|
||
List<String> 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<Department> departments = departmentService.listAllDepartment(pd.getString("creatorUserDept"), url);
|
||
List<String> departmentIds = new ArrayList<>();
|
||
departmentIds.add(pd.getString("creatorUserDept"));
|
||
for(Department department:departments){
|
||
departmentIds.add(department.getDEPARTMENT_ID());
|
||
}
|
||
pd.put("creatorUserDepts",departmentIds);
|
||
}
|
||
|
||
// 增加隐患发现部门查询 结束
|
||
List<PageData> hiddenListAll = getHiddenList(pd);// 获取 隐患数据
|
||
|
||
/**
|
||
* 转义的数据.
|
||
*/
|
||
// 隐患等级
|
||
Map<String, PageData> levelMap = this.zyDicByIds("5ff9daf78e9a4fb1b40d77980656799d,efca93dcaf7a427785f0815ab2781a59");
|
||
Integer imgCountToSession = 0;
|
||
List<String> imgkey = new ArrayList<>();
|
||
for (int i = 0; i < hiddenListAll.size(); i++) {
|
||
imgkey.add(hiddenListAll.get(i).getString("HIDDEN_ID"));
|
||
}
|
||
Map<String, Object> accMap = this.getaccepMap(imgkey);
|
||
List<String> acceptIds = new ArrayList<>();
|
||
Map<String, Object> acceptMap = new HashMap<>();
|
||
if (null != accMap) {
|
||
acceptIds = (List<String>) accMap.get("accIds");//隐患验收人信息图片
|
||
acceptMap = (Map<String, Object>) accMap.get("accMap");//隐患验收人信息
|
||
}
|
||
if (acceptIds != null) {
|
||
for (int i = 0; i < acceptIds.size(); i++) {
|
||
imgkey.add(acceptIds.get(i));
|
||
}
|
||
}
|
||
Map<String, List<PageData>> 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<PageData> 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<PageData> 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<PageData> 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<PageData> 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<PageData> getListAll = hiddenApiService.getListAll(pd); // 列出Hidden列表
|
||
return getListAll;
|
||
}
|
||
|
||
/**
|
||
* 写入上方的列信息
|
||
*
|
||
* @return
|
||
*/
|
||
public List<String> setTitles() {
|
||
List<String> titles = new ArrayList<String>();
|
||
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<String, PageData> zyDicByIds(String dicPids) throws Exception {
|
||
|
||
List<String> ids = new ArrayList<>();
|
||
String[] idsString = dicPids.split(",");
|
||
for (int i = 0; i < idsString.length; i++) {
|
||
ids.add(idsString[i]);
|
||
}
|
||
|
||
Map<String, PageData> map = new HashMap<>();
|
||
|
||
List<PageData> dicList = dictionariesService.getIdsByParentIds(ids);
|
||
for (PageData pageData : dicList) {
|
||
map.put(pageData.getString("BIANMA"), pageData);
|
||
}
|
||
return map;
|
||
}
|
||
|
||
/**
|
||
* 获取隐患相关的照片信息
|
||
*
|
||
* @param imgIdList
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
public Map<String, List<PageData>> getHiddenImgs(List<String> imgIdList) throws Exception {
|
||
Map<String, List<PageData>> 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<PageData> 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<PageData> 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<String, Object> getaccepMap(List<String> hiddenIds) throws Exception {
|
||
Map<String, Object> 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<PageData> acceptlist = hiddenCheckService.listAllByIds(hiddenIdsMap);
|
||
Map<String, Object> accMap = new HashMap<>();
|
||
List<String> 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;
|
||
}
|
||
}
|