|
|
@ -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<List<FlowableMessageVo>> resultBean = flowFeign.getMessageList(minutes); |
|
|
|
List<FlowableMessageVo> 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<String> 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<String> msgSidResultBean = messageService.pushUrgeNoUriMessage(pushMessageQuery); |
|
|
|
String msgSid = msgSidResultBean.getData(); |
|
|
|
messageListDto.setMsgSid(msgSid); |
|
|
|
messageListDto.setType(1); |
|
|
|
messageUrgeListService.saveMessage(messageListDto); |
|
|
|
//超过次数后,不再推送消息
|
|
|
|
List<MessageUrgeList> 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<String> recipientSidList = Arrays.asList(flowableMessageVo.getAssignee().split(",")); |
|
|
|
PushMessageQuery pushMessageQuery = new PushMessageQuery(); |
|
|
|
pushMessageQuery.setReceivedSids(recipientSidList); |
|
|
|
pushMessageQuery.setModuleName("审批中心"); |
|
|
|
pushMessageQuery.setMsgContent("您有待办理的审批,请登录平台及时处理"); |
|
|
|
pushMessageQuery.setApp_type("2"); |
|
|
|
pushMessageQuery.setMsgTitle("审批催办提醒"); |
|
|
|
// 消息推送
|
|
|
|
ResultBean<String> msgSidResultBean = messageService.pushUrgeNoUriMessage(pushMessageQuery); |
|
|
|
String msgSid = msgSidResultBean.getData(); |
|
|
|
messageListDto.setMsgSid(msgSid); |
|
|
|
messageListDto.setType(1); |
|
|
|
messageUrgeListService.saveMessage(messageListDto); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|