package com.zcloud.controller.app; import java.io.Console; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import org.apache.shiro.authz.annotation.RequiresPermissions; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse; import com.zcloud.controller.base.BaseController; import com.zcloud.entity.Page; import com.zcloud.util.AliSmsLimitUtil; import com.zcloud.util.AliSmsUtil; import com.zcloud.util.DateUtil; import com.zcloud.util.ObjectExcelView; import com.zcloud.util.Tools; import com.zcloud.entity.PageData; import com.zcloud.service.bus.CorpInfoService; import com.zcloud.service.bus.GasDetectionService; import com.zcloud.service.bus.ImgFilesService; import com.zcloud.service.bus.LimitSpaceApproveService; import com.zcloud.service.bus.MSMLoginService; import com.zcloud.service.bus.SMSManagementService; import com.zcloud.service.system.UsersService; /** * 说明:有限空间作业审批单 * 作者:luoxiaobao * 时间:2021-04-13 * 官网:www.zcloudchina.com */ @Controller @RequestMapping("/app/limitspaceapprove") public class AppLimitSpaceApproveController extends BaseController { @Autowired private LimitSpaceApproveService limitspaceapproveService; @Autowired private ImgFilesService imgFilesService; @Autowired private CorpInfoService corpinfoService; @Autowired private UsersService usersService; @Autowired private MSMLoginService msmloginService; @Autowired private SMSManagementService smsmanagementService; @Autowired private GasDetectionService gasDetectionService; /**新增 * @param * @throws Exception */ @RequestMapping(value="/add") @ResponseBody public Object add() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("LIMITSPACEAPPROVE_ID", this.get32UUID()); //主键 pd.put("CREATOR",pd.get("USER")); //添加人 pd.put("CREATTIME", DateUtil.date2Str(new Date())); //创建时间 pd.put("OPERATOR", pd.get("USER")); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 pd.put("ISDELETE", "0"); //是否删除 limitspaceapproveService.save(pd); if(pd.get("STATUS")!= null && Tools.notEmpty(pd.get("STATUS").toString()) && pd.get("STATUS").toString().equals("2")) {//如果通过,发送短息能给现场负责人 PageData corpinfo = new PageData(); corpinfo.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); corpinfo =corpinfoService.findById(pd); PageData lpd = new PageData(); lpd.put("STATE", "OK"); lpd.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); int usedCount = msmloginService.msUsedCount(lpd); PageData sms = new PageData(); sms.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); sms.put("ISENABLE", "1"); sms.put("SMSCODE", "SMS_215341345"); List sList =smsmanagementService.listAll(sms); if(corpinfo.getString("ISRECEIVE").equals("1")&&Integer.parseInt(corpinfo.getString("SMS_COUNT"))-usedCount>0&&sList.size()>0) { // 申请人名称 PageData squser = new PageData(); squser.put("USER_ID", pd.get("USER")); squser = usersService.findById(squser); // 收信人 PageData user = new PageData(); user.put("USER_ID", pd.get("SITESUPERVISOR")); user = usersService.findById(user); if(user.get("USERNAME") != null && Tools.notEmpty(user.get("USERNAME").toString())) { String phone=user.get("USERNAME").toString(); Map mes = new HashMap(); mes.put("phone", phone); mes.put("templateCode", "SMS_215341345"); mes.put("type", "1"); mes.put("name", squser.get("NAME").toString()); SendSmsResponse ssms= AliSmsLimitUtil.sendSms(mes); msmloginService.addForAliSmsLimitUtil(mes, pd.getString("CORPINFO_ID"), ssms); //System.out.println(ssms.getCode()); if(ssms.getCode().equals("OK")){ map.put("result", "success"); }else{ map.put("result", "fail"); map.put("msg", "您的操作过去频繁,请稍后重试!"); } } if (sList.get(0).getString("ADDRESSEE") != null) { String[] uid=sList.get(0).getString("ADDRESSEE").split(","); for(int i=0;i umes = new HashMap(); umes.put("phone", uphone); umes.put("templateCode", "SMS_215341345"); umes.put("type", "1"); umes.put("name", squser.get("NAME").toString()); PageData ewpd = new PageData(); ewpd.put("STATE", "OK"); ewpd.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); int ewusedCount = msmloginService.msUsedCount(ewpd); if(Integer.parseInt(corpinfo.getString("SMS_COUNT"))-ewusedCount>0) { SendSmsResponse ussms= AliSmsLimitUtil.sendSms(umes); msmloginService.addForAliSmsLimitUtil(umes, pd.getString("CORPINFO_ID"), ussms); } } } } } } map.put("result", errInfo); return map; } /**删除 * @param out * @throws Exception */ @RequestMapping(value="/delete") @ResponseBody public Object delete() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); limitspaceapproveService.delete(pd); map.put("result", errInfo); //返回结果 return map; } /**修改 * @param * @throws Exception */ @RequestMapping(value="/edit") @ResponseBody public Object edit() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("OPERATOR", pd.get("USER")); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 limitspaceapproveService.edit(pd); pd = limitspaceapproveService.findById(pd); if(pd.get("STATUS")!= null && Tools.notEmpty(pd.get("STATUS").toString()) && "2".equals(pd.get("STATUS").toString())) { PageData corpinfo = new PageData(); corpinfo.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); corpinfo =corpinfoService.findById(pd); PageData lpd = new PageData(); lpd.put("STATE", "OK"); lpd.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); int usedCount = msmloginService.msUsedCount(lpd); PageData sms = new PageData(); sms.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); sms.put("ISENABLE", "1"); sms.put("SMSCODE", "SMS_215341345"); List sList =smsmanagementService.listAll(sms); if(corpinfo.getString("ISRECEIVE").equals("1")&&Integer.parseInt(corpinfo.getString("SMS_COUNT"))-usedCount>0 && sList.size()>0) { // 收信人 PageData user = new PageData(); user.put("USER_ID", pd.get("SITESUPERVISOR")); user = usersService.findById(user); if(user.get("USERNAME") != null && Tools.notEmpty(user.get("USERNAME").toString())) { String phone=user.get("USERNAME").toString(); Map mes = new HashMap(); mes.put("phone", phone); mes.put("templateCode", "SMS_215341345"); mes.put("type", "1"); mes.put("name", pd.get("PRINCIPALNAME").toString()); SendSmsResponse ssms= AliSmsLimitUtil.sendSms(mes); msmloginService.addForAliSmsLimitUtil(mes, pd.getString("CORPINFO_ID"), ssms); //System.out.println(ssms.getCode()); if(ssms.getCode().equals("OK")){ map.put("result", "success"); }else{ map.put("result", "fail"); map.put("msg", "您的操作过去频繁,请稍后重试!"); } } if (sList.get(0).getString("ADDRESSEE") != null) { String[] uid=sList.get(0).getString("ADDRESSEE").split(","); for(int i=0;i umes = new HashMap(); umes.put("phone", uphone); umes.put("templateCode", "SMS_215341345"); umes.put("type", "1"); umes.put("name", pd.get("PRINCIPALNAME").toString()); PageData ewpd = new PageData(); ewpd.put("STATE", "OK"); ewpd.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); int ewusedCount = msmloginService.msUsedCount(ewpd); if(Integer.parseInt(corpinfo.getString("SMS_COUNT"))-ewusedCount>0) { SendSmsResponse ussms= AliSmsLimitUtil.sendSms(umes); msmloginService.addForAliSmsLimitUtil(umes, pd.getString("CORPINFO_ID"), ussms); } } } } } } map.put("result", errInfo); return map; } /**修改 * @param * @throws Exception */ @RequestMapping(value="/editStatus") @ResponseBody public Object editStatus() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); PageData pd2 = new PageData(); pd2 = limitspaceapproveService.findById(pd); String oldStatus = pd2.get("STATUS").toString(); pd.put("OPERATOR", pd.get("USER")); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 limitspaceapproveService.editStatus(pd); pd = limitspaceapproveService.findById(pd); if(pd.get("STATUS")!= null && Tools.notEmpty(pd.get("STATUS").toString())) {//如果通过,发送短息能给现场负责人 String status = pd.get("STATUS").toString(); PageData corpinfo = new PageData(); corpinfo.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); corpinfo =corpinfoService.findById(pd); PageData lpd = new PageData(); lpd.put("STATE", "OK"); lpd.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); int usedCount = msmloginService.msUsedCount(lpd); if(corpinfo.getString("ISRECEIVE").equals("1")&&Integer.parseInt(corpinfo.getString("SMS_COUNT"))-usedCount>0) { Map mes = new HashMap();// 业务相关负责人--短信数据 // 短信管理抄送人短信数据 PageData sms = new PageData(); sms.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); sms.put("ISENABLE", "1"); PageData user = new PageData(); switch (status) { case "2": user.put("USER_ID", pd.get("SITESUPERVISOR")); mes.put("templateCode", "SMS_215341345"); mes.put("name", pd.get("PRINCIPALNAME")); mes.put("type", "1"); sms.put("SMSCODE", "SMS_215341345"); sms.put("name", pd.get("PRINCIPALNAME")); sms.put("type", "1"); break; case "3": user.put("USER_ID", pd.get("APPROVER")); mes.put("templateCode", "SMS_215336357"); mes.put("type", "2"); mes.put("tname", pd.get("PRINCIPALNAME")); mes.put("name", pd.get("SITESUPERVISORNAME")); sms.put("SMSCODE", "SMS_215336357"); sms.put("type", "2"); sms.put("tname", pd.get("PRINCIPALNAME")); sms.put("name", pd.get("SITESUPERVISORNAME")); break; case "4"://审批通过需要发两个短信,单独处理 // user.put("USER_ID", pd.get("INSPECTOR")); // mes.put("templateCode", "SMS_215800731"); // mes.put("type", "2"); break; case "6": user.put("USER_ID", pd.get("PRINCIPAL")); mes.put("type", "1"); sms.put("type", "1"); if(oldStatus.equals("2")) {// 确认打回 mes.put("templateCode", "SMS_215331547"); mes.put("name", pd.get("SITESUPERVISORNAME")); sms.put("SMSCODE", "SMS_215331547"); sms.put("name", pd.get("SITESUPERVISORNAME")); } else if (oldStatus.equals("3")) {// 审批打回 mes.put("templateCode", "SMS_215331549"); mes.put("name", pd.get("APPROVERNAME")); sms.put("SMSCODE", "SMS_215331547"); sms.put("name", pd.get("APPROVERNAME")); // 打回时。删除确认照片 PageData img = new PageData(); img.put("TYPE", "9"); img.put("FOREIGN_KEY", pd.get("LIMITSPACEAPPROVE_ID")); imgFilesService.delete(img); } break; case "7": // 暂时不用 // user.put("USER_ID", pd.get("INSPECTOR")); // mes.put("templateCode", "SMS_215800731"); // mes.put("type", "2"); break; default: break; } if(!status.equals("4")) {// 除审批通过外 List sList = smsmanagementService.listAll(sms); if (sList.size() > 0) { user = usersService.findById(user); if (user.get("USERNAME") != null && Tools.notEmpty(user.get("USERNAME").toString())) { String phone = user.get("USERNAME").toString(); mes.put("phone", phone); SendSmsResponse ssms = AliSmsLimitUtil.sendSms(mes); msmloginService.addForAliSmsLimitUtil(mes, pd.getString("CORPINFO_ID"), ssms); // System.out.println(ssms.getCode()); if (ssms.getCode().equals("OK")) { map.put("result", "success"); } else { map.put("result", "fail"); map.put("msg", "您的操作过去频繁,请稍后重试!"); } } if (sList.get(0).getString("ADDRESSEE") != null) { String[] uid = sList.get(0).getString("ADDRESSEE").split(","); for (int i = 0; i < uid.length; i++) { PageData suser = new PageData(); suser.put("USER_ID", uid[i].toString()); suser = usersService.findById(suser); if (suser.get("USERNAME") != null && Tools.notEmpty(suser.get("USERNAME").toString())) { String uphone = suser.get("USERNAME").toString(); Map umes = new HashMap(); umes.put("phone", uphone); umes.put("templateCode", sms.get("SMSCODE")); PageData ewpd = new PageData(); ewpd.put("STATE", "OK"); ewpd.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); int ewusedCount = msmloginService.msUsedCount(lpd); if(Integer.parseInt(corpinfo.getString("SMS_COUNT"))-ewusedCount>0) { SendSmsResponse ussms = AliSmsLimitUtil.sendSms(umes); msmloginService.addForAliSmsLimitUtil(umes, pd.getString("CORPINFO_ID"), ussms); } } } } } } else {// 审核通过 sms.put("SMSCODE", "SMS_215351352"); List sList = smsmanagementService.listAll(sms); if (sList.size() > 0) { // 作业负责人 PageData principal = new PageData(); principal.put("USER_ID", pd.get("PRINCIPAL")); principal = usersService.findById(principal); if (principal.get("USERNAME") != null && Tools.notEmpty(principal.get("USERNAME").toString())) { String phone = principal.get("USERNAME").toString(); mes.put("phone", phone); mes.put("templateCode", "SMS_215351352"); mes.put("type", "4"); mes.put("sname", pd.get("SITESUPERVISORNAME")); mes.put("name", pd.get("APPROVERNAME")); SendSmsResponse ssms = AliSmsLimitUtil.sendSms(mes); msmloginService.addForAliSmsLimitUtil(mes, pd.getString("CORPINFO_ID"), ssms); // System.out.println(ssms.getCode()); if (ssms.getCode().equals("OK")) { map.put("result", "success"); } else { map.put("result", "fail"); map.put("msg", "您的操作过去频繁,请稍后重试!"); } } if (sList.get(0).getString("ADDRESSEE") != null) { String[] uid = sList.get(0).getString("ADDRESSEE").split(","); for (int i = 0; i < uid.length; i++) { PageData suser = new PageData(); suser.put("USER_ID", uid[i].toString()); suser = usersService.findById(suser); if (suser.get("USERNAME") != null && Tools.notEmpty(suser.get("USERNAME").toString())) { String uphone = suser.get("USERNAME").toString(); Map umes = new HashMap(); umes.put("phone", uphone); umes.put("templateCode", sms.get("SMSCODE")); umes.put("type", "4"); umes.put("sname", pd.get("SITESUPERVISORNAME")); umes.put("name", pd.get("APPROVERNAME")); PageData ewpd = new PageData(); ewpd.put("STATE", "OK"); ewpd.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); int ewusedCount = msmloginService.msUsedCount(ewpd); if(Integer.parseInt(corpinfo.getString("SMS_COUNT"))-ewusedCount>0) { SendSmsResponse ussms = AliSmsLimitUtil.sendSms(umes); msmloginService.addForAliSmsLimitUtil(umes, pd.getString("CORPINFO_ID"), ussms); } } } } } sms.put("SMSCODE", "SMS_215331547"); List iList = smsmanagementService.listAll(sms); if (iList.size() > 0) { // 检测人 PageData inspector = new PageData(); inspector.put("USER_ID", pd.get("INSPECTOR")); inspector = usersService.findById(inspector); if (inspector.get("USERNAME") != null && Tools.notEmpty(inspector.get("USERNAME").toString())) { String phone = inspector.get("USERNAME").toString(); mes.put("templateCode", "SMS_215331552"); mes.put("type", "3"); mes.put("tname", pd.get("PRINCIPALNAME")); mes.put("sname", pd.get("SITESUPERVISORNAME")); mes.put("name", pd.get("APPROVERNAME")); mes.put("phone", phone); PageData ewpd = new PageData(); ewpd.put("STATE", "OK"); ewpd.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); int ewusedCount = msmloginService.msUsedCount(ewpd); if(Integer.parseInt(corpinfo.getString("SMS_COUNT"))-ewusedCount>0) { SendSmsResponse ssms = AliSmsLimitUtil.sendSms(mes); msmloginService.addForAliSmsLimitUtil(mes, pd.getString("CORPINFO_ID"), ssms); if (ssms.getCode().equals("OK")) { map.put("result", "success"); } else { map.put("result", "fail"); map.put("msg", "您的操作过去频繁,请稍后重试!"); } } // System.out.println(ssms.getCode()); } if (iList.get(0).getString("ADDRESSEE") != null) { String[] uid = iList.get(0).getString("ADDRESSEE").split(","); for (int i = 0; i < uid.length; i++) { PageData suser = new PageData(); suser.put("USER_ID", uid[i].toString()); suser = usersService.findById(suser); if (suser.get("USERNAME") != null && Tools.notEmpty(suser.get("USERNAME").toString())) { String uphone = suser.get("USERNAME").toString(); Map umes = new HashMap(); umes.put("phone", uphone); umes.put("type", "3"); umes.put("tname", pd.get("PRINCIPALNAME")); umes.put("sname", pd.get("SITESUPERVISORNAME")); umes.put("name", pd.get("APPROVERNAME")); umes.put("templateCode", sms.get("SMSCODE")); PageData ewpd = new PageData(); ewpd.put("STATE", "OK"); ewpd.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); int ewusedCount = msmloginService.msUsedCount(ewpd); if(Integer.parseInt(corpinfo.getString("SMS_COUNT"))-ewusedCount>0) { SendSmsResponse ussms = AliSmsLimitUtil.sendSms(umes); msmloginService.addForAliSmsLimitUtil(umes, pd.getString("CORPINFO_ID"), ussms); } } } } } } } } map.put("result", errInfo); return map; } /**归档 * @param * @throws Exception */ @RequestMapping(value="/pigeonhole") @ResponseBody public Object pigeonhole() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("OPERATOR", pd.get("USER")); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 limitspaceapproveService.editStatus(pd); // 完成气体检测单 gasDetectionService.finish(pd); map.put("result", errInfo); return map; } /**列表 * @param page * @throws Exception */ @RequestMapping(value="/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"); //关键词检索条件 if(Tools.notEmpty(KEYWORDS))pd.put("KEYWORDS", KEYWORDS.trim()); String STATUS = pd.getString("STATUS"); //关键词检索条件 if(Tools.notEmpty(STATUS))pd.put("STATUS", STATUS.trim()); page.setPd(pd); List varList = limitspaceapproveService.list(page); //列出LimitSpaceApprove列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } /**去修改页面获取数据 * @param * @throws Exception */ @RequestMapping(value="/goEdit") @ResponseBody public Object goEdit() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd = limitspaceapproveService.findById(pd); //根据ID读取 PageData pd2 = new PageData(); pd2.put("FOREIGN_KEY", pd.getString("LIMITSPACEAPPROVE_ID")); pd2.put("TYPE",9); List qrImgs = imgFilesService.listAll(pd2);//确认人签字 pd2.put("TYPE",10); List shImgs = imgFilesService.listAll(pd2);//审核人签字 pd2.put("TYPE",11); List jcImgs = imgFilesService.listAll(pd2);//检测人签字 map.put("pd", pd); map.put("qrImgs", qrImgs); map.put("shImgs", shImgs); map.put("jcImgs", jcImgs); map.put("result", errInfo); return map; } /**批量删除 * @param * @throws Exception */ @RequestMapping(value="/deleteAll") @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(","); limitspaceapproveService.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("申请审批编号"); //1 titles.add("有限空间id"); //2 titles.add("有限空间名称"); //3 titles.add("作业单位"); //4 titles.add("作业内容"); //5 titles.add("作业起始时间"); //6 titles.add("作业结束时间"); //7 titles.add("作业负责人"); //8 titles.add("监护人员"); //9 titles.add("作业人员"); //10 titles.add("其他人员"); //11 titles.add("制定有限空间作业方案并经审核、批准 1-是 0-否"); //12 titles.add("参加作业人员经有限空间作业安全相关培训合格 1-是 0-否 "); //13 titles.add("安全防护设备、个体防护用品、作业设备和工具齐全有效、满足要求 1-是 0-否"); //14 titles.add("应急救援装备满足要求 1-是 0-否"); //15 titles.add("现场作业负责人"); //16 titles.add("审批负责人"); //17 titles.add("现场作业负责人意见"); //18 titles.add("审批负责人意见"); //19 titles.add("企业ID"); //20 titles.add("添加人"); //21 titles.add("添加时间"); //22 titles.add("修改人"); //23 titles.add("修改时间"); //24 titles.add("是否删除 1-是 0-否"); //25 dataMap.put("titles", titles); List varOList = limitspaceapproveService.listAll(pd); List varList = new ArrayList(); for(int i=0;i