/**
*
*/
package cn.com.lzt.sysbug.entity;
import java.text.SimpleDateFormat;
import org.jeecgframework.core.util.ApplicationContextUtil;
import org.jeecgframework.core.util.SendMailUtil;
import org.jeecgframework.web.system.pojo.base.TSType;
import org.jeecgframework.web.system.pojo.base.TSUser;
import org.jeecgframework.web.system.service.SystemService;
import org.springframework.util.StringUtils;
/**
* @author xzx
*
* 2019年4月6日
*
*/
public class TSSysbugMailSender extends Thread{
TSSysbugEntity bugEntity;
SystemService sysService;
String emailUserId;
private String emailTitle;
public TSSysbugMailSender(TSSysbugEntity bugEntity,String emailUserId, String title) {
this.bugEntity = bugEntity;
this.emailUserId = emailUserId;
this.emailTitle = title;
}
@Override
public void run() {
if(sysService == null) {
sysService = ApplicationContextUtil.getContext().getBean(SystemService.class);
}
TSUser user = sysService.get(TSUser.class, emailUserId);
if(user != null && user.getEmail()!=null && user.getEmail().length()>0) {
String email = user.getEmail();
String title = "Bug系统通知";
if(this.emailTitle != null) {
title = emailTitle;
}
SendMailUtil.sendCommonMail(email, title, getHtml(bugEntity));
}
}
public String getHtml(TSSysbugEntity bugEntity) {
StringBuffer sb = new StringBuffer();
sb.append("\r\n" +
"\r\n" +
"
\r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" );
sb.append(getTbElements("缺陷ID", bugEntity.getId(),false));
sb.append(getTbElements("缺陷类型", getDicText("bug_type", bugEntity.getBugType()),false));
sb.append(getTbElements("紧急程度", getDicText("bug_level",bugEntity.getBugLevel()),false));
sb.append(getTbElements("当前状态", getDicText("bug_status",bugEntity.getStatus()),false));
if(!StringUtils.isEmpty(bugEntity.getReporter())) {
sb.append(getTbElements("提交人", getUserName(bugEntity.getReporter()),false));
}
if(!StringUtils.isEmpty(bugEntity.getProducter())) {
sb.append(getTbElements("产品负责人", getUserName(bugEntity.getProducter()),false));
}
if(!StringUtils.isEmpty(bugEntity.getCoder())) {
sb.append(getTbElements("开发负责人", getUserName(bugEntity.getCoder()),false));
}
if(!StringUtils.isEmpty(bugEntity.getTester())) {
sb.append(getTbElements("测试负责人", getUserName(bugEntity.getTester()),false));
}
if(!StringUtils.isEmpty(bugEntity.getLoginPerson1())) {
sb.append(getTbElements("登陆账号", getUserName(bugEntity.getLoginPerson1()),false));
}
if(!StringUtils.isEmpty(bugEntity.getBugPerson1())) {
sb.append(getTbElements("涉及的员工",getUserName(bugEntity.getBugPerson1()),false));
sb.append(getTbElements("涉及的员工ID", bugEntity.getBugPerson1(),false));
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if(!StringUtils.isEmpty(bugEntity.getEndTime())) {
sb.append(getTbElements("解决时间", sdf.format(bugEntity.getEndTime()),false));
}
sb.append(getTbElements("问题描述", bugEntity.getDescription(),true));
sb.append("
\r\n" +
"\r\n" +
"");
return sb.toString();
}
/**
* @param status
* @return
*/
private String getDicText(String dicGroupcode, String typecode) {
String text = "";
TSType type = sysService.getType(typecode, dicGroupcode);
if(type != null) {
text = type.getTypename();
}
return text;
}
/**
* @param producter
* @return
*/
private String getUserName(String id) {
if(id != null) {
TSUser user = sysService.get(TSUser.class, id);
if(user!= null) {
return user.getRealName();
}
}
return null;
}
/**
* @param bugLevel
* @return
*/
private static String getTbElements(String label, String bugel, boolean isMultiText) {
String trtdstart = "| ";
StringBuffer sb = new StringBuffer();
sb.append(trtdstart);
sb.append(label).append(" | ");
if(isMultiText) {
sb.append("\r\n" +
"").append(" | ");
}else {
sb.append("\r\n");
sb.append(bugel).append(" | ");
}
sb.append("
");
return sb.toString();
}
}