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);
|
Map<String, Object> data = saveData(currentValue, equipmentId, targetAllList, processingBatchId, processingTime);
|
||||||
// 检查阈值是否超出范围
|
|
||||||
|
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);
|
checkThreshold(data);
|
||||||
|
}
|
||||||
|
// OPEN_ALARM为1时不检查
|
||||||
|
else if ("1".equals(openAlarm)) {
|
||||||
|
// 不检查报警
|
||||||
|
}
|
||||||
|
// 其他情况正常检查(OPEN_ALARM为0或其他值)
|
||||||
|
else {
|
||||||
|
checkThreshold(data);
|
||||||
|
}
|
||||||
dataList.add(data);
|
dataList.add(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -243,6 +257,7 @@ public class AppPosiDeviceController {
|
||||||
data.put("TARGET_STATUS", pageData.getString("TARGET_STATUS"));
|
data.put("TARGET_STATUS", pageData.getString("TARGET_STATUS"));
|
||||||
data.put("CORPINFO_ID", pageData.getString("CORPINFO_ID"));
|
data.put("CORPINFO_ID", pageData.getString("CORPINFO_ID"));
|
||||||
data.put("REPORT_ID", pageData.getString("REPORT_ID"));
|
data.put("REPORT_ID", pageData.getString("REPORT_ID"));
|
||||||
|
data.put("OPEN_ALARM", pageData.getString("OPEN_ALARM"));
|
||||||
} else {
|
} else {
|
||||||
data.put("IPCDEVICE_ID", "");
|
data.put("IPCDEVICE_ID", "");
|
||||||
data.put("DEVICE_ID", "");
|
data.put("DEVICE_ID", "");
|
||||||
|
|
@ -264,6 +279,7 @@ public class AppPosiDeviceController {
|
||||||
data.put("TARGET_STATUS", "");
|
data.put("TARGET_STATUS", "");
|
||||||
data.put("CORPINFO_ID", "");
|
data.put("CORPINFO_ID", "");
|
||||||
data.put("REPORT_ID", "");
|
data.put("REPORT_ID", "");
|
||||||
|
data.put("OPEN_ALARM", "");
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
@ -363,6 +379,7 @@ public class AppPosiDeviceController {
|
||||||
itemPageData.put("CORPINFO_ID", item.get("CORPINFO_ID"));
|
itemPageData.put("CORPINFO_ID", item.get("CORPINFO_ID"));
|
||||||
itemPageData.put("OPERATTIME", DateUtil.date2Str(new Date()));
|
itemPageData.put("OPERATTIME", DateUtil.date2Str(new Date()));
|
||||||
itemPageData.put("CREATTIME", DateUtil.date2Str(new Date()));
|
itemPageData.put("CREATTIME", DateUtil.date2Str(new Date()));
|
||||||
|
itemPageData.put("REPORT_ID", item.get("REPORT_ID"));
|
||||||
alarmLogArrayList.add(itemPageData);
|
alarmLogArrayList.add(itemPageData);
|
||||||
|
|
||||||
// 添加到活跃报警列表,用于处理warninfo表
|
// 添加到活跃报警列表,用于处理warninfo表
|
||||||
|
|
@ -419,6 +436,11 @@ public class AppPosiDeviceController {
|
||||||
warnInfo.put("OPERATTIME", currentTime);
|
warnInfo.put("OPERATTIME", currentTime);
|
||||||
warnInfo.put("ISDELETE", "0");
|
warnInfo.put("ISDELETE", "0");
|
||||||
warnInfo.put("FEED_BACK", "1");
|
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);
|
tbIronWarnInfoDao.saveWarnInfo(warnInfo);
|
||||||
|
|
|
||||||
|
|
@ -312,12 +312,30 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
mesData.put("TARGET_STATUS", pageData.getString("TARGET_STATUS"));
|
mesData.put("TARGET_STATUS", pageData.getString("TARGET_STATUS"));
|
||||||
mesData.put("CORPINFO_ID", pageData.getString("CORPINFO_ID"));
|
mesData.put("CORPINFO_ID", pageData.getString("CORPINFO_ID"));
|
||||||
mesData.put("REPORT_ID", pageData.getString("REPORT_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("除尘器")) {
|
if (!key.contains("除尘器")) {
|
||||||
|
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);
|
checkThreshold(mesData);
|
||||||
}
|
}
|
||||||
|
// OPEN_ALARM为1时不检查
|
||||||
|
else if ("1".equals(openAlarm)) {
|
||||||
|
// 不检查报警
|
||||||
|
}
|
||||||
|
// 其他情况正常检查(OPEN_ALARM为0或其他值)
|
||||||
|
else {
|
||||||
|
checkThreshold(mesData);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
mesData.put("IPCDEVICE_ID", "");
|
mesData.put("IPCDEVICE_ID", "");
|
||||||
mesData.put("DEVICE_ID","");
|
mesData.put("DEVICE_ID","");
|
||||||
|
|
@ -339,6 +357,7 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
mesData.put("TARGET_STATUS", "");
|
mesData.put("TARGET_STATUS", "");
|
||||||
mesData.put("CORPINFO_ID", "");
|
mesData.put("CORPINFO_ID", "");
|
||||||
mesData.put("REPORT_ID", "");
|
mesData.put("REPORT_ID", "");
|
||||||
|
mesData.put("OPEN_ALARM", "");
|
||||||
}
|
}
|
||||||
mesSaveList.add(mesData);
|
mesSaveList.add(mesData);
|
||||||
}
|
}
|
||||||
|
|
@ -513,6 +532,7 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
itemPageData.put("CORPINFO_ID", item.get("CORPINFO_ID"));
|
itemPageData.put("CORPINFO_ID", item.get("CORPINFO_ID"));
|
||||||
itemPageData.put("OPERATTIME", DateUtil.date2Str(new Date()));
|
itemPageData.put("OPERATTIME", DateUtil.date2Str(new Date()));
|
||||||
itemPageData.put("CREATTIME", DateUtil.date2Str(new Date()));
|
itemPageData.put("CREATTIME", DateUtil.date2Str(new Date()));
|
||||||
|
itemPageData.put("REPORT_ID", item.get("REPORT_ID"));
|
||||||
alarmLogArrayList.add(itemPageData);
|
alarmLogArrayList.add(itemPageData);
|
||||||
|
|
||||||
// 添加到活跃报警列表,用于处理warninfo表
|
// 添加到活跃报警列表,用于处理warninfo表
|
||||||
|
|
@ -570,6 +590,11 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
warnInfo.put("OPERATTIME", currentTime);
|
warnInfo.put("OPERATTIME", currentTime);
|
||||||
warnInfo.put("ISDELETE", "0");
|
warnInfo.put("ISDELETE", "0");
|
||||||
warnInfo.put("FEED_BACK", "1");
|
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);
|
tbIronWarnInfoDao.saveWarnInfo(warnInfo);
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@
|
||||||
e.DEVICE_ID,
|
e.DEVICE_ID,
|
||||||
e.DEVICE_TYPE,
|
e.DEVICE_TYPE,
|
||||||
e.DISPLAY_AREA,
|
e.DISPLAY_AREA,
|
||||||
|
e.OPEN_ALARM,
|
||||||
mt.TARGET_NAME,
|
mt.TARGET_NAME,
|
||||||
mt.TARGET_TYPE,
|
mt.TARGET_TYPE,
|
||||||
mt.TARGET_PLACE,
|
mt.TARGET_PLACE,
|
||||||
|
|
@ -107,6 +108,7 @@
|
||||||
p.EQUIPMENT_ID,
|
p.EQUIPMENT_ID,
|
||||||
e.DEVICE_ID,
|
e.DEVICE_ID,
|
||||||
e.DEVICE_TYPE,
|
e.DEVICE_TYPE,
|
||||||
|
e.OPEN_ALARM,
|
||||||
mt.TARGET_NAME,
|
mt.TARGET_NAME,
|
||||||
mt.TARGET_TYPE,
|
mt.TARGET_TYPE,
|
||||||
mt.TARGET_PLACE,
|
mt.TARGET_PLACE,
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,10 @@
|
||||||
<insert id="saveWarnInfo" parameterType="com.zcloud.entity.PageData">
|
<insert id="saveWarnInfo" parameterType="com.zcloud.entity.PageData">
|
||||||
INSERT INTO tb_iron_warninfo
|
INSERT INTO tb_iron_warninfo
|
||||||
(WARN_ID, WARN_STATUS, WARN_ORG, WARN_RANK, MESSAGE, START_TIME,
|
(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
|
VALUES
|
||||||
(#{WARN_ID}, #{WARN_STATUS}, #{WARN_ORG}, #{WARN_RANK}, #{MESSAGE}, #{START_TIME},
|
(#{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>
|
</insert>
|
||||||
|
|
||||||
<update id="updateWarnInfo" parameterType="com.zcloud.entity.PageData">
|
<update id="updateWarnInfo" parameterType="com.zcloud.entity.PageData">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue