package com.zcloud.controller.bus; 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.User; import com.zcloud.service.bus.*; import com.zcloud.service.inspection.SafetyEnvironmentalService; import com.zcloud.util.*; import com.zcloud.util.event.DeviceHiddenEvent; import com.zcloud.util.message.MessageService; 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 javax.annotation.Resource; import java.util.*; /** * 说明:隐患审核 * 作者:luoxiaobao * 时间:2022-04-14 * 官网:www.zcloudchina.com */ @Controller @RequestMapping("/hiddenexamine") public class HiddenExamineController extends BaseController { @Autowired private HiddenExamineService hiddenexamineService; @Autowired private HiddenService hiddenService; @Autowired private ImgFilesService imgFilesService; @Autowired private HiddenUserService hiddenUserService; // 隐患相关人员信息 @Autowired private MessageService messageService; @Autowired private HiddenCheckService hiddenCheckService; @Autowired private HiddenSchemeService hiddenSchemeService; @Resource private ApplicationContext applicationContext; @Autowired private SafetyEnvironmentalService safetyenvironmentalService; @Autowired private NoticeCorpUtil noticeUtil; /** * 新增 * * @param * @throws Exception */ @RequestMapping(value = "/add") // @RequiresPermissions("hiddenexamine:add") @ResponseBody public Object add() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("HIDDENEXAMINE_ID", this.get32UUID()); //主键 hiddenexamineService.save(pd); map.put("result", errInfo); return map; } /** * 删除 * * @param out * @throws Exception */ @RequestMapping(value = "/delete") // @RequiresPermissions("hiddenexamine:del") @ResponseBody public Object delete() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); hiddenexamineService.delete(pd); map.put("result", errInfo); //返回结果 return map; } /** * 修改 * * @param * @throws Exception */ @RequestMapping(value = "/edit") // @RequiresPermissions("hiddenexamine:edit") @ResponseBody public Object edit() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("OPERATOR", Jurisdiction.getUSER_ID()); pd.put("OPERATTIME", DateUtil.date2Str(new Date())); hiddenexamineService.edit(pd); map.put("result", errInfo); return map; } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/list") // @RequiresPermissions("hiddenexamine:list") @ResponseBody public Object list(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 String STARTTIME = pd.getString("STARTTIME"); // 隐患发现时间 if (Tools.notEmpty(STARTTIME)) pd.put("STARTTIME", STARTTIME.trim()); if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim()); String ENDTIME = pd.getString("ENDTIME"); // 隐患发现时间 if (Tools.notEmpty(ENDTIME)) pd.put("ENDTIME", ENDTIME + " 23:59:59"); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); if ("2".equals(pd.getString("keyIsSpecial"))) { pd.put("CONFIRM_USER", Jurisdiction.getUSER_ID()); } // pd.put("CONFIRM_USER",Jurisdiction.getUSER_ID()); pd = Jurisdiction.getUserDataJurisdiction(pd); page.setPd(pd); List varList = hiddenexamineService.listAndHidden(page); //列出HiddenExamine列表 varList = hiddenUserService.getHiddebFind(varList); map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } /** * 去修改页面获取数据 * * @param * @throws Exception */ @RequestMapping(value = "/goEdit") // @RequiresPermissions("hiddenexamine:edit") @ResponseBody public Object goEdit() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd = hiddenexamineService.findByIdAndHidden(pd); //根据ID读取 List checkList = hiddenCheckService.listAll(pd); // 隐患验收信息 if (checkList != null && checkList.size() > 0) { PageData pd3 = new PageData(); pd3.put("TYPE", 5); for (PageData check : checkList) { pd3.put("FOREIGN_KEY", check.get("HIDDENCHECK_ID")); check.put("cImgs", imgFilesService.listAll(pd3));// 验收图片 } } List hiddenExa = hiddenexamineService.listAllByHiddenId(pd.getString("HIDDEN_ID")); //特殊审批信息 for (PageData pageData : hiddenExa) { if ("0".equals(pageData.getString("TYPE"))) { pd.put("editUserName", pageData.get("editUserName")); pd.put("editDeptName", pageData.get("editDeptName")); pd.put("editLevelName", pageData.get("editLevelName")); pd.put("editRectificationDeadline", pageData.get("spare3")); } } if (pd != null) { map.put("rImgs", imgFilesService.getListByKeyAndType(pd.getString("HIDDEN_ID"), "4"));// 整改图片 } PageData hs = hiddenSchemeService.findByHdId(pd); List sImgs = imgFilesService.getListByKeyAndType(pd.get("HIDDEN_ID"), "8"); if (hs != null && hs.getString("HIDDENSCHEME_ID") != null) { PageData pd31 = new PageData(); pd31.put("FOREIGN_KEY", hs.getString("HIDDENSCHEME_ID")); pd31.put("TYPE", 8); List sImgs2 = imgFilesService.listAll(pd31);// 方案图片 sImgs.addAll(sImgs2); } List hiddenFindPeople = hiddenUserService.listAll(pd);// 隐患相关人员信息 --隐患发现人 map.put("hiddenExa", hiddenExa); // map.put("checkList", checkList); map.put("hs", hs); map.put("sImgs", sImgs); map.put("hiddenVideo", imgFilesService.getListByKeyAndType(pd.getString("HIDDEN_ID"), "102"));// 隐患视频 map.put("hImgs", imgFilesService.getListByKeyAndType(pd.getString("HIDDEN_ID"), "3"));// 隐患图片 map.put("pd", pd); map.put("hiddenFindPeople", hiddenFindPeople); map.put("result", errInfo); return map; } /** * 批量删除 * * @param * @throws Exception */ @RequestMapping(value = "/deleteAll") // @RequiresPermissions("hiddenexamine:del") @ResponseBody public Object deleteAll() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); String DATA_IDS = pd.getString("DATA_IDS"); if (Tools.notEmpty(DATA_IDS)) { String ArrayDATA_IDS[] = DATA_IDS.split(","); hiddenexamineService.deleteAll(ArrayDATA_IDS); errInfo = "success"; } else { errInfo = "fail"; } 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(); Map dataMap = new HashMap(); List titles = new ArrayList(); titles.add("隐患ID"); //1 titles.add("审核原因"); //2 titles.add("创建人"); //3 titles.add("创建时间"); //4 titles.add("修改人"); //5 titles.add("修改时间"); //6 titles.add("1,特殊审核。2.延期审核"); //7 dataMap.put("titles", titles); List varOList = hiddenexamineService.listAll(pd); List varList = new ArrayList(); for (int i = 0; i < varOList.size(); i++) { PageData vpd = new PageData(); vpd.put("var1", varOList.get(i).getString("HIDDEN_ID")); //1 vpd.put("var2", varOList.get(i).getString("EXAMINE")); //2 vpd.put("var3", varOList.get(i).getString("CREATOR")); //3 vpd.put("var4", varOList.get(i).getString("CREATTIME")); //4 vpd.put("var5", varOList.get(i).getString("OPERATOR")); //5 vpd.put("var6", varOList.get(i).getString("OPERATTIME")); //6 vpd.put("var7", varOList.get(i).get("STATE").toString()); //7 varList.add(vpd); } dataMap.put("varList", varList); ObjectExcelView erv = new ObjectExcelView(); mv = new ModelAndView(erv, dataMap); return mv; } /** * 隐患延时确认 * 1.找到延时信息 * 2.修改隐患完成时间 * * @throws Exception */ @RequestMapping(value = "/delayedExamine") @RequiresPermissions("hidden:edit") @ResponseBody @DockAnnotation() public Object delayedExamine() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); PageData hiddenExa = hiddenexamineService.findById(pd); if (Tools.isEmpty(hiddenExa)) { errInfo = "ERROR"; map.put("pd", pd); map.put("result", errInfo); map.put("msg", "未找到该隐患的审批信息,请联系管理员确认!"); return map; } hiddenExa.put("OPERATTIME", DateUtil.date2Str(new Date())); hiddenService.updateHiddenRectificationDeadline(hiddenExa); // 修改隐患的整改期限 hiddenExa.put("STATE", pd.getString("STATE")); pd.put("OPERATOR", Jurisdiction.getUSER_ID()); pd.put("OPERATTIME", DateUtil.date2Str(new Date())); hiddenexamineService.edit(hiddenExa); if (Tools.isEmpty(hiddenExa)) { } else { pd.put("HIDDEN_ID", hiddenExa.getString("HIDDEN_ID")); PageData hiddenpd = hiddenService.findById(pd); messageService.sendMessageByParameter("HIDDEN_MAIL_007", "友情提示:有一条隐患需要确认", hiddenpd.getString("CORPINFO_ID"), hiddenpd.getString("RECTIFICATIONOR"), pd.getString("HIDDEN_ID"), hiddenpd.getString("HIDDENDESCR"), "隐患整改", "确认", "", ""); } map.put("result", errInfo); map.put("dockData", JSON.toJSONString(pd)); return map; } /** * 延时申请 * * @param * @throws Exception */ @RequestMapping(value = "/delayed") @ResponseBody @Transactional public Object delayed(@RequestParam(value = "FFILE", required = false) MultipartFile file) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); 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")); 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 = hiddenexamineService.save(examine); pd.put("HIDDEN_ID", pd.getString("HIDDEN_ID")); PageData hiddenpd = hiddenService.findById(pd); messageService.sendMessageByParameter("HIDDEN_MAIL_007", "友情提示:有一条隐患需要延期审核", Jurisdiction.getCORPINFO_ID(), hiddenpd.getString("CONFIRM_USER"), pd.getString("HIDDEN_ID"), hiddenpd.getString("HIDDENDESCR"), "延期审核", "审核", "", ""); map.put("result", errInfo); map.put("msg", "隐患延期申成功。请通知隐患确认人进行延期确认操作!"); return map; } /** * 特殊处理申请 * * @param * @throws Exception */ @RequestMapping(value = "/special") @ResponseBody @Transactional public Object special() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); 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 = hiddenexamineService.save(examine); hiddenService.updateStateByHidden("7", pd.getString("HIDDEN_ID")); PageData hiddenPd = hiddenService.findById(pd); if (Tools.notEmpty(hiddenPd.getString("CONFIRM_USER"))) { messageService.sendMessageByParameter("HIDDEN_MAIL_007", "友情提示:有一条隐患需要特殊审核", Jurisdiction.getCORPINFO_ID(), hiddenPd.getString("CONFIRM_USER"), hiddenPd.getString("HIDDEN_ID"), hiddenPd.getString("HIDDENDESCR"), "特殊处置审核", "审核", "", ""); } map.put("result", errInfo); map.put("msg", "隐患特殊处理申请成功。请通知隐患确认人进行特殊处理确认操作!"); return map; } /** * 特殊处理审核 * 1.找到延时信息 * 2.修改隐患完成时间 * * @throws Exception */ @RequestMapping(value = "/specialExamine") @RequiresPermissions("hidden:edit") @ResponseBody @DockAnnotation public Object specialExamine(@RequestParam(value = "FFILE", required = false) MultipartFile file) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); PageData hiddenExa = hiddenexamineService.findById(pd); // 获取该隐患的未通过的隐患信息 PageData hidden = hiddenService.findById(hiddenExa); if (Tools.isEmpty(hiddenExa)) { errInfo = "ERROR"; map.put("pd", pd); map.put("result", errInfo); map.put("msg", "未找到该隐患的审批信息错误,请联系管理员确认!"); return map; } if ("1".equals(pd.getString("TYPE"))) { //通过 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); hiddenExa.put("DISPOSAL_FILE", Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName); } hiddenExa.put("DISPOSAL_PLAN", pd.get("disposalPlan")); hiddenExa.put("STATE", "2"); hiddenExa.put("OPERATOR", Jurisdiction.getUSER_ID()); hiddenExa.put("OPERATTIME", DateUtil.date2Str(new Date())); hiddenexamineService.updateBySpecial(hiddenExa); hiddenService.updateStateByHidden("8", hiddenExa.getString("HIDDEN_ID")); //修改隐患状态 -- 特殊审核通过 hiddenExa.put("TYPE", pd.getString("TYPE")); String synpsis, parameter1 = ""; if (pd.get("TYPE").equals("1")) { synpsis = "友情提示:有一条特殊处置隐患审核通过"; parameter1 = "审核通过"; } else { synpsis = "友情提示:有一条隐患验收不合格"; parameter1 = "验收不合格"; } messageService.sendMessageByParameter("HIDDEN_MAIL_008", synpsis, Jurisdiction.getCORPINFO_ID(), hidden.getString("RECTIFICATIONOR"), hidden.getString("HIDDEN_ID"), hidden.getString("HIDDENDESCR"), parameter1, "", "", ""); applicationContext.publishEvent(new DeviceHiddenEvent(new Object(), hiddenExa.getString("HIDDEN_ID"), "0")); if (Tools.notEmpty(hidden.getString("FOREIGN_ID"))) { //安全环保检查验收 pd.put("ACCEPTSTEP", 6); List list = hiddenService.listOtherNotAccept(pd); //获取没有验收的隐患 PageData inspection = new PageData(); if (list.size() == 0) { //CREATOR inspection.put("INSPECTION_ID", hidden.getString("FOREIGN_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", hidden.getString("HIDDEN_ID")); } inspection.put("INSPECTION_ID", hidden.getString("FOREIGN_ID")); inspection.put("OPERATOR", Jurisdiction.getUSER_ID()); inspection.put("HIDDEN_vector", hidden.getString("HIDDEN_ID")); noticeUtil.SE_ThreeStepUtil(inspection); } } else if ("2".equals(pd.getString("TYPE"))) { // 不通过 hiddenExa.put("spare1", "0"); if ("1".equals(pd.getString("isChange"))) { // 修改整改负责人 hiddenExa.put("spare1", "1"); hiddenExa.put("spare2", pd.getString("OLD_RECTIFICATIONOR")); hiddenExa.put("spare3", pd.getString("OLD_RECTIFICATIONDEPT")); hiddenExa.put("NEW_RECTIFICATIONOR", pd.getString("changeUser")); hiddenService.updateRectificationUserId(pd.getString("changeUser"), pd.getString("changeUserDepartment"), hiddenExa.getString("HIDDEN_ID"), pd.getString("RECTIFICATIONDEADLINE")); } hiddenService.updateStateByHidden("1", hiddenExa.getString("HIDDEN_ID")); //打回 原路返回 hiddenExa.put("STATE", "1"); hiddenExa.put("OPERATOR", Jurisdiction.getUSER_ID()); hiddenExa.put("OPERATTIME", DateUtil.date2Str(new Date())); hiddenexamineService.updateBySpecial(hiddenExa); hiddenService.editstate(hiddenExa); pd.put("HIDDEN_ID", hiddenExa.getString("HIDDEN_ID")); String messUserID = ""; if ("0".equals(pd.getString("isChange"))) { messUserID = pd.getString("OLD_RECTIFICATIONOR"); // 申请人 } else { messUserID = pd.getString("changeUser"); // 申请人 } messageService.sendMessageByParameter("HIDDEN_MAIL_008", "友情提示:有一条特殊处置隐患审核不通过", Jurisdiction.getCORPINFO_ID(), messUserID, hidden.getString("HIDDEN_ID"), hidden.getString("HIDDENDESCR"), "审核不通过,请及时整改隐患", "", "", ""); } map.put("pd", pd); map.put("result", errInfo); return map; } }