|
|
@ -8,6 +8,7 @@ import com.xydl.cac.repository.WarnRuleRepository;
|
|
|
|
import com.xydl.cac.repository.WarningRepository;
|
|
|
|
import com.xydl.cac.repository.WarningRepository;
|
|
|
|
import com.xydl.cac.service.DataService;
|
|
|
|
import com.xydl.cac.service.DataService;
|
|
|
|
import com.xydl.cac.util.DateUtil;
|
|
|
|
import com.xydl.cac.util.DateUtil;
|
|
|
|
|
|
|
|
import com.xydl.cac.util.DingTalkPushUtil;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@ -54,7 +55,7 @@ public class RuleCheckTask {
|
|
|
|
Object value = map.get(typePoint.getField());
|
|
|
|
Object value = map.get(typePoint.getField());
|
|
|
|
boolean r = rule.getActualComp().compare(value, rule.getThreshold());
|
|
|
|
boolean r = rule.getActualComp().compare(value, rule.getThreshold());
|
|
|
|
if (r) {
|
|
|
|
if (r) {
|
|
|
|
this.sendWarning(rule, date, value);
|
|
|
|
this.sendWarning(rule, date, str, String.valueOf(value));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
rule.setLastDTime(date);
|
|
|
|
rule.setLastDTime(date);
|
|
|
@ -65,7 +66,7 @@ public class RuleCheckTask {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void sendWarning(WarnRule rule, Date date, Object value) throws Exception {
|
|
|
|
private void sendWarning(WarnRule rule, Date date, String dateStr, String value) throws Exception {
|
|
|
|
NSensor sensor = rule.getNSensor();
|
|
|
|
NSensor sensor = rule.getNSensor();
|
|
|
|
ModevTypePoint typePoint = rule.getTypePoint();
|
|
|
|
ModevTypePoint typePoint = rule.getTypePoint();
|
|
|
|
Warning warning = Warning.builder()
|
|
|
|
Warning warning = Warning.builder()
|
|
|
@ -73,7 +74,7 @@ public class RuleCheckTask {
|
|
|
|
.ruleId(rule.getId())
|
|
|
|
.ruleId(rule.getId())
|
|
|
|
.dTime(date)
|
|
|
|
.dTime(date)
|
|
|
|
.threshold(rule.getThreshold())
|
|
|
|
.threshold(rule.getThreshold())
|
|
|
|
.warnValue((String) value)
|
|
|
|
.warnValue(value)
|
|
|
|
.warnLevel(rule.getLevel())
|
|
|
|
.warnLevel(rule.getLevel())
|
|
|
|
.state("1")
|
|
|
|
.state("1")
|
|
|
|
.warnDesc(sensor.getName() + " " + typePoint.getFieldDesc() + " 告警")
|
|
|
|
.warnDesc(sensor.getName() + " " + typePoint.getFieldDesc() + " 告警")
|
|
|
@ -81,6 +82,9 @@ public class RuleCheckTask {
|
|
|
|
.processTime(new Date())
|
|
|
|
.processTime(new Date())
|
|
|
|
.build();
|
|
|
|
.build();
|
|
|
|
warningRepository.save(warning);
|
|
|
|
warningRepository.save(warning);
|
|
|
|
|
|
|
|
String str = warning.getWarnDesc() + ", 采集时间:" + dateStr + ", 当前值:" + value + " "
|
|
|
|
|
|
|
|
+ rule.getOperatorDesc() + " 阈值(" + rule.getThreshold() + ")";
|
|
|
|
|
|
|
|
DingTalkPushUtil.pushText(str);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|