From c3510da29a7974c6af7ff3de1ade3db429d6f848 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期三, 18 八月 2021 14:27:59 +0800
Subject: [PATCH] 申购管理申请履历显示所有历史单据,提交时如有无效试剂耗材报错

---
 src/main/java/com/nanometer/smartlab/email/EmailSendSchedule.java |   83 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/email/EmailSendSchedule.java b/src/main/java/com/nanometer/smartlab/email/EmailSendSchedule.java
index 3ae54f2..f9e8eae 100644
--- a/src/main/java/com/nanometer/smartlab/email/EmailSendSchedule.java
+++ b/src/main/java/com/nanometer/smartlab/email/EmailSendSchedule.java
@@ -1,15 +1,19 @@
 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;
 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;
 
 /**
@@ -17,11 +21,18 @@
  */
 @Component
 public class EmailSendSchedule {
-
+    @Lazy
     @Resource
     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(){
@@ -55,4 +66,74 @@
             }
         }
     }
+
+
+//        @Scheduled(cron = "0/5 * * * * ?") //每隔5秒执行一次
+    @Scheduled(cron = "0 0 8 * * ?")//每天8点执行一次
+    public void EmailSendStock(){
+        //收件人为人员角色为库管员的邮箱
+        List<String> revicerList = userService.getLibrarianEmail();
+        //先查试剂表 安全库存大于0,然后去查库存,实际库存小于安全库存的列表
+        List<SysReagent> sysReagentList = new ArrayList<>();
+        //已经填写安全库存的试剂
+        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);
+                }
+            }
+        }
+        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>");
+
+                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);
+            }
+        }
+    }
+
 }

--
Gitblit v1.9.2