qa-prevention-gwj/src/main/java/com/zcloud/controller/bus/HiddenExcelController.java

520 lines
20 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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;
}
}