diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java new file mode 100644 index 0000000..1684a18 --- /dev/null +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -0,0 +1,145 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class NoiseDigManager extends HibernateEntityDao { + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final double constant=0.0153; + + public Map saveData(String devId, String wellCode, String cell, String uptime, + String frequency, String dData) throws IOException { + + Map resultMap = new HashMap(); + try { + NoiseDig noise = new NoiseDig(devId, wellCode, cell, + DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)), + frequency, dData); + save(noise); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String val = ((JSONObject) jsonArray.get(i)).get("noiseVal").toString(); + String freq = ((JSONObject) jsonArray.get(i)).get("noiseFreq").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + if (i < jsonArray.size() - 1) continue; + + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 + if ( StringUtils.isNotBlank(thresh) && + Double.valueOf(val) > Double.valueOf(thresh) * constant) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java new file mode 100644 index 0000000..1684a18 --- /dev/null +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -0,0 +1,145 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class NoiseDigManager extends HibernateEntityDao { + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final double constant=0.0153; + + public Map saveData(String devId, String wellCode, String cell, String uptime, + String frequency, String dData) throws IOException { + + Map resultMap = new HashMap(); + try { + NoiseDig noise = new NoiseDig(devId, wellCode, cell, + DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)), + frequency, dData); + save(noise); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String val = ((JSONObject) jsonArray.get(i)).get("noiseVal").toString(); + String freq = ((JSONObject) jsonArray.get(i)).get("noiseFreq").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + if (i < jsonArray.size() - 1) continue; + + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 + if ( StringUtils.isNotBlank(thresh) && + Double.valueOf(val) > Double.valueOf(thresh) * constant) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java new file mode 100644 index 0000000..de66ae8 --- /dev/null +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -0,0 +1,157 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.TempHumiAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class TempHumiManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String upTime, String wellCode, + String temperature, String humidity, String cell) { + + Map resultMap = new HashMap(); + try { + TempHumi tempHumi = new TempHumi(devCode, wellCode, + DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); + save(tempHumi); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.get("cell").toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String temperature = null != ((JSONObject) jsonArray.get(i)).get("temperature") ? + ((JSONObject) jsonArray.get(i)).get("temperature").toString() : ""; + String humidity = null != ((JSONObject) jsonArray.get(i)).get("humidity") ? + ((JSONObject) jsonArray.get(i)).get("humidity").toString() : ""; + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), upTime, + temperature, humidity, cell); + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; + String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; + String alarmValue = alarmTemp + "," + alarmHumidity; + if (!("*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmHumidity))) + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + //4.写入新的报警 + alarmRecordManager.saveData(alarmJob.getId(), "2", + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java new file mode 100644 index 0000000..1684a18 --- /dev/null +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -0,0 +1,145 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class NoiseDigManager extends HibernateEntityDao { + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final double constant=0.0153; + + public Map saveData(String devId, String wellCode, String cell, String uptime, + String frequency, String dData) throws IOException { + + Map resultMap = new HashMap(); + try { + NoiseDig noise = new NoiseDig(devId, wellCode, cell, + DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)), + frequency, dData); + save(noise); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String val = ((JSONObject) jsonArray.get(i)).get("noiseVal").toString(); + String freq = ((JSONObject) jsonArray.get(i)).get("noiseFreq").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + if (i < jsonArray.size() - 1) continue; + + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 + if ( StringUtils.isNotBlank(thresh) && + Double.valueOf(val) > Double.valueOf(thresh) * constant) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java new file mode 100644 index 0000000..de66ae8 --- /dev/null +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -0,0 +1,157 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.TempHumiAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class TempHumiManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String upTime, String wellCode, + String temperature, String humidity, String cell) { + + Map resultMap = new HashMap(); + try { + TempHumi tempHumi = new TempHumi(devCode, wellCode, + DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); + save(tempHumi); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.get("cell").toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String temperature = null != ((JSONObject) jsonArray.get(i)).get("temperature") ? + ((JSONObject) jsonArray.get(i)).get("temperature").toString() : ""; + String humidity = null != ((JSONObject) jsonArray.get(i)).get("humidity") ? + ((JSONObject) jsonArray.get(i)).get("humidity").toString() : ""; + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), upTime, + temperature, humidity, cell); + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; + String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; + String alarmValue = alarmTemp + "," + alarmHumidity; + if (!("*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmHumidity))) + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + //4.写入新的报警 + alarmRecordManager.saveData(alarmJob.getId(), "2", + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java new file mode 100644 index 0000000..8252e42 --- /dev/null +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -0,0 +1,123 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class WasteGasManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, String upTime, + String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { + + Map resultMap = new HashMap(); + try { + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + save(wasteGas); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String CO = ((JSONObject) jsonArray.get(i)).get("CO").toString(); + String O2 = ((JSONObject) jsonArray.get(i)).get("O2").toString(); + String H2S = ((JSONObject) jsonArray.get(i)).get("H2S").toString(); + String CH4 = ((JSONObject) jsonArray.get(i)).get("CH4").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), + upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; + String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; + String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; + String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; + String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; + if (!("*,*,*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java new file mode 100644 index 0000000..1684a18 --- /dev/null +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -0,0 +1,145 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class NoiseDigManager extends HibernateEntityDao { + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final double constant=0.0153; + + public Map saveData(String devId, String wellCode, String cell, String uptime, + String frequency, String dData) throws IOException { + + Map resultMap = new HashMap(); + try { + NoiseDig noise = new NoiseDig(devId, wellCode, cell, + DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)), + frequency, dData); + save(noise); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String val = ((JSONObject) jsonArray.get(i)).get("noiseVal").toString(); + String freq = ((JSONObject) jsonArray.get(i)).get("noiseFreq").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + if (i < jsonArray.size() - 1) continue; + + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 + if ( StringUtils.isNotBlank(thresh) && + Double.valueOf(val) > Double.valueOf(thresh) * constant) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java new file mode 100644 index 0000000..de66ae8 --- /dev/null +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -0,0 +1,157 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.TempHumiAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class TempHumiManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String upTime, String wellCode, + String temperature, String humidity, String cell) { + + Map resultMap = new HashMap(); + try { + TempHumi tempHumi = new TempHumi(devCode, wellCode, + DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); + save(tempHumi); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.get("cell").toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String temperature = null != ((JSONObject) jsonArray.get(i)).get("temperature") ? + ((JSONObject) jsonArray.get(i)).get("temperature").toString() : ""; + String humidity = null != ((JSONObject) jsonArray.get(i)).get("humidity") ? + ((JSONObject) jsonArray.get(i)).get("humidity").toString() : ""; + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), upTime, + temperature, humidity, cell); + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; + String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; + String alarmValue = alarmTemp + "," + alarmHumidity; + if (!("*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmHumidity))) + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + //4.写入新的报警 + alarmRecordManager.saveData(alarmJob.getId(), "2", + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java new file mode 100644 index 0000000..8252e42 --- /dev/null +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -0,0 +1,123 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class WasteGasManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, String upTime, + String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { + + Map resultMap = new HashMap(); + try { + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + save(wasteGas); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String CO = ((JSONObject) jsonArray.get(i)).get("CO").toString(); + String O2 = ((JSONObject) jsonArray.get(i)).get("O2").toString(); + String H2S = ((JSONObject) jsonArray.get(i)).get("H2S").toString(); + String CH4 = ((JSONObject) jsonArray.get(i)).get("CH4").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), + upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; + String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; + String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; + String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; + String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; + if (!("*,*,*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + +} diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 6711f6e..b4d48d8 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -3,15 +3,14 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.well.well.AlarmEnumDTO.WellAlarmEnum; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.core.hibernate.HibernateEntityDao; -import org.well.well.core.util.DateUtils; -import org.well.well.domain.*; -import org.well.well.util.PushList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WellAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.*; +import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; @@ -33,12 +32,13 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); - public Map saveData(String devCode, String desc, - String status) throws IOException { + public Map saveData(String devCode,String wellCode, + String desc, String status){ Map resultMap = new HashMap(); try { - Well well = new Well(devCode, desc, status); + + Well well = new Well(devCode,wellCode, desc, status); save(well); } catch (Exception e) { e.printStackTrace(); @@ -48,6 +48,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("value").toString();//"00" @@ -57,9 +58,10 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - this.saveData(devCode, WellAlarmEnum.NORMAL.toString(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.NORMAL.toString(), String.valueOf(WellAlarmEnum.NORMAL.getIndex()));//存采集数据 - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } @@ -69,15 +71,17 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); String logTime = (jsonObject.get("logTime")).toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清离线 deviceManager.clearOffline(devCode); //2.存入数据表 - this.saveData(devCode, WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); //3.根据不同的报警,进入不同的处理方法(主要分开盖和其他类型的报警) - BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.1井盖开盖报警处理 if (WellAlarmEnum.WellOpenAlarm.name().equals(jsonArray.get(i).toString())) { alarmRecordManager.clearAlarm(devCode, "2", "");//清除设备本身报警 @@ -93,10 +97,12 @@ String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime); } else { + Device device = deviceManager.getDeviceByDevCode(devCode); + if(device==null) return; //没注册舍弃 //生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.WellOpenAlarm.getName()); - Device device = deviceManager.getDeviceByDevCode(devCode); + alarmRecordManager.saveData(alarmJob.getId(), "1", WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), device, diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java new file mode 100644 index 0000000..1684a18 --- /dev/null +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -0,0 +1,145 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class NoiseDigManager extends HibernateEntityDao { + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final double constant=0.0153; + + public Map saveData(String devId, String wellCode, String cell, String uptime, + String frequency, String dData) throws IOException { + + Map resultMap = new HashMap(); + try { + NoiseDig noise = new NoiseDig(devId, wellCode, cell, + DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)), + frequency, dData); + save(noise); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String val = ((JSONObject) jsonArray.get(i)).get("noiseVal").toString(); + String freq = ((JSONObject) jsonArray.get(i)).get("noiseFreq").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + if (i < jsonArray.size() - 1) continue; + + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 + if ( StringUtils.isNotBlank(thresh) && + Double.valueOf(val) > Double.valueOf(thresh) * constant) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java new file mode 100644 index 0000000..de66ae8 --- /dev/null +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -0,0 +1,157 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.TempHumiAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class TempHumiManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String upTime, String wellCode, + String temperature, String humidity, String cell) { + + Map resultMap = new HashMap(); + try { + TempHumi tempHumi = new TempHumi(devCode, wellCode, + DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); + save(tempHumi); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.get("cell").toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String temperature = null != ((JSONObject) jsonArray.get(i)).get("temperature") ? + ((JSONObject) jsonArray.get(i)).get("temperature").toString() : ""; + String humidity = null != ((JSONObject) jsonArray.get(i)).get("humidity") ? + ((JSONObject) jsonArray.get(i)).get("humidity").toString() : ""; + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), upTime, + temperature, humidity, cell); + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; + String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; + String alarmValue = alarmTemp + "," + alarmHumidity; + if (!("*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmHumidity))) + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + //4.写入新的报警 + alarmRecordManager.saveData(alarmJob.getId(), "2", + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java new file mode 100644 index 0000000..8252e42 --- /dev/null +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -0,0 +1,123 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class WasteGasManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, String upTime, + String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { + + Map resultMap = new HashMap(); + try { + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + save(wasteGas); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String CO = ((JSONObject) jsonArray.get(i)).get("CO").toString(); + String O2 = ((JSONObject) jsonArray.get(i)).get("O2").toString(); + String H2S = ((JSONObject) jsonArray.get(i)).get("H2S").toString(); + String CH4 = ((JSONObject) jsonArray.get(i)).get("CH4").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), + upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; + String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; + String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; + String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; + String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; + if (!("*,*,*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + +} diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 6711f6e..b4d48d8 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -3,15 +3,14 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.well.well.AlarmEnumDTO.WellAlarmEnum; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.core.hibernate.HibernateEntityDao; -import org.well.well.core.util.DateUtils; -import org.well.well.domain.*; -import org.well.well.util.PushList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WellAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.*; +import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; @@ -33,12 +32,13 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); - public Map saveData(String devCode, String desc, - String status) throws IOException { + public Map saveData(String devCode,String wellCode, + String desc, String status){ Map resultMap = new HashMap(); try { - Well well = new Well(devCode, desc, status); + + Well well = new Well(devCode,wellCode, desc, status); save(well); } catch (Exception e) { e.printStackTrace(); @@ -48,6 +48,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("value").toString();//"00" @@ -57,9 +58,10 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - this.saveData(devCode, WellAlarmEnum.NORMAL.toString(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.NORMAL.toString(), String.valueOf(WellAlarmEnum.NORMAL.getIndex()));//存采集数据 - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } @@ -69,15 +71,17 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); String logTime = (jsonObject.get("logTime")).toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清离线 deviceManager.clearOffline(devCode); //2.存入数据表 - this.saveData(devCode, WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); //3.根据不同的报警,进入不同的处理方法(主要分开盖和其他类型的报警) - BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.1井盖开盖报警处理 if (WellAlarmEnum.WellOpenAlarm.name().equals(jsonArray.get(i).toString())) { alarmRecordManager.clearAlarm(devCode, "2", "");//清除设备本身报警 @@ -93,10 +97,12 @@ String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime); } else { + Device device = deviceManager.getDeviceByDevCode(devCode); + if(device==null) return; //没注册舍弃 //生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.WellOpenAlarm.getName()); - Device device = deviceManager.getDeviceByDevCode(devCode); + alarmRecordManager.saveData(alarmJob.getId(), "1", WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), device, diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 70f9606..7954a5c 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -1,12 +1,14 @@ package org.well.well.resp; import net.sf.json.JSONObject; -import org.well.well.base.AbstractResponse; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.manager.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; /** * Created by lenovo on 2018/1/9. diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java new file mode 100644 index 0000000..1684a18 --- /dev/null +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -0,0 +1,145 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class NoiseDigManager extends HibernateEntityDao { + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final double constant=0.0153; + + public Map saveData(String devId, String wellCode, String cell, String uptime, + String frequency, String dData) throws IOException { + + Map resultMap = new HashMap(); + try { + NoiseDig noise = new NoiseDig(devId, wellCode, cell, + DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)), + frequency, dData); + save(noise); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String val = ((JSONObject) jsonArray.get(i)).get("noiseVal").toString(); + String freq = ((JSONObject) jsonArray.get(i)).get("noiseFreq").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + if (i < jsonArray.size() - 1) continue; + + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 + if ( StringUtils.isNotBlank(thresh) && + Double.valueOf(val) > Double.valueOf(thresh) * constant) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java new file mode 100644 index 0000000..de66ae8 --- /dev/null +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -0,0 +1,157 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.TempHumiAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class TempHumiManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String upTime, String wellCode, + String temperature, String humidity, String cell) { + + Map resultMap = new HashMap(); + try { + TempHumi tempHumi = new TempHumi(devCode, wellCode, + DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); + save(tempHumi); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.get("cell").toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String temperature = null != ((JSONObject) jsonArray.get(i)).get("temperature") ? + ((JSONObject) jsonArray.get(i)).get("temperature").toString() : ""; + String humidity = null != ((JSONObject) jsonArray.get(i)).get("humidity") ? + ((JSONObject) jsonArray.get(i)).get("humidity").toString() : ""; + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), upTime, + temperature, humidity, cell); + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; + String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; + String alarmValue = alarmTemp + "," + alarmHumidity; + if (!("*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmHumidity))) + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + //4.写入新的报警 + alarmRecordManager.saveData(alarmJob.getId(), "2", + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java new file mode 100644 index 0000000..8252e42 --- /dev/null +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -0,0 +1,123 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class WasteGasManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, String upTime, + String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { + + Map resultMap = new HashMap(); + try { + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + save(wasteGas); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String CO = ((JSONObject) jsonArray.get(i)).get("CO").toString(); + String O2 = ((JSONObject) jsonArray.get(i)).get("O2").toString(); + String H2S = ((JSONObject) jsonArray.get(i)).get("H2S").toString(); + String CH4 = ((JSONObject) jsonArray.get(i)).get("CH4").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), + upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; + String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; + String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; + String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; + String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; + if (!("*,*,*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + +} diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 6711f6e..b4d48d8 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -3,15 +3,14 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.well.well.AlarmEnumDTO.WellAlarmEnum; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.core.hibernate.HibernateEntityDao; -import org.well.well.core.util.DateUtils; -import org.well.well.domain.*; -import org.well.well.util.PushList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WellAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.*; +import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; @@ -33,12 +32,13 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); - public Map saveData(String devCode, String desc, - String status) throws IOException { + public Map saveData(String devCode,String wellCode, + String desc, String status){ Map resultMap = new HashMap(); try { - Well well = new Well(devCode, desc, status); + + Well well = new Well(devCode,wellCode, desc, status); save(well); } catch (Exception e) { e.printStackTrace(); @@ -48,6 +48,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("value").toString();//"00" @@ -57,9 +58,10 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - this.saveData(devCode, WellAlarmEnum.NORMAL.toString(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.NORMAL.toString(), String.valueOf(WellAlarmEnum.NORMAL.getIndex()));//存采集数据 - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } @@ -69,15 +71,17 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); String logTime = (jsonObject.get("logTime")).toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清离线 deviceManager.clearOffline(devCode); //2.存入数据表 - this.saveData(devCode, WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); //3.根据不同的报警,进入不同的处理方法(主要分开盖和其他类型的报警) - BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.1井盖开盖报警处理 if (WellAlarmEnum.WellOpenAlarm.name().equals(jsonArray.get(i).toString())) { alarmRecordManager.clearAlarm(devCode, "2", "");//清除设备本身报警 @@ -93,10 +97,12 @@ String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime); } else { + Device device = deviceManager.getDeviceByDevCode(devCode); + if(device==null) return; //没注册舍弃 //生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.WellOpenAlarm.getName()); - Device device = deviceManager.getDeviceByDevCode(devCode); + alarmRecordManager.saveData(alarmJob.getId(), "1", WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), device, diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 70f9606..7954a5c 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -1,12 +1,14 @@ package org.well.well.resp; import net.sf.json.JSONObject; -import org.well.well.base.AbstractResponse; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.manager.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; /** * Created by lenovo on 2018/1/9. diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java new file mode 100644 index 0000000..613c6d2 --- /dev/null +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -0,0 +1,59 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.MethaneManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class MethaneResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + MethaneManager methaneManager = ac.getBean(MethaneManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 + methaneManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + methaneManager.processAlarmData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.Methane.name().equals(json.get("devType"))) { + if ("MethaneConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java new file mode 100644 index 0000000..1684a18 --- /dev/null +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -0,0 +1,145 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class NoiseDigManager extends HibernateEntityDao { + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final double constant=0.0153; + + public Map saveData(String devId, String wellCode, String cell, String uptime, + String frequency, String dData) throws IOException { + + Map resultMap = new HashMap(); + try { + NoiseDig noise = new NoiseDig(devId, wellCode, cell, + DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)), + frequency, dData); + save(noise); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String val = ((JSONObject) jsonArray.get(i)).get("noiseVal").toString(); + String freq = ((JSONObject) jsonArray.get(i)).get("noiseFreq").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + if (i < jsonArray.size() - 1) continue; + + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 + if ( StringUtils.isNotBlank(thresh) && + Double.valueOf(val) > Double.valueOf(thresh) * constant) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java new file mode 100644 index 0000000..de66ae8 --- /dev/null +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -0,0 +1,157 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.TempHumiAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class TempHumiManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String upTime, String wellCode, + String temperature, String humidity, String cell) { + + Map resultMap = new HashMap(); + try { + TempHumi tempHumi = new TempHumi(devCode, wellCode, + DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); + save(tempHumi); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.get("cell").toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String temperature = null != ((JSONObject) jsonArray.get(i)).get("temperature") ? + ((JSONObject) jsonArray.get(i)).get("temperature").toString() : ""; + String humidity = null != ((JSONObject) jsonArray.get(i)).get("humidity") ? + ((JSONObject) jsonArray.get(i)).get("humidity").toString() : ""; + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), upTime, + temperature, humidity, cell); + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; + String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; + String alarmValue = alarmTemp + "," + alarmHumidity; + if (!("*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmHumidity))) + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + //4.写入新的报警 + alarmRecordManager.saveData(alarmJob.getId(), "2", + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java new file mode 100644 index 0000000..8252e42 --- /dev/null +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -0,0 +1,123 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class WasteGasManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, String upTime, + String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { + + Map resultMap = new HashMap(); + try { + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + save(wasteGas); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String CO = ((JSONObject) jsonArray.get(i)).get("CO").toString(); + String O2 = ((JSONObject) jsonArray.get(i)).get("O2").toString(); + String H2S = ((JSONObject) jsonArray.get(i)).get("H2S").toString(); + String CH4 = ((JSONObject) jsonArray.get(i)).get("CH4").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), + upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; + String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; + String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; + String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; + String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; + if (!("*,*,*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + +} diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 6711f6e..b4d48d8 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -3,15 +3,14 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.well.well.AlarmEnumDTO.WellAlarmEnum; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.core.hibernate.HibernateEntityDao; -import org.well.well.core.util.DateUtils; -import org.well.well.domain.*; -import org.well.well.util.PushList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WellAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.*; +import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; @@ -33,12 +32,13 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); - public Map saveData(String devCode, String desc, - String status) throws IOException { + public Map saveData(String devCode,String wellCode, + String desc, String status){ Map resultMap = new HashMap(); try { - Well well = new Well(devCode, desc, status); + + Well well = new Well(devCode,wellCode, desc, status); save(well); } catch (Exception e) { e.printStackTrace(); @@ -48,6 +48,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("value").toString();//"00" @@ -57,9 +58,10 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - this.saveData(devCode, WellAlarmEnum.NORMAL.toString(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.NORMAL.toString(), String.valueOf(WellAlarmEnum.NORMAL.getIndex()));//存采集数据 - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } @@ -69,15 +71,17 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); String logTime = (jsonObject.get("logTime")).toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清离线 deviceManager.clearOffline(devCode); //2.存入数据表 - this.saveData(devCode, WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); //3.根据不同的报警,进入不同的处理方法(主要分开盖和其他类型的报警) - BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.1井盖开盖报警处理 if (WellAlarmEnum.WellOpenAlarm.name().equals(jsonArray.get(i).toString())) { alarmRecordManager.clearAlarm(devCode, "2", "");//清除设备本身报警 @@ -93,10 +97,12 @@ String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime); } else { + Device device = deviceManager.getDeviceByDevCode(devCode); + if(device==null) return; //没注册舍弃 //生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.WellOpenAlarm.getName()); - Device device = deviceManager.getDeviceByDevCode(devCode); + alarmRecordManager.saveData(alarmJob.getId(), "1", WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), device, diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 70f9606..7954a5c 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -1,12 +1,14 @@ package org.well.well.resp; import net.sf.json.JSONObject; -import org.well.well.base.AbstractResponse; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.manager.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; /** * Created by lenovo on 2018/1/9. diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java new file mode 100644 index 0000000..613c6d2 --- /dev/null +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -0,0 +1,59 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.MethaneManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class MethaneResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + MethaneManager methaneManager = ac.getBean(MethaneManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 + methaneManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + methaneManager.processAlarmData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.Methane.name().equals(json.get("devType"))) { + if ("MethaneConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/resp/NoiseDigResponse.java b/src/main/java/org/well/well/resp/NoiseDigResponse.java new file mode 100644 index 0000000..db75b71 --- /dev/null +++ b/src/main/java/org/well/well/resp/NoiseDigResponse.java @@ -0,0 +1,57 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.NoiseDigManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class NoiseDigResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + NoiseDigManager noiseDigManager = ac.getBean(NoiseDigManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 + noiseDigManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + noiseDigManager.processAlarmData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.Dig.name().equals(json.get("devType"))) { + if ("NoiseDigConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + }else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java new file mode 100644 index 0000000..1684a18 --- /dev/null +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -0,0 +1,145 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class NoiseDigManager extends HibernateEntityDao { + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final double constant=0.0153; + + public Map saveData(String devId, String wellCode, String cell, String uptime, + String frequency, String dData) throws IOException { + + Map resultMap = new HashMap(); + try { + NoiseDig noise = new NoiseDig(devId, wellCode, cell, + DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)), + frequency, dData); + save(noise); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String val = ((JSONObject) jsonArray.get(i)).get("noiseVal").toString(); + String freq = ((JSONObject) jsonArray.get(i)).get("noiseFreq").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + if (i < jsonArray.size() - 1) continue; + + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 + if ( StringUtils.isNotBlank(thresh) && + Double.valueOf(val) > Double.valueOf(thresh) * constant) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java new file mode 100644 index 0000000..de66ae8 --- /dev/null +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -0,0 +1,157 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.TempHumiAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class TempHumiManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String upTime, String wellCode, + String temperature, String humidity, String cell) { + + Map resultMap = new HashMap(); + try { + TempHumi tempHumi = new TempHumi(devCode, wellCode, + DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); + save(tempHumi); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.get("cell").toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String temperature = null != ((JSONObject) jsonArray.get(i)).get("temperature") ? + ((JSONObject) jsonArray.get(i)).get("temperature").toString() : ""; + String humidity = null != ((JSONObject) jsonArray.get(i)).get("humidity") ? + ((JSONObject) jsonArray.get(i)).get("humidity").toString() : ""; + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), upTime, + temperature, humidity, cell); + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; + String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; + String alarmValue = alarmTemp + "," + alarmHumidity; + if (!("*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmHumidity))) + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + //4.写入新的报警 + alarmRecordManager.saveData(alarmJob.getId(), "2", + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java new file mode 100644 index 0000000..8252e42 --- /dev/null +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -0,0 +1,123 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class WasteGasManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, String upTime, + String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { + + Map resultMap = new HashMap(); + try { + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + save(wasteGas); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String CO = ((JSONObject) jsonArray.get(i)).get("CO").toString(); + String O2 = ((JSONObject) jsonArray.get(i)).get("O2").toString(); + String H2S = ((JSONObject) jsonArray.get(i)).get("H2S").toString(); + String CH4 = ((JSONObject) jsonArray.get(i)).get("CH4").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), + upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; + String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; + String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; + String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; + String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; + if (!("*,*,*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + +} diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 6711f6e..b4d48d8 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -3,15 +3,14 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.well.well.AlarmEnumDTO.WellAlarmEnum; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.core.hibernate.HibernateEntityDao; -import org.well.well.core.util.DateUtils; -import org.well.well.domain.*; -import org.well.well.util.PushList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WellAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.*; +import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; @@ -33,12 +32,13 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); - public Map saveData(String devCode, String desc, - String status) throws IOException { + public Map saveData(String devCode,String wellCode, + String desc, String status){ Map resultMap = new HashMap(); try { - Well well = new Well(devCode, desc, status); + + Well well = new Well(devCode,wellCode, desc, status); save(well); } catch (Exception e) { e.printStackTrace(); @@ -48,6 +48,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("value").toString();//"00" @@ -57,9 +58,10 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - this.saveData(devCode, WellAlarmEnum.NORMAL.toString(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.NORMAL.toString(), String.valueOf(WellAlarmEnum.NORMAL.getIndex()));//存采集数据 - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } @@ -69,15 +71,17 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); String logTime = (jsonObject.get("logTime")).toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清离线 deviceManager.clearOffline(devCode); //2.存入数据表 - this.saveData(devCode, WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); //3.根据不同的报警,进入不同的处理方法(主要分开盖和其他类型的报警) - BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.1井盖开盖报警处理 if (WellAlarmEnum.WellOpenAlarm.name().equals(jsonArray.get(i).toString())) { alarmRecordManager.clearAlarm(devCode, "2", "");//清除设备本身报警 @@ -93,10 +97,12 @@ String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime); } else { + Device device = deviceManager.getDeviceByDevCode(devCode); + if(device==null) return; //没注册舍弃 //生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.WellOpenAlarm.getName()); - Device device = deviceManager.getDeviceByDevCode(devCode); + alarmRecordManager.saveData(alarmJob.getId(), "1", WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), device, diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 70f9606..7954a5c 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -1,12 +1,14 @@ package org.well.well.resp; import net.sf.json.JSONObject; -import org.well.well.base.AbstractResponse; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.manager.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; /** * Created by lenovo on 2018/1/9. diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java new file mode 100644 index 0000000..613c6d2 --- /dev/null +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -0,0 +1,59 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.MethaneManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class MethaneResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + MethaneManager methaneManager = ac.getBean(MethaneManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 + methaneManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + methaneManager.processAlarmData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.Methane.name().equals(json.get("devType"))) { + if ("MethaneConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/resp/NoiseDigResponse.java b/src/main/java/org/well/well/resp/NoiseDigResponse.java new file mode 100644 index 0000000..db75b71 --- /dev/null +++ b/src/main/java/org/well/well/resp/NoiseDigResponse.java @@ -0,0 +1,57 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.NoiseDigManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class NoiseDigResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + NoiseDigManager noiseDigManager = ac.getBean(NoiseDigManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 + noiseDigManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + noiseDigManager.processAlarmData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.Dig.name().equals(json.get("devType"))) { + if ("NoiseDigConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + }else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + + } +} diff --git a/src/main/java/org/well/well/resp/TempHumiResponse.java b/src/main/java/org/well/well/resp/TempHumiResponse.java new file mode 100644 index 0000000..68ae6b1 --- /dev/null +++ b/src/main/java/org/well/well/resp/TempHumiResponse.java @@ -0,0 +1,59 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.AlarmRecordManager; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.TempHumiManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class TempHumiResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + TempHumiManager tempHumiManager = ac.getBean(TempHumiManager.class); + AlarmRecordManager alarmRecordManager = ac.getBean(AlarmRecordManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType"))||mType[3].equals(json.get("mType"))) {//存储上报数据 + tempHumiManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + tempHumiManager.processAlarmData(jsonObject,devCode); + }else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.TempHumi.name().equals(json.get("devType"))) { + if ("TempHumiConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + }else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java new file mode 100644 index 0000000..1684a18 --- /dev/null +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -0,0 +1,145 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class NoiseDigManager extends HibernateEntityDao { + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final double constant=0.0153; + + public Map saveData(String devId, String wellCode, String cell, String uptime, + String frequency, String dData) throws IOException { + + Map resultMap = new HashMap(); + try { + NoiseDig noise = new NoiseDig(devId, wellCode, cell, + DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)), + frequency, dData); + save(noise); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String val = ((JSONObject) jsonArray.get(i)).get("noiseVal").toString(); + String freq = ((JSONObject) jsonArray.get(i)).get("noiseFreq").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + if (i < jsonArray.size() - 1) continue; + + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 + if ( StringUtils.isNotBlank(thresh) && + Double.valueOf(val) > Double.valueOf(thresh) * constant) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java new file mode 100644 index 0000000..de66ae8 --- /dev/null +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -0,0 +1,157 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.TempHumiAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class TempHumiManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String upTime, String wellCode, + String temperature, String humidity, String cell) { + + Map resultMap = new HashMap(); + try { + TempHumi tempHumi = new TempHumi(devCode, wellCode, + DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); + save(tempHumi); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.get("cell").toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String temperature = null != ((JSONObject) jsonArray.get(i)).get("temperature") ? + ((JSONObject) jsonArray.get(i)).get("temperature").toString() : ""; + String humidity = null != ((JSONObject) jsonArray.get(i)).get("humidity") ? + ((JSONObject) jsonArray.get(i)).get("humidity").toString() : ""; + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), upTime, + temperature, humidity, cell); + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; + String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; + String alarmValue = alarmTemp + "," + alarmHumidity; + if (!("*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmHumidity))) + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + //4.写入新的报警 + alarmRecordManager.saveData(alarmJob.getId(), "2", + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java new file mode 100644 index 0000000..8252e42 --- /dev/null +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -0,0 +1,123 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class WasteGasManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, String upTime, + String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { + + Map resultMap = new HashMap(); + try { + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + save(wasteGas); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String CO = ((JSONObject) jsonArray.get(i)).get("CO").toString(); + String O2 = ((JSONObject) jsonArray.get(i)).get("O2").toString(); + String H2S = ((JSONObject) jsonArray.get(i)).get("H2S").toString(); + String CH4 = ((JSONObject) jsonArray.get(i)).get("CH4").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), + upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; + String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; + String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; + String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; + String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; + if (!("*,*,*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + +} diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 6711f6e..b4d48d8 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -3,15 +3,14 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.well.well.AlarmEnumDTO.WellAlarmEnum; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.core.hibernate.HibernateEntityDao; -import org.well.well.core.util.DateUtils; -import org.well.well.domain.*; -import org.well.well.util.PushList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WellAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.*; +import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; @@ -33,12 +32,13 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); - public Map saveData(String devCode, String desc, - String status) throws IOException { + public Map saveData(String devCode,String wellCode, + String desc, String status){ Map resultMap = new HashMap(); try { - Well well = new Well(devCode, desc, status); + + Well well = new Well(devCode,wellCode, desc, status); save(well); } catch (Exception e) { e.printStackTrace(); @@ -48,6 +48,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("value").toString();//"00" @@ -57,9 +58,10 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - this.saveData(devCode, WellAlarmEnum.NORMAL.toString(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.NORMAL.toString(), String.valueOf(WellAlarmEnum.NORMAL.getIndex()));//存采集数据 - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } @@ -69,15 +71,17 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); String logTime = (jsonObject.get("logTime")).toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清离线 deviceManager.clearOffline(devCode); //2.存入数据表 - this.saveData(devCode, WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); //3.根据不同的报警,进入不同的处理方法(主要分开盖和其他类型的报警) - BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.1井盖开盖报警处理 if (WellAlarmEnum.WellOpenAlarm.name().equals(jsonArray.get(i).toString())) { alarmRecordManager.clearAlarm(devCode, "2", "");//清除设备本身报警 @@ -93,10 +97,12 @@ String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime); } else { + Device device = deviceManager.getDeviceByDevCode(devCode); + if(device==null) return; //没注册舍弃 //生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.WellOpenAlarm.getName()); - Device device = deviceManager.getDeviceByDevCode(devCode); + alarmRecordManager.saveData(alarmJob.getId(), "1", WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), device, diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 70f9606..7954a5c 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -1,12 +1,14 @@ package org.well.well.resp; import net.sf.json.JSONObject; -import org.well.well.base.AbstractResponse; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.manager.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; /** * Created by lenovo on 2018/1/9. diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java new file mode 100644 index 0000000..613c6d2 --- /dev/null +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -0,0 +1,59 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.MethaneManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class MethaneResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + MethaneManager methaneManager = ac.getBean(MethaneManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 + methaneManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + methaneManager.processAlarmData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.Methane.name().equals(json.get("devType"))) { + if ("MethaneConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/resp/NoiseDigResponse.java b/src/main/java/org/well/well/resp/NoiseDigResponse.java new file mode 100644 index 0000000..db75b71 --- /dev/null +++ b/src/main/java/org/well/well/resp/NoiseDigResponse.java @@ -0,0 +1,57 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.NoiseDigManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class NoiseDigResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + NoiseDigManager noiseDigManager = ac.getBean(NoiseDigManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 + noiseDigManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + noiseDigManager.processAlarmData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.Dig.name().equals(json.get("devType"))) { + if ("NoiseDigConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + }else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + + } +} diff --git a/src/main/java/org/well/well/resp/TempHumiResponse.java b/src/main/java/org/well/well/resp/TempHumiResponse.java new file mode 100644 index 0000000..68ae6b1 --- /dev/null +++ b/src/main/java/org/well/well/resp/TempHumiResponse.java @@ -0,0 +1,59 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.AlarmRecordManager; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.TempHumiManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class TempHumiResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + TempHumiManager tempHumiManager = ac.getBean(TempHumiManager.class); + AlarmRecordManager alarmRecordManager = ac.getBean(AlarmRecordManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType"))||mType[3].equals(json.get("mType"))) {//存储上报数据 + tempHumiManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + tempHumiManager.processAlarmData(jsonObject,devCode); + }else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.TempHumi.name().equals(json.get("devType"))) { + if ("TempHumiConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + }else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/resp/WasteGasResponse.java b/src/main/java/org/well/well/resp/WasteGasResponse.java new file mode 100644 index 0000000..4b3d350 --- /dev/null +++ b/src/main/java/org/well/well/resp/WasteGasResponse.java @@ -0,0 +1,57 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.WasteGasManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class WasteGasResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "StartupRequest"}; + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + WasteGasManager wasteGasManager = ac.getBean(WasteGasManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType"))) {//存储上报数据 + wasteGasManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + //有害气体无Event事件 + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.WasteGas.name().equals(json.get("devType"))) { + if ("WasteGasConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } else if (mType[3].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode, imei, iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java new file mode 100644 index 0000000..1684a18 --- /dev/null +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -0,0 +1,145 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class NoiseDigManager extends HibernateEntityDao { + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final double constant=0.0153; + + public Map saveData(String devId, String wellCode, String cell, String uptime, + String frequency, String dData) throws IOException { + + Map resultMap = new HashMap(); + try { + NoiseDig noise = new NoiseDig(devId, wellCode, cell, + DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)), + frequency, dData); + save(noise); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String val = ((JSONObject) jsonArray.get(i)).get("noiseVal").toString(); + String freq = ((JSONObject) jsonArray.get(i)).get("noiseFreq").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + if (i < jsonArray.size() - 1) continue; + + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 + if ( StringUtils.isNotBlank(thresh) && + Double.valueOf(val) > Double.valueOf(thresh) * constant) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java new file mode 100644 index 0000000..de66ae8 --- /dev/null +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -0,0 +1,157 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.TempHumiAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class TempHumiManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String upTime, String wellCode, + String temperature, String humidity, String cell) { + + Map resultMap = new HashMap(); + try { + TempHumi tempHumi = new TempHumi(devCode, wellCode, + DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); + save(tempHumi); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.get("cell").toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String temperature = null != ((JSONObject) jsonArray.get(i)).get("temperature") ? + ((JSONObject) jsonArray.get(i)).get("temperature").toString() : ""; + String humidity = null != ((JSONObject) jsonArray.get(i)).get("humidity") ? + ((JSONObject) jsonArray.get(i)).get("humidity").toString() : ""; + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), upTime, + temperature, humidity, cell); + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; + String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; + String alarmValue = alarmTemp + "," + alarmHumidity; + if (!("*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmHumidity))) + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + //4.写入新的报警 + alarmRecordManager.saveData(alarmJob.getId(), "2", + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java new file mode 100644 index 0000000..8252e42 --- /dev/null +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -0,0 +1,123 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class WasteGasManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, String upTime, + String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { + + Map resultMap = new HashMap(); + try { + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + save(wasteGas); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String CO = ((JSONObject) jsonArray.get(i)).get("CO").toString(); + String O2 = ((JSONObject) jsonArray.get(i)).get("O2").toString(); + String H2S = ((JSONObject) jsonArray.get(i)).get("H2S").toString(); + String CH4 = ((JSONObject) jsonArray.get(i)).get("CH4").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), + upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; + String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; + String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; + String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; + String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; + if (!("*,*,*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + +} diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 6711f6e..b4d48d8 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -3,15 +3,14 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.well.well.AlarmEnumDTO.WellAlarmEnum; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.core.hibernate.HibernateEntityDao; -import org.well.well.core.util.DateUtils; -import org.well.well.domain.*; -import org.well.well.util.PushList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WellAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.*; +import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; @@ -33,12 +32,13 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); - public Map saveData(String devCode, String desc, - String status) throws IOException { + public Map saveData(String devCode,String wellCode, + String desc, String status){ Map resultMap = new HashMap(); try { - Well well = new Well(devCode, desc, status); + + Well well = new Well(devCode,wellCode, desc, status); save(well); } catch (Exception e) { e.printStackTrace(); @@ -48,6 +48,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("value").toString();//"00" @@ -57,9 +58,10 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - this.saveData(devCode, WellAlarmEnum.NORMAL.toString(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.NORMAL.toString(), String.valueOf(WellAlarmEnum.NORMAL.getIndex()));//存采集数据 - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } @@ -69,15 +71,17 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); String logTime = (jsonObject.get("logTime")).toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清离线 deviceManager.clearOffline(devCode); //2.存入数据表 - this.saveData(devCode, WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); //3.根据不同的报警,进入不同的处理方法(主要分开盖和其他类型的报警) - BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.1井盖开盖报警处理 if (WellAlarmEnum.WellOpenAlarm.name().equals(jsonArray.get(i).toString())) { alarmRecordManager.clearAlarm(devCode, "2", "");//清除设备本身报警 @@ -93,10 +97,12 @@ String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime); } else { + Device device = deviceManager.getDeviceByDevCode(devCode); + if(device==null) return; //没注册舍弃 //生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.WellOpenAlarm.getName()); - Device device = deviceManager.getDeviceByDevCode(devCode); + alarmRecordManager.saveData(alarmJob.getId(), "1", WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), device, diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 70f9606..7954a5c 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -1,12 +1,14 @@ package org.well.well.resp; import net.sf.json.JSONObject; -import org.well.well.base.AbstractResponse; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.manager.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; /** * Created by lenovo on 2018/1/9. diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java new file mode 100644 index 0000000..613c6d2 --- /dev/null +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -0,0 +1,59 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.MethaneManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class MethaneResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + MethaneManager methaneManager = ac.getBean(MethaneManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 + methaneManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + methaneManager.processAlarmData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.Methane.name().equals(json.get("devType"))) { + if ("MethaneConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/resp/NoiseDigResponse.java b/src/main/java/org/well/well/resp/NoiseDigResponse.java new file mode 100644 index 0000000..db75b71 --- /dev/null +++ b/src/main/java/org/well/well/resp/NoiseDigResponse.java @@ -0,0 +1,57 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.NoiseDigManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class NoiseDigResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + NoiseDigManager noiseDigManager = ac.getBean(NoiseDigManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 + noiseDigManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + noiseDigManager.processAlarmData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.Dig.name().equals(json.get("devType"))) { + if ("NoiseDigConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + }else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + + } +} diff --git a/src/main/java/org/well/well/resp/TempHumiResponse.java b/src/main/java/org/well/well/resp/TempHumiResponse.java new file mode 100644 index 0000000..68ae6b1 --- /dev/null +++ b/src/main/java/org/well/well/resp/TempHumiResponse.java @@ -0,0 +1,59 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.AlarmRecordManager; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.TempHumiManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class TempHumiResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + TempHumiManager tempHumiManager = ac.getBean(TempHumiManager.class); + AlarmRecordManager alarmRecordManager = ac.getBean(AlarmRecordManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType"))||mType[3].equals(json.get("mType"))) {//存储上报数据 + tempHumiManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + tempHumiManager.processAlarmData(jsonObject,devCode); + }else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.TempHumi.name().equals(json.get("devType"))) { + if ("TempHumiConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + }else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/resp/WasteGasResponse.java b/src/main/java/org/well/well/resp/WasteGasResponse.java new file mode 100644 index 0000000..4b3d350 --- /dev/null +++ b/src/main/java/org/well/well/resp/WasteGasResponse.java @@ -0,0 +1,57 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.WasteGasManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class WasteGasResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "StartupRequest"}; + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + WasteGasManager wasteGasManager = ac.getBean(WasteGasManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType"))) {//存储上报数据 + wasteGasManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + //有害气体无Event事件 + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.WasteGas.name().equals(json.get("devType"))) { + if ("WasteGasConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } else if (mType[3].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode, imei, iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/resp/WellResponse.java b/src/main/java/org/well/well/resp/WellResponse.java index de4504c..5a44562 100644 --- a/src/main/java/org/well/well/resp/WellResponse.java +++ b/src/main/java/org/well/well/resp/WellResponse.java @@ -1,12 +1,12 @@ package org.well.well.resp; import net.sf.json.JSONObject; -import org.well.well.base.AbstractResponse; -import org.well.well.manager.ImeiManager; -import org.well.well.manager.WellManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.WellManager; /** * Created by lenovo on 2018/1/9. diff --git a/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java new file mode 100644 index 0000000..cae5fe2 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/AlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum AlarmEnum { + + Normal("正常", 0), + OVER_THRESH1("一级告警", 1), + OVER_THRESH2("二级告警", 2), + OVER_THRESH3("三级告警", 3); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private AlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public int getIndex() { + return this.index; + } + + public String getName() { + return this.name; + } + + public static AlarmEnum getByIndex(String index) { + try { + for (AlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java new file mode 100644 index 0000000..2c59704 --- /dev/null +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -0,0 +1,51 @@ +package org.well.well.AlarmEnumDTO; + +/** + * Created by admin on 2017/4/6. + */ +public enum NoiseDigAlarmEnum { + + NO_DATA("设备异常", -1), + NORMAL("正常", 0), + NoiseDigFail("噪声开挖探头采集失败", 1), + NoiseDigError("噪声开挖探头数据异常", 2), + NoiseDigUnknown("噪声开挖未知异常", 3), + OVER_THRESH("噪声开挖超限", 4); + + + // 成员变量 + private String name; + private int index; + + // 构造方法 + private NoiseDigAlarmEnum(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } + + //覆盖方法 + @Override + public String toString() { + return this.name; + } + + public static NoiseDigAlarmEnum getByIndex(String index) { + try { + for (NoiseDigAlarmEnum temp : values()) { + if (temp.index == Integer.parseInt(index)) { + return temp; + } + } + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index 35566e9..acb1d06 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -13,7 +13,9 @@ HUMIDITY_NORMAL("湿度正常", 3), HumidityFail("湿度探头采集失败", 4), HumidityError("湿度探头数据异常", 5), - TempHumiUnknown("温湿度未知异常", 6); + TempHumiUnknown("温湿度未知异常", 6), + Temp_OVER_THRESH("温度超限", 7), + Humi_OVER_THRESH("湿度超限", 8); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceDTO.java b/src/main/java/org/well/well/base/DeviceDTO.java index 1a9ec6d..053dcdf 100644 --- a/src/main/java/org/well/well/base/DeviceDTO.java +++ b/src/main/java/org/well/well/base/DeviceDTO.java @@ -3,6 +3,7 @@ public class DeviceDTO { public Long id; public String devCode; + public String wellCode; public String devName; public Long deviceTypeId; public String deviceTypeName; @@ -48,4 +49,11 @@ this.deviceTypeName = deviceTypeName; } + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } } diff --git a/src/main/java/org/well/well/domain/Methane.java b/src/main/java/org/well/well/domain/Methane.java new file mode 100644 index 0000000..f33446c --- /dev/null +++ b/src/main/java/org/well/well/domain/Methane.java @@ -0,0 +1,106 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; + +@Entity +@Table(name = "data_gas") +public class Methane implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String strength; //浓度 + private String cell; //电池电量 + private String descn; //状态描述 + private Timestamp uptime; //采集时间 + private Timestamp logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "STRENGTH") + public String getStrength() { + return strength; + } + + public void setStrength(String strength) { + this.strength = strength; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Timestamp getUptime() { + return uptime; + } + + public void setUptime(Timestamp uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Timestamp getLogtime() { + return logtime; + } + + public void setLogtime(Timestamp logtime) { + this.logtime = logtime; + } + + public Methane(String devCode,String wellCode, String strength, String cell, Timestamp uptime, Timestamp logtime) { + this.devCode = devCode; + this.wellCode=wellCode; + this.strength = strength; + this.cell = cell; + this.uptime = uptime; + this.logtime = logtime; + } +} diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java new file mode 100644 index 0000000..00f9d68 --- /dev/null +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +@Entity +@Table(name = "data_dig") +public class NoiseDig implements Serializable { + /** + * + */ + private static final long serialVersionUID = 566089135526318711L; + private Long dbId; + private String devCode; //设备编号 + private String wellCode; //井编号 + private String dData; //噪声值 + private String frequency; //频率 + private String cell; //电池电量 + private String descn; //状态描述 + private Date uptime; //采集时间 + private Date logtime; //记录时间 + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DDATA") + public String getdData() { + return dData; + } + + public void setdData(String dData) { + this.dData = dData; + } + + @Column(name = "FREQUENCY") + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "UPTIME") + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public NoiseDig(String devId, String wellCode,String cell, Date uptime, String frequency, String dData) { + this.devCode = devId; + this.wellCode = wellCode; + this.cell = cell; + this.uptime = uptime; + this.frequency = frequency; + this.dData = dData; + } +} diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java new file mode 100644 index 0000000..d6cabec --- /dev/null +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -0,0 +1,117 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_temp_hum") +public class TempHumi implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devCode; + private String wellCode; + private Date upTime; + private Date logTime; + private String temperature; + private String humidity; + private String descn; + private String cell; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "LOGTIME") + public Date getLogTime() { + return logTime; + } + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name = "TEMPERATURE") + public String getTemperature() { + return temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + @Column(name = "HUMIDITY") + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + @Column(name = "CELL") + public String getCell() { + return cell; + } + + public void setCell(String cell) { + this.cell = cell; + } + + @Column(name = "DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public TempHumi(String devCode, String wellCode,Date upTime, + String temperature, String humidity, String cell) { + this.devCode = devCode; + this.wellCode = wellCode; + this.upTime = upTime; + this.temperature = temperature; + this.humidity = humidity; + this.cell = cell; + } +} diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java new file mode 100644 index 0000000..b8a1d01 --- /dev/null +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -0,0 +1,145 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +@Entity +@Table(name = "data_harmful_gas") +public class WasteGas implements Serializable +{ + /** + * + */ + private static final long serialVersionUID = 1L; + private long id; + private String devId; + private String wellCode; + private Date upTime; + private Date logTime; + private String co; + private String o2; + private String h2S; + private String fireGas; + private String descn; + private Boolean isOpen; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public long getId() + { + return id; + } + public void setId(long id) + { + this.id = id; + } + + @Column(name = "DEVCODE") + public String getDevId() + { + return devId; + } + public void setDevId(String devId) + { + this.devId = devId; + } + + @Column(name = "UPTIME") + public Date getUpTime() + { + return upTime; + } + public void setUpTime(Date upTime) + { + this.upTime = upTime; + } + + @Column(name = "CO") + public String getCo() + { + return co; + } + public void setCo(String co) + { + this.co = co; + } + @Column(name = "O2") + public String getO2() + { + return o2; + } + public void setO2(String o2) + { + this.o2 = o2; + } + + @Column(name = "H2S") + public String getH2S() + { + return h2S; + } + public void setH2S(String h2s) + { + h2S = h2s; + } + + @Column(name = "CH4") + public String getFireGas() + { + return fireGas; + } + public void setFireGas(String fireGas) + { + this.fireGas = fireGas; + } + + @Column(name = "SWITCH") + public Boolean getOpen() { + return isOpen; + } + + public void setOpen(Boolean open) { + isOpen = open; + } + + @Column(name="WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + @Column(name="LOGTIME") + public Date getLogTime() { + return logTime; + } + + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Column(name="DESCN") + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public WasteGas(String devCode, String wellCode, Date upTime, + String CO, String O2,String H2S, String CH4,Boolean isOpen) { + this.devId = devCode; + this.devId = wellCode; + this.upTime = upTime; + this.co = CO; + this.o2 = O2; + this.h2S = H2S; + this.fireGas = CH4; + this.isOpen = isOpen; + } +} diff --git a/src/main/java/org/well/well/domain/Well.java b/src/main/java/org/well/well/domain/Well.java index 28fc973..544a1f2 100644 --- a/src/main/java/org/well/well/domain/Well.java +++ b/src/main/java/org/well/well/domain/Well.java @@ -11,6 +11,7 @@ private static final long serialVersionUID = 429994083551525856L; private Long dbId; private String devCode; + private String wellCode; private String desc; private String status; private Date logtime; @@ -61,12 +62,18 @@ this.logtime = logtime; } - public Well() { - + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; } - public Well(String devCode, String desc, String status) { + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Well(String devCode, String wellCode,String desc, String status) { this.devCode = devCode; + this.wellCode = wellCode; this.desc = desc; this.status = status; this.logtime = new Date(); diff --git a/src/main/java/org/well/well/dto/LiquidDTO.java b/src/main/java/org/well/well/dto/LiquidDTO.java index b6bf955..a81e667 100644 --- a/src/main/java/org/well/well/dto/LiquidDTO.java +++ b/src/main/java/org/well/well/dto/LiquidDTO.java @@ -10,6 +10,7 @@ private String cell; private String logTime; private String uptime; + private String descn; public String getLiquidData() { @@ -44,15 +45,19 @@ this.uptime = uptime; } - - public LiquidDTO() { - + public String getDescn() { + return descn; } - public LiquidDTO(String liquidData, String cell, String uptime,String devCode) { + public void setDescn(String descn) { + this.descn = descn; + } + + public LiquidDTO(String liquidData, String cell, String uptime, String devCode,String wellCode) { this.liquidData = liquidData; this.cell = cell; this.uptime = uptime; this.devCode = devCode; + this.devCode = wellCode; } } diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index a324116..8b9114a 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -1,15 +1,15 @@ package org.well.well.manager; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; @@ -25,6 +25,10 @@ static { deviceAlarmMap.put(DeviceTypeEnum.Liquid.toString(), "YWCX"); deviceAlarmMap.put(DeviceTypeEnum.Well.toString(), "JGKQ"); + deviceAlarmMap.put(DeviceTypeEnum.Methane.toString(), "RQCX"); + deviceAlarmMap.put(DeviceTypeEnum.Dig.toString(), "KWCX"); + deviceAlarmMap.put(DeviceTypeEnum.WasteGas.toString(), "YHCX"); + deviceAlarmMap.put(DeviceTypeEnum.TempHumi.toString(), "WSCX"); } public Criteria getCriteria() { @@ -32,19 +36,23 @@ } public void updateAlarmJobByDevCode(String devcode, String message) { - Criteria criteria = getSession().createCriteria(AlarmJob.class); - criteria.add(Restrictions.eq("devcode", devcode)); - criteria.add(Restrictions.ne("jobStatus", "3")); - List alarmJobList = criteria.list(); - for (AlarmJob alarmJob : alarmJobList) { - alarmJob.setJobStatus("3"); - alarmJob.setHandleJobTime(new Date()); - alarmJob.setHandleMessage(message); - save(alarmJob); + try { + Criteria criteria = getSession().createCriteria(AlarmJob.class); + criteria.add(Restrictions.eq("devcode", devcode)); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); + List alarmJobList = criteria.list(); + for (AlarmJob alarmJob : alarmJobList) { + alarmJob.setJobStatus("3"); + alarmJob.setHandleJobTime(new Date()); + alarmJob.setHandleMessage(message); + save(alarmJob); + } + } catch (Exception e) { + e.printStackTrace(); } } - public AlarmJob saveData(String devCode, String wellCode,String devTypeName,String jobType) { + public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); @@ -59,11 +67,11 @@ public String produceJobCode(String devTypeName) { String pre = deviceAlarmMap.get(devTypeName); String dataStr = DateUtils.sdf6.format(new Date()); - String fix = getAlarmJob(pre+dataStr); - if(StringUtils.isNotBlank(fix)){ - return pre+dataStr+String.format("%04d", Long.valueOf(fix)+1); - }else - return pre+dataStr+"0001"; + String fix = getAlarmJob(pre + dataStr); + if (StringUtils.isNotBlank(fix)) { + return pre + dataStr + String.format("%04d", Long.valueOf(fix) + 1); + } else + return pre + dataStr + "0001"; } @@ -79,12 +87,13 @@ return fix; } - public AlarmJob getByDevAndType(String devCode,String jobType){ + public AlarmJob getByDevAndType(String devCode, String jobType) { Criteria criteria = getSession().createCriteria(AlarmJob.class); criteria.add(Restrictions.eq("devcode", devCode)); - criteria.add(Restrictions.ne("jobStatus", "3")); +// criteria.add(Restrictions.ne("jobStatus", "3")); + criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); - return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); + return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } } \ No newline at end of file diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 3c52bd6..2316f03 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -1,15 +1,14 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRecord; import org.well.well.domain.Device; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -24,20 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - @Resource - private DeviceManager deviceManager; - - - public Map saveData(Long jobId,String alarmType, - String alarmContent,String alarmValue, - Device device,String devCode, - String wellCode,String alarmTime) throws IOException { + public Map saveData(Long jobId, String alarmType, + String alarmContent, String alarmValue, + Device device, String devCode, + String wellCode, String alarmTime) throws IOException { Map resultMap = new HashMap(); try { AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); save(alarmRecord); @@ -49,44 +44,51 @@ public void clearAlarm(String devCode, String alarmType, String alarmValue) {//清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - status = StringUtils.isNotBlank(alarmType) ? - alarmStatusArr[0] : status; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + - " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + status = StringUtils.isNotBlank(alarmType) ? + alarmStatusArr[0] : status; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += StringUtils.isNotBlank(alarmValue) ? "and alarmType =" + alarmTypeArr[1] + + " and alarmValue =" + alarmValue : "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } public void clearAlarmByNormalData(String devCode, String alarmType) {//根据正常数据清除报警 - String status = alarmStatusArr[3]; - String hql = "update AlarmRecord set STATUS=:status " + - "where STATUS = " + alarmStatusArr[1] + - " and deviceCode=:deviceCode "; - if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 - hql += "and alarmType = " + alarmTypeArr[0]; - } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 - hql += "and alarmType =" + alarmTypeArr[1]; + try { + String status = alarmStatusArr[3]; + String hql = "update AlarmRecord set STATUS=:status " + + "where STATUS = " + alarmStatusArr[1] + + " and deviceCode=:deviceCode "; + if (alarmTypeArr[0].equals(alarmType)) {//阈值报警 + hql += "and alarmType = " + alarmTypeArr[0]; + } else if (alarmTypeArr[1].equals(alarmType)) {//设备本身报警 + hql += "and alarmType =" + alarmTypeArr[1]; + } + Map map = new HashMap(); + map.put("status", status); + map.put("deviceCode", devCode); + batchUpdate(hql, map); + } catch (Exception e) { + e.printStackTrace(); } - Map map = new HashMap(); - map.put("status", status); - map.put("deviceCode", devCode); - batchUpdate(hql, map); } - public AlarmRecord getThresholdAlarm(String devCode) {//根据告警判断是否有工单 Criteria criteria = getSession().createCriteria(AlarmRecord.class); @@ -99,7 +101,7 @@ } - public AlarmRecord getDeviceAlarm(String devCode,String alarmValue) {//获取设备本身报警消息(正在告警) + public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index 6886bf8..fa1f6ce 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -18,12 +18,17 @@ DeviceWellManager deviceWellManager; public BusWell getWellByDevCode(String devCode) { - Device device = deviceManager.getDeviceByDevCode(devCode); - if (null != device) { - DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); - if (null != deviceWell) { - return get(deviceWell.getWellId()); + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null != device) { + DeviceWell deviceWell = deviceWellManager.getDeviceWellByDevice(device); + if (null != deviceWell) { + return get(deviceWell.getWellId()); + } } + + }catch (Exception e ){ + e.printStackTrace(); } return null; } diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index fa74244..e939c23 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -20,92 +20,109 @@ public Device getDeviceByDevCode(String devcode) { - - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devcode)); - criteria.add(Restrictions.eq("valid", true)); - List devices = criteria.list(); - if (devices != null && devices.size() > 0) - return devices.get(0); + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devcode)); + criteria.add(Restrictions.eq("valid", true)); + List devices = criteria.list(); + if (devices != null && devices.size() > 0) + return devices.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } - public void clearOffline(String devCode){//查找设备状态(1:在线,0:离线) + public void clearOffline(String devCode) {//查找设备状态(1:在线,0:离线) + try { + Criteria criteria = getSession().createCriteria(Device.class); + criteria.add(Restrictions.eq("devCode", devCode)); + criteria.add(Restrictions.eq("valid", true)); + criteria.add(Restrictions.eq("onlineState", "0")); + List devices = criteria.list(); + for (Device device : devices) { + device.setOnlineState("1"); + device.setLogtime(new Date()); + save(device); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void setOfflineBySevenNoData(String devCode) { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("devCode", devCode)); criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "0")); + criteria.add(Restrictions.eq("onlineState", "1")); List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("1"); + for (Device device : devices) { + device.setOnlineState("0"); device.setLogtime(new Date()); save(device); } } - public void setOfflineBySevenNoData(String devCode){ - Criteria criteria = getSession().createCriteria(Device.class); - criteria.add(Restrictions.eq("devCode", devCode)); - criteria.add(Restrictions.eq("valid", true)); - criteria.add(Restrictions.eq("onlineState", "1")); - List devices = criteria.list(); - for(Device device:devices){ - device.setOnlineState("0"); - device.setLogtime(new Date()); - save(device); - } - } - - public void findLiquidDataInSevenDays(Device device){ + public void findDeviceDataInSevenDays(Device device, String sql) { try { Map paramMap = new HashMap(); - String sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - paramMap.put("devCode", device.getDevCode()); paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - public void findWellDataInSevenDays(Device device){ - try { - Map paramMap = new HashMap(); - String sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; - - paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); - List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); - if (list.size() == 0) { - setOfflineBySevenNoData(device.getDevCode()); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void updateDeviceStatus(){ + public void updateDeviceStatus() { Criteria criteria = getSession().createCriteria(Device.class); criteria.add(Restrictions.eq("valid", true)); criteria.add(Restrictions.eq("onlineState", "1")); - List deviceList=criteria.list(); - if(deviceList.size()>0){ - for(Device device:deviceList){ - String devTypeName =device.getDeviceType().getTypeName(); - if(devTypeName.equals(DeviceTypeEnum.Liquid.toString())){ - findLiquidDataInSevenDays(device); - } - else if(devTypeName.equals(DeviceTypeEnum.Well.toString())){ - findWellDataInSevenDays(device); + List deviceList = criteria.list(); + if (deviceList.size() > 0) { + for (Device device : deviceList) { + String devTypeName = device.getDeviceType().getTypeName(); + String sql = ""; + if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { + sql = "select * from data_liquid " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { + sql = "select * from data_wellcover " + + " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { + sql = "select * from data_harmful_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { + sql = "select * from data_gas " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.Dig.toString())) { + sql = "select * from data_dig " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { + sql = "select * from data_temp_hum " + + " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); } } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index f549aaf..fc685ad 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -2,6 +2,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -10,13 +13,13 @@ import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.PushList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Created by test203 on 2017/11/30. @@ -60,6 +63,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("level").toString(); @@ -70,7 +74,8 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - LiquidDTO liquidDTO = new LiquidDTO(level, cell, upTime, devCode); + LiquidDTO liquidDTO = new LiquidDTO(level, cell, + upTime, devCode,busWell==null?"":busWell.getWellCode()); this.saveData(liquidDTO);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; @@ -84,14 +89,13 @@ alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 - BusWell busWell = busWellManager.getWellByDevCode(devCode); + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 alarmRecordManager.saveData(alarmJob.getId(), "1", LiquidAlarmEnum.OVER_THRESH.getName(), level, device, devCode, alarmJob.getWellCode(), upTime); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java new file mode 100644 index 0000000..f1e110c --- /dev/null +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -0,0 +1,146 @@ +package org.well.well.manager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class MethaneManager extends HibernateEntityDao { + + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String address, String wellCode, + String strength, String cell, String uptime) { + + Map resultMap = new HashMap(); + try { + Methane methane = new Methane(address, wellCode, strength, cell, + new Timestamp((DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)).getTime())), + new Timestamp((new Date()).getTime())); + save(methane); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 + if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java new file mode 100644 index 0000000..1684a18 --- /dev/null +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -0,0 +1,145 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class NoiseDigManager extends HibernateEntityDao { + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final double constant=0.0153; + + public Map saveData(String devId, String wellCode, String cell, String uptime, + String frequency, String dData) throws IOException { + + Map resultMap = new HashMap(); + try { + NoiseDig noise = new NoiseDig(devId, wellCode, cell, + DateUtils.sdf4.parse(DateUtils.DateFormat(uptime)), + frequency, dData); + save(noise); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.get("cell").toString(); + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String val = ((JSONObject) jsonArray.get(i)).get("noiseVal").toString(); + String freq = ((JSONObject) jsonArray.get(i)).get("noiseFreq").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + if (i < jsonArray.size() - 1) continue; + + String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 + if ( StringUtils.isNotBlank(thresh) && + Double.valueOf(val) > Double.valueOf(thresh) * constant) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + //3.写入新的报警 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //4.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + alarmRecordManager.saveData(alarmJob.getId(), "2", + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java new file mode 100644 index 0000000..de66ae8 --- /dev/null +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -0,0 +1,157 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.TempHumiAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class TempHumiManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String upTime, String wellCode, + String temperature, String humidity, String cell) { + + Map resultMap = new HashMap(); + try { + TempHumi tempHumi = new TempHumi(devCode, wellCode, + DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); + save(tempHumi); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.get("cell").toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String temperature = null != ((JSONObject) jsonArray.get(i)).get("temperature") ? + ((JSONObject) jsonArray.get(i)).get("temperature").toString() : ""; + String humidity = null != ((JSONObject) jsonArray.get(i)).get("humidity") ? + ((JSONObject) jsonArray.get(i)).get("humidity").toString() : ""; + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), upTime, + temperature, humidity, cell); + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; + String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; + String alarmValue = alarmTemp + "," + alarmHumidity; + if (!("*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmHumidity))) + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); + String logTime = (jsonObject.get("logTime")).toString(); + for (int i = 0; i < jsonArray.size(); i++) { + try { + Device device = deviceManager.getDeviceByDevCode(devCode); + if (null == device) return;//没注册设备舍弃 + //1.清除离线 + deviceManager.clearOffline(devCode); + //2.清除同类型的报警信息 + alarmRecordManager.clearAlarm(devCode, "2", + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); + + BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.若无工单写入新的工单 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + if (null == alarmJob) { + alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); + } + //4.写入新的报警 + alarmRecordManager.saveData(alarmJob.getId(), "2", + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java new file mode 100644 index 0000000..8252e42 --- /dev/null +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -0,0 +1,123 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DateUtils; +import org.well.well.domain.*; +import org.well.well.util.PushList; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class WasteGasManager extends HibernateEntityDao { + + @Resource + private AlarmRecordManager alarmRecordManager; + @Resource + private AlarmRuleManager alarmRuleManager; + @Resource + private DeviceManager deviceManager; + @Resource + private BusWellManager busWellManager; + @Resource + private AlarmJobManager alarmJobManager; + @Resource + private UserManager userManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, String upTime, + String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { + + Map resultMap = new HashMap(); + try { + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + save(wasteGas); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + for (int i = 0; i < jsonArray.size(); i++) { + try { + String CO = ((JSONObject) jsonArray.get(i)).get("CO").toString(); + String O2 = ((JSONObject) jsonArray.get(i)).get("O2").toString(); + String H2S = ((JSONObject) jsonArray.get(i)).get("H2S").toString(); + String CH4 = ((JSONObject) jsonArray.get(i)).get("CH4").toString(); + String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.清除设备告警 + alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + //3.存数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), + upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 + //4.有无超限处理流程(判断最后一条数据) + if (i < jsonArray.size() - 1) continue; + String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; + String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; + String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; + String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; + String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; + if (!("*,*,*,*".equals(alarmValue))) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + String alarmContent = ""; + if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), + alarmContent.substring(0, alarmContent.length() - 1)); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmContent.substring(0, alarmContent.length() - 1), + alarmValue, device, + devCode, alarmJob.getWellCode(), upTime); + //3.toDo:向app推送报警消息 + List cids = userManager.getClients(busWell); + if (cids.size() > 0) + PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } + } catch (IOException e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + + +} diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 6711f6e..b4d48d8 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -3,15 +3,14 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.well.well.AlarmEnumDTO.WellAlarmEnum; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.core.hibernate.HibernateEntityDao; -import org.well.well.core.util.DateUtils; -import org.well.well.domain.*; -import org.well.well.util.PushList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WellAlarmEnum; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.*; +import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; @@ -33,12 +32,13 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); - public Map saveData(String devCode, String desc, - String status) throws IOException { + public Map saveData(String devCode,String wellCode, + String desc, String status){ Map resultMap = new HashMap(); try { - Well well = new Well(devCode, desc, status); + + Well well = new Well(devCode,wellCode, desc, status); save(well); } catch (Exception e) { e.printStackTrace(); @@ -48,6 +48,7 @@ public void processNormalData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String level = ((JSONObject) jsonArray.get(i)).get("value").toString();//"00" @@ -57,9 +58,10 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - this.saveData(devCode, WellAlarmEnum.NORMAL.toString(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.NORMAL.toString(), String.valueOf(WellAlarmEnum.NORMAL.getIndex()));//存采集数据 - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } @@ -69,15 +71,17 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); String logTime = (jsonObject.get("logTime")).toString(); + BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清离线 deviceManager.clearOffline(devCode); //2.存入数据表 - this.saveData(devCode, WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), + this.saveData(devCode,busWell==null?"":busWell.getWellCode(), + WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex())); //3.根据不同的报警,进入不同的处理方法(主要分开盖和其他类型的报警) - BusWell busWell = busWellManager.getWellByDevCode(devCode); + //3.1井盖开盖报警处理 if (WellAlarmEnum.WellOpenAlarm.name().equals(jsonArray.get(i).toString())) { alarmRecordManager.clearAlarm(devCode, "2", "");//清除设备本身报警 @@ -93,10 +97,12 @@ String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime); } else { + Device device = deviceManager.getDeviceByDevCode(devCode); + if(device==null) return; //没注册舍弃 //生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.WellOpenAlarm.getName()); - Device device = deviceManager.getDeviceByDevCode(devCode); + alarmRecordManager.saveData(alarmJob.getId(), "1", WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), device, diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 70f9606..7954a5c 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -1,12 +1,14 @@ package org.well.well.resp; import net.sf.json.JSONObject; -import org.well.well.base.AbstractResponse; -import org.well.well.base.DeviceTypeEnum; -import org.well.well.manager.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; /** * Created by lenovo on 2018/1/9. diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java new file mode 100644 index 0000000..613c6d2 --- /dev/null +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -0,0 +1,59 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.MethaneManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class MethaneResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + MethaneManager methaneManager = ac.getBean(MethaneManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 + methaneManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + methaneManager.processAlarmData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.Methane.name().equals(json.get("devType"))) { + if ("MethaneConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/resp/NoiseDigResponse.java b/src/main/java/org/well/well/resp/NoiseDigResponse.java new file mode 100644 index 0000000..db75b71 --- /dev/null +++ b/src/main/java/org/well/well/resp/NoiseDigResponse.java @@ -0,0 +1,57 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.NoiseDigManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class NoiseDigResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + NoiseDigManager noiseDigManager = ac.getBean(NoiseDigManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 + noiseDigManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + noiseDigManager.processAlarmData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.Dig.name().equals(json.get("devType"))) { + if ("NoiseDigConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + }else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + + } +} diff --git a/src/main/java/org/well/well/resp/TempHumiResponse.java b/src/main/java/org/well/well/resp/TempHumiResponse.java new file mode 100644 index 0000000..68ae6b1 --- /dev/null +++ b/src/main/java/org/well/well/resp/TempHumiResponse.java @@ -0,0 +1,59 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.AlarmRecordManager; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.TempHumiManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class TempHumiResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + TempHumiManager tempHumiManager = ac.getBean(TempHumiManager.class); + AlarmRecordManager alarmRecordManager = ac.getBean(AlarmRecordManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType"))||mType[3].equals(json.get("mType"))) {//存储上报数据 + tempHumiManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + tempHumiManager.processAlarmData(jsonObject,devCode); + }else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.TempHumi.name().equals(json.get("devType"))) { + if ("TempHumiConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + }else if (mType[4].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode,imei,iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/resp/WasteGasResponse.java b/src/main/java/org/well/well/resp/WasteGasResponse.java new file mode 100644 index 0000000..4b3d350 --- /dev/null +++ b/src/main/java/org/well/well/resp/WasteGasResponse.java @@ -0,0 +1,57 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.WasteGasManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class WasteGasResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "SetResponse", "StartupRequest"}; + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + WasteGasManager wasteGasManager = ac.getBean(WasteGasManager.class); + DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType"))) {//存储上报数据 + wasteGasManager.processNormalData(jsonObject,devCode); + } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 + //有害气体无Event事件 + } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 + try { + if (DeviceTypeEnum.WasteGas.name().equals(json.get("devType"))) { + if ("WasteGasConfigSuccess".equals(jsonObject.get("bType"))) { + deviceConfigManager.updateStatus(devCode); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } else if (mType[3].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode, imei, iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/resp/WellResponse.java b/src/main/java/org/well/well/resp/WellResponse.java index de4504c..5a44562 100644 --- a/src/main/java/org/well/well/resp/WellResponse.java +++ b/src/main/java/org/well/well/resp/WellResponse.java @@ -1,12 +1,12 @@ package org.well.well.resp; import net.sf.json.JSONObject; -import org.well.well.base.AbstractResponse; -import org.well.well.manager.ImeiManager; -import org.well.well.manager.WellManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.WellManager; /** * Created by lenovo on 2018/1/9. diff --git a/src/main/java/org/well/well/util/ResponseResolver.java b/src/main/java/org/well/well/util/ResponseResolver.java index 332e5f8..97e72a4 100644 --- a/src/main/java/org/well/well/util/ResponseResolver.java +++ b/src/main/java/org/well/well/util/ResponseResolver.java @@ -21,6 +21,10 @@ abstractResponseHashMap.put(DeviceTypeEnum.Liquid.name(), new LiquidResponse()); abstractResponseHashMap.put(DeviceTypeEnum.Well.name(), new WellResponse()); abstractResponseHashMap.put(DeviceTypeEnum.Concentrator.name(), new ConcentratorResponse()); + abstractResponseHashMap.put(DeviceTypeEnum.Methane.name(), new MethaneResponse()); + abstractResponseHashMap.put(DeviceTypeEnum.WasteGas.name(), new WasteGasResponse()); + abstractResponseHashMap.put(DeviceTypeEnum.TempHumi.name(), new TempHumiResponse()); + abstractResponseHashMap.put(DeviceTypeEnum.Dig.name(), new NoiseDigResponse()); }