| | |
| | | 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; |
| | |
| | | |
| | | List<SendDingtalk> list = list(wrapper); |
| | | |
| | | getMessage(list); |
| | | getMessage(list, 5); |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | List<SendDingtalk> list = list(wrapper); |
| | | |
| | | getMessage(list); |
| | | getMessage(list, 30); |
| | | } |
| | | |
| | | @Override |
| | |
| | | }); |
| | | } |
| | | |
| | | 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; |