|
|
@@ -0,0 +1,92 @@ |
|
|
|
package cn.com.taiji.iasq.manager.quartz.msgw; |
|
|
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import cn.com.taiji.common.manager.ManagerException; |
|
|
|
import cn.com.taiji.core.entity.dict.EnableStatus; |
|
|
|
import cn.com.taiji.core.entity.dict.msgw.MessageResult; |
|
|
|
import cn.com.taiji.core.entity.dict.msgw.MessageType; |
|
|
|
import cn.com.taiji.core.entity.msgw.MsgwAlarmConfig; |
|
|
|
import cn.com.taiji.core.entity.msgw.MsgwAlarmLog; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.ias.message.HltSendShortRequest; |
|
|
|
import cn.com.taiji.core.repo.jpa.msgw.MsgwAlarmConfigRepo; |
|
|
|
import cn.com.taiji.core.repo.jpa.msgw.MsgwAlarmLogRepo; |
|
|
|
import cn.com.taiji.core.repo.jpa.msgw.MsgwSendDetailsRepo; |
|
|
|
import cn.com.taiji.iasq.manager.AbstractCommManager; |
|
|
|
|
|
|
|
@Service |
|
|
|
public class MsgwUpwardManagerImpl extends AbstractCommManager implements MsgwUpwardManager { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private MsgwSendDetailsRepo sendDetailsRepo; |
|
|
|
@Autowired |
|
|
|
private MsgwAlarmConfigRepo alarmConfigRepo; |
|
|
|
@Autowired |
|
|
|
private MsgwAlarmLogRepo alarmLogRepo; |
|
|
|
LocalDateTime startDateTime = LocalDateTime.now().minusHours(1); |
|
|
|
LocalDateTime endDateTime = LocalDateTime.now(); |
|
|
|
|
|
|
|
@Override |
|
|
|
public void execute() { |
|
|
|
logger.info("-------消息推送-消息发送失败告警开始-------"); |
|
|
|
// 查询时间段内是否有需要告警的数据 |
|
|
|
// Long failNum = sendDetailsRepo.countStatistics(null, MessageResult.FAIL, startDateTime, endDateTime); |
|
|
|
// boolean isAlerts = failNum.equals(0); |
|
|
|
// // 如果有,查询是哪个的,触发告警发送 |
|
|
|
// while (!isAlerts) { |
|
|
|
// for (MessageType type : MessageType.values()) { |
|
|
|
// Long failTotalNum = sendDetailsRepo.countStatistics(type, MessageResult.FAIL, startDateTime, endDateTime); |
|
|
|
// // 如果不为空,发送告警 |
|
|
|
// if (failTotalNum != 0){ |
|
|
|
// try { |
|
|
|
// sendAlerts(type, failTotalNum); |
|
|
|
// } catch (ManagerException e) { |
|
|
|
// logger.error("--消息推送-消息发送失败告警失败:", e); |
|
|
|
// } |
|
|
|
// } |
|
|
|
// } |
|
|
|
// } |
|
|
|
logger.info("-------消息推送-消息发送失败告警结束-------"); |
|
|
|
} |
|
|
|
|
|
|
|
// public void sendAlerts(MessageType type, Long num) throws ManagerException{ |
|
|
|
// List<MsgwAlarmConfig> configs = alarmConfigRepo.findConfigByCondition(type, EnableStatus.ENABLE); |
|
|
|
// MsgwAlarmLog alarmLog = new MsgwAlarmLog(); |
|
|
|
// alarmLog.setInsertTime(endDateTime); |
|
|
|
// alarmLog.setMessageType(type); |
|
|
|
// if (configs.isEmpty()){ |
|
|
|
// //告警配置内容 |
|
|
|
// alarmLog.setSendResult(0);//默认失败 告警结果(0-失败,1-成功) |
|
|
|
// String failReason = "未找到可用的告警配置!原因:没有配置【" + ",消息类型为:" + type.name() + "】的告警配置。"; |
|
|
|
// alarmLog.setAlarmReason(failReason); |
|
|
|
// alarmLogRepo.persist(alarmLog); |
|
|
|
// return; |
|
|
|
// } |
|
|
|
// // 循环发送告警人 |
|
|
|
// for (MsgwAlarmConfig config : configs){ |
|
|
|
// HltSendShortRequest request = new HltSendShortRequest(); |
|
|
|
// String message = "类型" + type.getValue() + "发送错误,共计" + num + "个。"; |
|
|
|
// request.setTitle("告警提醒"); |
|
|
|
// request.setMessage(message); |
|
|
|
// request.setMobile(config.getMobile()); |
|
|
|
// alarmLog.setAlarmConfigId(config.getId()); |
|
|
|
// alarmLog.setStaffName(config.getStaffName()); |
|
|
|
// alarmLog.setMobile(config.getMobile()); |
|
|
|
// alarmLog.setAlarmMessage(message); |
|
|
|
// try { |
|
|
|
// jsonPostRepeat(request); |
|
|
|
// // 记录日志 |
|
|
|
// alarmLog.setSendResult(1); |
|
|
|
// alarmLogRepo.persist(alarmLog); |
|
|
|
// } catch (ManagerException e) { |
|
|
|
// alarmLog.setSendResult(0); |
|
|
|
// alarmLog.setAlarmReason("告警短信发送失败!"); |
|
|
|
// } |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
} |