diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 542b577..c26ffa5 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 542b577..c26ffa5 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 58c8288..1920b62 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -106,6 +106,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("一氧化碳浓度超过高限阈值"); alarm.setUserid(null); + // 一氧化碳报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "一氧化碳浓度过高"); diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 542b577..c26ffa5 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 58c8288..1920b62 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -106,6 +106,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("一氧化碳浓度超过高限阈值"); alarm.setUserid(null); + // 一氧化碳报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "一氧化碳浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index a91d0e8..f6c45b0 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; +import com.szpg.db.data.PgDevice; +import com.szpg.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; @@ -17,10 +19,6 @@ import com.szpg.db.data.PgHjsbbl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.DataPushInterface; -import com.szpg.util.NumberFormat; -import com.szpg.util.TimeFormat; public class ReadDSStatusCommandResponse extends ReadMemoryCommandResponse { @@ -74,9 +72,28 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段入侵报警"); alarm.setUserid(null); + // 对射报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段入侵报警"); + + // 自动打开当前舱段的照明,手动关闭照明 + // 首先找到当前舱段的排风机资产编号 + if (Boolean.valueOf(Configure.getProperty("sys", "DS_ON_ZM", "false")) == true) { + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + String cabin = zcbh.substring(zcbh.lastIndexOf(".") + 1, zcbh.lastIndexOf(".") + 2); + List zms = deviceDao.findDeviceByPositionAndType(acucode, "Z", cabin); + if (null != zms && zms.isEmpty() == false) { + String baseURL = Configure.getProperty("sys", "PGDSC_API_URL"); + for (PgDevice fj : zms) { + String zmzcbh = fj.getAssetcode(); + + // 调用远程接口启动照明 + HttpRequest.sendGet(baseURL + "remote/turnOnZm.action", "zcbh=" + zmzcbh); + } + } + } // 将报警日志推送至市级平台 String date = TimeFormat.formatDate(getTime().getTime()); diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 542b577..c26ffa5 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 58c8288..1920b62 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -106,6 +106,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("一氧化碳浓度超过高限阈值"); alarm.setUserid(null); + // 一氧化碳报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "一氧化碳浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index a91d0e8..f6c45b0 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; +import com.szpg.db.data.PgDevice; +import com.szpg.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; @@ -17,10 +19,6 @@ import com.szpg.db.data.PgHjsbbl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.DataPushInterface; -import com.szpg.util.NumberFormat; -import com.szpg.util.TimeFormat; public class ReadDSStatusCommandResponse extends ReadMemoryCommandResponse { @@ -74,9 +72,28 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段入侵报警"); alarm.setUserid(null); + // 对射报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段入侵报警"); + + // 自动打开当前舱段的照明,手动关闭照明 + // 首先找到当前舱段的排风机资产编号 + if (Boolean.valueOf(Configure.getProperty("sys", "DS_ON_ZM", "false")) == true) { + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + String cabin = zcbh.substring(zcbh.lastIndexOf(".") + 1, zcbh.lastIndexOf(".") + 2); + List zms = deviceDao.findDeviceByPositionAndType(acucode, "Z", cabin); + if (null != zms && zms.isEmpty() == false) { + String baseURL = Configure.getProperty("sys", "PGDSC_API_URL"); + for (PgDevice fj : zms) { + String zmzcbh = fj.getAssetcode(); + + // 调用远程接口启动照明 + HttpRequest.sendGet(baseURL + "remote/turnOnZm.action", "zcbh=" + zmzcbh); + } + } + } // 将报警日志推送至市级平台 String date = TimeFormat.formatDate(getTime().getTime()); diff --git a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java index 3fd8b02..d3f1781 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java @@ -110,6 +110,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); @@ -197,6 +199,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 542b577..c26ffa5 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 58c8288..1920b62 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -106,6 +106,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("一氧化碳浓度超过高限阈值"); alarm.setUserid(null); + // 一氧化碳报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "一氧化碳浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index a91d0e8..f6c45b0 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; +import com.szpg.db.data.PgDevice; +import com.szpg.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; @@ -17,10 +19,6 @@ import com.szpg.db.data.PgHjsbbl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.DataPushInterface; -import com.szpg.util.NumberFormat; -import com.szpg.util.TimeFormat; public class ReadDSStatusCommandResponse extends ReadMemoryCommandResponse { @@ -74,9 +72,28 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段入侵报警"); alarm.setUserid(null); + // 对射报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段入侵报警"); + + // 自动打开当前舱段的照明,手动关闭照明 + // 首先找到当前舱段的排风机资产编号 + if (Boolean.valueOf(Configure.getProperty("sys", "DS_ON_ZM", "false")) == true) { + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + String cabin = zcbh.substring(zcbh.lastIndexOf(".") + 1, zcbh.lastIndexOf(".") + 2); + List zms = deviceDao.findDeviceByPositionAndType(acucode, "Z", cabin); + if (null != zms && zms.isEmpty() == false) { + String baseURL = Configure.getProperty("sys", "PGDSC_API_URL"); + for (PgDevice fj : zms) { + String zmzcbh = fj.getAssetcode(); + + // 调用远程接口启动照明 + HttpRequest.sendGet(baseURL + "remote/turnOnZm.action", "zcbh=" + zmzcbh); + } + } + } // 将报警日志推送至市级平台 String date = TimeFormat.formatDate(getTime().getTime()); diff --git a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java index 3fd8b02..d3f1781 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java @@ -110,6 +110,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); @@ -197,6 +199,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index f442f23..3b8f2f6 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 542b577..c26ffa5 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 58c8288..1920b62 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -106,6 +106,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("一氧化碳浓度超过高限阈值"); alarm.setUserid(null); + // 一氧化碳报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "一氧化碳浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index a91d0e8..f6c45b0 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; +import com.szpg.db.data.PgDevice; +import com.szpg.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; @@ -17,10 +19,6 @@ import com.szpg.db.data.PgHjsbbl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.DataPushInterface; -import com.szpg.util.NumberFormat; -import com.szpg.util.TimeFormat; public class ReadDSStatusCommandResponse extends ReadMemoryCommandResponse { @@ -74,9 +72,28 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段入侵报警"); alarm.setUserid(null); + // 对射报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段入侵报警"); + + // 自动打开当前舱段的照明,手动关闭照明 + // 首先找到当前舱段的排风机资产编号 + if (Boolean.valueOf(Configure.getProperty("sys", "DS_ON_ZM", "false")) == true) { + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + String cabin = zcbh.substring(zcbh.lastIndexOf(".") + 1, zcbh.lastIndexOf(".") + 2); + List zms = deviceDao.findDeviceByPositionAndType(acucode, "Z", cabin); + if (null != zms && zms.isEmpty() == false) { + String baseURL = Configure.getProperty("sys", "PGDSC_API_URL"); + for (PgDevice fj : zms) { + String zmzcbh = fj.getAssetcode(); + + // 调用远程接口启动照明 + HttpRequest.sendGet(baseURL + "remote/turnOnZm.action", "zcbh=" + zmzcbh); + } + } + } // 将报警日志推送至市级平台 String date = TimeFormat.formatDate(getTime().getTime()); diff --git a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java index 3fd8b02..d3f1781 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java @@ -110,6 +110,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); @@ -197,6 +199,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index f442f23..3b8f2f6 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index 5596dfc..822beda 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("氧气浓度低于低限阈值"); alarm.setUserid(null); + // 氧气报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "氧气浓度过低"); diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 542b577..c26ffa5 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 58c8288..1920b62 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -106,6 +106,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("一氧化碳浓度超过高限阈值"); alarm.setUserid(null); + // 一氧化碳报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "一氧化碳浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index a91d0e8..f6c45b0 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; +import com.szpg.db.data.PgDevice; +import com.szpg.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; @@ -17,10 +19,6 @@ import com.szpg.db.data.PgHjsbbl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.DataPushInterface; -import com.szpg.util.NumberFormat; -import com.szpg.util.TimeFormat; public class ReadDSStatusCommandResponse extends ReadMemoryCommandResponse { @@ -74,9 +72,28 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段入侵报警"); alarm.setUserid(null); + // 对射报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段入侵报警"); + + // 自动打开当前舱段的照明,手动关闭照明 + // 首先找到当前舱段的排风机资产编号 + if (Boolean.valueOf(Configure.getProperty("sys", "DS_ON_ZM", "false")) == true) { + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + String cabin = zcbh.substring(zcbh.lastIndexOf(".") + 1, zcbh.lastIndexOf(".") + 2); + List zms = deviceDao.findDeviceByPositionAndType(acucode, "Z", cabin); + if (null != zms && zms.isEmpty() == false) { + String baseURL = Configure.getProperty("sys", "PGDSC_API_URL"); + for (PgDevice fj : zms) { + String zmzcbh = fj.getAssetcode(); + + // 调用远程接口启动照明 + HttpRequest.sendGet(baseURL + "remote/turnOnZm.action", "zcbh=" + zmzcbh); + } + } + } // 将报警日志推送至市级平台 String date = TimeFormat.formatDate(getTime().getTime()); diff --git a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java index 3fd8b02..d3f1781 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java @@ -110,6 +110,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); @@ -197,6 +199,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index f442f23..3b8f2f6 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index 5596dfc..822beda 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("氧气浓度低于低限阈值"); alarm.setUserid(null); + // 氧气报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "氧气浓度过低"); diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index 3386206..3d3ebd0 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -140,6 +140,8 @@ wdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); wdAlarm.setDescription("温度超过高限阈值"); wdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + wdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(wdAlarm); deviceDao.updateDeviceStatus(deviceId, "温度超高"); @@ -186,6 +188,8 @@ sdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); sdAlarm.setDescription("湿度超过高限阈值"); sdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + sdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(sdAlarm); deviceDao.updateDeviceStatus(deviceId, "湿度超高"); diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 542b577..c26ffa5 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 58c8288..1920b62 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -106,6 +106,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("一氧化碳浓度超过高限阈值"); alarm.setUserid(null); + // 一氧化碳报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "一氧化碳浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index a91d0e8..f6c45b0 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; +import com.szpg.db.data.PgDevice; +import com.szpg.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; @@ -17,10 +19,6 @@ import com.szpg.db.data.PgHjsbbl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.DataPushInterface; -import com.szpg.util.NumberFormat; -import com.szpg.util.TimeFormat; public class ReadDSStatusCommandResponse extends ReadMemoryCommandResponse { @@ -74,9 +72,28 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段入侵报警"); alarm.setUserid(null); + // 对射报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段入侵报警"); + + // 自动打开当前舱段的照明,手动关闭照明 + // 首先找到当前舱段的排风机资产编号 + if (Boolean.valueOf(Configure.getProperty("sys", "DS_ON_ZM", "false")) == true) { + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + String cabin = zcbh.substring(zcbh.lastIndexOf(".") + 1, zcbh.lastIndexOf(".") + 2); + List zms = deviceDao.findDeviceByPositionAndType(acucode, "Z", cabin); + if (null != zms && zms.isEmpty() == false) { + String baseURL = Configure.getProperty("sys", "PGDSC_API_URL"); + for (PgDevice fj : zms) { + String zmzcbh = fj.getAssetcode(); + + // 调用远程接口启动照明 + HttpRequest.sendGet(baseURL + "remote/turnOnZm.action", "zcbh=" + zmzcbh); + } + } + } // 将报警日志推送至市级平台 String date = TimeFormat.formatDate(getTime().getTime()); diff --git a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java index 3fd8b02..d3f1781 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java @@ -110,6 +110,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); @@ -197,6 +199,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index f442f23..3b8f2f6 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index 5596dfc..822beda 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("氧气浓度低于低限阈值"); alarm.setUserid(null); + // 氧气报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "氧气浓度过低"); diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index 3386206..3d3ebd0 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -140,6 +140,8 @@ wdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); wdAlarm.setDescription("温度超过高限阈值"); wdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + wdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(wdAlarm); deviceDao.updateDeviceStatus(deviceId, "温度超高"); @@ -186,6 +188,8 @@ sdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); sdAlarm.setDescription("湿度超过高限阈值"); sdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + sdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(sdAlarm); deviceDao.updateDeviceStatus(deviceId, "湿度超高"); diff --git a/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java index a47c6da..8faa02e 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java @@ -141,6 +141,8 @@ wdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); wdAlarm.setDescription("温度超过高限阈值"); wdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + wdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(wdAlarm); deviceDao.updateDeviceStatus(deviceId, "温度超高"); @@ -187,6 +189,8 @@ sdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); sdAlarm.setDescription("湿度超过高限阈值"); sdAlarm.setUserid(null); + // 湿度报警定义为二级报警 + sdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(sdAlarm); deviceDao.updateDeviceStatus(deviceId, "湿度超高"); @@ -269,6 +273,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("氧气浓度低于低限阈值"); alarm.setUserid(null); + // 氧气报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "氧气浓度过低"); diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 542b577..c26ffa5 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 58c8288..1920b62 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -106,6 +106,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("一氧化碳浓度超过高限阈值"); alarm.setUserid(null); + // 一氧化碳报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "一氧化碳浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index a91d0e8..f6c45b0 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; +import com.szpg.db.data.PgDevice; +import com.szpg.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; @@ -17,10 +19,6 @@ import com.szpg.db.data.PgHjsbbl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.DataPushInterface; -import com.szpg.util.NumberFormat; -import com.szpg.util.TimeFormat; public class ReadDSStatusCommandResponse extends ReadMemoryCommandResponse { @@ -74,9 +72,28 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段入侵报警"); alarm.setUserid(null); + // 对射报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段入侵报警"); + + // 自动打开当前舱段的照明,手动关闭照明 + // 首先找到当前舱段的排风机资产编号 + if (Boolean.valueOf(Configure.getProperty("sys", "DS_ON_ZM", "false")) == true) { + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + String cabin = zcbh.substring(zcbh.lastIndexOf(".") + 1, zcbh.lastIndexOf(".") + 2); + List zms = deviceDao.findDeviceByPositionAndType(acucode, "Z", cabin); + if (null != zms && zms.isEmpty() == false) { + String baseURL = Configure.getProperty("sys", "PGDSC_API_URL"); + for (PgDevice fj : zms) { + String zmzcbh = fj.getAssetcode(); + + // 调用远程接口启动照明 + HttpRequest.sendGet(baseURL + "remote/turnOnZm.action", "zcbh=" + zmzcbh); + } + } + } // 将报警日志推送至市级平台 String date = TimeFormat.formatDate(getTime().getTime()); diff --git a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java index 3fd8b02..d3f1781 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java @@ -110,6 +110,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); @@ -197,6 +199,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index f442f23..3b8f2f6 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index 5596dfc..822beda 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("氧气浓度低于低限阈值"); alarm.setUserid(null); + // 氧气报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "氧气浓度过低"); diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index 3386206..3d3ebd0 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -140,6 +140,8 @@ wdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); wdAlarm.setDescription("温度超过高限阈值"); wdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + wdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(wdAlarm); deviceDao.updateDeviceStatus(deviceId, "温度超高"); @@ -186,6 +188,8 @@ sdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); sdAlarm.setDescription("湿度超过高限阈值"); sdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + sdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(sdAlarm); deviceDao.updateDeviceStatus(deviceId, "湿度超高"); diff --git a/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java index a47c6da..8faa02e 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java @@ -141,6 +141,8 @@ wdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); wdAlarm.setDescription("温度超过高限阈值"); wdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + wdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(wdAlarm); deviceDao.updateDeviceStatus(deviceId, "温度超高"); @@ -187,6 +189,8 @@ sdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); sdAlarm.setDescription("湿度超过高限阈值"); sdAlarm.setUserid(null); + // 湿度报警定义为二级报警 + sdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(sdAlarm); deviceDao.updateDeviceStatus(deviceId, "湿度超高"); @@ -269,6 +273,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("氧气浓度低于低限阈值"); alarm.setUserid(null); + // 氧气报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "氧气浓度过低"); diff --git a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java index b21b453..af0558b 100644 --- a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java @@ -74,6 +74,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段液位爆管报警"); alarm.setUserid(null); + // 液位爆管报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段液位爆管报警"); diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 542b577..c26ffa5 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 58c8288..1920b62 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -106,6 +106,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("一氧化碳浓度超过高限阈值"); alarm.setUserid(null); + // 一氧化碳报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "一氧化碳浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index a91d0e8..f6c45b0 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; +import com.szpg.db.data.PgDevice; +import com.szpg.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; @@ -17,10 +19,6 @@ import com.szpg.db.data.PgHjsbbl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.DataPushInterface; -import com.szpg.util.NumberFormat; -import com.szpg.util.TimeFormat; public class ReadDSStatusCommandResponse extends ReadMemoryCommandResponse { @@ -74,9 +72,28 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段入侵报警"); alarm.setUserid(null); + // 对射报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段入侵报警"); + + // 自动打开当前舱段的照明,手动关闭照明 + // 首先找到当前舱段的排风机资产编号 + if (Boolean.valueOf(Configure.getProperty("sys", "DS_ON_ZM", "false")) == true) { + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + String cabin = zcbh.substring(zcbh.lastIndexOf(".") + 1, zcbh.lastIndexOf(".") + 2); + List zms = deviceDao.findDeviceByPositionAndType(acucode, "Z", cabin); + if (null != zms && zms.isEmpty() == false) { + String baseURL = Configure.getProperty("sys", "PGDSC_API_URL"); + for (PgDevice fj : zms) { + String zmzcbh = fj.getAssetcode(); + + // 调用远程接口启动照明 + HttpRequest.sendGet(baseURL + "remote/turnOnZm.action", "zcbh=" + zmzcbh); + } + } + } // 将报警日志推送至市级平台 String date = TimeFormat.formatDate(getTime().getTime()); diff --git a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java index 3fd8b02..d3f1781 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java @@ -110,6 +110,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); @@ -197,6 +199,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index f442f23..3b8f2f6 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index 5596dfc..822beda 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("氧气浓度低于低限阈值"); alarm.setUserid(null); + // 氧气报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "氧气浓度过低"); diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index 3386206..3d3ebd0 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -140,6 +140,8 @@ wdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); wdAlarm.setDescription("温度超过高限阈值"); wdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + wdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(wdAlarm); deviceDao.updateDeviceStatus(deviceId, "温度超高"); @@ -186,6 +188,8 @@ sdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); sdAlarm.setDescription("湿度超过高限阈值"); sdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + sdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(sdAlarm); deviceDao.updateDeviceStatus(deviceId, "湿度超高"); diff --git a/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java index a47c6da..8faa02e 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java @@ -141,6 +141,8 @@ wdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); wdAlarm.setDescription("温度超过高限阈值"); wdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + wdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(wdAlarm); deviceDao.updateDeviceStatus(deviceId, "温度超高"); @@ -187,6 +189,8 @@ sdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); sdAlarm.setDescription("湿度超过高限阈值"); sdAlarm.setUserid(null); + // 湿度报警定义为二级报警 + sdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(sdAlarm); deviceDao.updateDeviceStatus(deviceId, "湿度超高"); @@ -269,6 +273,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("氧气浓度低于低限阈值"); alarm.setUserid(null); + // 氧气报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "氧气浓度过低"); diff --git a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java index b21b453..af0558b 100644 --- a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java @@ -74,6 +74,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段液位爆管报警"); alarm.setUserid(null); + // 液位爆管报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段液位爆管报警"); diff --git a/src/com/szpg/service/SetSensorThresholdService.java b/src/com/szpg/service/SetSensorThresholdService.java index 670ed7d..c476e19 100644 --- a/src/com/szpg/service/SetSensorThresholdService.java +++ b/src/com/szpg/service/SetSensorThresholdService.java @@ -1,5 +1,6 @@ package com.szpg.service; +import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -28,6 +29,7 @@ private PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); private PgAcuDao acuDao = new PgAcuDaoImpl(); + private ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); public void executeService(ACUClient client, WriteMemoryCommand command) { // 解析命令对象为字节数组 @@ -54,7 +56,7 @@ // 4定时将数据库中的命令置为超时 int TIMEOUT = Integer.parseInt(Configure.getProperty("sys", "COMMAND_TIMEOUT", "2")); - new ScheduledThreadPoolExecutor(1).schedule(new RemoteCommandTimeoutTask(cmd.getId()), TIMEOUT, TimeUnit.MINUTES); + sche.schedule(new RemoteCommandTimeoutTask(cmd.getId()), TIMEOUT, TimeUnit.MINUTES); } /** diff --git a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java index c7f4fd3..cedf5fc 100644 --- a/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgAlarmDaoImpl.java @@ -51,7 +51,7 @@ public PgAlarm findLatestAlarmByDevice(int deviceId) { Connection conn = null; String queryStr = "SELECT A.* FROM " + - "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + + "(SELECT ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, ALARM_GRADE FROM PG_ALARM WHERE ALARMDEVID = ? ORDER BY ALARM_DATE DESC) A " + "WHERE ROWNUM <= 1"; Object[] param = new Object[1]; try { @@ -77,6 +77,7 @@ alarm.setDescription((String) item[4]); alarm.setAlarmdevid(((Number) item[5]).intValue()); alarm.setAlarmtypeid(((Number) item[6]).intValue()); + alarm.setAlarm_grade((String) item[7]); logger.debug("根据设备查询最新报警记录成功"); @@ -125,13 +126,13 @@ // 插入新的报警记录 String insertSql = "INSERT INTO PG_ALARM " + - "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?)"; + "(ID, ACTIVE, ALARM_DATE, ALARM_VALUE, DESCRIPTION, ALARMDEVID, ALARMTYPEID, USERID, ALARM_GRADE) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?, ?, ?, ?)"; String sqlId = "SELECT SEQ_PG_ALARM_ID.NEXTVAL FROM DUAL"; long newId = ((Number) runner.query(conn, sqlId, new ScalarHandler(1))).longValue(); // 获取新的id - Object[] params = new Object[8]; + Object[] params = new Object[9]; params[0] = newId; params[1] = alarmRecord.getActive(); @@ -141,12 +142,13 @@ params[5] = alarmRecord.getAlarmdevid(); params[6] = alarmRecord.getAlarmtypeid(); params[7] = alarmRecord.getUserid(); + params[8] = alarmRecord.getAlarm_grade(); int count = runner.update(conn, insertSql, params); // 新增主表 - if (count > 0) + if (count > 0) { logger.debug("插入报警数据成功"); - else { + } else { logger.error("插入报警数据失败!"); } diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java index e3ebe69..5a73ba9 100644 --- a/src/com/szpg/db/data/PgAlarm.java +++ b/src/com/szpg/db/data/PgAlarm.java @@ -19,6 +19,7 @@ private Integer alarmdevid; private Integer alarmtypeid; private Integer userid; + private String alarm_grade; public static Integer ALARM_TYPE_DEVRUN = 1; //管廊设备运行故障 public static Integer ALARM_TYPE_PGRUN = 2; //管廊运行环境报警 @@ -88,6 +89,14 @@ public void setUserid(Integer userid) { this.userid = userid; } + + public String getAlarm_grade() { + return alarm_grade; + } + + public void setAlarm_grade(String alarm_grade) { + this.alarm_grade = alarm_grade; + } @Override public String toString() { diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 542b577..c26ffa5 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 58c8288..1920b62 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -106,6 +106,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("一氧化碳浓度超过高限阈值"); alarm.setUserid(null); + // 一氧化碳报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "一氧化碳浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index a91d0e8..f6c45b0 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; +import com.szpg.db.data.PgDevice; +import com.szpg.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; @@ -17,10 +19,6 @@ import com.szpg.db.data.PgHjsbbl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.DataPushInterface; -import com.szpg.util.NumberFormat; -import com.szpg.util.TimeFormat; public class ReadDSStatusCommandResponse extends ReadMemoryCommandResponse { @@ -74,9 +72,28 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段入侵报警"); alarm.setUserid(null); + // 对射报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段入侵报警"); + + // 自动打开当前舱段的照明,手动关闭照明 + // 首先找到当前舱段的排风机资产编号 + if (Boolean.valueOf(Configure.getProperty("sys", "DS_ON_ZM", "false")) == true) { + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + String cabin = zcbh.substring(zcbh.lastIndexOf(".") + 1, zcbh.lastIndexOf(".") + 2); + List zms = deviceDao.findDeviceByPositionAndType(acucode, "Z", cabin); + if (null != zms && zms.isEmpty() == false) { + String baseURL = Configure.getProperty("sys", "PGDSC_API_URL"); + for (PgDevice fj : zms) { + String zmzcbh = fj.getAssetcode(); + + // 调用远程接口启动照明 + HttpRequest.sendGet(baseURL + "remote/turnOnZm.action", "zcbh=" + zmzcbh); + } + } + } // 将报警日志推送至市级平台 String date = TimeFormat.formatDate(getTime().getTime()); diff --git a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java index 3fd8b02..d3f1781 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSCH4ValueCommandResponse.java @@ -110,6 +110,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); @@ -197,6 +199,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("甲烷浓度超过高限阈值"); alarm.setUserid(null); + // 甲烷报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "甲烷浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index f442f23..3b8f2f6 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("硫化氢浓度超过高限阈值"); alarm.setUserid(null); + // 硫化氢报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "硫化氢浓度过高"); diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index 5596dfc..822beda 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -108,6 +108,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("氧气浓度低于低限阈值"); alarm.setUserid(null); + // 氧气报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "氧气浓度过低"); diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index 3386206..3d3ebd0 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -140,6 +140,8 @@ wdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); wdAlarm.setDescription("温度超过高限阈值"); wdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + wdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(wdAlarm); deviceDao.updateDeviceStatus(deviceId, "温度超高"); @@ -186,6 +188,8 @@ sdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); sdAlarm.setDescription("湿度超过高限阈值"); sdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + sdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(sdAlarm); deviceDao.updateDeviceStatus(deviceId, "湿度超高"); diff --git a/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java index a47c6da..8faa02e 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSYQValueCommandResponse.java @@ -141,6 +141,8 @@ wdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); wdAlarm.setDescription("温度超过高限阈值"); wdAlarm.setUserid(null); + // 温湿度报警定义为二级报警 + wdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(wdAlarm); deviceDao.updateDeviceStatus(deviceId, "温度超高"); @@ -187,6 +189,8 @@ sdAlarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); sdAlarm.setDescription("湿度超过高限阈值"); sdAlarm.setUserid(null); + // 湿度报警定义为二级报警 + sdAlarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(sdAlarm); deviceDao.updateDeviceStatus(deviceId, "湿度超高"); @@ -269,6 +273,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); alarm.setDescription("氧气浓度低于低限阈值"); alarm.setUserid(null); + // 氧气报警定义为一级报警 + alarm.setAlarm_grade("一级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "氧气浓度过低"); diff --git a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java index b21b453..af0558b 100644 --- a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java @@ -74,6 +74,8 @@ alarm.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGSAF); alarm.setDescription("舱段液位爆管报警"); alarm.setUserid(null); + // 液位爆管报警定义为二级报警 + alarm.setAlarm_grade("二级报警"); alarmDao.insertAlarmRecord(alarm); deviceDao.updateDeviceStatus(deviceId, "舱段液位爆管报警"); diff --git a/src/com/szpg/service/SetSensorThresholdService.java b/src/com/szpg/service/SetSensorThresholdService.java index 670ed7d..c476e19 100644 --- a/src/com/szpg/service/SetSensorThresholdService.java +++ b/src/com/szpg/service/SetSensorThresholdService.java @@ -1,5 +1,6 @@ package com.szpg.service; +import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -28,6 +29,7 @@ private PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); private PgAcuDao acuDao = new PgAcuDaoImpl(); + private ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); public void executeService(ACUClient client, WriteMemoryCommand command) { // 解析命令对象为字节数组 @@ -54,7 +56,7 @@ // 4定时将数据库中的命令置为超时 int TIMEOUT = Integer.parseInt(Configure.getProperty("sys", "COMMAND_TIMEOUT", "2")); - new ScheduledThreadPoolExecutor(1).schedule(new RemoteCommandTimeoutTask(cmd.getId()), TIMEOUT, TimeUnit.MINUTES); + sche.schedule(new RemoteCommandTimeoutTask(cmd.getId()), TIMEOUT, TimeUnit.MINUTES); } /** diff --git a/src/sys.properties b/src/sys.properties index a332470..b1e7f46 100644 --- a/src/sys.properties +++ b/src/sys.properties @@ -33,4 +33,5 @@ O2_ON_FJ = false WD_ON_FJ = false SD_ON_FJ = false -HS_ON_FJ = false \ No newline at end of file +HS_ON_FJ = false +DS_ON_ZM = false \ No newline at end of file