1466 lines
68 KiB
Java
1466 lines
68 KiB
Java
package com.zcloud.controller.hiddenApi;
|
||
|
||
import com.alibaba.fastjson.JSON;
|
||
import com.zcloud.aspect.DockAnnotation;
|
||
import com.zcloud.controller.base.BaseController;
|
||
import com.zcloud.entity.Page;
|
||
import com.zcloud.entity.PageData;
|
||
import com.zcloud.entity.system.Department;
|
||
import com.zcloud.entity.system.Dictionaries;
|
||
import com.zcloud.service.announcement.TemplateAnnounService;
|
||
import com.zcloud.service.bus.*;
|
||
import com.zcloud.service.hiddenApi.*;
|
||
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;
|
||
import org.apache.commons.lang.StringUtils;
|
||
import org.apache.poi.ss.usermodel.Cell;
|
||
import org.apache.poi.ss.usermodel.Row;
|
||
import org.apache.poi.ss.usermodel.Sheet;
|
||
import org.apache.poi.ss.usermodel.Workbook;
|
||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||
import org.apache.xmlbeans.impl.xb.xsdschema.Public;
|
||
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 javax.annotation.Resource;
|
||
import javax.servlet.http.HttpServletRequest;
|
||
import javax.servlet.http.HttpServletResponse;
|
||
import java.io.File;
|
||
import java.io.FileInputStream;
|
||
import java.io.FileOutputStream;
|
||
import java.io.OutputStream;
|
||
import java.text.SimpleDateFormat;
|
||
import java.time.LocalDate;
|
||
import java.time.LocalDateTime;
|
||
import java.time.ZoneId;
|
||
import java.time.ZonedDateTime;
|
||
import java.time.format.DateTimeFormatter;
|
||
import java.util.*;
|
||
import java.util.regex.Matcher;
|
||
import java.util.regex.Pattern;
|
||
|
||
/**
|
||
* 说明:隐患 作者:guoyuepeng
|
||
* 如果修改请修改相关文档
|
||
*/
|
||
@Controller
|
||
@RequestMapping("/hiddenApi")
|
||
public class HiddenApiController extends BaseController {
|
||
|
||
@Autowired
|
||
private HiddenApiService hiddenApiService;
|
||
@Autowired
|
||
private DepartmentService departmentService; // 部门信息
|
||
@Autowired
|
||
private ImgFilesService imgFilesService; //附件信息
|
||
@Autowired
|
||
private HiddenRegionService hiddenRegionService; // 隐患区域维护
|
||
@Autowired
|
||
private HiddenExamineApiService hiddenExamineApiService; //隐患审核 隐患的审核步骤的人员的信息的记录
|
||
@Autowired
|
||
private HiddenUserApiService hiddenUserApiService; // 隐患相关人员信息
|
||
@Autowired
|
||
private RecordItemService recordItemService; //清单检查记录
|
||
@Autowired
|
||
private HiddenSchemeApiService hiddenSchemeApiService;
|
||
@Autowired
|
||
private HiddenCheckApiService hiddenCheckApiService; //隐患验收人
|
||
@Autowired
|
||
private UsersService usersService;
|
||
@Autowired
|
||
private FHlogService FHLOG;//日志记录
|
||
@Resource
|
||
private ApplicationContext applicationContext;
|
||
@Autowired
|
||
private SafetyEnvironmentalService safetyenvironmentalService;
|
||
|
||
@Autowired
|
||
private DictionariesService dictionariesService;
|
||
@Autowired
|
||
private MessageService messageService;
|
||
|
||
/**
|
||
* 暂时没有修改的内容
|
||
*/
|
||
@Autowired
|
||
private HiddenService hiddenService;
|
||
@Autowired
|
||
private NoticeCorpUtil noticeUtil;
|
||
@Autowired
|
||
private HiddenSchemeService hiddenSchemeService;
|
||
@Autowired
|
||
private HiddenUserService hiddenUserService; // 隐患相关人员信息
|
||
@Autowired
|
||
private HiddenCheckService hiddenCheckService;
|
||
|
||
@Autowired
|
||
private HiddenExamineService hiddenExamineService;
|
||
|
||
/**
|
||
* 添加隐患信息,以后都会使用这一个接口
|
||
* 如果就修改,请通知
|
||
* <p>
|
||
* 问题:暂存的问题 已经完成
|
||
* 所有的参数是否是必填
|
||
* 返回参数有固定信息
|
||
*
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
@RequestMapping(value = "/addHidden")
|
||
@RequiresPermissions("hidden:add")
|
||
@ResponseBody
|
||
@DockAnnotation
|
||
public Object addHiddenApi() throws Exception {
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
String errInfo = "success";
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
/** 必填选项
|
||
* SOURCE 隐患来源
|
||
* HIDDENDESCR 隐患描述
|
||
* DISCOVERYTIME 发现时间 (2022-08-17 10:08)
|
||
* RECTIFICATIONTYPE 整改类型( 1 立即整改 2 限期整改)
|
||
* HIDDENLEVEL 隐患级别 , 字典 5e7cf8620ba54ad89719d0be62133c7a,编码
|
||
* CONFIRM_USER 隐患确认人
|
||
* HIDDENTYPE 隐患类型, 字典 3babc15144444bdc8d763d0af2bdfff6 ,编码
|
||
* ISRELEVANT 是否相关方(1是2否) 默认否
|
||
* 如果是清单的时候
|
||
* RISK_UNIT 风险单元
|
||
* IDENTIFICATION 辨识部位
|
||
* RISK_DESCR 存在风险
|
||
* RISK_POSITION 风险点位置
|
||
* LEVEL 风险分级
|
||
* CHECK_CONTENT 检查内容
|
||
*
|
||
* 如果是立即整改
|
||
* RECTIFYDESCR 整改描述
|
||
*
|
||
* 隐患图片 ,隐患视频 自己通过上传附件上传,暂时不处理
|
||
*/
|
||
/** 缺少必填参数:RISK_UNIT IDENTIFICATION RISK_POSITION 暂存 */
|
||
String serl = "SOURCE,HIDDENDESCR,DISCOVERYTIME,RECTIFICATIONTYPE,HIDDENLEVEL," +
|
||
"HIDDENTYPE,ISRELEVANT";
|
||
|
||
if ("2".equals(pd.getString("SOURCE")) || "6".equals(pd.getString("SOURCE"))) {//如果是清单检查,需要填入其他必填项
|
||
// serl +=",RISK_UNIT,IDENTIFICATION,RISK_DESCR,RISK_POSITION,LEVEL,CHECK_CONTENT";
|
||
serl += ",RISK_DESCR,LEVEL,CHECK_CONTENT";
|
||
}
|
||
|
||
if (!Tools.isEmpty(pd.getString("HIDDENPART"))) { // 如果用户选择或者填入隐患部位,就需要知道是选择的还是手填的
|
||
serl += ",hiddenPartType";
|
||
}
|
||
if ("1".equals(pd.getString("RECTIFICATIONTYPE"))) { //如果用户立即整改。就需要填入整改描述
|
||
serl += ",RECTIFYDESCR";
|
||
}
|
||
Integer code = HasAllRequired.hasAllRequired(pd, serl);
|
||
if (code != 000000) {
|
||
return ResultCodeConstant.resMap(code);
|
||
}
|
||
/** 需要我必填的 */
|
||
pd.put("HIDDEN_ID", this.get32UUID());
|
||
if ("0".equals(pd.getString("STATE"))) { //在上传隐患清单的时候,需要暂存信息,其他清单全部都是待确认
|
||
pd.put("STATE", "0");
|
||
} else {
|
||
pd.put("STATE", "-2");
|
||
}
|
||
|
||
pd.put("CREATOR", Jurisdiction.getUSER_ID());
|
||
pd.put("CREATTIME", DateUtil.date2Str(new Date()));
|
||
pd.put("ISDELETE", "0");
|
||
pd.put("ISCONFIRM", "0"); //
|
||
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
|
||
/** 处理 隐患 部位的方法 .如果用户填入的隐患部位是输入的 */
|
||
if ("value".equals(pd.getString("hiddenPartType"))) {
|
||
PageData hiddenRegion = hiddenRegionService.saveHidden(pd.getString("HIDDENPART"));
|
||
pd.put("saveHidden",JSON.toJSONString(hiddenRegion));
|
||
pd.put("HIDDENPART", hiddenRegion.getString("HIDDENREGION_ID"));
|
||
}
|
||
/** 隐患的主要负责人 一条隐患 多个隐患发现人 ,把多个信息填入这个张表中 */
|
||
PageData saveRectificationo = hiddenUserApiService.saveRectificationo(pd.getString("findCreator"), pd.getString("HIDDEN_ID"), "1", Jurisdiction.getUSER_ID());
|
||
pd.put("saveRectificationo",JSON.toJSONString(saveRectificationo));
|
||
/** 初始化隐患确认信息 记录隐患发现人的隐患等级等信息 */
|
||
PageData saveConfirm = hiddenExamineApiService.saveConfirm(pd, "0");
|
||
pd.put("saveConfirm",JSON.toJSONString(saveConfirm));
|
||
/* 隐患的立即整改 填入整改信息,其他的信息是一样的 */
|
||
if ("1".equals(pd.getString("RECTIFICATIONTYPE"))) {
|
||
pd.put("RECTIFICATIONTIME", DateUtil.getDay()); // 整改时间
|
||
pd.put("RECTIFICATIONOR", Jurisdiction.getUSER_ID()); // 整改人
|
||
pd.put("RECTIFICATIONDEPT", Jurisdiction.getDEPARTMENT_ID()); // 整改部门
|
||
pd.put("STATE", "-2");
|
||
}
|
||
/** 重大隐患管理 , 如果是重大隐患,隐患确认必须是部门负责人*/
|
||
if (pd.getString("HIDDENLEVEL").equals("jdyh001") || pd.getString("HIDDENLEVEL").equals("hiddenLevel2002")) {
|
||
//判断是否是重大隐患
|
||
PageData loginDeptPd = new PageData();
|
||
loginDeptPd.put("DEPARTMENT_ID", Jurisdiction.getDEPARTMENT_ID());
|
||
PageData longinfoUserDept = departmentService.findById(loginDeptPd);//获取登录人部门信息
|
||
if (Tools.isEmpty(longinfoUserDept) || Tools.isEmpty(longinfoUserDept.getString("HEADMAN"))) {
|
||
// 查看部门是否有负责人
|
||
return ResultCodeConstant.resMap(000201); //所在部门未维护部门负责人
|
||
} else {
|
||
//如何维护了,隐患确认人就要成为部门负责人
|
||
pd.put("CONFIRM_USER", longinfoUserDept.getString("HEADMAN"));//通过名字查询用户获取出ID
|
||
}
|
||
}
|
||
pd.put("saveApi",JSON.toJSONString(pd));
|
||
hiddenApiService.saveApi(pd);
|
||
/* 发送隐患的通知公告 */
|
||
Map<String, Object> notRepr = new HashMap<>();
|
||
notRepr.put("hiddendescr", pd.getString("HIDDENDESCR"));//
|
||
if (pd.getString("HIDDENLEVEL").equals("jdyh001") || pd.getString("HIDDENLEVEL").equals("hiddenLevel2002")) {
|
||
notRepr.put("params2", "重大隐患管理 - 发现隐患部门责任人确认");//
|
||
} else {
|
||
notRepr.put("params2", "隐患确认");//
|
||
}
|
||
notRepr.put("params3", "确认");//
|
||
messageService.sendMessageByParameter("HIDDEN_MAIL_001", "友情提示:有一条隐患需要确认", Jurisdiction.getCORPINFO_ID(), pd.getString("CONFIRM_USER"), pd.getString("HIDDEN_ID"),
|
||
pd.getString("HIDDENDESCR"), "隐患确认", "确认", "", "");
|
||
/**
|
||
* 可以为空的
|
||
* POSITIONDESC 隐患位置描述
|
||
* HIDDENPART 隐患部位 (可以手写,如果传入,就要传入 hiddenPartType)
|
||
* hiddenPartType(select选择的,传入id,value输入的)
|
||
* 隐患位置信息 :
|
||
* LONGITUDE 经度 , LATITUDE 纬度(自己的地图)
|
||
* findCreator ,多个隐患发现人的时候填写逗号分割, (去除自己)
|
||
* 整改部门 , RECTIFICATIONDEPT
|
||
* 整改人, RECTIFICATIONOR
|
||
* 整改期限 ,RECTIFICATIONDEADLINE
|
||
*
|
||
*/
|
||
map.put("result", errInfo);
|
||
map.put("pd", pd);
|
||
map.put("dockData",JSON.toJSONString(pd));
|
||
return map;
|
||
}
|
||
|
||
/**
|
||
* 业务 是否删除隐患照片以及视频
|
||
* 删除
|
||
* 1.当隐患是隐患清单检出的时候,产出隐患清单检查记录
|
||
* 当隐患是 消防检查的时候 删除记录
|
||
* 安环环保检查的时候删除什么
|
||
*
|
||
* @throws Exception
|
||
*/
|
||
@RequestMapping(value = "/deleteHiddenApi")
|
||
@RequiresPermissions("hidden:delete")
|
||
@ResponseBody
|
||
public Object deleteHiddenApi() throws Exception {
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
Integer code = 000000;
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
/** 必填项,隐患id **/
|
||
String serl = "HIDDEN_ID";
|
||
code = HasAllRequired.hasAllRequired(pd, serl);
|
||
if (code != 000000) {
|
||
return ResultCodeConstant.resMap(code);
|
||
}
|
||
PageData hidden = hiddenApiService.findById(pd);
|
||
if ("4".equals(hidden.getString("SOURCE")) || "5".equals(hidden.getString("SOURCE"))) { //安环环保检查的隐患暂时不让删除,业务逻辑暂时没有
|
||
return ResultCodeConstant.resMap(000202);
|
||
}
|
||
Integer deleteHidden = hiddenApiService.deleteApi(pd.getString("HIDDEN_ID")); //修改隐患的状态
|
||
map.put("deleteHidden", deleteHidden);
|
||
/** 隐患相关人员 */
|
||
Integer deleteHiddenUserType = hiddenUserApiService.deleteByHidden(pd.getString("HIDDEN_ID"));
|
||
map.put("deleteHiddenUserType", deleteHiddenUserType);
|
||
/** 删除隐患流程信息 */
|
||
Integer deleteHiddenExaType = hiddenExamineApiService.deleteByHiddenId(pd);
|
||
map.put("deleteHiddenExaType", deleteHiddenExaType);
|
||
/**
|
||
* 删除清单记录 * 修改安全环保检查信息 * 修改消防检查信息
|
||
*/
|
||
if ("2".equals(pd.getString("SOURCE"))) { //删除清单记录
|
||
PageData ri = new PageData();
|
||
ri.put("ISNORMAL", "0");
|
||
ri.put("CHECKRECORD_ID", pd.get("CHECKRECORD_ID"));
|
||
ri.put("LISTMANAGER_ID", pd.get("LISTMANAGER_ID"));
|
||
ri.put("LISTCHECKITEM_ID", pd.get("RISKITEM_ID"));
|
||
Integer deleterecordItemType = recordItemService.editIsnormal(ri);
|
||
map.put("deleterecordItemType", deleterecordItemType);
|
||
}
|
||
applicationContext.publishEvent(new DeviceHiddenEvent(new Object(), pd.getString("HIDDEN_ID"), "1"));
|
||
return ResultCodeConstant.resMap(code, map);
|
||
}
|
||
|
||
/**
|
||
* 根据隐患id获取数据
|
||
*
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
@RequestMapping(value = "/getHiddenById")
|
||
@RequiresPermissions("hidden:list")
|
||
@ResponseBody
|
||
public Object getHiddenById() throws Exception {
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
Integer code = 000000;
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
/** 必填项,隐患id 隐患来源 **/
|
||
String serl = "HIDDEN_ID";
|
||
code = HasAllRequired.hasAllRequired(pd, serl);
|
||
if (code != 000000) {
|
||
return ResultCodeConstant.resMap(code);
|
||
}
|
||
PageData hidden = hiddenApiService.findById(pd);
|
||
|
||
PageData hs = hiddenSchemeApiService.findByHdId(pd);/* * 查询整改方案 */
|
||
map.put("hs", hs);
|
||
List<PageData> checkAllList = hiddenCheckApiService.listAll(pd); // 全部隐患验收信息
|
||
if (checkAllList != null && checkAllList.size() > 0) {
|
||
PageData pd3 = new PageData();
|
||
pd3.put("TYPE", 5);
|
||
for (PageData check : checkAllList) {
|
||
pd3.put("FOREIGN_KEY", check.get("HIDDENCHECK_ID"));
|
||
check.put("cImgs", imgFilesService.listAll(pd3));// 验收图片
|
||
}
|
||
}
|
||
map.put("checkList", checkAllList);
|
||
|
||
List<PageData> hiddenExa = hiddenExamineApiService.listAllByHiddenId(pd.getString("HIDDEN_ID")); //隐患的流程信息
|
||
map.put("hiddenExa", hiddenExa); // //特殊审批信息
|
||
for (PageData pageData : hiddenExa) {
|
||
if ("0".equals(pageData.getString("TYPE"))) {
|
||
hidden.put("editUserName", pageData.getString("editUserName"));
|
||
hidden.put("editDeptName", pageData.getString("editDeptName"));
|
||
hidden.put("editLevelName", pageData.getString("editLevelName"));
|
||
hidden.put("editRectificationDeadline", pageData.getString("spare3"));
|
||
}
|
||
}
|
||
map.put("hidden", hidden);
|
||
List<PageData> hiddenFindPeople = hiddenUserApiService.listAll(pd);// 隐患相关人员信息 --隐患发现人
|
||
map.put("hiddenFindPeople", hiddenFindPeople); // //特殊审批信息
|
||
if (hidden != null) {
|
||
List<PageData> imgListAll = imgFilesService.getListByKeyAndType(pd.getString("HIDDEN_ID"));
|
||
Map<String, List<PageData>> imgMapListAll = new HashMap<>(imgListAll.size());
|
||
for (PageData pageData : imgListAll) {
|
||
List<PageData> img = new ArrayList<>();
|
||
if (imgMapListAll.containsKey(pageData.getString("TYPE"))) {
|
||
img = imgMapListAll.get(pageData.getString("TYPE"));
|
||
}
|
||
img.add(pageData);
|
||
imgMapListAll.put(pageData.getString("TYPE"), img);
|
||
}
|
||
map.put("hiddenVideo", imgMapListAll.get("102"));// 隐患视频
|
||
if (imgMapListAll.containsKey("102")) {
|
||
if (imgMapListAll.get("102").size() > 0) {
|
||
map.put("hiddenVideoSrc", imgMapListAll.get("102").get(0).getString("FILEPATH"));// 隐患视频
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
map.put("hImgs", imgMapListAll.get("3"));// 隐患图片
|
||
map.put("rImgs", imgMapListAll.get("4"));// 整改图片
|
||
map.put("fcImgs", imgMapListAll.get("50"));// 安全环保检查验收图片
|
||
map.put("majorinforPdf", imgMapListAll.get("106"));// 重大隐患临时处置信息
|
||
map.put("majorapprovedPdf", imgMapListAll.get("107"));// 港股分公司安委会办公室副主任核定 - 安委会或党委会决议记录
|
||
map.put("reportPdf", imgMapListAll.get("108"));//隐患调查报告
|
||
map.put("resolutionPdf", imgMapListAll.get("109"));//安委会或党委会决议记录
|
||
map.put("rectificationPdf", imgMapListAll.get("110"));//较大隐患整改 - 临时处置措施
|
||
map.put("processPdf", imgMapListAll.get("111"));//较大隐患整改 - 隐患整改过程记录
|
||
map.put("supplementPdf", imgMapListAll.get("112"));//较大隐患整改 - 补充重大隐患信息(确认时)
|
||
map.put("safetyofficePdf", imgMapListAll.get("113"));//较大隐患整改 - 安委会办公室会议记录(分公司核实时)
|
||
map.put("sImgs", imgMapListAll.get("8"));// 方案图片
|
||
}
|
||
if (pd.getString("HIDDENLEVEL").equals("jdyh001") || pd.getString("HIDDENLEVEL").equals("hiddenLevel2002")) {//判断是否是重大隐患
|
||
// List<PageData> resultslist = hiddenMajorService.findById(pd);
|
||
}
|
||
/**隐患的整改方案 **/
|
||
return ResultCodeConstant.resMap(code, map);
|
||
}
|
||
|
||
|
||
/**
|
||
* 确认隐患
|
||
*
|
||
* @param
|
||
* @throws Exception
|
||
*/
|
||
@RequestMapping(value = "/confirmHidden")
|
||
@RequiresPermissions("hidden:edit")
|
||
@ResponseBody
|
||
@DockAnnotation(isAdd = true)
|
||
public Object confirmHidden() throws Exception {
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
Integer code = 000000;
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
String HIDDENLEVEL = pd.getString("HIDDENLEVEL"); // 隐患级别
|
||
String RECTIFICATIONOR = pd.getString("RECTIFICATIONOR");//整改负责人
|
||
String RECTIFICATIONDEADLINE = pd.getString("RECTIFICATIONDEADLINE"); //整改完成期限
|
||
String RECTIFICATIONDEPT = pd.getString("RECTIFICATIONDEPT"); //整改负责人部门
|
||
|
||
/** 必填项,隐患id ,隐患等级 整改部门 ,整改人 整改期限**/
|
||
/** isEmis **/
|
||
String serl = "HIDDEN_ID,HIDDENLEVEL";//是否立即整改 1 是 2 否
|
||
if (!"hiddenLevel1001".equals(pd.getString("HIDDENLEVEL"))) {
|
||
serl = "RECTIFICATIONTYPE";//是否立即整改 1 是 2 否
|
||
if ("2".equals(pd.getString("RECTIFICATIONTYPE"))) {
|
||
serl += ",RECTIFICATIONDEPT,RECTIFICATIONOR,RECTIFICATIONDEADLINE";
|
||
}
|
||
}
|
||
|
||
code = HasAllRequired.hasAllRequired(pd, serl);
|
||
if (code != 000000) {
|
||
return ResultCodeConstant.resMap(code);
|
||
}
|
||
PageData hidden = hiddenApiService.findById(pd); //获取隐患信息
|
||
// 386 ~ 409
|
||
if (!"-2".equals(hidden.getString("STATE"))) {
|
||
return ResultCodeConstant.resMap(000203);
|
||
}
|
||
if ("1".equals(pd.getString("isEmis"))) { //确认的时候如果是emis隐患,就上传emis系统,然后删除隐患
|
||
code = hiddenApiService.goEmis(pd);
|
||
return ResultCodeConstant.resMap(code); //隐患走到这就完成了
|
||
}
|
||
if ("hiddenLevel1001".equals(pd.getString("HIDDENLEVEL")) ||
|
||
"1".equals(hidden.get("RECTIFICATIONTYPE").toString())) {
|
||
// 如果是忽略隐患 或者是立即整改
|
||
pd.put("STATE", "4");
|
||
// 隐患状态修改成整改完成
|
||
// 验收人是确认人
|
||
// 整改人是提交人
|
||
PageData userPd = new PageData();
|
||
userPd.put("USER_ID", hidden.getString("CREATOR"));
|
||
PageData creatopUser = usersService.findById(userPd);
|
||
pd.put("RECTIFICATIONDEPT", creatopUser.getString("DEPARTMENT_ID"));//整改部门
|
||
pd.put("RECTIFICATIONOR", hidden.getString("CREATOR"));//整改人
|
||
pd.put("RECTIFICATIONTIME", DateUtil.date2Str(new Date(), "yyyy-MM-dd"));//整改时间
|
||
|
||
pd.put("CHECKDEPT", Jurisdiction.getDEPARTMENT_ID());//验收部门
|
||
pd.put("CHECKOR", Jurisdiction.getUSER_ID());//验收人
|
||
pd.put("CHECKTIME", DateUtil.date2Str(new Date()));//验收时间
|
||
applicationContext.publishEvent(new DeviceHiddenEvent(new Object(), pd.getString("HIDDEN_ID"), "0"));//消防检查的通知
|
||
} else {
|
||
pd.put("STATE", "1");
|
||
}
|
||
// 4 2 无整改人
|
||
hidden.put("HIDDENLEVEL",HIDDENLEVEL);
|
||
hidden.put("RECTIFICATIONOR",RECTIFICATIONOR);
|
||
hidden.put("RECTIFICATIONDEADLINE",RECTIFICATIONDEADLINE);
|
||
hidden.put("RECTIFICATIONDEPT",RECTIFICATIONDEPT);
|
||
PageData pageData = hiddenExamineApiService.saveConfirm(hidden, "4"); //添加隐患处理流程
|
||
pd.put("pageData", JSON.toJSONString(pageData));
|
||
PageData confirm = hiddenApiService.confirmHidden(pd); //确认
|
||
pd.put("confirm", JSON.toJSONString(confirm));
|
||
if (Tools.notEmpty(pd.getString("RECTIFICATIONOR")) && !hidden.getString("RECTIFICATIONTYPE").equals("1")) {
|
||
messageService.sendMessageByParameter("HIDDEN_MAIL_002", "友情提示:有一条隐患需要整改",
|
||
hidden.getString("CORPINFO_ID"), pd.getString("USER_ID"), hidden.getString("HIDDEN_ID"),
|
||
hidden.getString("HIDDENDESCR"), "隐患整改", "整改", "", "");
|
||
} else if ("1".equals(hidden.getString("RECTIFICATIONTYPE"))) {
|
||
messageService.sendMessageByParameter("HIDDEN_MAIL_003", "友情提示:有一条隐患已验收",
|
||
hidden.getString("CORPINFO_ID"), pd.getString("USER_ID"), hidden.getString("HIDDEN_ID"),
|
||
hidden.getString("HIDDENDESCR"), "通过", "整改", "", "");
|
||
}
|
||
map.put("dockData",JSON.toJSONString(pd));
|
||
return ResultCodeConstant.resMap(code, map);
|
||
}
|
||
|
||
/**
|
||
* 隐患确认的时候打回
|
||
*
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
@RequestMapping(value = "/repulseHidden")
|
||
@RequiresPermissions("hidden:list")
|
||
@ResponseBody
|
||
@DockAnnotation
|
||
public Object repulseHidden() throws Exception {
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
Integer code = 000000;
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
/** 必填项,隐患id ,驳回意见 **/
|
||
String serl = "HIDDEN_ID,REJECTOPINION";
|
||
code = HasAllRequired.hasAllRequired(pd, serl);
|
||
if (code != 000000) {
|
||
return ResultCodeConstant.resMap(code);
|
||
}
|
||
|
||
PageData hidden = hiddenApiService.findById(pd); //获取隐患信息
|
||
if (!"-2".equals(hidden.getString("STATE"))) {
|
||
return ResultCodeConstant.resMap(000204);
|
||
}
|
||
hiddenApiService.repulseConfirm(pd.getString("HIDDEN_ID"));
|
||
PageData before = new PageData();//
|
||
before.put("TYPE", "6"); //.0.隐患开始数据;1.特殊审核;2.延期审核 3.验收打回。4.隐患确认记录,.5重大隐患修改,6确认时打回;
|
||
before.put("STATE", "16");//是否通过审核 ,1未通过。2通过 -1(初始)16隐患确认打回
|
||
before.put("HIDDEN_ID", pd.get("HIDDEN_ID"));
|
||
before.put("HIDDENEXAMINE_ID", UuidUtil.get32UUID());
|
||
before.put("CREATOR", Jurisdiction.getUSER_ID());
|
||
before.put("CREATTIME", DateUtil.date2Str(new Date()));
|
||
before.put("OPERATOR", Jurisdiction.getUSER_ID());
|
||
before.put("OPERATTIME", DateUtil.date2Str(new Date()));
|
||
before.put("REPULSE_CAUSE", pd.getString("REJECTOPINION"));
|
||
before = hiddenExamineApiService.save(before);
|
||
pd.put("before",JSON.toJSONString(before));
|
||
List<PageData> hiddenUserList = hiddenUserApiService.getListByHiddenId(pd.getString("HIDDEN_ID"));
|
||
for (PageData pageData : hiddenUserList) {
|
||
messageService.sendMessageByParameter("HIDDEN_MAIL_001", "友情提示:有一条隐患被打回",
|
||
Jurisdiction.getCORPINFO_ID(), pageData.getString("USER_ID"), pd.getString("HIDDEN_ID"),
|
||
pd.getString("HIDDENDESCR"), "上报", "查看", "", "");
|
||
}
|
||
map.put("dockData",JSON.toJSONString(pd));
|
||
return ResultCodeConstant.resMap(code, map);
|
||
}
|
||
|
||
/**
|
||
* 隐患整改
|
||
*
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
@RequestMapping(value = "/rectify")
|
||
@RequiresPermissions("hidden:list")
|
||
@ResponseBody
|
||
@DockAnnotation(isAdd = true)
|
||
public Object rectify() throws Exception {
|
||
/**
|
||
* 修改隐患信息
|
||
* 删除隐患应急方案
|
||
* 删除隐患整改方案
|
||
* 保持整改方案
|
||
* 给验收人发送站内信
|
||
* 多个验收人
|
||
*/
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
Integer code = 000000;
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
// 清理隐患整改 表 bus_hiddencheck
|
||
// 清理隐患整改 表 bus_hiddenscheme
|
||
|
||
/** 必填项,隐患id ,是否正常整改**/
|
||
String serl = "HIDDEN_ID,IS_NORMAL";
|
||
if ("1".equals(pd.getString("IS_NORMAL"))) {
|
||
/** 必填项,隐患id 整改描述 整改时间,整改方案状态 ,投入资金 ,验收人部门 ,验收人,其他验收人 **/
|
||
serl += ",RECTIFYDESCR,INVESTMENT_FUNDS,RECTIFICATIONTIME,CHECKDEPT,CHECKOR,OTHER";
|
||
hiddenSchemeService.deleteHd(pd);
|
||
hiddenCheckService.delete(pd);
|
||
} else { ////如果是不是正常整改
|
||
return ResultCodeConstant.resMap(000216);
|
||
// return this.unableRectify();
|
||
}
|
||
code = HasAllRequired.hasAllRequired(pd, serl);
|
||
if (code != 000000) {
|
||
return ResultCodeConstant.resMap(code);
|
||
}
|
||
PageData hidden = hiddenApiService.findById(pd); //获取隐患信息
|
||
/** 整改,修改隐患信息 **/
|
||
int hiddenupdateSate = hiddenApiService.rectify(pd.getString("HIDDEN_ID"), pd.getString("RECTIFYDESCR"),
|
||
pd.getString("RECTIFICATIONTIME"), pd.getString("HAVESCHEME"), pd.getString("INVESTMENT_FUNDS"));
|
||
map.put("hiddenupdateSate", hiddenupdateSate);
|
||
if ("1".equals(pd.getString("HAVESCHEME"))) { //如果有整改方案 添加上整改方案
|
||
pd.put("HIDDENSCHEME_ID", this.get32UUID());
|
||
pd.put("CREATOR", Jurisdiction.getUSER_ID());
|
||
pd.put("CREATTIME", DateUtil.date2Str(new Date()));
|
||
pd.put("OPERATOR", Jurisdiction.getUSER_ID());
|
||
pd.put("OPERATTIME", DateUtil.date2Str(new Date()));
|
||
pd.put("ISDELETE", "0"); // 是否删除 1 删除 0未删除
|
||
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
|
||
int hiddenSchemeState = hiddenSchemeApiService.save(pd);
|
||
map.put("hiddenSchemeState", hiddenSchemeState);
|
||
}
|
||
/** 隐患验收信息 **/
|
||
PageData hiddenCheck = hiddenCheckApiService.saveHiddenCheck(pd.getString("CHECKOR"), pd.getString("CHECKDEPT"), pd.getString("OTHER"), pd.getString("HIDDEN_ID"), hidden.getString("HIDDENDESCR"));
|
||
pd.put("hiddenCheck",JSON.toJSONString(hiddenCheck));
|
||
/** 隐患延时申请的要通过 **/
|
||
PageData exam = hiddenExamineApiService.saveRectify(pd.getString("HIDDEN_ID")); //添加隐患整改记录
|
||
pd.put("exam", JSON.toJSONString(exam));
|
||
List<PageData> hiddenUserList = hiddenUserApiService.getListByHiddenId(pd.getString("HIDDEN_ID"));
|
||
for (PageData pageData : hiddenUserList) {
|
||
if ("2".equals(pageData.getString("TYPE")) && "-1".equals(pageData.getString("STATE"))) { //延期审核 没有审批的
|
||
hiddenExamineApiService.adoptExamine(pageData.getString("HIDDENEXAMINE_ID"), "整改完成");
|
||
}
|
||
}
|
||
map.put("hiddenCheckState", hiddenCheck.get("retint"));
|
||
map.put("dockData",JSON.toJSONString(pd));
|
||
return ResultCodeConstant.resMap(code, map);
|
||
}
|
||
|
||
/**
|
||
* 隐患整改 --无法整改
|
||
*
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
@RequestMapping(value = "/unableRectify")
|
||
@RequiresPermissions("hidden:list")
|
||
@ResponseBody
|
||
@DockAnnotation(isAdd = true)
|
||
public Object
|
||
unableRectify() throws Exception {
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
Integer code = 000000;
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
/** 隐患ID ,无法整改原因 **/
|
||
String serl = "HIDDEN_ID,disposalPlan";
|
||
code = HasAllRequired.hasAllRequired(pd, serl);
|
||
if (code != 000000) {
|
||
return ResultCodeConstant.resMap(code);
|
||
}
|
||
// 无法整改得 隐患一会删除填写得正常得信息
|
||
hiddenSchemeService.deleteHd(pd);
|
||
hiddenCheckService.delete(pd);
|
||
|
||
// hiddenExamineService.deleteByHiddenId(pd); //如果验收打回删除隐患相关信息
|
||
|
||
// 删除
|
||
PageData hidden = hiddenApiService.findById(pd);
|
||
hiddenApiService.unableRectify(pd.getString("HIDDEN_ID")); //修改隐患状态,变成 待处理特殊隐患
|
||
|
||
PageData examine = new PageData();
|
||
examine.put("TYPE", "1");
|
||
examine.put("STATE", "-1");
|
||
examine.put("EXAMINE", pd.getString("disposalPlan")); //临时措施
|
||
examine.put("HIDDEN_ID", pd.getString("HIDDEN_ID"));
|
||
examine.put("HIDDENEXAMINE_ID", UuidUtil.get32UUID());
|
||
examine.put("CREATOR", Jurisdiction.getUSER_ID());
|
||
examine.put("CREATTIME", DateUtil.date2Str(new Date()));
|
||
examine.put("OPERATOR", Jurisdiction.getUSER_ID());
|
||
examine.put("OPERATTIME", DateUtil.date2Str(new Date()));
|
||
examine = hiddenExamineApiService.save(examine);
|
||
pd.put("examine",JSON.toJSONString(examine));
|
||
messageService.sendMessageByParameter("HIDDEN_MAIL_005", "友情提示:有一条隐患需要特殊审核",
|
||
hidden.getString("CORPINFO_ID"), hidden.getString("CONFIRM_USER"), hidden.getString("HIDDEN_ID"),
|
||
hidden.getString("HIDDENDESCR"), "特殊处置审核", "审核", "", "");
|
||
map.put("msg", "隐患特殊处理申请成功。请通知隐患确认人进行特殊处理确认操作!");
|
||
|
||
/** 暂时没有整理 **/
|
||
if (Tools.notEmpty(hidden.getString("INSPECTION_ID"))) { //安全环保检查验收
|
||
pd.put("ACCEPTSTEP", 6);
|
||
List<PageData> list = hiddenService.listOtherNotAccept(pd); //获取没有验收的隐患
|
||
PageData inspection = new PageData();
|
||
if (list.size() == 0) {
|
||
inspection.put("INSPECTION_ID", pd.getString("INSPECTION_ID"));
|
||
inspection.put("OPERATOR", Jurisdiction.getUSER_ID());
|
||
inspection.put("OPERATTIME", DateUtil.date2Str(new Date()));
|
||
inspection.put("INSPECTION_STATUS", "6"); // 已验收
|
||
safetyenvironmentalService.editStatus(inspection);
|
||
inspection.put("HIDDEN_vector", pd.getString("HIDDEN_ID"));
|
||
}
|
||
inspection.put("INSPECTION_ID", pd.getString("INSPECTION_ID"));
|
||
inspection.put("OPERATOR", Jurisdiction.getUSER_ID());
|
||
inspection.put("HIDDEN_vector", pd.getString("HIDDEN_ID"));
|
||
noticeUtil.SE_ThreeStepUtil(inspection);
|
||
}
|
||
map.put("dockData",JSON.toJSONString(pd));
|
||
return ResultCodeConstant.resMap(code, map);
|
||
}
|
||
|
||
/**
|
||
* 延时申请
|
||
*
|
||
* @param
|
||
* @throws Exception
|
||
*/
|
||
@RequestMapping(value = "/delayed")
|
||
@RequiresPermissions("hidden:list")
|
||
@ResponseBody
|
||
@DockAnnotation(isAdd = true)
|
||
public Object delayed() throws Exception {
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
String errInfo = "success";
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
Integer code = 000000;
|
||
|
||
/** 延期时间 , 处置方案**/
|
||
String serl = "HIDDEN_ID,DELAY_TIME,disposalPlan";
|
||
code = HasAllRequired.hasAllRequired(pd, serl);
|
||
if (code != 000000) {
|
||
return ResultCodeConstant.resMap(code);
|
||
}
|
||
PageData examine = new PageData();
|
||
examine.put("TYPE", "2");
|
||
examine.put("STATE", "-1");
|
||
examine.put("CREATTIME", DateUtil.date2Str(new Date()));
|
||
examine.put("EXAMINE", pd.getString("TEMPORARY_MEASURES")); //临时措施
|
||
examine.put("DISPOSAL_PLAN", pd.getString("disposalPlan")); //临时措施
|
||
examine.put("DELAY_TIME", pd.getString("DELAY_TIME")); //申请延期日期
|
||
examine.put("HIDDEN_ID", pd.getString("HIDDEN_ID"));
|
||
|
||
PageData hidden = hiddenApiService.findById(pd);
|
||
MultipartFile file = null;
|
||
if (file != null) {
|
||
String suffixName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
|
||
if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
|
||
errInfo = "fail";
|
||
map.put("result", errInfo);
|
||
map.put("msg", "文件格式不正确!");
|
||
return map;
|
||
}
|
||
String ffile = DateUtil.getDays();
|
||
String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
|
||
Smb.sshSftp(file, fileName, Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
|
||
examine.put("DISPOSAL_FILE", Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName);
|
||
}
|
||
examine = hiddenExamineApiService.save(examine);
|
||
pd.put("examine",JSON.toJSONString(examine));
|
||
messageService.sendMessageByParameter("HIDDEN_MAIL_007", "友情提示:有一条隐患需要延期审核",
|
||
hidden.getString("CORPINFO_ID"), pd.getString("USER_ID"), hidden.getString("HIDDEN_ID"),
|
||
hidden.getString("HIDDENDESCR"), "延期审核", "审核", "", "");
|
||
map.put("msg", "隐患延期申成功。请通知隐患确认人进行延期确认操作!");
|
||
map.put("dockData",JSON.toJSONString(pd));
|
||
return ResultCodeConstant.resMap(code, map);
|
||
}
|
||
|
||
|
||
/**
|
||
* 验收隐患
|
||
*
|
||
* @param
|
||
* @throws Exception
|
||
*/
|
||
@RequestMapping(value = "/check")
|
||
@ResponseBody
|
||
@DockAnnotation(isAdd = true)
|
||
public Object check() throws Exception {
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
Integer code = 000000;
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
/** 必填项,隐患id ,是否合格 1合格2不合格,验收描述 ,验收时间 **/
|
||
String serl = "HIDDEN_ID,ISQUALIFIED";
|
||
if ("1".equals(pd.getString("ISQUALIFIED"))) {
|
||
serl += ",CHECKDESCR,CHECK_TIME";
|
||
} else {
|
||
serl += ",CONTENT";
|
||
}
|
||
code = HasAllRequired.hasAllRequired(pd, serl);
|
||
if (code != 000000) {
|
||
return ResultCodeConstant.resMap(code);
|
||
}
|
||
/*** 主表中验收人没用了*/
|
||
PageData hidden = hiddenApiService.findById(pd);
|
||
PageData check = new PageData();
|
||
if ("1".equals(pd.getString("ISQUALIFIED"))) { //验收合格
|
||
/** 获取所有的验收信息 ,隐患验收人是否全部验收 **/
|
||
int checkCount = 0;//已经验收的人数
|
||
List<PageData> hiddenCheckList = hiddenCheckApiService.findByHidden(pd.getString("HIDDEN_ID"));//这条隐患的全部验收人
|
||
if (hiddenCheckList.size() == 0) {
|
||
return ResultCodeConstant.resMap(000220, map);
|
||
}
|
||
Map<String, String> hiddenCheckMap = new HashMap<>();
|
||
int count = 1;
|
||
for (PageData pageData : hiddenCheckList) {
|
||
if ("1".equals(pageData.getString("STATUS"))) {
|
||
checkCount++; //以前验收的++
|
||
}
|
||
if (Jurisdiction.getUSER_ID().equals(pageData.getString("USER_ID"))) {
|
||
check = pageData;
|
||
PageData exampd = hiddenCheckApiService.checkHidden(pd.getString("HIDDEN_ID"), pageData.getString("HIDDENCHECK_ID"), pd.getString("CHECKDESCR"), pd.getString("CHECK_TIME"), Jurisdiction.getDEPARTMENT_ID(), Jurisdiction.getUSER_ID());
|
||
hiddenCheckMap.put("exampd"+count, JSON.toJSONString(exampd));
|
||
count++;
|
||
checkCount++; //本次的++
|
||
}
|
||
}
|
||
pd.put("hiddenCheckMap", JSON.toJSONString(hiddenCheckMap));
|
||
if (hiddenCheckList.size() != 0) {
|
||
if (checkCount != hiddenCheckList.size()) { //还有没有验收的人
|
||
return ResultCodeConstant.resMap(000203, map);
|
||
}
|
||
}
|
||
|
||
hiddenApiService.check(pd.getString("HIDDEN_ID"), pd.getString("CHECK_TIME")); //验收隐患
|
||
//给隐患整改人发送信息
|
||
|
||
applicationContext.publishEvent(new DeviceHiddenEvent(new Object(), pd.getString("HIDDEN_ID"), "0"));//消防检查的通知
|
||
/** 暂时没有整理 **/
|
||
if (Tools.notEmpty(pd.getString("INSPECTION_ID"))) { //安全环保检查验收
|
||
pd.put("ACCEPTSTEP", 6);
|
||
List<PageData> list = hiddenService.listOtherNotAccept(pd);
|
||
PageData inspection = new PageData();
|
||
if (list.size() == 0) {
|
||
inspection.put("INSPECTION_ID", pd.getString("INSPECTION_ID"));
|
||
inspection.put("OPERATOR", Jurisdiction.getUSER_ID());
|
||
inspection.put("OPERATTIME", DateUtil.date2Str(new Date()));
|
||
inspection.put("INSPECTION_STATUS", "6"); // 已验收
|
||
safetyenvironmentalService.editStatus(inspection);
|
||
inspection.put("HIDDEN_vector", pd.getString("HIDDEN_ID"));
|
||
}
|
||
inspection.put("INSPECTION_ID", pd.getString("INSPECTION_ID"));
|
||
inspection.put("OPERATOR", Jurisdiction.getUSER_ID());
|
||
inspection.put("HIDDEN_vector", pd.getString("HIDDEN_ID"));
|
||
noticeUtil.SE_ThreeStepUtil(inspection);
|
||
}
|
||
} else { //验收不合格 删除隐患。需要删除所有验收信息
|
||
/** 删除验收图片 **/
|
||
PageData hiddenCheck = new PageData();
|
||
hiddenCheck.put("FOREIGN_KEY", pd.get("HIDDEN_ID"));
|
||
hiddenCheck.put("TYPE", "4");
|
||
List<PageData> checkImgList = imgFilesService.listAll(hiddenCheck);
|
||
for (PageData pageData : checkImgList) {
|
||
imgFilesService.delete(pageData);
|
||
if (Tools.notEmpty(pageData.getString("FILEPATH"))) {
|
||
Smb.deleteFile(pageData.getString("FILEPATH"));
|
||
}
|
||
}
|
||
/** 删除所有验收人数据。**/
|
||
hiddenCheckApiService.deleteByHiddenId(pd.getString("HIDDEN_ID"));
|
||
/** 验收打回 **/
|
||
hiddenApiService.repulseCheck(pd.getString("HIDDEN_ID"));
|
||
/** 记录打回 **/
|
||
PageData exam = hiddenExamineApiService.saveRepulseCheck(pd.getString("HIDDEN_ID"), pd.getString("CONTENT"));
|
||
pd.put("exam",JSON.toJSONString(exam));
|
||
/** 给隐患整改人发送站内信**/
|
||
messageService.sendMessageByParameter("HIDDEN_MAIL_002", "友情提示:有一条隐患被打回",
|
||
hidden.getString("CORPINFO_ID"), pd.getString("USER_ID"), hidden.getString("HIDDEN_ID"),
|
||
hidden.getString("HIDDENDESCR"), "整改", "重新整改", "", "");
|
||
}
|
||
map.put("check", check);
|
||
map.put("dockData",JSON.toJSONString(pd));
|
||
return ResultCodeConstant.resMap(code, map);
|
||
}
|
||
|
||
/**
|
||
* 过去隐患列表
|
||
*
|
||
* @param page
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
@RequestMapping(value = "/getList")
|
||
@RequiresPermissions("hidden:list")
|
||
@ResponseBody
|
||
public Object getList(Page page) throws Exception {
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
String errInfo = "success";
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
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);
|
||
}
|
||
/*上方的条件选择都是 condform */
|
||
|
||
/**
|
||
* 1。权限管理,就是可以查看关于我的隐患
|
||
* 隐患发现人,隐患确认人,隐患整改人,隐患验收人
|
||
* bus_hidden_user 隐患发现人 ; bus_hidden CONFIRM_USER 隐患确认人 ;bus_hidden RECTIFICATIONOR 隐患整改人; bus_hiddencheck 隐患验收人
|
||
*/
|
||
page.setPd(pd);
|
||
List<PageData> varList = hiddenApiService.getList(page); // 列出Hidden列表
|
||
/** 隐患发现人,隐患验收人 验收时间**/
|
||
String[] hiddenIds = new String[varList.size()];
|
||
for (int i = 0; i < varList.size(); i++) {
|
||
hiddenIds[i] = varList.get(i).getString("HIDDEN_ID");
|
||
}
|
||
List<PageData> hiddenUserList = new ArrayList<>(); // 隐患发现人
|
||
List<PageData> hiddenCheckUserList = new ArrayList<>(); // 隐患验收人
|
||
if (varList.size() != 0) {
|
||
hiddenUserList = hiddenUserApiService.getListByHiddenIds(hiddenIds); // 隐患发现人
|
||
hiddenCheckUserList = hiddenCheckApiService.getListByHiddenIds(hiddenIds); // 隐患验收人
|
||
}
|
||
|
||
Map<String, String> hiddenUserMap = new HashMap<>(); // key hiddenId val:隐患发现人名字
|
||
Map<String, String> hiddenCheckUserMap = new HashMap<>(); // key hiddenId val:隐患验收人
|
||
for (PageData pageData : hiddenUserList) {
|
||
String valName = "";
|
||
if (hiddenUserMap.containsKey(pageData.getString("HIDDEN_ID"))) {
|
||
valName = hiddenUserMap.get(pageData.getString("HIDDEN_ID"));
|
||
}
|
||
valName += pageData.getString("NAME") + ",";
|
||
hiddenUserMap.put(pageData.getString("HIDDEN_ID"), valName);
|
||
}
|
||
for (PageData pageData : hiddenCheckUserList) {
|
||
String valName = "";
|
||
if (hiddenCheckUserMap.containsKey(pageData.getString("HIDDEN_ID"))) {
|
||
valName = hiddenCheckUserMap.get(pageData.getString("HIDDEN_ID"));
|
||
}
|
||
valName += pageData.getString("NAME") + ",";
|
||
hiddenCheckUserMap.put(pageData.getString("HIDDEN_ID"), valName);
|
||
}
|
||
|
||
|
||
for (PageData pageData : varList) {
|
||
String hiddenId = pageData.getString("HIDDEN_ID");
|
||
if (hiddenUserMap.containsKey(hiddenId)) {
|
||
String names = hiddenUserMap.get(hiddenId);
|
||
pageData.put("userNames", names.substring(0, (names.length() - 1)));
|
||
|
||
}
|
||
if (hiddenCheckUserMap.containsKey(hiddenId)) {
|
||
String names = hiddenCheckUserMap.get(hiddenId);
|
||
pageData.put("checkNames", names.substring(0, (names.length() - 1)));
|
||
}
|
||
}
|
||
|
||
map.put("varList", varList);
|
||
map.put("page", page);
|
||
map.put("result", errInfo);
|
||
return map;
|
||
}
|
||
|
||
/**
|
||
* 导出到excel
|
||
*
|
||
* @param
|
||
* @throws Exception
|
||
*/
|
||
@RequestMapping(value = "/excel")
|
||
// // @RequiresPermissions("toExcel")
|
||
public ModelAndView exportExcel() throws Exception {
|
||
ModelAndView mv = new ModelAndView();
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
|
||
String dicParentId = "5e7cf8620ba54ad89719d0be62133c7a";
|
||
List<Dictionaries> dicList = dictionariesService.listSubDictByParentId(dicParentId);// 字典
|
||
Map<String, String> dicMap = new HashMap<>();
|
||
for (Dictionaries pageData : dicList) {
|
||
dicMap.put(pageData.getBIANMA(), pageData.getNAME());
|
||
}
|
||
// 隐患类型
|
||
String typeParentId = "3babc15144444bdc8d763d0af2bdfff6";
|
||
List<Dictionaries> typeList = dictionariesService.listSubDictByParentId(typeParentId);// 字典
|
||
Map<String, String> typeMap = new HashMap<>();
|
||
for (Dictionaries pageData : typeList) {
|
||
typeMap.put(pageData.getBIANMA(), pageData.getNAME());
|
||
}
|
||
|
||
// 隐患类型
|
||
String levelParentId = "5e7cf8620ba54ad89719d0be62133c7a";
|
||
List<Dictionaries> levelList = dictionariesService.listSubDictByParentId(levelParentId);// 字典
|
||
Map<String, String> levelMap = new HashMap<>();
|
||
for (Dictionaries pageData : levelList) {
|
||
levelMap.put(pageData.getBIANMA(), pageData.getNAME());
|
||
List<Dictionaries> levelList1 = dictionariesService.listSubDictByParentId(pageData.getDICTIONARIES_ID());
|
||
for (Dictionaries pageData1 : levelList1) {
|
||
levelMap.put(pageData1.getBIANMA(), pageData1.getNAME());
|
||
}
|
||
}
|
||
|
||
PageData corpIdPd = new PageData();
|
||
corpIdPd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());// CORPINFO_ID
|
||
Map<String, String> userMap = new HashMap<>();// 查看企业下的所有用户,根据用户id匹配信息
|
||
List<PageData> userList = usersService.listAllUser(corpIdPd);
|
||
for (PageData pageData : userList) {
|
||
userMap.put(pageData.getString("USER_ID"), pageData.getString("NAME"));
|
||
}
|
||
Map<String, String> deparMap = new HashMap<>();
|
||
List<PageData> deparList = departmentService.listAll(corpIdPd);// 查看企业下的所有部门,根据部门id匹配信息
|
||
for (PageData pageData : deparList) {
|
||
deparMap.put(pageData.getString("DEPARTMENT_ID"), pageData.getString("NAME"));
|
||
}
|
||
|
||
Map<String, String> sourceMap = new HashMap<>();
|
||
sourceMap.put("1", "隐患快报");
|
||
sourceMap.put("2", "隐患排查");
|
||
sourceMap.put("3", "隐患排查");
|
||
sourceMap.put("4", "安全环保检查(监管端)");
|
||
sourceMap.put("5", "安全环保检查(企业端)");
|
||
Map<String, String> stateMap = new HashMap<>();
|
||
stateMap.put("-2", "待确认");
|
||
stateMap.put("-1", "已过期");
|
||
stateMap.put("0", "未提交");
|
||
stateMap.put("1", "未整改");
|
||
stateMap.put("2", "已整改");
|
||
stateMap.put("3", "已复查");
|
||
stateMap.put("4", "已验收");
|
||
stateMap.put("5", "忽略隐患");
|
||
stateMap.put("6", "重大隐患");
|
||
stateMap.put("7", "待处理的特殊隐患");
|
||
stateMap.put("8", "已处理的特殊隐患");
|
||
stateMap.put("10", "验收打回");
|
||
Map<String, String> rectifType = new HashMap<>();
|
||
rectifType.put("1", "立即整改");
|
||
rectifType.put("2", "限期整改");
|
||
Map<String, Object> haveschemeMap = new HashMap<>();
|
||
haveschemeMap.put("0", "无");
|
||
haveschemeMap.put("1", "有");
|
||
Map<String, Object> ysStatusMap = new HashMap<>();
|
||
ysStatusMap.put("0", "否");
|
||
ysStatusMap.put("1", "是");
|
||
|
||
Map<String, Object> dataMap = new HashMap<String, Object>();// 传给导出页面的数据
|
||
List<String> imgKeyId = new ArrayList<>();// 需要查询图片的id标识信息
|
||
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); // 企业id
|
||
String KEYWORDS = pd.getString("KEYWORDS"); // 关键词检索条件
|
||
if (Tools.notEmpty(KEYWORDS))
|
||
pd.put("KEYWORDS", KEYWORDS.trim());
|
||
String ISQUALIFIED = pd.getString("ISQUALIFIED"); // 关键词检索条件
|
||
if (Tools.notEmpty(ISQUALIFIED))
|
||
pd.put("ISQUALIFIED", ISQUALIFIED.trim());
|
||
String HIDDENLEVELE = pd.getString("HIDDENLEVELE"); // 关键词检索条件
|
||
if (Tools.notEmpty(HIDDENLEVELE))
|
||
pd.put("HIDDENLEVELE", HIDDENLEVELE.trim());
|
||
String STARTTIME = pd.getString("STARTTIME"); // 关键词检索条件
|
||
if (Tools.notEmpty(STARTTIME))
|
||
pd.put("STARTTIME", STARTTIME.trim());
|
||
String STATE = pd.getString("STATE"); // 关键词检索条件
|
||
if (Tools.notEmpty(STATE))
|
||
pd.put("STATE", STATE.trim());
|
||
String ENDTIME = pd.getString("ENDTIME"); // 关键词检索条件
|
||
if (Tools.notEmpty(ENDTIME))
|
||
pd.put("ENDTIME", ENDTIME + " 23:59:59");
|
||
String DISPOSESTATE = pd.getString("DISPOSESTATE"); // 关键词检索条件
|
||
if (Tools.notEmpty(DISPOSESTATE)) {
|
||
pd.put("DISPOSESTATE", DISPOSESTATE.trim());
|
||
pd.put("SELFUSERID", Jurisdiction.getUSER_ID());
|
||
pd.put("USERDEPT", Jurisdiction.getDEPARTMENT_ID());
|
||
}
|
||
String IS_SELF = pd.getString("IS_SELF"); // 关键词检索条件
|
||
if (IS_SELF != null && IS_SELF.equals("1"))
|
||
pd.put("SELF_USER_ID", Jurisdiction.getUSER_ID());
|
||
// 查看隐患信息
|
||
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
|
||
if (!Jurisdiction.getIS_MAIN().equals("1")) { //主账号
|
||
pd.put("queryUserId", Jurisdiction.getUSER_ID());
|
||
}
|
||
List<PageData> varOList = hiddenService.listAll(pd); //导出查询修改不查0、5、7、8、100、101、102 较大、忽略、重大隐患
|
||
varOList = hiddenUserService.getHiddebFind(varOList);
|
||
for (PageData pageData : varOList) {
|
||
imgKeyId.add(pageData.getString("HIDDEN_ID"));
|
||
}
|
||
|
||
// 查询整改方案
|
||
List<PageData> schemeList = hiddenSchemeService.listAll(corpIdPd);
|
||
Map<String, PageData> schemeMap = new HashMap<>();
|
||
for (PageData pageData : schemeList) {
|
||
schemeMap.put(pageData.getString("HIDDEN_ID"), pageData);
|
||
// imgKeyId.add(pageData.getString("HIDDEN_ID"));
|
||
imgKeyId.add(pageData.getString("HIDDENSCHEME_ID"));
|
||
}
|
||
// 验收信息
|
||
List<PageData> checkList = hiddenCheckService.listAll(corpIdPd);
|
||
Map<String, List<PageData>> checkMap = new HashMap<>();
|
||
Integer checkMaxCount = 1;
|
||
for (PageData pageData : checkList) {
|
||
Integer checkCount = 1;
|
||
List<PageData> vaList = new ArrayList<>();
|
||
if (checkMap.containsKey(pageData.get("HIDDEN_ID"))) {
|
||
vaList = checkMap.get(pageData.get("HIDDEN_ID"));
|
||
checkCount = vaList.size();
|
||
if (checkMaxCount < checkCount) {
|
||
checkMaxCount = checkCount;
|
||
}
|
||
}
|
||
vaList.add(pageData);
|
||
checkMap.put(pageData.get("HIDDEN_ID").toString(), vaList);
|
||
imgKeyId.add(pageData.getString("HIDDENCHECK_ID"));
|
||
}
|
||
|
||
String[] imgId = new String[imgKeyId.size()];
|
||
for (int i = 0; i < imgKeyId.size(); i++) {
|
||
imgId[i] = imgKeyId.get(i);
|
||
}
|
||
PageData imgpd2 = new PageData();
|
||
imgpd2.put("ArrayDATA_IDS", imgId);
|
||
List<PageData> imgList = imgFilesService.listAllByIds(imgpd2);
|
||
|
||
Map<String, Integer> imgCount = new HashMap<>();
|
||
Integer imgTypeMaxCount1 = 1, imgTypeMaxCount2 = 1, imgTypeMaxCount3 = 1, imgTypeMaxCount4 = 1,
|
||
imgTypeMaxCount5 = 1, imgTypeMaxCount6 = 1, imgTypeMaxCount7 = 1, imgTypeMaxCount8 = 1;
|
||
|
||
Map<String, List<String>> imgMap = new HashMap<>();
|
||
for (int i = 0; i < imgList.size(); i++) {
|
||
if (Tools.isEmpty(imgList.get(i).get("TYPE"))) {
|
||
continue;
|
||
}
|
||
if (Tools.isEmpty(imgList.get(i).get("FOREIGN_KEY"))) {
|
||
continue;
|
||
}
|
||
List<String> list = new ArrayList<>();
|
||
String key = imgList.get(i).getString("FOREIGN_KEY") + ";" + imgList.get(i).get("TYPE");
|
||
if (imgMap.containsKey(key)) {
|
||
list = imgMap.get(key);
|
||
}
|
||
list.add(imgList.get(i).getString("FILEPATH"));
|
||
imgMap.put(key, list);
|
||
String imgType = imgList.get(i).get("TYPE").toString();
|
||
Integer count = 1;
|
||
if (imgCount.containsKey(key)) {
|
||
count = imgCount.get(key) + 1;
|
||
}
|
||
if ("1".equals(imgType)) {
|
||
if (imgTypeMaxCount1 < count) {
|
||
imgTypeMaxCount1 = count;
|
||
}
|
||
}
|
||
if ("2".equals(imgType)) {
|
||
if (imgTypeMaxCount2 < count) {
|
||
imgTypeMaxCount2 = count;
|
||
}
|
||
}
|
||
if ("3".equals(imgType)) {
|
||
if (imgTypeMaxCount3 < count) {
|
||
imgTypeMaxCount3 = count;
|
||
}
|
||
}
|
||
if ("4".equals(imgType)) {
|
||
if (imgTypeMaxCount4 < count) {
|
||
imgTypeMaxCount4 = count;
|
||
}
|
||
}
|
||
if ("5".equals(imgType)) {
|
||
if (imgTypeMaxCount5 < count) {
|
||
imgTypeMaxCount5 = count;
|
||
}
|
||
}
|
||
if ("6".equals(imgType)) {
|
||
if (imgTypeMaxCount6 < count) {
|
||
imgTypeMaxCount6 = count;
|
||
}
|
||
}
|
||
if ("7".equals(imgType)) {
|
||
if (imgTypeMaxCount7 < count) {
|
||
imgTypeMaxCount7 = count;
|
||
}
|
||
}
|
||
if ("8".equals(imgType)) {
|
||
if (imgTypeMaxCount8 < count) {
|
||
imgTypeMaxCount8 = count;
|
||
}
|
||
}
|
||
imgCount.put(key, count);
|
||
}
|
||
List<PageData> varList = new ArrayList<PageData>();
|
||
for (PageData pageData : varOList) {
|
||
int count = 0;
|
||
PageData vpd = new PageData();
|
||
String hidId = pageData.getString("HIDDEN_ID");
|
||
vpd.put("var" + (1 + count), sourceMap.get(pageData.getString("SOURCE")));
|
||
// vpd.put("var" + (2 + count), pageData.getString("RISK_UNIT"));
|
||
// vpd.put("var" + (3 + count), pageData.getString("IDENTIFICATION"));
|
||
// vpd.put("var" + (4 + count), pageData.getString("RISK_DESCR"));
|
||
// vpd.put("var" + (5 + count), pageData.getString("LEVEL"));
|
||
// vpd.put("var" + (6 + count), pageData.getString("CHECK_CONTENT"));
|
||
vpd.put("var" + (2 + count), levelMap.get(pageData.getString("HIDDENLEVEL")));
|
||
vpd.put("var" + (3 + count), pageData.getString("HIDDENTYPENAME"));
|
||
|
||
vpd.put("var" + (4 + count), stateMap.get(pageData.getString("STATE")));
|
||
vpd.put("var" + (5 + count), pageData.getString("HIDDENDESCR"));
|
||
vpd.put("var" + (6 + count), pageData.getString("HIDDENPARTNAME"));
|
||
vpd.put("var" + (7 + count), pageData.getString("POSITIONDESC"));
|
||
|
||
vpd.put("var" + (8 + count), pageData.getString("findDeptNames"));
|
||
vpd.put("var" + (9 + count), pageData.getString("findUserNames"));
|
||
vpd.put("var" + (10 + count), pageData.getString("CREATTIME"));
|
||
vpd.put("var" + (11 + count), rectifType.get(pageData.getString("RECTIFICATIONTYPE")));
|
||
|
||
vpd.put("var" + (12 + count), pageData.getString("conUserName"));//确认人
|
||
vpd.put("var" + (13 + count), pageData.getString("CONFIRM_TIME")); //确认时间
|
||
|
||
vpd.put("var" + (14 + count), pageData.getString("RECTIFICATIONDEADLINE"));
|
||
List<String> yhImg = imgMap.get(pageData.getString("HIDDEN_ID") + ";3");
|
||
for (int i = 0; i < imgTypeMaxCount3; i++) {
|
||
if (null != yhImg) {
|
||
if (i < yhImg.size()) {
|
||
vpd.put("img" + (15 + i), yhImg.get(i));
|
||
} else {
|
||
vpd.put("img" + (15 + i), "");
|
||
}
|
||
} else {
|
||
vpd.put("img" + (15 + i), "");
|
||
}
|
||
|
||
}
|
||
count += imgTypeMaxCount3;
|
||
vpd.put("var" + (15 + count), pageData.getString("RECTIFYDESCR"));// 整改描述
|
||
vpd.put("var" + (16 + count), deparMap.get(pageData.getString("RECTIFICATIONDEPT")));// 整改部门
|
||
vpd.put("var" + (16 + count), deparMap.get(pageData.getString("RECTIFICATIONDEPT")));// 整改部门
|
||
vpd.put("var" + (17 + count), userMap.get(pageData.getString("RECTIFICATIONOR")));// 整改人
|
||
vpd.put("var" + (18 + count), pageData.getString("RECTIFICATIONTIME"));// 整改时间
|
||
List<String> zgImg = imgMap.get(hidId + ";4");// 整改后图片
|
||
for (int i = 0; i < imgTypeMaxCount4; i++) {
|
||
if (null != zgImg) {
|
||
if (i < zgImg.size()) {
|
||
vpd.put("img" + (19 + count + i), zgImg.get(i));
|
||
} else {
|
||
vpd.put("img" + (19 + count + i), "");
|
||
}
|
||
} else {
|
||
vpd.put("img" + (19 + count + i), "");
|
||
}
|
||
|
||
}
|
||
count += imgTypeMaxCount4;
|
||
vpd.put("var" + (19 + count), haveschemeMap.get(pageData.getString("HAVESCHEME")));// 整改方案
|
||
if (schemeMap.containsKey(hidId)) {
|
||
// count += imgTypeMaxCount8;
|
||
if (checkMap.containsKey(hidId)) {
|
||
List<PageData> check = checkMap.get(hidId);
|
||
for (PageData pageData2 : check) {
|
||
vpd.put("var" + (20 + count), pageData2.getString("CHECKDESCR"));// 验收描述
|
||
|
||
if ("1".equals(pageData2.getString("STATUS"))) {
|
||
vpd.put("var" + (21 + count), "是");// 是否合格
|
||
} else {
|
||
vpd.put("var" + (21 + count), "否");// 是否合格
|
||
}
|
||
vpd.put("var" + (22 + count), pageData2.getString("CHECKDEPTNAME"));// 验收部门
|
||
vpd.put("var" + (23 + count), pageData2.getString("CHECKORNAME"));// 验收人
|
||
vpd.put("var" + (24 + count), pageData2.getString("CHECK_TIME"));// 验收时间
|
||
List<PageData> yanshoutupian = imgFilesService.getListByKeyAndType(pageData2.get("HIDDENCHECK_ID").toString(), "5");
|
||
// vpd.put("img" + (25 + count), pageData2.getString("CHECK_TIME"));// 验收图片
|
||
for (int i = 0; i < yanshoutupian.size(); i++) {
|
||
vpd.put("img" + (25 + count + i), yanshoutupian.get(i).get("FILEPATH"));
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
varList.add(vpd);
|
||
}
|
||
|
||
List<String> titles = new ArrayList<String>();
|
||
|
||
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("隐患处置"); // 13
|
||
titles.add("确认人"); // 11***
|
||
titles.add("确认时间"); // 12 ***
|
||
|
||
titles.add("整改期限"); // 14
|
||
for (int i = 0; i < imgTypeMaxCount3; i++) {
|
||
titles.add("隐患图片"); // 14*
|
||
}
|
||
|
||
titles.add("整改描述");
|
||
titles.add("整改部门");
|
||
titles.add("整改人");
|
||
titles.add("整改时间");
|
||
|
||
for (int i = 0; i < imgTypeMaxCount4; i++) {
|
||
titles.add("整改后图片"); // 11
|
||
}
|
||
|
||
titles.add("整改方案");
|
||
titles.add("验收描述");
|
||
titles.add("是否合格");
|
||
titles.add("验收部门");
|
||
titles.add("验收人");
|
||
titles.add("验收时间");
|
||
for (int j = 0; j < 4; j++) {
|
||
titles.add("验收图片");
|
||
}
|
||
// titles.add("排查日期");
|
||
// titles.add("隐患清单");
|
||
// titles.add("治理标准要求");
|
||
// titles.add("治理方法");
|
||
// titles.add("经费和物资的落实");
|
||
// titles.add("负责治理人员");
|
||
// titles.add("工时安排");
|
||
// titles.add("时限要求");
|
||
// titles.add("应急预案附件");
|
||
// titles.add("工作要求");
|
||
// titles.add("其他事项");
|
||
/*for (int i = 0; i < imgTypeMaxCount8; i++) {
|
||
titles.add("方案图片"); // 11
|
||
}*/
|
||
/*for (int i = 0; i < checkMaxCount; i++) {
|
||
titles.add("验收描述");
|
||
titles.add("是否合格");
|
||
titles.add("验收部门");
|
||
titles.add("验收人");
|
||
titles.add("验收时间");
|
||
|
||
*//*for (int j = 0; j < imgTypeMaxCount5; j++) {
|
||
titles.add("验收图片");
|
||
}*//*
|
||
}*/
|
||
dataMap.put("titles", titles);
|
||
dataMap.put("varList", varList);
|
||
HiddenExcelImgForServerView erv2 = new HiddenExcelImgForServerView();
|
||
mv = new ModelAndView(erv2, dataMap);
|
||
return mv;
|
||
}
|
||
|
||
|
||
@RequestMapping(value = "/getCountExcel")
|
||
public void exportExcels(HttpServletResponse response) throws Exception {
|
||
PageData pd = new PageData();
|
||
pd = this.getPageData();
|
||
//这里进入开始获取数据阶段 首先拿到所有部门数据
|
||
String url ="department_list.html?DEPARTMENT_ID=";
|
||
List<Department> departments = departmentService.listAllDepartment(Jurisdiction.getCORPINFO_ID(), url);
|
||
//装船部 zcb id集合 89f3d30c4031432da53b75bed442ced8
|
||
List<String> zcbdepartmentIds = new ArrayList<>();
|
||
//保障部 bzb id集合 fcae9cc13a354be699d85d6aea3b3450
|
||
List<String> bzbdepartmentIds = new ArrayList<>();
|
||
//卸车部 xcb id集合 aad337cf728b4cc2b63e210caf4e185f
|
||
List<String> xcbdepartmentIds = new ArrayList<>();
|
||
//安监部 ajb id集合 4c4b7bc93e3347978f5a3e1f0c4a0b56
|
||
List<String> ajbdepartmentIds = new ArrayList<>();
|
||
//开始处理数据 扔进对应结合中
|
||
for(Department department:departments){
|
||
if(StringUtils.equals("89f3d30c4031432da53b75bed442ced8",department.getDEPARTMENT_ID())){
|
||
zcbdepartmentIds = getIdsList(department,zcbdepartmentIds);
|
||
}
|
||
if(StringUtils.equals("fcae9cc13a354be699d85d6aea3b3450",department.getDEPARTMENT_ID())){
|
||
bzbdepartmentIds = getIdsList(department,bzbdepartmentIds);
|
||
}
|
||
if(StringUtils.equals("aad337cf728b4cc2b63e210caf4e185f",department.getDEPARTMENT_ID())){
|
||
xcbdepartmentIds = getIdsList(department,xcbdepartmentIds);
|
||
}
|
||
if(StringUtils.equals("4c4b7bc93e3347978f5a3e1f0c4a0b56",department.getDEPARTMENT_ID())){
|
||
ajbdepartmentIds = getIdsList(department,ajbdepartmentIds);
|
||
}
|
||
}
|
||
//处理日期 类型 年 季度 月
|
||
String type = pd.getString("type");
|
||
String year = pd.getString("year");
|
||
String num = pd.getString("num");
|
||
String startTime = "";
|
||
String endTime = "";
|
||
//年
|
||
if(StringUtils.equals("1",type)){
|
||
startTime = year+"-01-01 00:00:00";
|
||
endTime = year+"-12-31 23:59:59";
|
||
}
|
||
//季度
|
||
if(StringUtils.equals("2",type)){
|
||
switch (num){
|
||
case "1" :
|
||
startTime = year+"-01-01 00:00:00";
|
||
endTime = year+"-03-31 23:59:59";
|
||
break;
|
||
case "2" :
|
||
startTime = year+"-04-01 00:00:00";
|
||
endTime = year+"-06-30 23:59:59";
|
||
break;
|
||
case "3" :
|
||
startTime = year+"-07-01 00:00:00";
|
||
endTime = year+"-09-30 23:59:59";
|
||
break;
|
||
case "4" :
|
||
startTime = year+"-10-01 00:00:00";
|
||
endTime = year+"-12-31 23:59:59";
|
||
break;
|
||
}
|
||
}
|
||
//月
|
||
if(StringUtils.equals("3",type)){
|
||
startTime = year+"-01 00:00:00";
|
||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||
// 解析字符串为LocalDateTime
|
||
LocalDateTime dateTime = LocalDateTime.parse(startTime, formatter);
|
||
LocalDate localDate = dateTime.toLocalDate();
|
||
LocalDate lastDayOfMonth = localDate.with(java.time.temporal.TemporalAdjusters.lastDayOfMonth());
|
||
// 将LocalDateTime转换为ZonedDateTime(如果需要的话)
|
||
ZonedDateTime zonedDateTime = lastDayOfMonth.atStartOfDay(ZoneId.of("Asia/Shanghai"));
|
||
// 定义日期格式化器(仅日期部分)
|
||
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||
// 格式化ZonedDateTime对象为仅包含日期的字符串
|
||
String formattedDate = dateFormatter.format(zonedDateTime);
|
||
endTime = formattedDate+" 23:59:59";
|
||
}
|
||
//前置搜索条件处理完毕
|
||
pd.put("zcbdepartmentIds",zcbdepartmentIds);
|
||
pd.put("bzbdepartmentIds",bzbdepartmentIds);
|
||
pd.put("xcbdepartmentIds",xcbdepartmentIds);
|
||
pd.put("ajbdepartmentIds",ajbdepartmentIds);
|
||
pd.put("startTime",startTime);
|
||
pd.put("endTime",endTime);
|
||
//这里获取数据 获取指定日期范围内和指定部门集合创建的隐患总数
|
||
Map<String,Object> map = hiddenService.getExcelMap(pd);
|
||
//年
|
||
if(StringUtils.equals("1",type)){
|
||
map.put("type","统计年度:");
|
||
map.put("num",year+"年");
|
||
}
|
||
//季度
|
||
if(StringUtils.equals("2",type)){
|
||
map.put("type","统计季度:");
|
||
map.put("num",year+"年第"+num+"季度");
|
||
}
|
||
//月
|
||
if(StringUtils.equals("3",type)){
|
||
map.put("type","统计月度:");
|
||
map.put("num",year+"年第"+num+"月");
|
||
}
|
||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
|
||
String date =sdf.format(new Date());
|
||
map.put("date","填表日期:"+date);
|
||
//开始执行模板填充数据
|
||
String excelFilePath = "C:\\Users\\Administrator\\Desktop\\隐患统计.xlsx"; // 替换为你的Excel文件路径
|
||
//正则
|
||
String regex = "\\{\\{.*?\\}\\}";
|
||
Pattern pattern = Pattern.compile(regex);
|
||
try (FileInputStream inputStream = new FileInputStream(new File(excelFilePath));
|
||
Workbook workbook = new XSSFWorkbook(inputStream)) {
|
||
Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
|
||
for (Row row : sheet) {
|
||
for (Cell cell : row) {
|
||
String fileurl = cell.getStringCellValue();
|
||
Matcher matcher = pattern.matcher(fileurl);
|
||
if (matcher.matches()) {
|
||
String key = fileurl.substring(2, fileurl.length() - 2);
|
||
String value = map.get(key).toString();
|
||
cell.setCellValue(value);
|
||
}
|
||
}
|
||
}
|
||
try (OutputStream outputStream = response.getOutputStream()) {
|
||
workbook.write(outputStream);
|
||
workbook.close();
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
System.out.println("Excel文件导出成功!");
|
||
}
|
||
}
|
||
|
||
public List<String> getIdsList(Department department,List<String> ids){
|
||
ids.add(department.getDEPARTMENT_ID());
|
||
for(Department dept :department.getSubDepartment() ){
|
||
if(dept.getSubDepartment().size()>0){
|
||
getIdsList(dept,ids);
|
||
}else {
|
||
ids.add(dept.getDEPARTMENT_ID());
|
||
}
|
||
}
|
||
return ids;
|
||
}
|
||
}
|