From 0de5c6281ef9acf1bf8124742e657e7fd6cf2524 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Thu, 14 Sep 2023 11:52:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=82=AC=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../messageremindrule/MessageRemindrule.java | 10 +++- .../MessageRemindruleMapper.java | 2 + .../MessageRemindruleMapper.xml | 4 ++ .../MessageRemindruleService.java | 4 ++ .../MessageUrgeListMapper.java | 3 + .../messageurgeList/MessageUrgeListMapper.xml | 3 + .../MessageUrgeListService.java | 5 +- .../ScheduledMessageService.java | 60 +++++++++++++------ 8 files changed, 70 insertions(+), 21 deletions(-) diff --git a/message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindrule.java b/message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindrule.java index 7bf9fa6..4463fa9 100644 --- a/message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindrule.java +++ b/message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindrule.java @@ -26,12 +26,18 @@ public class MessageRemindrule extends BaseEntity { private static final long serialVersionUID = 1L; - @ApiModelProperty("代码") +/* @ApiModelProperty("代码") private String ruleCode; @ApiModelProperty("提前提醒0,超期循环提醒1,循环提醒2") private Integer rules; @ApiModelProperty("系统消息0,手机短信1") - private Integer remindWay; + private Integer remindWay;*/ + + private String ruleCode; + private Integer rules; + private Integer timeInterval; + private String frequency; + private String remindWay; } diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.java index 2fa26c5..88914d9 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.java @@ -37,4 +37,6 @@ public interface MessageRemindruleMapper extends BaseMapper { @Select("select * from message_remindrule") List selectListVo(); + + MessageRemindrule selectOnes(); } \ No newline at end of file diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.xml b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.xml index 99c0bbf..4385318 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.xml +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.xml @@ -10,4 +10,8 @@ + + \ No newline at end of file diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleService.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleService.java index 20f32d8..8df9ea6 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleService.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleService.java @@ -96,4 +96,8 @@ public class MessageRemindruleService extends MybatisBaseService { + List selecct(String taskId); } diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListMapper.xml b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListMapper.xml index 3b7f66b..5af4953 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListMapper.xml +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListMapper.xml @@ -1,4 +1,7 @@ + \ No newline at end of file diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListService.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListService.java index 3baa7a9..b8ed00b 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListService.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListService.java @@ -66,7 +66,10 @@ public class MessageUrgeListService extends MybatisBaseService selecct(String taskId) { + return baseMapper.selecct(taskId); } } diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/ScheduledMessageService.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/ScheduledMessageService.java index 33d54f1..d3d02cf 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/ScheduledMessageService.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/ScheduledMessageService.java @@ -4,12 +4,16 @@ import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.flowable.api.flow2.FlowFeign; import com.yxt.anrui.flowable.api.flow2.FlowableMessageVo; import com.yxt.anrui.portal.api.sysuser.UserQuery; +import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.result.ResultBean; import com.yxt.messagecenter.api.message.OrderListMessageDto; import com.yxt.messagecenter.api.message.OrderMesageDto; import com.yxt.messagecenter.api.message.PushMessageQuery; +import com.yxt.messagecenter.api.messageremindrule.MessageRemindrule; import com.yxt.messagecenter.api.messageurgeList.MessageListDto; +import com.yxt.messagecenter.api.messageurgeList.MessageUrgeList; import com.yxt.messagecenter.biz.message.MessageService; +import com.yxt.messagecenter.biz.messageremindrule.MessageRemindruleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -32,17 +36,32 @@ public class ScheduledMessageService { private MessageUrgeListService messageUrgeListService; @Autowired private MessageService messageService; + @Autowired + private MessageRemindruleService messageRemindruleService; // @Scheduled(cron = "0 0 0 * * ?") // @Scheduled(cron = "0 0/5 16 * * ?") // @Scheduled(cron = "0/30 * * * * ?") //每30秒执行一次 public void remindMessage() { + //查询规则 + Date now = new Date(); //获取当前时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //查询规则 int minutes = 5; + int num = 4; + MessageRemindrule messageRemindrule = messageRemindruleService.selectOne(); + if (messageRemindrule != null) { + if (messageRemindrule.getTimeInterval() != null) { + minutes = messageRemindrule.getTimeInterval(); + } + if (StringUtils.isNotBlank(messageRemindrule.getFrequency())) { + //查询提醒次数 + num = Integer.parseInt(messageRemindrule.getFrequency()); + } + } //查询所有的待办工作时间超过5分钟的 ResultBean> resultBean = flowFeign.getMessageList(minutes); List list = resultBean.getData(); @@ -50,24 +69,29 @@ public class ScheduledMessageService { if (!list.isEmpty()) { for (int i = 0; i < list.size(); i++) { FlowableMessageVo flowableMessageVo = list.get(i); - MessageListDto messageListDto = new MessageListDto(); - BeanUtil.copyProperties(flowableMessageVo, messageListDto); - //=================================================== - List recipientSidList = Arrays.asList(flowableMessageVo.getAssignee().split(",")); - PushMessageQuery pushMessageQuery = new PushMessageQuery(); - pushMessageQuery.setReceivedSids(recipientSidList); - pushMessageQuery.setModuleName("审批中心"); - pushMessageQuery.setMsgContent("您有待办理的审批,请登录平台及时处理"); - pushMessageQuery.setApp_type("2"); -// pushMessageQuery.setModuleSid("e25e13b5-f2ed-421f-bdb3-6f2eca2a3028"); - pushMessageQuery.setMsgTitle("审批催办提醒"); -// pushMessageQuery.setBusinessSid(busDeliveredApply.getSid()); - // 消息推送 - ResultBean msgSidResultBean = messageService.pushUrgeNoUriMessage(pushMessageQuery); - String msgSid = msgSidResultBean.getData(); - messageListDto.setMsgSid(msgSid); - messageListDto.setType(1); - messageUrgeListService.saveMessage(messageListDto); + //超过次数后,不再推送消息 + List messageUrgeListList = messageUrgeListService.selecct(flowableMessageVo.getTaskId()); + messageUrgeListList.removeAll(Collections.singleton(null)); + if (messageUrgeListList.size() > 0) { + if (num > messageUrgeListList.size()) { + MessageListDto messageListDto = new MessageListDto(); + BeanUtil.copyProperties(flowableMessageVo, messageListDto); + //=================================================== + List recipientSidList = Arrays.asList(flowableMessageVo.getAssignee().split(",")); + PushMessageQuery pushMessageQuery = new PushMessageQuery(); + pushMessageQuery.setReceivedSids(recipientSidList); + pushMessageQuery.setModuleName("审批中心"); + pushMessageQuery.setMsgContent("您有待办理的审批,请登录平台及时处理"); + pushMessageQuery.setApp_type("2"); + pushMessageQuery.setMsgTitle("审批催办提醒"); + // 消息推送 + ResultBean msgSidResultBean = messageService.pushUrgeNoUriMessage(pushMessageQuery); + String msgSid = msgSidResultBean.getData(); + messageListDto.setMsgSid(msgSid); + messageListDto.setType(1); + messageUrgeListService.saveMessage(messageListDto); + } + } } } }