From 16bbd0a2e072bafea1dc254fbbcf86768fb3ea48 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期一, 18 十一月 2024 14:57:18 +0800
Subject: [PATCH] 钉钉推送消息,通过机器人发送到个人

---
 src/main/java/com/gs/dingtalk/service/impl/SendDingtalkServiceImpl.java |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/gs/dingtalk/service/impl/SendDingtalkServiceImpl.java b/src/main/java/com/gs/dingtalk/service/impl/SendDingtalkServiceImpl.java
index cb17f90..c267e80 100644
--- a/src/main/java/com/gs/dingtalk/service/impl/SendDingtalkServiceImpl.java
+++ b/src/main/java/com/gs/dingtalk/service/impl/SendDingtalkServiceImpl.java
@@ -19,6 +19,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -78,7 +79,7 @@
 
         List<SendDingtalk> list = list(wrapper);
 
-        getMessage(list);
+        getMessage(list, 5);
     }
 
     @Override
@@ -88,7 +89,7 @@
 
         List<SendDingtalk> list = list(wrapper);
 
-        getMessage(list);
+        getMessage(list, 30);
     }
 
     @Override
@@ -117,18 +118,26 @@
         });
     }
 
-    private void getMessage(List<SendDingtalk> list) {
+    private void getMessage(List<SendDingtalk> list, int Minutes) {
         List<SendMessage> sendMessageList = sendMessageService.getSendMessageList();
 
         sendMessageList.forEach(s -> {
 
-            String userIdList = list.stream()
-                    .filter(dingtalk -> {
-                        String[] purviews = dingtalk.getPurview().split(",");
-                        return Arrays.asList(purviews).contains(s.getProcNo());
-                    }).map(SendDingtalk::getUserId).collect(Collectors.joining(","));
+            // 鑾峰彇褰撳墠鏃堕棿鐨� LocalDateTime锛屽拷鐣ョ
+            LocalDateTime now = LocalDateTime.now().withSecond(0).withNano(0);
 
-            //閽夐拤鐨勮鍒欓檺鍒� 缁欏悓涓�鍛樺伐涓�澶╁彧鑳藉彂閫佷竴鏉″唴瀹圭浉鍚岀殑娑堟伅閫氱煡銆�
+            // 姣旇緝鏃堕棿锛屽垽鏂� sendDate 鏄惁澶т簬褰撳墠鏃堕棿浜斿垎閽�
+            boolean isGreaterThanFiveMinutes = s.getSendDate().plusMinutes(Minutes).isBefore(now);
+
+            if (!isGreaterThanFiveMinutes) {
+                return;
+            }
+
+            String userIdList = list.stream().filter(dingtalk -> {
+                String[] purviews = dingtalk.getPurview().split(",");
+                return Arrays.asList(purviews).contains(s.getProcNo());
+            }).map(SendDingtalk::getUserId).collect(Collectors.joining(","));
+
             String message = s.getLineName() + s.getProcName() + ",璇峰敖蹇鐞�";
 
             DingTalkMessage dingTalkMessage = null;

--
Gitblit v1.9.3