李宇
2021-06-23 c87738a78f57e6f68a0111d68ef3748b29dc1eda
src/main/java/com/nanometer/smartlab/email/EmailSendSchedule.java
@@ -1,6 +1,7 @@
package com.nanometer.smartlab.email;
import com.nanometer.smartlab.entity.EmailStatus;
import com.nanometer.smartlab.entity.OpeWarehouseReserve;
import com.nanometer.smartlab.entity.SysReagent;
import com.nanometer.smartlab.entity.enumtype.EmailSendStatus;
import com.nanometer.smartlab.exception.BusinessException;
@@ -25,6 +26,13 @@
    private OpeOrderService opeOrderService;
    private static Logger logger = Logger.getLogger(EmailSendSchedule.class);
    @Resource
    private SysReagentService sysReagentService;
    @Resource
    private OpeWarehouseReserveService opeWarehouseReserveService;
    @Resource
    private SysUserService userService;
    @Scheduled(fixedDelayString = "${emailSend.schedule.delay}")
    public void EmailSendSchedule(){
@@ -61,57 +69,71 @@
//        @Scheduled(cron = "0/5 * * * * ?") //每隔5秒执行一次
    @Scheduled(cron = "0 0 8 * * ?") //每天8点执行一次
    @Scheduled(cron = "0 0 8 * * ?")//每天8点执行一次
    public void EmailSendStock(){
        List<String> revicerList = new ArrayList<>();
        //收件人为人员角色为库管员的邮箱
        List<String> revicerList = userService.getLibrarianEmail();
        //先查试剂表 安全库存大于0,然后去查库存,实际库存小于安全库存的列表
        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>");
        //已经填写安全库存的试剂
        List<SysReagent> alreadyFillIn = sysReagentService.selectReagentSafetyNum();
        if (alreadyFillIn.size() > 0) {
            for (SysReagent reagent : alreadyFillIn) {
                int actualNum = opeWarehouseReserveService.countByReagentId(reagent.getId());
                if (reagent.getSafetynum() > actualNum) {
                    reagent.setActualnum(actualNum);
                    sysReagentList.add(reagent);
                }
            }
        }
        content.append("</tbody></table></div>");
        content.append("</body></html>");
        if(sysReagentList.size() > 0 && revicerList.size() > 0 ){
            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>");
        try {
            EmailSend.sendArrivalEmail(revicerList,content.toString());
            //  发送成功,更新邮件发送状态为:已发送
        } catch (BusinessException e) {
            //  发送失败,更新邮件发送状态为:发送失败
            logger.warn("操作失败。", e);
        } catch (Exception e) {
            logger.error(e);
                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.getSafetynum()+"</td>");
                content.append("<td>"+sysReagent.getActualnum()+"</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);
            }
        }
    }
}