|
|
@@ -16,6 +16,7 @@ import com.yunfeiyun.agmp.iot.common.domain.IotWarnlog;
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.IotWarnpolicy;
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.IotWarnreceiver;
|
|
|
import com.yunfeiyun.agmp.iots.mq.provider.AgmpIotMqProviderService;
|
|
|
+import com.yunfeiyun.agmp.iots.mq.provider.AgmpMqProviderService;
|
|
|
import com.yunfeiyun.agmp.iots.warn.model.WarnResult;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -75,7 +76,22 @@ public class MsgService {
|
|
|
if (wpType.equals("0")) {
|
|
|
// 即时推送
|
|
|
log.info("【告警通知】消息标识{}:当前设备ID:{},即时推送", messageId, warnResult.getDevId());
|
|
|
- saveWarnMsg(warnResult);
|
|
|
+ //如果设置有推送频率,结合最后一次发送时间,如果上次距离当下超过发送频率,那就可以发送
|
|
|
+ // 发送频率,每N时,数字类型
|
|
|
+ String wpFrequency = StringUtils.isEmpty(iotWarnpolicy.getWpFrequency())?"0":iotWarnpolicy.getWpFrequency();
|
|
|
+ // 判断是否到了发送时间
|
|
|
+ IotWarnlog lastedUnSendWarnLog = getLastedUnSendWarnLog(warnResult.getConfigId());
|
|
|
+ if (lastedUnSendWarnLog != null) {
|
|
|
+ // 根据最后一次发送时间,结合发送频率,如果上次距离当下超过发送频率,那就可以发送
|
|
|
+ if (!DateUtils.isBetween(new Date(), DateUtils.parseDate(lastedUnSendWarnLog.getWlCreateddate()), DateUtils.addHours(DateUtils.parseDate(lastedUnSendWarnLog.getWlCreateddate()), Integer.parseInt(wpFrequency)))) {
|
|
|
+ saveWarnMsg(warnResult);
|
|
|
+ } else {
|
|
|
+ reSend = true;
|
|
|
+ log.info("还没到发送时间,下次发送时间:{}", DateUtils.addHours(DateUtils.parseDate(lastedUnSendWarnLog.getWlCreateddate()), Integer.parseInt(wpFrequency)).toString());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ saveWarnMsg(warnResult);
|
|
|
+ }
|
|
|
} else if (wpType.equals("1")) {
|
|
|
// 选定时间
|
|
|
String deliveryTimePeriod = iotWarnpolicy.getDeliveryTimePeriod();
|