diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java index 693bd0f..27cfec1 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java @@ -17,6 +17,7 @@ import org.slf4j.LoggerFactory; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.stereotype.Component; import java.io.IOException; @@ -29,6 +30,7 @@ import java.util.List; * @CreateDate : 2018-11-15 22:35 * @Modify: **/ +@ConditionalOnExpression("'${impp.mq.queue.letter}' == 'true'") @Component public class MessageLetterQueueReceiver { private static final Logger LOGGER = LoggerFactory.getLogger(MessageLetterQueueReceiver.class); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java index 930c657..d2afbb4 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java @@ -17,6 +17,7 @@ import org.slf4j.LoggerFactory; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.stereotype.Component; import java.io.IOException; @@ -28,6 +29,7 @@ import java.io.IOException; * @CreateDate : 2018-11-15 22:15 * @Modify: **/ +@ConditionalOnExpression("'${impp.mq.queue.mail}' == 'true'") @Component public class MessageMailQueueReceiver { private static final Logger LOGGER = LoggerFactory.getLogger(MessageMailQueueReceiver.class); @@ -54,14 +56,21 @@ public class MessageMailQueueReceiver { // 系统预警邮件与用户邮件判断 if(PlatformConstWords.CONTACT_MAIL.equals(msg.getMessageReceiversId())){ - // 发送邮件 mailUtil.setSubject(msg.getMessageTitle()); mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType())); mailUtil.setBody(msg.getMessageContent()); + // 发送给系统配置中的紧急联系人 mailUtil.setTo(sysConfigService.getSysConfigByCode(PlatformConstWords.CONTACT_MAIL).getConfigValue()); - //信息已处理 mailUtil.send(); - }else { + + } else if(PlatformConstWords.EXTERNAL_MAIL.equals(msg.getMessageReceiversId())){ //判断是否为外部邮件 + mailUtil.setSubject(msg.getMessageTitle()); + mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType())); + mailUtil.setBody(msg.getMessageContent()); + mailUtil.setTo(StringUtils.split(msg.getMessageReceiversNameRdd(),",")); + mailUtil.send(); + + } else{ // 收件人信息 String[] messageReceiver = msg.getMessageReceiversId().split(","); @@ -86,7 +95,7 @@ public class MessageMailQueueReceiver { sysMessageService.insertSysRefUserMessage(refUserMessage); - // 发送邮件 + // 设置邮件主题内容及收件人 mailUtil.setSubject(msg.getMessageTitle()); mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType())); mailUtil.setBody(msg.getMessageContent()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java index 77ef932..026bd10 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java @@ -1,7 +1,11 @@ package cn.estsh.i3plus.core.apiservice.mq; import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService; +import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysMessage; import cn.estsh.i3plus.pojo.platform.bean.SysTaskPlan; import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime; import com.rabbitmq.client.Channel; @@ -9,7 +13,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.stereotype.Component; import java.io.IOException; @@ -21,6 +27,7 @@ import java.io.IOException; * @CreateDate : 2018-12-20 21:56 * @Modify: **/ +@ConditionalOnExpression("'${impp.mq.queue.schedule}' == 'true'") @Component public class ScheduleQueueReceiver { @@ -29,6 +36,9 @@ public class ScheduleQueueReceiver { @Autowired private ISysTaskPlanService sysTaskPlanService; + @Autowired + private RabbitTemplate rabbitTemplate; + /** * 定时任务通道处理 * @param logTaskTime @@ -44,7 +54,7 @@ public class ScheduleQueueReceiver { taskPlan.setLastRunDateTime(logTaskTime.getCreateDatetime()); taskPlan.setTaskPlanExecNum(taskPlan.getTaskPlanExecNum() + 1); taskPlan.setTaskPlanStatus(logTaskTime.getTaskStatus()); - //更新任务状态以及最后执行时间 + // 更新任务状态以及最后执行时间 sysTaskPlanService.updateSysTaskPlan(taskPlan); // 添加定时任务日志 @@ -53,6 +63,35 @@ public class ScheduleQueueReceiver { logTaskTime.setTaskCycleExpsRdd(taskPlan.getTaskCycleExpsRdd()); sysTaskPlanService.logInsertSysLogTaskTime(logTaskTime); + // 定时任务失败通知 + if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == logTaskTime.getTaskStatus() + && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == taskPlan.getIsNotice()) { + // 设置通知邮件内容 + SysMessage sysMessage = new SysMessage(); + sysMessage.setMessageSenderNameRdd("系统管理员"); + sysMessage.setMessageTitle("任务计划失败通知"); + sysMessage.setMessageContent( + String.format("

管理员 您好:

任务计划(Name: %s,GroupName: %s)执行失败,详细信息请查看定时任务日志(ID: %s).
", + taskPlan.getName(),taskPlan.getGroupName(),logTaskTime.getId()) + ); + sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue()); + sysMessage.setMessageSendTime(TimeTool.getNowTime(true)); + sysMessage.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + + // 是否内部成员 + if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == taskPlan.getIsInternalUser()) { + sysMessage.setMessageReceiversId(PlatformConstWords.EXTERNAL_MAIL); + sysMessage.setMessageReceiversNameRdd(taskPlan.getNoticeChannel()); + } + + // 发送到对应处理队列 + if(ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue() == taskPlan.getNoticeMethod().intValue()){ + rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE,sysMessage); + }else{ + rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,sysMessage); + } + } + //信息已处理 channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); } catch (IOException e) { diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties index b21c055..ba14679 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -118,6 +118,7 @@ impp.read.datasource.username=impp_i3_core_user impp.read.datasource.password=impp_i3_core_pwd ##############定时任务持久化############## +impp.schedule.open=true impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.schedule.datasource.username=impp_i3_schedule_user @@ -171,3 +172,8 @@ spring.datasource.validationQuery=SELECT 1 spring.jpa.properties.hibernate.hbm2ddl.auto=update #是否显示sql spring.jpa.show-sql=true + +################ MQ队列处理 ################ +impp.mq.queue.letter = true +impp.mq.queue.mail = true +impp.mq.queue.schedule = true \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties b/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties index 4b3bc09..42378da 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties @@ -113,6 +113,7 @@ impp.read.datasource.username=impp_i3_core_user impp.read.datasource.password=impp_i3_core_pwd ##############定时任务持久化############## +impp.schedule.open=true impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3309/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.schedule.datasource.username=impp_i3_schedule_user @@ -166,3 +167,8 @@ spring.datasource.validationQuery=SELECT 1 spring.jpa.properties.hibernate.hbm2ddl.auto=update #是否显示sql spring.jpa.show-sql=true + +################ MQ队列处理 ################ +impp.mq.queue.letter = true +impp.mq.queue.mail = true +impp.mq.queue.schedule = true \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-test.properties b/modules/i3plus-core-apiservice/src/main/resources/application-test.properties index 97ede48..555d266 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-test.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-test.properties @@ -118,6 +118,7 @@ impp.read.datasource.username=impp_i3_core_user impp.read.datasource.password=impp_i3_core_pwd ##############定时任务持久化############## +impp.schedule.open=true impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3308/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.schedule.datasource.username=impp_i3_schedule_user @@ -171,3 +172,8 @@ spring.datasource.validationQuery=SELECT 1 spring.jpa.properties.hibernate.hbm2ddl.auto=update #是否显示sql spring.jpa.show-sql=true + +################ MQ队列处理 ################ +impp.mq.queue.letter = true +impp.mq.queue.mail = true +impp.mq.queue.schedule = true \ No newline at end of file