Browse Source

催办

master
dimengzhe 2 years ago
parent
commit
0de5c6281e
  1. 10
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindrule.java
  2. 2
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.java
  3. 4
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.xml
  4. 4
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleService.java
  5. 3
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListMapper.java
  6. 3
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListMapper.xml
  7. 5
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListService.java
  8. 60
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/ScheduledMessageService.java

10
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;
}

2
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.java

@ -37,4 +37,6 @@ public interface MessageRemindruleMapper extends BaseMapper<MessageRemindrule> {
@Select("select * from message_remindrule")
List<MessageRemindruleVo> selectListVo();
MessageRemindrule selectOnes();
}

4
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.xml

@ -10,4 +10,8 @@
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo">
SELECT * FROM message_remindrule <where> ${ew.sqlSegment} </where>
</select>
<select id="selectOnes" resultType="com.yxt.messagecenter.api.messageremindrule.MessageRemindrule">
select * from message_remindrule order by id desc limit 1
</select>
</mapper>

4
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleService.java

@ -96,4 +96,8 @@ public class MessageRemindruleService extends MybatisBaseService<MessageRemindru
BeanUtil.copyProperties(entity, vo);
return vo;
}
public MessageRemindrule selectOne() {
return baseMapper.selectOnes();
}
}

3
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListMapper.java

@ -5,6 +5,8 @@ import com.yxt.messagecenter.api.messagetype.MessageType;
import com.yxt.messagecenter.api.messageurgeList.MessageUrgeList;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -12,4 +14,5 @@ import org.apache.ibatis.annotations.Mapper;
**/
@Mapper
public interface MessageUrgeListMapper extends BaseMapper<MessageUrgeList> {
List<MessageUrgeList> selecct(String taskId);
}

3
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListMapper.xml

@ -1,4 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messageurgeList.MessageUrgeListMapper">
<select id="selecct" resultType="com.yxt.messagecenter.api.messageurgeList.MessageUrgeList">
select count(*) from message_urgelist where taskId = #{taskId}
</select>
</mapper>

5
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/MessageUrgeListService.java

@ -66,7 +66,10 @@ public class MessageUrgeListService extends MybatisBaseService<MessageUrgeListMa
messageListDto.setType(2);
messageUrgeListService.saveMessage(messageListDto);
}
return rb.success();
}
return null;
public List<MessageUrgeList> selecct(String taskId) {
return baseMapper.selecct(taskId);
}
}

60
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<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);
}
}
}
}
}

Loading…
Cancel
Save