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

523 lines
22 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 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<String, Object> map = new HashMap<String, Object>();
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<String, String> map = new HashMap<String, String>();
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<String, Object> map = new HashMap<String, Object>();
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<String, Object> map = new HashMap<String, Object>();
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<PageData> 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<String, Object> map = new HashMap<String, Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
pd = hiddenexamineService.findByIdAndHidden(pd); //根据ID读取
List<PageData> 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<PageData> 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<PageData> 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<PageData> sImgs2 = imgFilesService.listAll(pd31);// 方案图片
sImgs.addAll(sImgs2);
}
List<PageData> 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<String, Object> map = new HashMap<String, Object>();
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<String, Object> dataMap = new HashMap<String, Object>();
List<String> titles = new ArrayList<String>();
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<PageData> varOList = hiddenexamineService.listAll(pd);
List<PageData> varList = new ArrayList<PageData>();
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<String, Object> map = new HashMap<String, Object>();
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<String, Object> map = new HashMap<String, Object>();
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<String, Object> map = new HashMap<String, Object>();
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<String, Object> map = new HashMap<String, Object>();
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<PageData> 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);
map.put("dockData",JSON.toJSONString(pd));
return map;
}
}