package com.nanometer.smartlab.email;
|
|
import com.nanometer.smartlab.entity.EmailStatus;
|
import com.nanometer.smartlab.entity.SysReagent;
|
import com.nanometer.smartlab.entity.enumtype.EmailSendStatus;
|
import com.nanometer.smartlab.exception.BusinessException;
|
import com.nanometer.smartlab.service.*;
|
import com.nanometer.smartlab.util.EmailSend;
|
import org.apache.log4j.Logger;
|
import org.springframework.context.annotation.Lazy;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* Created by wjd on 18/6/18.
|
*/
|
@Component
|
public class EmailSendSchedule {
|
@Lazy
|
@Resource
|
private OpeOrderService opeOrderService;
|
|
private static Logger logger = Logger.getLogger(EmailSendSchedule.class);
|
|
@Scheduled(fixedDelayString = "${emailSend.schedule.delay}")
|
public void EmailSendSchedule(){
|
|
List<EmailStatus> list = null;
|
try {
|
int count = this.opeOrderService.getUnsendEmailCount();
|
if (count > 0) {
|
list = opeOrderService.getUnsendEmailList();
|
}
|
} catch (Exception e) {
|
logger.error(e);
|
}
|
|
if(list != null){
|
|
for (EmailStatus email: list) {
|
try {
|
EmailSend.send(email.getEmailAddress(), email.getApplyCode());
|
// 发送成功,更新邮件发送状态为:已发送
|
email.setStatus(EmailSendStatus.SEND_SUCCESS);
|
this.opeOrderService.updateEmailStatus(email);
|
} catch (BusinessException e) {
|
// 发送失败,更新邮件发送状态为:发送失败
|
email.setStatus(EmailSendStatus.SEND_FAIL);
|
this.opeOrderService.updateEmailStatus(email);
|
logger.warn("操作失败。", e);
|
} catch (Exception e) {
|
logger.error(e);
|
}
|
}
|
}
|
}
|
|
|
// @Scheduled(cron = "0/5 * * * * ?") //每隔5秒执行一次
|
@Scheduled(cron = "0 0 8 * * ?") //每天8点执行一次
|
public void EmailSendStock(){
|
List<String> revicerList = new ArrayList<>();
|
|
List<SysReagent> sysReagentList = new ArrayList<>();
|
|
|
StringBuffer content = new StringBuffer("<html><body>");
|
content.append("<div style=\"line-height:1.7;color:#000000;font-size:14px;font-family:Arial\">");
|
content.append("<table border=\"1\">");
|
content.append("<tbody>");
|
content.append("<tr>");
|
content.append("<th>试剂名称</th>");
|
content.append("<th>产品编号</th>");
|
content.append("<th>CAS</th>");
|
content.append("<th>试剂类型</th>");
|
content.append("<th>供应商</th>");
|
content.append("<th>厂家</th>");
|
content.append("<th>规格</th>");
|
content.append("<th>包装</th>");
|
content.append("<th>安全库存</th>");
|
content.append("<th>实际库存</th>");
|
content.append("</tr>");
|
for (SysReagent sysReagent : sysReagentList){
|
content.append("<tr>");
|
content.append("<td>"+sysReagent.getName()+"</td>");
|
content.append("<td>"+sysReagent.getProductSn()+"</td>");
|
content.append("<td>"+sysReagent.getCas()+"</td>");
|
content.append("<td>"+sysReagent.getReagentType()+"</td>");
|
content.append("<td>"+sysReagent.getSupplierName()+"</td>");
|
content.append("<td>"+sysReagent.getProductHomeName()+"</td>");
|
content.append("<td>"+sysReagent.getReagentFormat()+"</td>");
|
content.append("<td>"+sysReagent.getReagentUnit()+"</td>");
|
//content.append("<td>"+sysReagent+"</td>");安全库存
|
//content.append("<td>"+sysReagent+"</td>");实际库存
|
content.append("</tr>");
|
}
|
content.append("</tbody></table></div>");
|
content.append("</body></html>");
|
|
try {
|
EmailSend.sendArrivalEmail(revicerList,content.toString());
|
// 发送成功,更新邮件发送状态为:已发送
|
} catch (BusinessException e) {
|
// 发送失败,更新邮件发送状态为:发送失败
|
logger.warn("操作失败。", e);
|
} catch (Exception e) {
|
logger.error(e);
|
}
|
}
|
|
|
|
}
|