feat(alarm): 添加告警统计功能并优化设备管理
- 在AlarmVO中新增interruptCounts和warnCounts字段用于统计通信中断和终端告警次数 - 在CsAlarmServiceImpl中实现告警次数统计逻辑,解析告警事件数据并计算各类告警数量 - 重构CsEventUserPOServiceImpl中的查询逻辑,优化暂态事件详细信息查询接口 - 在CsEquipmentDeliveryServiceImpl中集成事件查询功能,实时获取设备告警状态 - 优化数据库查询语句,改进事件查询的排序和过滤逻辑
This commit is contained in:
@@ -75,6 +75,8 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
||||
private final AppInfoSetFeignClient appInfoSetFeignClient;
|
||||
private final SendMessageUtil sendMessageUtil;
|
||||
private final CsCommTerminalFeignClient csCommTerminalFeignClient;
|
||||
private final CsHarmonicPlanFeignClient csHarmonicPlanFeignClient;
|
||||
private final CsHarmonicPlanLineFeignClient csHarmonicPlanLineFeignClient;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -629,52 +631,253 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
||||
* @return 越限标签
|
||||
*/
|
||||
private String buildOverlimitTag(RStatLimitRateDPO item) {
|
||||
String tag = "";
|
||||
StringBuilder tagBuilder = new StringBuilder();
|
||||
|
||||
// 基础越限项
|
||||
Integer freqDevOvertime = item.getFreqDevOvertime();
|
||||
if (freqDevOvertime > 0) {
|
||||
tag = tag + "频率偏差越限" + freqDevOvertime + "次,";
|
||||
String planId = csHarmonicPlanLineFeignClient.getPlanIdByLineId(item.getLineId()).getData();
|
||||
Set<String> targetSet = null;
|
||||
|
||||
if (planId != null) {
|
||||
CsHarmonicPlan csHarmonicPlan = csHarmonicPlanFeignClient.getById(planId).getData();
|
||||
if (csHarmonicPlan != null) {
|
||||
String harmonicTarget = csHarmonicPlan.getHarmonicTarget();
|
||||
if (StrUtil.isNotBlank(harmonicTarget)) {
|
||||
targetSet = new HashSet<>(Arrays.asList(harmonicTarget.split(",")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Integer voltageDevOvertime = item.getVoltageDevOvertime();
|
||||
if (voltageDevOvertime > 0) {
|
||||
tag = tag + "电压偏差越限" + voltageDevOvertime + "次,";
|
||||
if (targetSet != null) {
|
||||
Integer freqDevOvertime = item.getFreqDevOvertime();
|
||||
if (freqDevOvertime != null && freqDevOvertime > 0 && targetSet.contains("频率偏差")) {
|
||||
tagBuilder.append("频率偏差越限").append(freqDevOvertime).append("次,");
|
||||
}
|
||||
|
||||
Integer voltageDevOvertime = item.getVoltageDevOvertime();
|
||||
if (voltageDevOvertime != null && voltageDevOvertime > 0 && targetSet.contains("电压偏差")) {
|
||||
tagBuilder.append("电压偏差越限").append(voltageDevOvertime).append("次,");
|
||||
}
|
||||
|
||||
Integer ubalanceOvertime = item.getUbalanceOvertime();
|
||||
if (ubalanceOvertime != null && ubalanceOvertime > 0 && targetSet.contains("三相电压不平衡度")) {
|
||||
tagBuilder.append("三相电压不平衡度越限").append(ubalanceOvertime).append("次,");
|
||||
}
|
||||
|
||||
Integer flickerOvertime = item.getFlickerOvertime();
|
||||
if (flickerOvertime != null && flickerOvertime > 0 && targetSet.contains("闪变")) {
|
||||
tagBuilder.append("闪变越限").append(flickerOvertime).append("次,");
|
||||
}
|
||||
|
||||
Integer uaberranceOvertime = item.getUaberranceOvertime();
|
||||
if (uaberranceOvertime != null && uaberranceOvertime > 0 && targetSet.contains("电压总谐波畸变率")) {
|
||||
tagBuilder.append("电压总谐波畸变率越限").append(uaberranceOvertime).append("次,");
|
||||
}
|
||||
|
||||
Integer iNegOvertime = item.getINegOvertime();
|
||||
if (iNegOvertime != null && iNegOvertime > 0 && targetSet.contains("负序电流")) {
|
||||
tagBuilder.append("负序电流越限").append(iNegOvertime).append("次,");
|
||||
}
|
||||
|
||||
for (int i = 2; i <= 25; i++) {
|
||||
String fieldName = "uharm" + i + "Overtime";
|
||||
Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
||||
if (value != null && value > 0) {
|
||||
String targetName = i + "次谐波电压含有率";
|
||||
if (targetSet.contains(targetName)) {
|
||||
tagBuilder.append(i).append("次谐波电压含有率越限").append(value).append("次,");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 2; i <= 25; i++) {
|
||||
String fieldName = "iharm" + i + "Overtime";
|
||||
Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
||||
if (value != null && value > 0) {
|
||||
String targetName = i + "次谐波电流有效值";
|
||||
if (targetSet.contains(targetName)) {
|
||||
tagBuilder.append(i).append("次谐波电流有效值越限").append(value).append("次,");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 1; i <= 16; i++) {
|
||||
String fieldName = "inuharm" + i + "Overtime";
|
||||
Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
||||
if (value != null && value > 0) {
|
||||
double harmonicOrder = i * 1.0 - 0.5;
|
||||
String targetName = harmonicOrder + "次间谐波电压含有率";
|
||||
if (targetSet.contains(targetName)) {
|
||||
tagBuilder.append(harmonicOrder).append("次间谐波电压含有率越限").append(value).append("次,");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Integer freqDevOvertime = item.getFreqDevOvertime();
|
||||
if (freqDevOvertime != null && freqDevOvertime > 0) {
|
||||
tagBuilder.append("频率偏差越限").append(freqDevOvertime).append("次,");
|
||||
}
|
||||
|
||||
Integer voltageDevOvertime = item.getVoltageDevOvertime();
|
||||
if (voltageDevOvertime != null && voltageDevOvertime > 0) {
|
||||
tagBuilder.append("电压偏差越限").append(voltageDevOvertime).append("次,");
|
||||
}
|
||||
|
||||
Integer ubalanceOvertime = item.getUbalanceOvertime();
|
||||
if (ubalanceOvertime != null && ubalanceOvertime > 0) {
|
||||
tagBuilder.append("三相电压不平衡度越限").append(ubalanceOvertime).append("次,");
|
||||
}
|
||||
|
||||
Integer flickerOvertime = item.getFlickerOvertime();
|
||||
if (flickerOvertime != null && flickerOvertime > 0) {
|
||||
tagBuilder.append("闪变越限").append(flickerOvertime).append("次,");
|
||||
}
|
||||
|
||||
Integer uaberranceOvertime = item.getUaberranceOvertime();
|
||||
if (uaberranceOvertime != null && uaberranceOvertime > 0) {
|
||||
tagBuilder.append("电压总谐波畸变率越限").append(uaberranceOvertime).append("次,");
|
||||
}
|
||||
|
||||
Integer iNegOvertime = item.getINegOvertime();
|
||||
if (iNegOvertime != null && iNegOvertime > 0) {
|
||||
tagBuilder.append("负序电流越限").append(iNegOvertime).append("次,");
|
||||
}
|
||||
|
||||
String harmonicVoltageTag = buildHarmonicVoltageTags(item, "");
|
||||
if (StrUtil.isNotBlank(harmonicVoltageTag)) {
|
||||
tagBuilder.append(harmonicVoltageTag);
|
||||
}
|
||||
|
||||
String harmonicCurrentTag = buildHarmonicCurrentTags(item, "");
|
||||
if (StrUtil.isNotBlank(harmonicCurrentTag)) {
|
||||
tagBuilder.append(harmonicCurrentTag);
|
||||
}
|
||||
|
||||
String interharmonicTag = buildInterharmonicVoltageTags(item, "");
|
||||
if (StrUtil.isNotBlank(interharmonicTag)) {
|
||||
tagBuilder.append(interharmonicTag);
|
||||
}
|
||||
}
|
||||
|
||||
Integer ubalanceOvertime = item.getUbalanceOvertime();
|
||||
if (ubalanceOvertime > 0) {
|
||||
tag = tag + "三相电压不平衡度越限" + ubalanceOvertime + "次,";
|
||||
}
|
||||
|
||||
Integer flickerOvertime = item.getFlickerOvertime();
|
||||
if (flickerOvertime > 0) {
|
||||
tag = tag + "闪变越限" + flickerOvertime + "次,";
|
||||
}
|
||||
|
||||
Integer uaberranceOvertime = item.getUaberranceOvertime();
|
||||
if (uaberranceOvertime > 0) {
|
||||
tag = tag + "电压总谐波畸变率越限" + uaberranceOvertime + "次,";
|
||||
}
|
||||
|
||||
Integer iNegOvertime = item.getINegOvertime();
|
||||
if (iNegOvertime > 0) {
|
||||
tag = tag + "负序电流越限" + iNegOvertime + "次,";
|
||||
}
|
||||
|
||||
// 谐波电压含有率(2-25 次)
|
||||
tag = buildHarmonicVoltageTags(item, tag);
|
||||
|
||||
// 谐波电流有效值(2-25 次)
|
||||
tag = buildHarmonicCurrentTags(item, tag);
|
||||
|
||||
// 间谐波电压含有率(0.5-15.5 次)
|
||||
tag = buildInterharmonicVoltageTags(item, tag);
|
||||
|
||||
// 去除末尾逗号
|
||||
return trimTrailingComma(tag);
|
||||
return trimTrailingComma(tagBuilder.toString());
|
||||
}
|
||||
|
||||
// private String buildOverlimitTag(RStatLimitRateDPO item) {
|
||||
// String tag = "";
|
||||
//
|
||||
// //获取监测点配置的稳态指标,如果没有配置则查询所有指标
|
||||
// String planId = csHarmonicPlanLineFeignClient.getPlanIdByLineId(item.getLineId()).getData();
|
||||
// if (planId != null) {
|
||||
// CsHarmonicPlan csHarmonicPlan = csHarmonicPlanFeignClient.getById(planId).getData();
|
||||
// String harmonicTarget = csHarmonicPlan.getHarmonicTarget();
|
||||
// List<String> targetList = Arrays.asList(harmonicTarget.split(","));
|
||||
//
|
||||
// Integer freqDevOvertime = item.getFreqDevOvertime();
|
||||
// if (freqDevOvertime > 0 && targetList.contains("频率偏差")) {
|
||||
// tag = tag + "频率偏差越限" + freqDevOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// Integer voltageDevOvertime = item.getVoltageDevOvertime();
|
||||
// if (voltageDevOvertime > 0 && targetList.contains("电压偏差")) {
|
||||
// tag = tag + "电压偏差越限" + voltageDevOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// Integer ubalanceOvertime = item.getUbalanceOvertime();
|
||||
// if (ubalanceOvertime > 0 && targetList.contains("三相电压不平衡度")) {
|
||||
// tag = tag + "三相电压不平衡度越限" + ubalanceOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// Integer flickerOvertime = item.getFlickerOvertime();
|
||||
// if (flickerOvertime > 0 && targetList.contains("闪变")) {
|
||||
// tag = tag + "闪变越限" + flickerOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// Integer uaberranceOvertime = item.getUaberranceOvertime();
|
||||
// if (uaberranceOvertime > 0 && targetList.contains("电压总谐波畸变率")) {
|
||||
// tag = tag + "电压总谐波畸变率越限" + uaberranceOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// Integer iNegOvertime = item.getINegOvertime();
|
||||
// if (iNegOvertime > 0 && targetList.contains("负序电流")) {
|
||||
// tag = tag + "负序电流越限" + iNegOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// for (int i = 2; i <= 25; i++) {
|
||||
// String fieldName = "uharm" + i + "Overtime";
|
||||
// Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
||||
// if (value != null && value > 0) {
|
||||
// String targetName = i + "次谐波电压含有率";
|
||||
// if (targetList.contains(targetName)) {
|
||||
// tag = tag + i + "次谐波电压含有率越限" + value + "次,";
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// for (int i = 2; i <= 25; i++) {
|
||||
// String fieldName = "iharm" + i + "Overtime";
|
||||
// Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
||||
// if (value != null && value > 0) {
|
||||
// String targetName = i + "次谐波电流有效值";
|
||||
// if (targetList.contains(targetName)) {
|
||||
// tag = tag + i + "次谐波电流有效值越限" + value + "次,";
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// for (int i = 1; i <= 16; i++) {
|
||||
// String fieldName = "inuharm" + i + "Overtime";
|
||||
// Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
||||
// if (value != null && value > 0) {
|
||||
// double harmonicOrder = i * 1.0 - 0.5;
|
||||
// String targetName = harmonicOrder + "次间谐波电压含有率";
|
||||
// if (targetList.contains(targetName)) {
|
||||
// tag = tag + harmonicOrder + "次间谐波电压含有率越限" + value + "次,";
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// // 基础越限项
|
||||
// Integer freqDevOvertime = item.getFreqDevOvertime();
|
||||
// if (freqDevOvertime > 0) {
|
||||
// tag = tag + "频率偏差越限" + freqDevOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// Integer voltageDevOvertime = item.getVoltageDevOvertime();
|
||||
// if (voltageDevOvertime > 0) {
|
||||
// tag = tag + "电压偏差越限" + voltageDevOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// Integer ubalanceOvertime = item.getUbalanceOvertime();
|
||||
// if (ubalanceOvertime > 0) {
|
||||
// tag = tag + "三相电压不平衡度越限" + ubalanceOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// Integer flickerOvertime = item.getFlickerOvertime();
|
||||
// if (flickerOvertime > 0) {
|
||||
// tag = tag + "闪变越限" + flickerOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// Integer uaberranceOvertime = item.getUaberranceOvertime();
|
||||
// if (uaberranceOvertime > 0) {
|
||||
// tag = tag + "电压总谐波畸变率越限" + uaberranceOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// Integer iNegOvertime = item.getINegOvertime();
|
||||
// if (iNegOvertime > 0) {
|
||||
// tag = tag + "负序电流越限" + iNegOvertime + "次,";
|
||||
// }
|
||||
//
|
||||
// // 谐波电压含有率(2-25 次)
|
||||
// tag = buildHarmonicVoltageTags(item, tag);
|
||||
//
|
||||
// // 谐波电流有效值(2-25 次)
|
||||
// tag = buildHarmonicCurrentTags(item, tag);
|
||||
//
|
||||
// // 间谐波电压含有率(0.5-15.5 次)
|
||||
// tag = buildInterharmonicVoltageTags(item, tag);
|
||||
// }
|
||||
// // 去除末尾逗号
|
||||
// return trimTrailingComma(tag);
|
||||
// }
|
||||
|
||||
/**
|
||||
* 批量构建谐波电压含有率 tag(2-25 次)
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user