package com.ruoyi.common.thread.sai; import com.github.stuxuhai.jpinyin.PinyinException; import com.github.stuxuhai.jpinyin.PinyinFormat; import com.github.stuxuhai.jpinyin.PinyinHelper; import com.ruoyi.common.sendEmail.IMailService; import com.ruoyi.project.production.domain.TSaiApply; import com.ruoyi.project.system.domain.SysUser; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; import java.text.SimpleDateFormat; import java.util.Date; /** * SAI开项申请到期提醒邮件通知线程 * * @author Wang Zi Wen * @email wangggziwen@163.com * @date 2023/04/20 15:40:35 */ public class SaiApplyDueMailThread implements Runnable { private IMailService mailService; private TSaiApply saiApply; private SysUser sysUser; public SaiApplyDueMailThread() {} public SaiApplyDueMailThread(IMailService mailService, TSaiApply saiApply, SysUser sysUser) { this.mailService = mailService; this.saiApply = saiApply; this.sysUser = sysUser; } @Override public void run() { try { this.sendMail(); } catch (PinyinException e) { e.printStackTrace(); } } private void sendMail() throws PinyinException { String nickName = sysUser.getNickName(); String nickNameEN = PinyinHelper.convertToPinyinString(nickName.trim(), " ", PinyinFormat.WITHOUT_TONE); String userName = sysUser.getUserName(); String email = sysUser.getEmail(); String description = saiApply.getDescription(); Date estimateFinishDate = saiApply.getEstimateFinishDate(); String jumpUrl = "/production/sai/apply"; //写html开始内容 String start = "
" + "" + ""; //表html中间内容 String prime = ""; String center = ""; String one = center.replaceFirst("nickName", nickName); String two = one.replaceFirst("nickNameEN", nickNameEN); String three = two.replaceFirst("userName", userName); String four = three.replaceFirst("description", description); String five = four.replaceFirst("estimateFinishDate", new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(estimateFinishDate)); String result = five.replaceFirst("date", String.valueOf(new Date())).replaceFirst("jumpUrl",jumpUrl).replaceFirst("jumpUrl",jumpUrl); prime = prime + result; //写html结尾内容 String end = "
" + "CPMS管理系统 CPMS System

" + "" + "亲爱的nickName
" + "Dear nickNameEN(userName)

" + "

您有即将到期的SAI开项申请,详情如下:
" + "You have a new to-do task:
" + "问题描述:description
" + "预计完成时间:estimateFinishDate
" + "请登录CPMS管理系统查看。
" + "Please log in the CPMS to handle it.

" + "

date

" + "
" + "
" + "

此为系统邮件,请勿回复
This e-Mail is an automatic reminder sent by CPMS, please do not reply

" + "
"; //拼接html String html = start + prime + end; mailService.sendHtmlMail(email, "CPMS:您有即将到期的SAI开项申请", html); } }