Przeglądaj źródła

hana同步异常邮件提醒

njs 10 miesięcy temu
rodzic
commit
72f929a5fd

+ 12 - 0
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/HanaOrderComponent.java

@@ -4,9 +4,11 @@ import cn.hutool.core.date.DateTime;
 import com.dgtly.common.config.Global;
 import com.dgtly.common.utils.DateUtils;
 import com.dgtly.common.utils.http.HttpUtils;
+import com.dgtly.system.service.ISysUserOrderAuthorService;
 import org.apache.poi.ss.formula.functions.T;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
@@ -48,6 +50,8 @@ public class HanaOrderComponent {
     @Value(value = "${ruoyi.deliverGetDataHook}")
     private String deliverGetDataHook;
 
+    @Autowired
+    private ISysUserOrderAuthorService userOrderAuthorService;
     public HanaOrderComponent() {
     }
 
@@ -1020,6 +1024,8 @@ public class HanaOrderComponent {
             String result = HttpUtils.sendGet(orderGetDataHook);
             log.info("清空salesOrder缓存:"+result);
         }catch (Exception e){
+            String name ="meta_hana_sales_order订单表同步异常";
+            userOrderAuthorService.sendMailHanaWarning(name);
             e.printStackTrace();
         }finally {
             if(pstm!=null){
@@ -1060,6 +1066,8 @@ public class HanaOrderComponent {
             long endTime=System.currentTimeMillis();
             log.info("importing freezeCustomer := "+rows+" rows data into mysql and cost "+(endTime-beginTime)+" ms!");
         } catch (SQLException e) {
+            String name ="meta_hana_not_freeze_customer 未冻结经销商表同步异常";
+            userOrderAuthorService.sendMailHanaWarning(name);
             e.printStackTrace();
         }finally {
             if(pstm!=null){
@@ -1098,6 +1106,8 @@ public class HanaOrderComponent {
             long endTime=System.currentTimeMillis();
             log.info("importing selfDeliverOrder := "+rows+" rows data into mysql and cost "+(endTime-beginTime)+" ms!");
         } catch (SQLException e) {
+            String name ="meta_hana_self_deliver_order 自提提前过账表同步异常";
+            userOrderAuthorService.sendMailHanaWarning(name);
             e.printStackTrace();
         }finally {
             if(pstm!=null){
@@ -1140,6 +1150,8 @@ public class HanaOrderComponent {
             String result = HttpUtils.sendGet(deliverGetDataHook);
             log.info("清空deliverOrder缓存:"+result);
         } catch (SQLException e) {
+            String name ="meta_hana_deliver_order 交货单表同步异常";
+            userOrderAuthorService.sendMailHanaWarning(name);
             e.printStackTrace();
         }finally {
             if(pstm!=null){

+ 13 - 11
suishenbang-system/src/main/java/com/dgtly/system/service/ISysUserOrderAuthorService.java

@@ -7,15 +7,15 @@ import com.dgtly.common.core.domain.Ztree;
 
 /**
  * 权限Service接口
- * 
+ *
  * @author dgtly
  * @date 2022-03-22
  */
-public interface ISysUserOrderAuthorService 
+public interface ISysUserOrderAuthorService
 {
     /**
      * 查询权限
-     * 
+     *
      * @param authorId 权限ID
      * @return 权限
      */
@@ -23,7 +23,7 @@ public interface ISysUserOrderAuthorService
 
     /**
      * 查询权限列表
-     * 
+     *
      * @param sysUserOrderAuthor 权限
      * @return 权限集合
      */
@@ -31,7 +31,7 @@ public interface ISysUserOrderAuthorService
 
     /**
      * 新增权限
-     * 
+     *
      * @param sysUserOrderAuthor 权限
      * @return 结果
      */
@@ -39,7 +39,7 @@ public interface ISysUserOrderAuthorService
 
     /**
      * 修改权限
-     * 
+     *
      * @param sysUserOrderAuthor 权限
      * @return 结果
      */
@@ -47,7 +47,7 @@ public interface ISysUserOrderAuthorService
 
     /**
      * 批量删除权限
-     * 
+     *
      * @param ids 需要删除的数据ID
      * @return 结果
      */
@@ -55,7 +55,7 @@ public interface ISysUserOrderAuthorService
 
     /**
      * 删除权限信息
-     * 
+     *
      * @param authorId 权限ID
      * @return 结果
      */
@@ -65,7 +65,7 @@ public interface ISysUserOrderAuthorService
 
     /**
      * 查询权限树列表
-     * 
+     *
      * @return 所有权限信息
      */
     public List<Ztree> selectSysUserOrderAuthorTree();
@@ -99,6 +99,8 @@ public interface ISysUserOrderAuthorService
 
     void sendmailUnionUser();
 
+    void sendMailHanaWarning(String HanaName);
+
     void unionCustomerUser();
 
     /**
@@ -106,12 +108,12 @@ public interface ISysUserOrderAuthorService
      * 无tms工厂的交货单更新状态和订单
      */
     void tmsPlantByOrder();
-    
+
     /**
      * @description: 经销商自动上线
      * @param: []
      * @return: void
-     * @author: njs     
+     * @author: njs
      * @date: 2023/2/23 13:28
      */
     void customersStart();

+ 73 - 9
suishenbang-system/src/main/java/com/dgtly/system/service/impl/SysUserOrderAuthorServiceImpl.java

@@ -29,13 +29,13 @@ import javax.mail.internet.MimeMessage;
 
 /**
  * 权限Service业务层处理
- * 
+ *
  * @author dgtly
  * @date 2022-03-22
  */
 @Service
 @Component
-public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService 
+public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
 {
     @Autowired
     private SysUserOrderAuthorMapper sysUserOrderAuthorMapper;
@@ -74,7 +74,7 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
 
     /**
      * 查询权限
-     * 
+     *
      * @param authorId 权限ID
      * @return 权限
      */
@@ -86,7 +86,7 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
 
     /**
      * 查询权限列表
-     * 
+     *
      * @param sysUserOrderAuthor 权限
      * @return 权限
      */
@@ -98,7 +98,7 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
 
     /**
      * 新增权限
-     * 
+     *
      * @param sysUserOrderAuthor 权限
      * @return 结果
      */
@@ -111,7 +111,7 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
 
     /**
      * 修改权限
-     * 
+     *
      * @param sysUserOrderAuthor 权限
      * @return 结果
      */
@@ -124,7 +124,7 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
 
     /**
      * 删除权限对象
-     * 
+     *
      * @param ids 需要删除的数据ID
      * @return 结果
      */
@@ -136,7 +136,7 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
 
     /**
      * 删除权限信息
-     * 
+     *
      * @param authorId 权限ID
      * @return 结果
      */
@@ -203,7 +203,7 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
 
     /**
      * 查询权限树列表
-     * 
+     *
      * @return 所有权限信息
      */
     @Override
@@ -564,6 +564,50 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
         }
     }
 
+    @Override
+    public void sendMailHanaWarning(String HanaName) {
+        // 1. 创建参数配置, 用于连接邮件服务器的参数配置
+        Properties props = new Properties();                    // 参数配置
+        props.setProperty("mail.transport.protocol", "smtp");   // 使用的协议(JavaMail规范要求)
+        props.setProperty("mail.smtp.host", myEmailSMTPHost);   // 发件人的邮箱的 SMTP 服务器地址
+        props.setProperty("mail.smtp.port", "25");
+        props.setProperty("mail.smtp.auth", "true");            // 需要请求认证
+        props.setProperty("mail.smtp.starttls.enable", "false");            // 需要请求认证
+        props.setProperty("mail.smtp.ssl.enable", "false");            // 需要请求认证
+        Set<String> sendEmailUser = getConfigValueSet("sendmailUnionUser");
+        Session session = Session.getDefaultInstance(props);
+        session.setDebug(true);
+
+        for (String email : sendEmailUser
+        ) {
+            Mail mail = new Mail();
+            try {
+                mail.setFrom(myEmailAccount);
+                mail.setTo(email);
+                mail.setSubject("Hana数据拉取异常");
+                mail.setContent(getHtmlHanaNameContextList(HanaName));
+                MimeMessage message = mailUtils.createMimeMessage(session, myEmailAccount, email, mail);
+
+                // 4. 根据 Session 获取邮件传输对象
+                Transport transport = session.getTransport();
+
+                transport.connect(myEmailAccount, myEmailPassword);
+
+                // 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
+                transport.sendMessage(message, message.getAllRecipients());
+
+                // 7. 关闭连接
+                transport.close();
+            } catch (NoSuchProviderException e) {
+                e.printStackTrace();
+            } catch (MessagingException e) {
+                e.printStackTrace();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
     @Override
     public void unionCustomerUser() {
     /*    List<SysUser> userList = userMapper.selectAllUser();
@@ -852,6 +896,26 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
             return res;
     }
 
+    public String getHtmlHanaNameContextList(String hanaName) {
+
+        String str = "";
+
+            str += "<tr>" +
+                    "   <td>" + hanaName
+                    + "   </td>" +
+                    "</tr>";
+
+
+        String html = "<table border='1'  Cellspacing='0'>" +
+                "    <tr>" +
+                "        <th>Hana数据异常源名称</th>" +
+                "    </tr>" +
+                str +
+                "</table>";
+
+        return html;
+    }
+
     public String getHtmlUserContextList(List<UserVO> userList) {
 
             String str = "";