diff --git a/src/main/java/com/zcloud/controller/AppPosiDeviceController.java b/src/main/java/com/zcloud/controller/AppPosiDeviceController.java index d39e3c1..608a0cd 100644 --- a/src/main/java/com/zcloud/controller/AppPosiDeviceController.java +++ b/src/main/java/com/zcloud/controller/AppPosiDeviceController.java @@ -185,8 +185,22 @@ public class AppPosiDeviceController { // 添加到数据列表 Map 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); diff --git a/src/main/java/com/zcloud/scheduled/dataDocking/MesDataScheduled.java b/src/main/java/com/zcloud/scheduled/dataDocking/MesDataScheduled.java index 616ff37..5aef0cd 100644 --- a/src/main/java/com/zcloud/scheduled/dataDocking/MesDataScheduled.java +++ b/src/main/java/com/zcloud/scheduled/dataDocking/MesDataScheduled.java @@ -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); diff --git a/src/main/resources/mybatis/datasource/tbIron/TbIronPlcMapper.xml b/src/main/resources/mybatis/datasource/tbIron/TbIronPlcMapper.xml index b19f019..ed3e627 100644 --- a/src/main/resources/mybatis/datasource/tbIron/TbIronPlcMapper.xml +++ b/src/main/resources/mybatis/datasource/tbIron/TbIronPlcMapper.xml @@ -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, diff --git a/src/main/resources/mybatis/datasource/tbIron/TbIronWarningInfoDao.xml b/src/main/resources/mybatis/datasource/tbIron/TbIronWarningInfoDao.xml index 31e0f8d..13fbc02 100644 --- a/src/main/resources/mybatis/datasource/tbIron/TbIronWarningInfoDao.xml +++ b/src/main/resources/mybatis/datasource/tbIron/TbIronWarningInfoDao.xml @@ -25,10 +25,10 @@ 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})