feat(alarm):优化报警检查逻辑并新增报告标识字段- 调整AppPosiDeviceController和MesDataScheduled中的报警检查逻辑
- 新增OPEN_ALARM字段控制是否触发报警检查 - 当REPORT_ID非空时强制执行报警检查,忽略OPEN_ALARM设置 - 在TbIronPlcMapper.xml中增加OPEN_ALARM字段查询支持 - 在TbIronWarningInfoDao.xml中新增IS_REPORT字段用于区分报警来源 - 保存报警信息时记录是否关联报告ID - 重构代码结构提升可读性和维护性dev
parent
8ea3c56abd
commit
5b82275226
|
|
@ -185,8 +185,22 @@ public class AppPosiDeviceController {
|
|||
|
||||
// 添加到数据列表
|
||||
Map<String, Object> data = saveData(currentValue, equipmentId, targetAllList, processingBatchId, processingTime);
|
||||
// 检查阈值是否超出范围
|
||||
checkThreshold(data);
|
||||
|
||||
String reportId = target.getString("REPORT_ID");
|
||||
String openAlarm = target.getString("OPEN_ALARM");
|
||||
|
||||
// REPORT_ID不为空且不为空串时必须检查(即使OPEN_ALARM为1也检查)
|
||||
if (reportId != null && !"".equals(reportId.trim())) {
|
||||
checkThreshold(data);
|
||||
}
|
||||
// OPEN_ALARM为1时不检查
|
||||
else if ("1".equals(openAlarm)) {
|
||||
// 不检查报警
|
||||
}
|
||||
// 其他情况正常检查(OPEN_ALARM为0或其他值)
|
||||
else {
|
||||
checkThreshold(data);
|
||||
}
|
||||
dataList.add(data);
|
||||
}
|
||||
}
|
||||
|
|
@ -243,6 +257,7 @@ public class AppPosiDeviceController {
|
|||
data.put("TARGET_STATUS", pageData.getString("TARGET_STATUS"));
|
||||
data.put("CORPINFO_ID", pageData.getString("CORPINFO_ID"));
|
||||
data.put("REPORT_ID", pageData.getString("REPORT_ID"));
|
||||
data.put("OPEN_ALARM", pageData.getString("OPEN_ALARM"));
|
||||
} else {
|
||||
data.put("IPCDEVICE_ID", "");
|
||||
data.put("DEVICE_ID", "");
|
||||
|
|
@ -264,6 +279,7 @@ public class AppPosiDeviceController {
|
|||
data.put("TARGET_STATUS", "");
|
||||
data.put("CORPINFO_ID", "");
|
||||
data.put("REPORT_ID", "");
|
||||
data.put("OPEN_ALARM", "");
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
|
@ -363,6 +379,7 @@ public class AppPosiDeviceController {
|
|||
itemPageData.put("CORPINFO_ID", item.get("CORPINFO_ID"));
|
||||
itemPageData.put("OPERATTIME", DateUtil.date2Str(new Date()));
|
||||
itemPageData.put("CREATTIME", DateUtil.date2Str(new Date()));
|
||||
itemPageData.put("REPORT_ID", item.get("REPORT_ID"));
|
||||
alarmLogArrayList.add(itemPageData);
|
||||
|
||||
// 添加到活跃报警列表,用于处理warninfo表
|
||||
|
|
@ -419,6 +436,11 @@ public class AppPosiDeviceController {
|
|||
warnInfo.put("OPERATTIME", currentTime);
|
||||
warnInfo.put("ISDELETE", "0");
|
||||
warnInfo.put("FEED_BACK", "1");
|
||||
if (alarm.get("REPORT_ID") != null && alarm.get("REPORT_ID") != ""){
|
||||
warnInfo.put("IS_REPORT", "1");
|
||||
}else {
|
||||
warnInfo.put("IS_REPORT", "0");
|
||||
}
|
||||
|
||||
// 保存到数据库
|
||||
tbIronWarnInfoDao.saveWarnInfo(warnInfo);
|
||||
|
|
|
|||
|
|
@ -312,11 +312,29 @@ public class MesDataScheduled extends IJobHandler {
|
|||
mesData.put("TARGET_STATUS", pageData.getString("TARGET_STATUS"));
|
||||
mesData.put("CORPINFO_ID", pageData.getString("CORPINFO_ID"));
|
||||
mesData.put("REPORT_ID", pageData.getString("REPORT_ID"));
|
||||
mesData.put("OPEN_ALARM", pageData.getString("OPEN_ALARM"));
|
||||
|
||||
// 检查是否需要报警
|
||||
// 除尘器设备不需要检查报警
|
||||
// 根据需求调整报警检查逻辑:
|
||||
// 1. 除尘器设备不检查(最高优先级)
|
||||
// 2. REPORT_ID不为空且不为空串时必须检查(次优先级)
|
||||
// 3. OPEN_ALARM为0时检查为1不检查(第三优先级)
|
||||
if (!key.contains("除尘器")) {
|
||||
checkThreshold(mesData);
|
||||
String reportId = pageData.getString("REPORT_ID");
|
||||
String openAlarm = pageData.getString("OPEN_ALARM");
|
||||
|
||||
// REPORT_ID不为空且不为空串时必须检查(即使OPEN_ALARM为1也检查)
|
||||
if (reportId != null && !"".equals(reportId.trim())) {
|
||||
checkThreshold(mesData);
|
||||
}
|
||||
// OPEN_ALARM为1时不检查
|
||||
else if ("1".equals(openAlarm)) {
|
||||
// 不检查报警
|
||||
}
|
||||
// 其他情况正常检查(OPEN_ALARM为0或其他值)
|
||||
else {
|
||||
checkThreshold(mesData);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mesData.put("IPCDEVICE_ID", "");
|
||||
|
|
@ -339,6 +357,7 @@ public class MesDataScheduled extends IJobHandler {
|
|||
mesData.put("TARGET_STATUS", "");
|
||||
mesData.put("CORPINFO_ID", "");
|
||||
mesData.put("REPORT_ID", "");
|
||||
mesData.put("OPEN_ALARM", "");
|
||||
}
|
||||
mesSaveList.add(mesData);
|
||||
}
|
||||
|
|
@ -513,6 +532,7 @@ public class MesDataScheduled extends IJobHandler {
|
|||
itemPageData.put("CORPINFO_ID", item.get("CORPINFO_ID"));
|
||||
itemPageData.put("OPERATTIME", DateUtil.date2Str(new Date()));
|
||||
itemPageData.put("CREATTIME", DateUtil.date2Str(new Date()));
|
||||
itemPageData.put("REPORT_ID", item.get("REPORT_ID"));
|
||||
alarmLogArrayList.add(itemPageData);
|
||||
|
||||
// 添加到活跃报警列表,用于处理warninfo表
|
||||
|
|
@ -570,6 +590,11 @@ public class MesDataScheduled extends IJobHandler {
|
|||
warnInfo.put("OPERATTIME", currentTime);
|
||||
warnInfo.put("ISDELETE", "0");
|
||||
warnInfo.put("FEED_BACK", "1");
|
||||
if (alarm.get("REPORT_ID") != null && alarm.get("REPORT_ID") != ""){
|
||||
warnInfo.put("IS_REPORT", "1");
|
||||
}else {
|
||||
warnInfo.put("IS_REPORT", "0");
|
||||
}
|
||||
|
||||
// 保存到数据库
|
||||
tbIronWarnInfoDao.saveWarnInfo(warnInfo);
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@
|
|||
e.DEVICE_ID,
|
||||
e.DEVICE_TYPE,
|
||||
e.DISPLAY_AREA,
|
||||
e.OPEN_ALARM,
|
||||
mt.TARGET_NAME,
|
||||
mt.TARGET_TYPE,
|
||||
mt.TARGET_PLACE,
|
||||
|
|
@ -107,6 +108,7 @@
|
|||
p.EQUIPMENT_ID,
|
||||
e.DEVICE_ID,
|
||||
e.DEVICE_TYPE,
|
||||
e.OPEN_ALARM,
|
||||
mt.TARGET_NAME,
|
||||
mt.TARGET_TYPE,
|
||||
mt.TARGET_PLACE,
|
||||
|
|
|
|||
|
|
@ -25,10 +25,10 @@
|
|||
<insert id="saveWarnInfo" parameterType="com.zcloud.entity.PageData">
|
||||
INSERT INTO tb_iron_warninfo
|
||||
(WARN_ID, WARN_STATUS, WARN_ORG, WARN_RANK, MESSAGE, START_TIME,
|
||||
END_TIME, CORPINFO_ID, CREATOR, CREATTIME, OPERATOR, OPERATTIME,ISDELETE,FEED_BACK)
|
||||
END_TIME, CORPINFO_ID, CREATOR, CREATTIME, OPERATOR, OPERATTIME,ISDELETE,FEED_BACK,IS_REPORT)
|
||||
VALUES
|
||||
(#{WARN_ID}, #{WARN_STATUS}, #{WARN_ORG}, #{WARN_RANK}, #{MESSAGE}, #{START_TIME},
|
||||
#{END_TIME}, #{CORPINFO_ID}, #{CREATOR}, #{CREATTIME}, #{OPERATOR}, #{OPERATTIME},#{ISDELETE},#{FEED_BACK})
|
||||
#{END_TIME}, #{CORPINFO_ID}, #{CREATOR}, #{CREATTIME}, #{OPERATOR}, #{OPERATTIME},#{ISDELETE},#{FEED_BACK},#{IS_REPORT})
|
||||
</insert>
|
||||
|
||||
<update id="updateWarnInfo" parameterType="com.zcloud.entity.PageData">
|
||||
|
|
|
|||
Loading…
Reference in New Issue