From 5b82275226b6f1316873a74cdda4d76cc7c2ab5d Mon Sep 17 00:00:00 2001 From: wangyan <405898180@qq.com> Date: Thu, 13 Nov 2025 14:26:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(alarm):=E4=BC=98=E5=8C=96=E6=8A=A5?= =?UTF-8?q?=E8=AD=A6=E6=A3=80=E6=9F=A5=E9=80=BB=E8=BE=91=E5=B9=B6=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=8A=A5=E5=91=8A=E6=A0=87=E8=AF=86=E5=AD=97=E6=AE=B5?= =?UTF-8?q?-=20=E8=B0=83=E6=95=B4AppPosiDeviceController=E5=92=8CMesDataSc?= =?UTF-8?q?heduled=E4=B8=AD=E7=9A=84=E6=8A=A5=E8=AD=A6=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E9=80=BB=E8=BE=91=20-=20=E6=96=B0=E5=A2=9EOPEN=5FALARM?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=8E=A7=E5=88=B6=E6=98=AF=E5=90=A6=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E6=8A=A5=E8=AD=A6=E6=A3=80=E6=9F=A5=20-=20=E5=BD=93RE?= =?UTF-8?q?PORT=5FID=E9=9D=9E=E7=A9=BA=E6=97=B6=E5=BC=BA=E5=88=B6=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E6=8A=A5=E8=AD=A6=E6=A3=80=E6=9F=A5=EF=BC=8C=E5=BF=BD?= =?UTF-8?q?=E7=95=A5OPEN=5FALARM=E8=AE=BE=E7=BD=AE=20-=20=E5=9C=A8TbIronPl?= =?UTF-8?q?cMapper.xml=E4=B8=AD=E5=A2=9E=E5=8A=A0OPEN=5FALARM=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=9F=A5=E8=AF=A2=E6=94=AF=E6=8C=81=20-=20=E5=9C=A8Tb?= =?UTF-8?q?IronWarningInfoDao.xml=E4=B8=AD=E6=96=B0=E5=A2=9EIS=5FREPORT?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=94=A8=E4=BA=8E=E5=8C=BA=E5=88=86=E6=8A=A5?= =?UTF-8?q?=E8=AD=A6=E6=9D=A5=E6=BA=90=20-=20=E4=BF=9D=E5=AD=98=E6=8A=A5?= =?UTF-8?q?=E8=AD=A6=E4=BF=A1=E6=81=AF=E6=97=B6=E8=AE=B0=E5=BD=95=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=85=B3=E8=81=94=E6=8A=A5=E5=91=8AID=20-=20=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84=E6=8F=90=E5=8D=87?= =?UTF-8?q?=E5=8F=AF=E8=AF=BB=E6=80=A7=E5=92=8C=E7=BB=B4=E6=8A=A4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AppPosiDeviceController.java | 26 ++++++++++++++-- .../dataDocking/MesDataScheduled.java | 31 +++++++++++++++++-- .../datasource/tbIron/TbIronPlcMapper.xml | 2 ++ .../tbIron/TbIronWarningInfoDao.xml | 4 +-- 4 files changed, 56 insertions(+), 7 deletions(-) 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})