|
@@ -3,12 +3,15 @@ package com.ruoyi.framework.task;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.ruoyi.common.sendEmail.IMailService;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
+import com.ruoyi.framework.config.RuoYiConfig;
|
|
|
import com.ruoyi.framework.web.controller.BaseController;
|
|
|
import com.ruoyi.project.document.domain.TPlantproglist;
|
|
|
import com.ruoyi.project.document.service.ITPlantproglistService;
|
|
|
+import com.ruoyi.project.system.domain.SysUser;
|
|
|
import com.ruoyi.project.system.domain.TAlarmPrincipal;
|
|
|
import com.ruoyi.project.system.domain.TAlarmhistory;
|
|
|
import com.ruoyi.project.system.domain.TAlarmtype;
|
|
|
+import com.ruoyi.project.system.service.ISysUserService;
|
|
|
import com.ruoyi.project.system.service.ITAlarmPrincipalService;
|
|
|
import com.ruoyi.project.system.service.ITAlarmhistoryService;
|
|
|
import com.ruoyi.project.system.service.ITAlarmtypeService;
|
|
@@ -25,8 +28,7 @@ import java.util.List;
|
|
|
* @author ruoyi
|
|
|
*/
|
|
|
@Component
|
|
|
-public class PlantproglistTask extends BaseController
|
|
|
-{
|
|
|
+public class PlantproglistTask extends BaseController {
|
|
|
/**
|
|
|
* 注入发送邮件的接口
|
|
|
*/
|
|
@@ -55,13 +57,18 @@ public class PlantproglistTask extends BaseController
|
|
|
*/
|
|
|
@Autowired
|
|
|
private ITPlantproglistService plantproglistService;
|
|
|
+ //注入用户接口
|
|
|
+ @Autowired
|
|
|
+ private ISysUserService sysUserService;
|
|
|
+ //系统基础配置
|
|
|
+ @Autowired
|
|
|
+ private RuoYiConfig ruoyiConfig;
|
|
|
|
|
|
/**
|
|
|
* 下次回顾日期预警
|
|
|
*/
|
|
|
- public void ReviewTask()
|
|
|
- {
|
|
|
- List<TPlantproglist> plantproglists = plantproglistService.selectList(new TPlantproglist());
|
|
|
+ public void ReviewTask() {
|
|
|
+
|
|
|
TAlarmtype alarmtype = alarmtypeService.selectTAlarmtypeById(Long.parseLong("1050"));
|
|
|
//判断报警是否开启
|
|
|
if (alarmtype.getIsOpen() == 1) {
|
|
@@ -69,45 +76,67 @@ public class PlantproglistTask extends BaseController
|
|
|
Long firstLevel = Math.round(Double.POSITIVE_INFINITY);
|
|
|
Long secondLevel = Math.round(Double.POSITIVE_INFINITY);
|
|
|
Long thirdLevel = Math.round(Double.POSITIVE_INFINITY);
|
|
|
- if (alarmtype.getFirstlevel() != null) { firstLevel = alarmtype.getFirstlevel() * 24 * 3600 * 1000; }
|
|
|
- if (alarmtype.getSecondlevel() != null) { secondLevel = alarmtype.getSecondlevel() * 24 * 3600 * 1000; }
|
|
|
- if (alarmtype.getThirdlevel() != null) { thirdLevel = alarmtype.getThirdlevel() * 24 * 3600 * 1000; }
|
|
|
+ if (alarmtype.getFirstlevel() != null) {
|
|
|
+ firstLevel = alarmtype.getFirstlevel();
|
|
|
+ }
|
|
|
+ if (alarmtype.getSecondlevel() != null) {
|
|
|
+ secondLevel = alarmtype.getSecondlevel();
|
|
|
+ }
|
|
|
+ if (alarmtype.getThirdlevel() != null) {
|
|
|
+ thirdLevel = alarmtype.getThirdlevel();
|
|
|
+ }
|
|
|
TAlarmPrincipal alarmPrincipal = new TAlarmPrincipal();
|
|
|
//预警类型对应负责人
|
|
|
alarmPrincipal.setTypeId(Long.parseLong("1050"));
|
|
|
List<TAlarmPrincipal> alarmPrincipals = alarmPrincipalService.selectList(alarmPrincipal);
|
|
|
System.out.println(JSON.toJSONString(alarmPrincipals));
|
|
|
- String firstwarningContent = "";
|
|
|
- String secondwarningContent = "";
|
|
|
- String thirdwarningContent = "";
|
|
|
+
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- for (TPlantproglist t : plantproglists) {
|
|
|
- if (t.getNextreviewdate() != null) {
|
|
|
- long reviewDifference = t.getNextreviewdate().getTime() - new Date().getTime();
|
|
|
- if (reviewDifference <= firstLevel) {
|
|
|
- if (alarmtype.getFirstlevel() != null) {
|
|
|
- firstwarningContent = alarmLevelContent(firstwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNextreviewdate()));
|
|
|
- }
|
|
|
- }else if (reviewDifference <= secondLevel) {
|
|
|
- if (alarmtype.getSecondlevel() != null) {
|
|
|
- secondwarningContent = alarmLevelContent(secondwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNextreviewdate()));
|
|
|
- }
|
|
|
- }else if (reviewDifference <= thirdLevel) {
|
|
|
- if (alarmtype.getThirdlevel() != null) {
|
|
|
- thirdwarningContent = alarmLevelContent(thirdwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNextreviewdate()));
|
|
|
+ for (TAlarmPrincipal t : alarmPrincipals) {
|
|
|
+ SysUser user = this.sysUserService.selectUserByStaffId(t.getStaffid());
|
|
|
+ if (user != null) {
|
|
|
+ logger.info("发送人" + user.getNickName() + "--发送邮箱:" + user.getEmail());
|
|
|
+ t.setPrincipalName(user.getNickName());
|
|
|
+ t.setPrincipalEmail(user.getEmail());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (TAlarmPrincipal o : alarmPrincipals) {
|
|
|
+ TPlantproglist queryParam = new TPlantproglist();
|
|
|
+ queryParam.setDeptId(o.getDeptId());
|
|
|
+ List<TPlantproglist> plantproglists = plantproglistService.selectList(queryParam);
|
|
|
+ String firstwarningContent = "";
|
|
|
+ String secondwarningContent = "";
|
|
|
+ String thirdwarningContent = "";
|
|
|
+ for (TPlantproglist t : plantproglists) {
|
|
|
+ if (t.getNextreviewdate() != null) {
|
|
|
+ long now = System.currentTimeMillis();
|
|
|
+ long diff = t.getNexteditdate().getTime() - now;
|
|
|
+ long nd = 1000 * 24 * 60 * 60;
|
|
|
+ long reviewDifference = diff / nd;
|
|
|
+ if (reviewDifference <= firstLevel) {
|
|
|
+ if (alarmtype.getFirstlevel() != null) {
|
|
|
+ firstwarningContent = alarmLevelContent(firstwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNextreviewdate()));
|
|
|
+ }
|
|
|
+ } else if (reviewDifference <= secondLevel) {
|
|
|
+ if (alarmtype.getSecondlevel() != null) {
|
|
|
+ secondwarningContent = alarmLevelContent(secondwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNextreviewdate()));
|
|
|
+ }
|
|
|
+ } else if (reviewDifference <= thirdLevel) {
|
|
|
+ if (alarmtype.getThirdlevel() != null) {
|
|
|
+ thirdwarningContent = alarmLevelContent(thirdwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNextreviewdate()));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ levelSendEmail(firstwarningContent, secondwarningContent, thirdwarningContent, o, "装置程序清单", "plantproglist", "(文件编号,文件名称,下次回顾日期)", "1050");
|
|
|
}
|
|
|
- levelSendEmail(firstwarningContent, secondwarningContent, thirdwarningContent, alarmPrincipals, "装置程序清单", "plantproglist", "(文件编号,文件名称,下次回顾日期)", "1050");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 下次修改日期预警
|
|
|
*/
|
|
|
- public void EditTask()
|
|
|
- {
|
|
|
+ public void EditTask() {
|
|
|
List<TPlantproglist> plantproglists = plantproglistService.selectList(new TPlantproglist());
|
|
|
TAlarmtype alarmtype = alarmtypeService.selectTAlarmtypeById(Long.parseLong("1051"));
|
|
|
//判断报警是否开启
|
|
@@ -116,47 +145,68 @@ public class PlantproglistTask extends BaseController
|
|
|
Long firstLevel = Math.round(Double.POSITIVE_INFINITY);
|
|
|
Long secondLevel = Math.round(Double.POSITIVE_INFINITY);
|
|
|
Long thirdLevel = Math.round(Double.POSITIVE_INFINITY);
|
|
|
- if (alarmtype.getFirstlevel() != null) { firstLevel = alarmtype.getFirstlevel() * 24 * 3600 * 1000; }
|
|
|
- if (alarmtype.getSecondlevel() != null) { secondLevel = alarmtype.getSecondlevel() * 24 * 3600 * 1000; }
|
|
|
- if (alarmtype.getThirdlevel() != null) { thirdLevel = alarmtype.getThirdlevel() * 24 * 3600 * 1000; }
|
|
|
+ if (alarmtype.getFirstlevel() != null) {
|
|
|
+ firstLevel = alarmtype.getFirstlevel();
|
|
|
+ }
|
|
|
+ if (alarmtype.getSecondlevel() != null) {
|
|
|
+ secondLevel = alarmtype.getSecondlevel();
|
|
|
+ }
|
|
|
+ if (alarmtype.getThirdlevel() != null) {
|
|
|
+ thirdLevel = alarmtype.getThirdlevel();
|
|
|
+ }
|
|
|
TAlarmPrincipal alarmPrincipal = new TAlarmPrincipal();
|
|
|
//预警类型对应负责人
|
|
|
alarmPrincipal.setTypeId(Long.parseLong("1051"));
|
|
|
List<TAlarmPrincipal> alarmPrincipals = alarmPrincipalService.selectList(alarmPrincipal);
|
|
|
- String firstwarningContent = "";
|
|
|
- String secondwarningContent = "";
|
|
|
- String thirdwarningContent = "";
|
|
|
+ //查询用户表赋值邮箱
|
|
|
+ for (TAlarmPrincipal t : alarmPrincipals) {
|
|
|
+ SysUser user = this.sysUserService.selectUserByStaffId(t.getStaffid());
|
|
|
+ if (user != null) {
|
|
|
+ logger.info("发送人" + user.getNickName() + "--发送邮箱:" + user.getEmail());
|
|
|
+ t.setPrincipalName(user.getNickName());
|
|
|
+ t.setPrincipalEmail(user.getEmail());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- for (TPlantproglist t : plantproglists) {
|
|
|
- if (t.getNexteditdate() != null) {
|
|
|
- long editDifference = t.getNexteditdate().getTime() - new Date().getTime();
|
|
|
- if (editDifference <= firstLevel) {
|
|
|
- if (alarmtype.getFirstlevel() != null) {
|
|
|
- firstwarningContent = alarmLevelContent(firstwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNexteditdate()));
|
|
|
- }
|
|
|
- }else if (editDifference <= secondLevel) {
|
|
|
- if (alarmtype.getSecondlevel() != null) {
|
|
|
- secondwarningContent = alarmLevelContent(secondwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNexteditdate()));
|
|
|
- }
|
|
|
- }else if (editDifference <= thirdLevel) {
|
|
|
- if (alarmtype.getThirdlevel() != null) {
|
|
|
- thirdwarningContent = alarmLevelContent(thirdwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNexteditdate()));
|
|
|
+ for (TAlarmPrincipal o : alarmPrincipals) {
|
|
|
+ String firstwarningContent = "";
|
|
|
+ String secondwarningContent = "";
|
|
|
+ String thirdwarningContent = "";
|
|
|
+ for (TPlantproglist t : plantproglists) {
|
|
|
+ if (t.getNexteditdate() != null) {
|
|
|
+ long now = System.currentTimeMillis();
|
|
|
+ long diff = t.getNexteditdate().getTime() - now;
|
|
|
+ long nd = 1000 * 24 * 60 * 60;
|
|
|
+ long editDifference = diff / nd;
|
|
|
+ if (editDifference <= firstLevel) {
|
|
|
+ if (alarmtype.getFirstlevel() != null) {
|
|
|
+ firstwarningContent = alarmLevelContent(firstwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNexteditdate()));
|
|
|
+ }
|
|
|
+ } else if (editDifference <= secondLevel) {
|
|
|
+ if (alarmtype.getSecondlevel() != null) {
|
|
|
+ secondwarningContent = alarmLevelContent(secondwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNexteditdate()));
|
|
|
+ }
|
|
|
+ } else if (editDifference <= thirdLevel) {
|
|
|
+ if (alarmtype.getThirdlevel() != null) {
|
|
|
+ thirdwarningContent = alarmLevelContent(thirdwarningContent, t.getFileno(), t.getFilename(), sdf.format(t.getNexteditdate()));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ levelSendEmail(firstwarningContent, secondwarningContent, thirdwarningContent, o, "装置程序清单", "plantproglist", "(文件编号,文件名称,下次修改日期)", "1051");
|
|
|
}
|
|
|
- levelSendEmail(firstwarningContent, secondwarningContent, thirdwarningContent, alarmPrincipals, "装置程序清单", "plantproglist", "(文件编号,文件名称,下次修改日期)", "1051");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 预警内容拼接
|
|
|
*/
|
|
|
- public String alarmLevelContent(String alarmContent, String fieleOne, String fieldSecond, String fieldThird)
|
|
|
- {
|
|
|
+ public String alarmLevelContent(String alarmContent, String fieleOne, String fieldSecond, String fieldThird) {
|
|
|
if (alarmContent == "") {
|
|
|
alarmContent = fieleOne + ", " + fieldSecond + ", " + fieldThird;
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
alarmContent = alarmContent + ";<br>" + fieleOne + ", " + fieldSecond + ", " + fieldThird;
|
|
|
}
|
|
|
return alarmContent;
|
|
@@ -165,8 +215,7 @@ public class PlantproglistTask extends BaseController
|
|
|
/**
|
|
|
* 分级预警
|
|
|
*/
|
|
|
- public void levelSendEmail(String content1, String content2, String content3, List<TAlarmPrincipal> alarmPrincipals, String alarmType, String alarmTypeEn, String contenFormat, String typeId)
|
|
|
- {
|
|
|
+ public void levelSendEmail(String content1, String content2, String content3, TAlarmPrincipal alarmPrincipals, String alarmType, String alarmTypeEn, String contenFormat, String typeId) {
|
|
|
if (content1 != "") {
|
|
|
sendEmail(alarmPrincipals, alarmType, "1级预警", content1, alarmTypeEn, contenFormat, typeId);
|
|
|
}
|
|
@@ -181,8 +230,7 @@ public class PlantproglistTask extends BaseController
|
|
|
/**
|
|
|
* 发送预警邮件
|
|
|
*/
|
|
|
- public void sendEmail(List<TAlarmPrincipal> alarmPrincipals, String alarmType, String warningLevel, String warningContent, String alarmTypeEn, String contenFormat, String typeId)
|
|
|
- {
|
|
|
+ public void sendEmail(TAlarmPrincipal alarmPrincipal, String alarmType, String warningLevel, String warningContent, String alarmTypeEn, String contenFormat, String typeId) {
|
|
|
//写html开始内容
|
|
|
String start = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title></title></head><body><div style=\"background-color:#ECECEC; padding: 35px;\">" +
|
|
|
"<table cellpadding=\"0\" align=\"center\"" +
|
|
@@ -193,40 +241,40 @@ public class PlantproglistTask extends BaseController
|
|
|
String end = "</tbody></table></div></body></html>";
|
|
|
String username = "";
|
|
|
String email = "";
|
|
|
- for (TAlarmPrincipal a : alarmPrincipals) {
|
|
|
- username = a.getPrincipalName();
|
|
|
- email = a.getPrincipalEmail();
|
|
|
+ username = alarmPrincipal.getPrincipalName();
|
|
|
+ email = alarmPrincipal.getPrincipalEmail();
|
|
|
// email = "924846500@qq.com";
|
|
|
- //表html中间内容
|
|
|
- String prime = "";
|
|
|
- String firstcenter = "<tr><td><div style=\"padding:25px 35px 40px; background-color:#fff;\"><h2 style=\"margin: 5px 0px; \">" +
|
|
|
- "<font color=\"#333333\" style=\"line-height: 20px; \"><font style=\"line-height: 22px; \" size=\"4\">" +
|
|
|
- "亲爱的 username</font><br><font style=\"line-height: 22px; \" size=\"4\">" +
|
|
|
- "<p>您有一条预警信息:<br>" +
|
|
|
- "预警类型:<b>alarmType</b><br>" +
|
|
|
- "预警等级:<b>warningLevel</b><br>" +
|
|
|
- "预警内容contenFormat:<b>warningContent</b><br>" +
|
|
|
- "请前往<a href=\"http://47.114.101.16:8080/cpms/index.html#/document/alarmTypeEn\">alarmType</a>查看。<br>" +
|
|
|
- "<p align=\"right\">date</p>" +
|
|
|
- "<div style=\"width:700px;margin:0 auto;\">" +
|
|
|
- "<div style=\"padding:10px 10px 0;border-top:1px solid #ccc;color:#747474;margin-bottom:20px;line-height:1.3em;font-size:12px;\">" +
|
|
|
- "<p>此为系统邮件,请勿回复<br>This e-Mail is an automatic reminder sent by CPMS, please do not reply</p>" +
|
|
|
- "</div></div></div></td></tr>";
|
|
|
- String one = firstcenter.replaceFirst("username", username);
|
|
|
- String two = one.replaceFirst("alarmType", alarmType);
|
|
|
- String three = two.replaceFirst("warningLevel", warningLevel);
|
|
|
- String four = three.replaceFirst("contenFormat", contenFormat);
|
|
|
- String five = four.replaceFirst("warningContent", warningContent);
|
|
|
- String six = five.replaceFirst("alarmTypeEn", alarmTypeEn);
|
|
|
- String seven = six.replaceFirst("alarmType", alarmType);
|
|
|
- String result = seven.replaceFirst("date", String.valueOf(new Date()));
|
|
|
- prime = prime + result;
|
|
|
- //拼接html
|
|
|
- String html = start + prime + end;
|
|
|
- mailService.sendHtmlMail(email, "CPMS:您有一条预警信息", html);
|
|
|
- String level = warningLevel.substring(0,1);
|
|
|
- insertHistory(a, level, warningContent, typeId, alarmType);
|
|
|
- }
|
|
|
+ //表html中间内容
|
|
|
+ String prime = "";
|
|
|
+ String firstcenter = "<tr><td><div style=\"padding:25px 35px 40px; background-color:#fff;\"><h2 style=\"margin: 5px 0px; \">" +
|
|
|
+ "<font color=\"#333333\" style=\"line-height: 20px; \"><font style=\"line-height: 22px; \" size=\"4\">" +
|
|
|
+ "亲爱的 username</font><br><font style=\"line-height: 22px; \" size=\"4\">" +
|
|
|
+ "<p>您有一条预警信息:<br>" +
|
|
|
+ "预警类型:<b>alarmType</b><br>" +
|
|
|
+ "预警等级:<b>warningLevel</b><br>" +
|
|
|
+ "预警内容contenFormat:<b>warningContent</b><br>" +
|
|
|
+ "请前往<a href=\"requestJumpPath/document/alarmTypeEn\">alarmType</a>查看。<br>" +
|
|
|
+ "<p align=\"right\">date</p>" +
|
|
|
+ "<div style=\"width:700px;margin:0 auto;\">" +
|
|
|
+ "<div style=\"padding:10px 10px 0;border-top:1px solid #ccc;color:#747474;margin-bottom:20px;line-height:1.3em;font-size:12px;\">" +
|
|
|
+ "<p>此为系统邮件,请勿回复<br>This e-Mail is an automatic reminder sent by CPMS, please do not reply</p>" +
|
|
|
+ "</div></div></div></td></tr>";
|
|
|
+ String one = firstcenter.replaceFirst("username", username);
|
|
|
+ String two = one.replaceFirst("alarmType", alarmType);
|
|
|
+ String three = two.replaceFirst("warningLevel", warningLevel);
|
|
|
+ String four = three.replaceFirst("contenFormat", contenFormat);
|
|
|
+ String five = four.replaceFirst("warningContent", warningContent);
|
|
|
+ String six = five.replaceFirst("alarmTypeEn", alarmTypeEn);
|
|
|
+ String seven = six.replaceFirst("alarmType", alarmType);
|
|
|
+ String eight = seven.replace("requestJumpPath", this.ruoyiConfig.getRequestJumpPath());
|
|
|
+ String result = eight.replaceFirst("date", String.valueOf(new Date()));
|
|
|
+ prime = prime + result;
|
|
|
+ //拼接html
|
|
|
+ String html = start + prime + end;
|
|
|
+ mailService.sendHtmlMail(email, "CPMS:您有一条预警信息", html);
|
|
|
+ String level = warningLevel.substring(0, 1);
|
|
|
+ insertHistory(alarmPrincipal, level, warningContent, typeId, alarmType);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -245,7 +293,7 @@ public class PlantproglistTask extends BaseController
|
|
|
String[] content = StringUtils.remove(warningContent, "<br>").split(";");
|
|
|
if (content.length == 0) {
|
|
|
alarmhistory.setAlarmNum(Long.parseLong(String.valueOf("1")));
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
alarmhistory.setAlarmNum(Long.parseLong(String.valueOf(content.length)));
|
|
|
}
|
|
|
alarmhistory.setSendTime(new Date());
|