FurnancePressureThread.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.ruoyi.common.thread.furnance;
  2. import com.github.stuxuhai.jpinyin.PinyinException;
  3. import com.github.stuxuhai.jpinyin.PinyinFormat;
  4. import com.github.stuxuhai.jpinyin.PinyinHelper;
  5. import com.ruoyi.common.sendEmail.IMailService;
  6. import com.ruoyi.project.plant.domain.TStaffmgr;
  7. import com.ruoyi.project.production.domain.TSaiApply;
  8. import com.ruoyi.project.system.domain.SysMessage;
  9. import com.ruoyi.project.system.service.ISysMessageService;
  10. import org.activiti.engine.task.Task;
  11. import java.text.SimpleDateFormat;
  12. import java.util.Date;
  13. /**
  14. * @author Wang Zi Wen
  15. * @email wangggziwen@163.com
  16. * @date 2024/05/22 15:25:22
  17. */
  18. public class FurnancePressureThread implements Runnable {
  19. private IMailService mailService;
  20. private String email;
  21. private String staffName;
  22. private String staffNameEN;
  23. private String loginName;
  24. String msg;
  25. public FurnancePressureThread() {}
  26. public FurnancePressureThread(IMailService mailService, TStaffmgr staffmgr, String loginName, String msg) throws PinyinException {
  27. this.mailService = mailService;
  28. this.email = staffmgr.getMail();
  29. this.staffName = staffmgr.getName();
  30. this.staffNameEN = PinyinHelper.convertToPinyinString(staffName.trim(), " ", PinyinFormat.WITHOUT_TONE);
  31. this.loginName = loginName;
  32. this.msg = msg;
  33. }
  34. @Override
  35. public void run() {
  36. this.sendMail();
  37. }
  38. private void sendMail() {
  39. String jumpUrl = "/production/pressure";
  40. //写html开始内容
  41. String start = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title></title></head><body><div style=\"background-color:#ECECEC; padding: 35px;\">" +
  42. "<table cellpadding=\"0\" align=\"center\"" +
  43. "style=\"width: 600px; margin: 0px auto; text-align: left; position: relative; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; font-size: 14px; font-family:微软雅黑, 黑体; line-height: 1.5; box-shadow: rgb(153, 153, 153) 0px 0px 5px; border-collapse: collapse; background-position: initial initial; background-repeat: initial initial;background:#fff;\">" +
  44. "<tbody><tr><th valign=\"middle\" style=\"height: 25px; line-height: 25px; padding: 15px 35px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #42a3d3; background-color: #49bcff; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px;\">" +
  45. "<font face=\"微软雅黑\" size=\"5\" style=\"color: rgb(255, 255, 255); \">CPMS管理系统 </font><font face=\"微软雅黑\" size=\"3\" style=\"color: rgb(255, 255, 255); \">CPMS System</font></th></tr>";
  46. //表html中间内容
  47. String prime = "";
  48. String center = "<tr><td><div style=\"padding:25px 35px 40px; background-color:#fff;\"><h2 style=\"margin: 5px 0px; \">" +
  49. "<font color=\"#333333\" style=\"line-height: 20px; \"><font style=\"line-height: 22px; \" size=\"4\">" +
  50. "亲爱的staffName</font><br><font style=\"line-height: 22px; \" size=\"4\">" +
  51. "Dear staffNameEN(loginName)</font></font></h2>" +
  52. "<p>裂解炉炉管测压FVP数值异常," + msg + "请及时查看。<br>" +
  53. "请登录<a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#jumpUrl\">CPMS管理系统</a>查看。<br>" +
  54. "Please log in the <a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#jumpUrl\">CPMS</a> to handle it.</p>" +
  55. "<p align=\"right\">date</p>" +
  56. "<div style=\"width:700px;margin:0 auto;\">" +
  57. "<div style=\"padding:10px 10px 0;border-top:1px solid #ccc;color:#747474;margin-bottom:20px;line-height:1.3em;font-size:12px;\">" +
  58. "<p>此为系统邮件,请勿回复<br>This e-Mail is an automatic reminder sent by CPMS, please do not reply</p>" +
  59. "</div></div></div></td></tr>";
  60. String one = center.replaceFirst("staffName", staffName);
  61. String two = one.replaceFirst("staffNameEN", staffNameEN);
  62. String three = two.replaceFirst("loginName", loginName);
  63. String result = three.replaceFirst("date", String.valueOf(new Date())).replaceFirst("jumpUrl",jumpUrl).replaceFirst("jumpUrl",jumpUrl);
  64. prime = prime + result;
  65. //写html结尾内容
  66. String end = "</tbody></table></div></body></html>";
  67. //拼接html
  68. String html = start + prime + end;
  69. mailService.sendHtmlMail(email, "CPMS:裂解炉炉管测压FVP数值异常", html);
  70. }
  71. }