diff --git a/src/main/java/org/flume/alarm/domain/Device.java b/src/main/java/org/flume/alarm/domain/Device.java index 8736ea9..9320709 100644 --- a/src/main/java/org/flume/alarm/domain/Device.java +++ b/src/main/java/org/flume/alarm/domain/Device.java @@ -34,6 +34,7 @@ private Set alarmRecords; private Boolean active = true; private Boolean isAlarm = true; + private String place; /** @@ -264,4 +265,13 @@ public void setAlarm(Boolean alarm) { isAlarm = alarm; } + + @Column(name = "PLACE", nullable = false) + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } } diff --git a/src/main/java/org/flume/alarm/domain/Device.java b/src/main/java/org/flume/alarm/domain/Device.java index 8736ea9..9320709 100644 --- a/src/main/java/org/flume/alarm/domain/Device.java +++ b/src/main/java/org/flume/alarm/domain/Device.java @@ -34,6 +34,7 @@ private Set alarmRecords; private Boolean active = true; private Boolean isAlarm = true; + private String place; /** @@ -264,4 +265,13 @@ public void setAlarm(Boolean alarm) { isAlarm = alarm; } + + @Column(name = "PLACE", nullable = false) + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } } diff --git a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java index 3032f2c..30f1c45 100644 --- a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java +++ b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java @@ -8,9 +8,7 @@ import org.flume.alarm.core.util.DateUtils; import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; -import org.flume.alarm.domain.FireHydrant; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -134,6 +132,13 @@ "", devCode, DeviceTypeEnum.FireHydrant.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.FireHydrant.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", FireHydrantAlarmEnum.FireHydrantOpenAlarm.toString() + "报警"); + sendUtils.sendEventBySms(device, eventObj); } } diff --git a/src/main/java/org/flume/alarm/domain/Device.java b/src/main/java/org/flume/alarm/domain/Device.java index 8736ea9..9320709 100644 --- a/src/main/java/org/flume/alarm/domain/Device.java +++ b/src/main/java/org/flume/alarm/domain/Device.java @@ -34,6 +34,7 @@ private Set alarmRecords; private Boolean active = true; private Boolean isAlarm = true; + private String place; /** @@ -264,4 +265,13 @@ public void setAlarm(Boolean alarm) { isAlarm = alarm; } + + @Column(name = "PLACE", nullable = false) + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } } diff --git a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java index 3032f2c..30f1c45 100644 --- a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java +++ b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java @@ -8,9 +8,7 @@ import org.flume.alarm.core.util.DateUtils; import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; -import org.flume.alarm.domain.FireHydrant; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -134,6 +132,13 @@ "", devCode, DeviceTypeEnum.FireHydrant.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.FireHydrant.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", FireHydrantAlarmEnum.FireHydrantOpenAlarm.toString() + "报警"); + sendUtils.sendEventBySms(device, eventObj); } } diff --git a/src/main/java/org/flume/alarm/resp/LiquidResponse.java b/src/main/java/org/flume/alarm/resp/LiquidResponse.java index 72b96e8..8a178ff 100644 --- a/src/main/java/org/flume/alarm/resp/LiquidResponse.java +++ b/src/main/java/org/flume/alarm/resp/LiquidResponse.java @@ -10,14 +10,19 @@ import org.flume.alarm.domain.Device; import org.flume.alarm.dto.LiquidDTO; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.*; +import org.flume.alarm.restful.DeviceUtilDTO; +import org.flume.alarm.restful.PublicUtilDTO; +import org.flume.alarm.restful.SendUtils; import org.flume.alarm.util.Configure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.TimerTask; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -92,6 +97,14 @@ level, devCode, DeviceTypeEnum.Liquid.toString()); + + // 短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Liquid.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", LiquidAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "液位值为" + level + "米"); + sendUtils.sendEventBySms(device, eventObj); } } } diff --git a/src/main/java/org/flume/alarm/domain/Device.java b/src/main/java/org/flume/alarm/domain/Device.java index 8736ea9..9320709 100644 --- a/src/main/java/org/flume/alarm/domain/Device.java +++ b/src/main/java/org/flume/alarm/domain/Device.java @@ -34,6 +34,7 @@ private Set alarmRecords; private Boolean active = true; private Boolean isAlarm = true; + private String place; /** @@ -264,4 +265,13 @@ public void setAlarm(Boolean alarm) { isAlarm = alarm; } + + @Column(name = "PLACE", nullable = false) + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } } diff --git a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java index 3032f2c..30f1c45 100644 --- a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java +++ b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java @@ -8,9 +8,7 @@ import org.flume.alarm.core.util.DateUtils; import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; -import org.flume.alarm.domain.FireHydrant; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -134,6 +132,13 @@ "", devCode, DeviceTypeEnum.FireHydrant.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.FireHydrant.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", FireHydrantAlarmEnum.FireHydrantOpenAlarm.toString() + "报警"); + sendUtils.sendEventBySms(device, eventObj); } } diff --git a/src/main/java/org/flume/alarm/resp/LiquidResponse.java b/src/main/java/org/flume/alarm/resp/LiquidResponse.java index 72b96e8..8a178ff 100644 --- a/src/main/java/org/flume/alarm/resp/LiquidResponse.java +++ b/src/main/java/org/flume/alarm/resp/LiquidResponse.java @@ -10,14 +10,19 @@ import org.flume.alarm.domain.Device; import org.flume.alarm.dto.LiquidDTO; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.*; +import org.flume.alarm.restful.DeviceUtilDTO; +import org.flume.alarm.restful.PublicUtilDTO; +import org.flume.alarm.restful.SendUtils; import org.flume.alarm.util.Configure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.TimerTask; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -92,6 +97,14 @@ level, devCode, DeviceTypeEnum.Liquid.toString()); + + // 短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Liquid.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", LiquidAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "液位值为" + level + "米"); + sendUtils.sendEventBySms(device, eventObj); } } } diff --git a/src/main/java/org/flume/alarm/resp/MethaneResponse.java b/src/main/java/org/flume/alarm/resp/MethaneResponse.java index 9d1caf5..878773a 100644 --- a/src/main/java/org/flume/alarm/resp/MethaneResponse.java +++ b/src/main/java/org/flume/alarm/resp/MethaneResponse.java @@ -6,6 +6,8 @@ import org.flume.alarm.base.AbstractResponse; import org.flume.alarm.base.DeviceTypeEnum; import org.flume.alarm.core.util.DateUtils; +import org.flume.alarm.core.util.StringUtils; +import org.flume.alarm.domain.Device; import org.flume.alarm.manager.*; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; @@ -83,6 +85,14 @@ gas, devCode, DeviceTypeEnum.Methane.toString()); + + // 通过短信发送报警消息 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Methane.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", MethaneAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "浓度值为" + gas + "LEL%"); + sendUtils.sendEventBySms(device, eventObj); } } /*** diff --git a/src/main/java/org/flume/alarm/domain/Device.java b/src/main/java/org/flume/alarm/domain/Device.java index 8736ea9..9320709 100644 --- a/src/main/java/org/flume/alarm/domain/Device.java +++ b/src/main/java/org/flume/alarm/domain/Device.java @@ -34,6 +34,7 @@ private Set alarmRecords; private Boolean active = true; private Boolean isAlarm = true; + private String place; /** @@ -264,4 +265,13 @@ public void setAlarm(Boolean alarm) { isAlarm = alarm; } + + @Column(name = "PLACE", nullable = false) + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } } diff --git a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java index 3032f2c..30f1c45 100644 --- a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java +++ b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java @@ -8,9 +8,7 @@ import org.flume.alarm.core.util.DateUtils; import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; -import org.flume.alarm.domain.FireHydrant; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -134,6 +132,13 @@ "", devCode, DeviceTypeEnum.FireHydrant.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.FireHydrant.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", FireHydrantAlarmEnum.FireHydrantOpenAlarm.toString() + "报警"); + sendUtils.sendEventBySms(device, eventObj); } } diff --git a/src/main/java/org/flume/alarm/resp/LiquidResponse.java b/src/main/java/org/flume/alarm/resp/LiquidResponse.java index 72b96e8..8a178ff 100644 --- a/src/main/java/org/flume/alarm/resp/LiquidResponse.java +++ b/src/main/java/org/flume/alarm/resp/LiquidResponse.java @@ -10,14 +10,19 @@ import org.flume.alarm.domain.Device; import org.flume.alarm.dto.LiquidDTO; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.*; +import org.flume.alarm.restful.DeviceUtilDTO; +import org.flume.alarm.restful.PublicUtilDTO; +import org.flume.alarm.restful.SendUtils; import org.flume.alarm.util.Configure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.TimerTask; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -92,6 +97,14 @@ level, devCode, DeviceTypeEnum.Liquid.toString()); + + // 短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Liquid.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", LiquidAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "液位值为" + level + "米"); + sendUtils.sendEventBySms(device, eventObj); } } } diff --git a/src/main/java/org/flume/alarm/resp/MethaneResponse.java b/src/main/java/org/flume/alarm/resp/MethaneResponse.java index 9d1caf5..878773a 100644 --- a/src/main/java/org/flume/alarm/resp/MethaneResponse.java +++ b/src/main/java/org/flume/alarm/resp/MethaneResponse.java @@ -6,6 +6,8 @@ import org.flume.alarm.base.AbstractResponse; import org.flume.alarm.base.DeviceTypeEnum; import org.flume.alarm.core.util.DateUtils; +import org.flume.alarm.core.util.StringUtils; +import org.flume.alarm.domain.Device; import org.flume.alarm.manager.*; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; @@ -83,6 +85,14 @@ gas, devCode, DeviceTypeEnum.Methane.toString()); + + // 通过短信发送报警消息 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Methane.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", MethaneAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "浓度值为" + gas + "LEL%"); + sendUtils.sendEventBySms(device, eventObj); } } /*** diff --git a/src/main/java/org/flume/alarm/resp/NoiseResponse.java b/src/main/java/org/flume/alarm/resp/NoiseResponse.java index 9e27e93..30c9cd8 100644 --- a/src/main/java/org/flume/alarm/resp/NoiseResponse.java +++ b/src/main/java/org/flume/alarm/resp/NoiseResponse.java @@ -9,7 +9,6 @@ import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -92,6 +91,13 @@ freq, devCode, NoiseAlarmEnum.OVER_THRESH.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Noise.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", "管线漏损报警"); + sendUtils.sendEventBySms(device, eventObj); } } /*** diff --git a/src/main/java/org/flume/alarm/domain/Device.java b/src/main/java/org/flume/alarm/domain/Device.java index 8736ea9..9320709 100644 --- a/src/main/java/org/flume/alarm/domain/Device.java +++ b/src/main/java/org/flume/alarm/domain/Device.java @@ -34,6 +34,7 @@ private Set alarmRecords; private Boolean active = true; private Boolean isAlarm = true; + private String place; /** @@ -264,4 +265,13 @@ public void setAlarm(Boolean alarm) { isAlarm = alarm; } + + @Column(name = "PLACE", nullable = false) + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } } diff --git a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java index 3032f2c..30f1c45 100644 --- a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java +++ b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java @@ -8,9 +8,7 @@ import org.flume.alarm.core.util.DateUtils; import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; -import org.flume.alarm.domain.FireHydrant; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -134,6 +132,13 @@ "", devCode, DeviceTypeEnum.FireHydrant.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.FireHydrant.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", FireHydrantAlarmEnum.FireHydrantOpenAlarm.toString() + "报警"); + sendUtils.sendEventBySms(device, eventObj); } } diff --git a/src/main/java/org/flume/alarm/resp/LiquidResponse.java b/src/main/java/org/flume/alarm/resp/LiquidResponse.java index 72b96e8..8a178ff 100644 --- a/src/main/java/org/flume/alarm/resp/LiquidResponse.java +++ b/src/main/java/org/flume/alarm/resp/LiquidResponse.java @@ -10,14 +10,19 @@ import org.flume.alarm.domain.Device; import org.flume.alarm.dto.LiquidDTO; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.*; +import org.flume.alarm.restful.DeviceUtilDTO; +import org.flume.alarm.restful.PublicUtilDTO; +import org.flume.alarm.restful.SendUtils; import org.flume.alarm.util.Configure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.TimerTask; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -92,6 +97,14 @@ level, devCode, DeviceTypeEnum.Liquid.toString()); + + // 短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Liquid.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", LiquidAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "液位值为" + level + "米"); + sendUtils.sendEventBySms(device, eventObj); } } } diff --git a/src/main/java/org/flume/alarm/resp/MethaneResponse.java b/src/main/java/org/flume/alarm/resp/MethaneResponse.java index 9d1caf5..878773a 100644 --- a/src/main/java/org/flume/alarm/resp/MethaneResponse.java +++ b/src/main/java/org/flume/alarm/resp/MethaneResponse.java @@ -6,6 +6,8 @@ import org.flume.alarm.base.AbstractResponse; import org.flume.alarm.base.DeviceTypeEnum; import org.flume.alarm.core.util.DateUtils; +import org.flume.alarm.core.util.StringUtils; +import org.flume.alarm.domain.Device; import org.flume.alarm.manager.*; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; @@ -83,6 +85,14 @@ gas, devCode, DeviceTypeEnum.Methane.toString()); + + // 通过短信发送报警消息 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Methane.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", MethaneAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "浓度值为" + gas + "LEL%"); + sendUtils.sendEventBySms(device, eventObj); } } /*** diff --git a/src/main/java/org/flume/alarm/resp/NoiseResponse.java b/src/main/java/org/flume/alarm/resp/NoiseResponse.java index 9e27e93..30c9cd8 100644 --- a/src/main/java/org/flume/alarm/resp/NoiseResponse.java +++ b/src/main/java/org/flume/alarm/resp/NoiseResponse.java @@ -9,7 +9,6 @@ import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -92,6 +91,13 @@ freq, devCode, NoiseAlarmEnum.OVER_THRESH.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Noise.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", "管线漏损报警"); + sendUtils.sendEventBySms(device, eventObj); } } /*** diff --git a/src/main/java/org/flume/alarm/resp/WellResponse.java b/src/main/java/org/flume/alarm/resp/WellResponse.java index 970ffde..2a54984 100644 --- a/src/main/java/org/flume/alarm/resp/WellResponse.java +++ b/src/main/java/org/flume/alarm/resp/WellResponse.java @@ -13,18 +13,15 @@ import org.flume.alarm.manager.ImeiManager; import org.flume.alarm.manager.WellManager; import org.flume.alarm.mq.RocketMQProducer; -import org.flume.alarm.restful.*; +import org.flume.alarm.restful.PublicUtilDTO; +import org.flume.alarm.restful.SendUtils; import org.flume.alarm.util.Configure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.scheduling.annotation.Async; import java.io.IOException; -import java.util.*; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; +import java.util.Date; /** * Created by lenovo on 2018/1/9. @@ -119,6 +116,13 @@ "", WellAlarmEnum.WellOpenAlarm.toString(), DateUtils.sdf4.format(new Date())); + + // 推送短信消息 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Well.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", WellAlarmEnum.WellOpenAlarm.toString()); + sendUtils.sendEventBySms(device, eventObj); } } else { alarmRecordManager.saveData(devCode, DeviceTypeEnum.Well.toString(), "", diff --git a/src/main/java/org/flume/alarm/domain/Device.java b/src/main/java/org/flume/alarm/domain/Device.java index 8736ea9..9320709 100644 --- a/src/main/java/org/flume/alarm/domain/Device.java +++ b/src/main/java/org/flume/alarm/domain/Device.java @@ -34,6 +34,7 @@ private Set alarmRecords; private Boolean active = true; private Boolean isAlarm = true; + private String place; /** @@ -264,4 +265,13 @@ public void setAlarm(Boolean alarm) { isAlarm = alarm; } + + @Column(name = "PLACE", nullable = false) + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } } diff --git a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java index 3032f2c..30f1c45 100644 --- a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java +++ b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java @@ -8,9 +8,7 @@ import org.flume.alarm.core.util.DateUtils; import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; -import org.flume.alarm.domain.FireHydrant; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -134,6 +132,13 @@ "", devCode, DeviceTypeEnum.FireHydrant.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.FireHydrant.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", FireHydrantAlarmEnum.FireHydrantOpenAlarm.toString() + "报警"); + sendUtils.sendEventBySms(device, eventObj); } } diff --git a/src/main/java/org/flume/alarm/resp/LiquidResponse.java b/src/main/java/org/flume/alarm/resp/LiquidResponse.java index 72b96e8..8a178ff 100644 --- a/src/main/java/org/flume/alarm/resp/LiquidResponse.java +++ b/src/main/java/org/flume/alarm/resp/LiquidResponse.java @@ -10,14 +10,19 @@ import org.flume.alarm.domain.Device; import org.flume.alarm.dto.LiquidDTO; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.*; +import org.flume.alarm.restful.DeviceUtilDTO; +import org.flume.alarm.restful.PublicUtilDTO; +import org.flume.alarm.restful.SendUtils; import org.flume.alarm.util.Configure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.TimerTask; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -92,6 +97,14 @@ level, devCode, DeviceTypeEnum.Liquid.toString()); + + // 短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Liquid.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", LiquidAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "液位值为" + level + "米"); + sendUtils.sendEventBySms(device, eventObj); } } } diff --git a/src/main/java/org/flume/alarm/resp/MethaneResponse.java b/src/main/java/org/flume/alarm/resp/MethaneResponse.java index 9d1caf5..878773a 100644 --- a/src/main/java/org/flume/alarm/resp/MethaneResponse.java +++ b/src/main/java/org/flume/alarm/resp/MethaneResponse.java @@ -6,6 +6,8 @@ import org.flume.alarm.base.AbstractResponse; import org.flume.alarm.base.DeviceTypeEnum; import org.flume.alarm.core.util.DateUtils; +import org.flume.alarm.core.util.StringUtils; +import org.flume.alarm.domain.Device; import org.flume.alarm.manager.*; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; @@ -83,6 +85,14 @@ gas, devCode, DeviceTypeEnum.Methane.toString()); + + // 通过短信发送报警消息 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Methane.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", MethaneAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "浓度值为" + gas + "LEL%"); + sendUtils.sendEventBySms(device, eventObj); } } /*** diff --git a/src/main/java/org/flume/alarm/resp/NoiseResponse.java b/src/main/java/org/flume/alarm/resp/NoiseResponse.java index 9e27e93..30c9cd8 100644 --- a/src/main/java/org/flume/alarm/resp/NoiseResponse.java +++ b/src/main/java/org/flume/alarm/resp/NoiseResponse.java @@ -9,7 +9,6 @@ import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -92,6 +91,13 @@ freq, devCode, NoiseAlarmEnum.OVER_THRESH.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Noise.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", "管线漏损报警"); + sendUtils.sendEventBySms(device, eventObj); } } /*** diff --git a/src/main/java/org/flume/alarm/resp/WellResponse.java b/src/main/java/org/flume/alarm/resp/WellResponse.java index 970ffde..2a54984 100644 --- a/src/main/java/org/flume/alarm/resp/WellResponse.java +++ b/src/main/java/org/flume/alarm/resp/WellResponse.java @@ -13,18 +13,15 @@ import org.flume.alarm.manager.ImeiManager; import org.flume.alarm.manager.WellManager; import org.flume.alarm.mq.RocketMQProducer; -import org.flume.alarm.restful.*; +import org.flume.alarm.restful.PublicUtilDTO; +import org.flume.alarm.restful.SendUtils; import org.flume.alarm.util.Configure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.scheduling.annotation.Async; import java.io.IOException; -import java.util.*; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; +import java.util.Date; /** * Created by lenovo on 2018/1/9. @@ -119,6 +116,13 @@ "", WellAlarmEnum.WellOpenAlarm.toString(), DateUtils.sdf4.format(new Date())); + + // 推送短信消息 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Well.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", WellAlarmEnum.WellOpenAlarm.toString()); + sendUtils.sendEventBySms(device, eventObj); } } else { alarmRecordManager.saveData(devCode, DeviceTypeEnum.Well.toString(), "", diff --git a/src/main/java/org/flume/alarm/restful/HttpClientUtils.java b/src/main/java/org/flume/alarm/restful/HttpClientUtils.java index 5a18269..5932ba3 100644 --- a/src/main/java/org/flume/alarm/restful/HttpClientUtils.java +++ b/src/main/java/org/flume/alarm/restful/HttpClientUtils.java @@ -1,13 +1,13 @@ package org.flume.alarm.restful; +import net.sf.json.JSONObject; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.flume.alarm.util.Configure; -import javax.xml.bind.annotation.XmlType; import java.io.IOException; public class HttpClientUtils { @@ -49,6 +49,31 @@ return null; } + public static String post(String url, String body, JSONObject header) { + HttpClient client = new HttpClient(); + client.setTimeout(30000); + PostMethod method = new PostMethod(url); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); + method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY")); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + public static String postCase(String uri, String body) { diff --git a/src/main/java/org/flume/alarm/domain/Device.java b/src/main/java/org/flume/alarm/domain/Device.java index 8736ea9..9320709 100644 --- a/src/main/java/org/flume/alarm/domain/Device.java +++ b/src/main/java/org/flume/alarm/domain/Device.java @@ -34,6 +34,7 @@ private Set alarmRecords; private Boolean active = true; private Boolean isAlarm = true; + private String place; /** @@ -264,4 +265,13 @@ public void setAlarm(Boolean alarm) { isAlarm = alarm; } + + @Column(name = "PLACE", nullable = false) + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } } diff --git a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java index 3032f2c..30f1c45 100644 --- a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java +++ b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java @@ -8,9 +8,7 @@ import org.flume.alarm.core.util.DateUtils; import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; -import org.flume.alarm.domain.FireHydrant; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -134,6 +132,13 @@ "", devCode, DeviceTypeEnum.FireHydrant.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.FireHydrant.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", FireHydrantAlarmEnum.FireHydrantOpenAlarm.toString() + "报警"); + sendUtils.sendEventBySms(device, eventObj); } } diff --git a/src/main/java/org/flume/alarm/resp/LiquidResponse.java b/src/main/java/org/flume/alarm/resp/LiquidResponse.java index 72b96e8..8a178ff 100644 --- a/src/main/java/org/flume/alarm/resp/LiquidResponse.java +++ b/src/main/java/org/flume/alarm/resp/LiquidResponse.java @@ -10,14 +10,19 @@ import org.flume.alarm.domain.Device; import org.flume.alarm.dto.LiquidDTO; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.*; +import org.flume.alarm.restful.DeviceUtilDTO; +import org.flume.alarm.restful.PublicUtilDTO; +import org.flume.alarm.restful.SendUtils; import org.flume.alarm.util.Configure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.TimerTask; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -92,6 +97,14 @@ level, devCode, DeviceTypeEnum.Liquid.toString()); + + // 短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Liquid.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", LiquidAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "液位值为" + level + "米"); + sendUtils.sendEventBySms(device, eventObj); } } } diff --git a/src/main/java/org/flume/alarm/resp/MethaneResponse.java b/src/main/java/org/flume/alarm/resp/MethaneResponse.java index 9d1caf5..878773a 100644 --- a/src/main/java/org/flume/alarm/resp/MethaneResponse.java +++ b/src/main/java/org/flume/alarm/resp/MethaneResponse.java @@ -6,6 +6,8 @@ import org.flume.alarm.base.AbstractResponse; import org.flume.alarm.base.DeviceTypeEnum; import org.flume.alarm.core.util.DateUtils; +import org.flume.alarm.core.util.StringUtils; +import org.flume.alarm.domain.Device; import org.flume.alarm.manager.*; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; @@ -83,6 +85,14 @@ gas, devCode, DeviceTypeEnum.Methane.toString()); + + // 通过短信发送报警消息 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Methane.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", MethaneAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "浓度值为" + gas + "LEL%"); + sendUtils.sendEventBySms(device, eventObj); } } /*** diff --git a/src/main/java/org/flume/alarm/resp/NoiseResponse.java b/src/main/java/org/flume/alarm/resp/NoiseResponse.java index 9e27e93..30c9cd8 100644 --- a/src/main/java/org/flume/alarm/resp/NoiseResponse.java +++ b/src/main/java/org/flume/alarm/resp/NoiseResponse.java @@ -9,7 +9,6 @@ import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -92,6 +91,13 @@ freq, devCode, NoiseAlarmEnum.OVER_THRESH.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Noise.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", "管线漏损报警"); + sendUtils.sendEventBySms(device, eventObj); } } /*** diff --git a/src/main/java/org/flume/alarm/resp/WellResponse.java b/src/main/java/org/flume/alarm/resp/WellResponse.java index 970ffde..2a54984 100644 --- a/src/main/java/org/flume/alarm/resp/WellResponse.java +++ b/src/main/java/org/flume/alarm/resp/WellResponse.java @@ -13,18 +13,15 @@ import org.flume.alarm.manager.ImeiManager; import org.flume.alarm.manager.WellManager; import org.flume.alarm.mq.RocketMQProducer; -import org.flume.alarm.restful.*; +import org.flume.alarm.restful.PublicUtilDTO; +import org.flume.alarm.restful.SendUtils; import org.flume.alarm.util.Configure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.scheduling.annotation.Async; import java.io.IOException; -import java.util.*; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; +import java.util.Date; /** * Created by lenovo on 2018/1/9. @@ -119,6 +116,13 @@ "", WellAlarmEnum.WellOpenAlarm.toString(), DateUtils.sdf4.format(new Date())); + + // 推送短信消息 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Well.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", WellAlarmEnum.WellOpenAlarm.toString()); + sendUtils.sendEventBySms(device, eventObj); } } else { alarmRecordManager.saveData(devCode, DeviceTypeEnum.Well.toString(), "", diff --git a/src/main/java/org/flume/alarm/restful/HttpClientUtils.java b/src/main/java/org/flume/alarm/restful/HttpClientUtils.java index 5a18269..5932ba3 100644 --- a/src/main/java/org/flume/alarm/restful/HttpClientUtils.java +++ b/src/main/java/org/flume/alarm/restful/HttpClientUtils.java @@ -1,13 +1,13 @@ package org.flume.alarm.restful; +import net.sf.json.JSONObject; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.flume.alarm.util.Configure; -import javax.xml.bind.annotation.XmlType; import java.io.IOException; public class HttpClientUtils { @@ -49,6 +49,31 @@ return null; } + public static String post(String url, String body, JSONObject header) { + HttpClient client = new HttpClient(); + client.setTimeout(30000); + PostMethod method = new PostMethod(url); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); + method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY")); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + public static String postCase(String uri, String body) { diff --git a/src/main/java/org/flume/alarm/restful/SendUtils.java b/src/main/java/org/flume/alarm/restful/SendUtils.java index 4acbeea..c0a4af1 100644 --- a/src/main/java/org/flume/alarm/restful/SendUtils.java +++ b/src/main/java/org/flume/alarm/restful/SendUtils.java @@ -129,11 +129,11 @@ json.put("version", "1.0"); json.put("timestamp", System.currentTimeMillis()); JSONObject eventsJson = new JSONObject(); - List dataJsonList = new ArrayList<>(); + List dataJsonList = new ArrayList(); JSONObject dataJson = new JSONObject(); JSONObject paramsJson = new JSONObject(); - List paramsJsonList = new ArrayList<>(); - List eventsJsonList = new ArrayList<>(); + List paramsJsonList = new ArrayList(); + List eventsJsonList = new ArrayList(); dataJson.put("key", key); dataJson.put("value", value); dataJsonList.add(dataJson); @@ -161,7 +161,7 @@ json.put("version", "1.0"); json.put("timestamp", System.currentTimeMillis()); JSONObject deviceStatusJson = new JSONObject(); - List deviceStatusJsonList = new ArrayList<>(); + List deviceStatusJsonList = new ArrayList(); deviceStatusJson.put("deviceNo", device.getInstallPosition()); //上下线动作(1.在线,2.离线 3.设备故障 4.设备维护 deviceStatusJson.put("status", 1); @@ -170,4 +170,49 @@ rocketMQProducer.sendMsg(json.toString(), "reportDeviceStatus"); } } + + public void sendEventBySms(Device device, JSONObject eventObj) { + if ("true".equals(Configure.getProperty("synchronizeSms.enabled", "false"))) { + String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send"); + String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2f0e62c2-08b0-4d34-b90a-5a04b4c162ee"); + String sim = device.getSimid(); + if (null == sim || StringUtils.isBlank(sim)) { + return; + } + + if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) { + return; + } + + JSONObject header = new JSONObject(); + header.put("X-APP-KEY", smsAppKey); + + StringBuilder params = new StringBuilder(); + params.append("{"); + params.append("\"mobile\":"); + params.append("\"").append(sim).append("\"").append(","); + + String prefix = "【智慧蓉江】"; + String eventTm = DateUtils.sdf4.format(new Date()); + String devName = device.getDevName(); + String place = device.getPlace(); + + StringBuilder content = new StringBuilder(""); + content.append(prefix); + content.append(eventTm).append(","); + content.append("管网监测设备[").append(devName).append("],"); + content.append("发生").append(eventObj.getString("type")).append(","); + if (eventObj.containsKey("value") == true) { + content.append(eventObj.getString("value")).append(","); + } + content.append("详细地址是:").append(place).append(","); + content.append("请关注并及时处理。"); + + params.append("\"content\":"); + params.append("\"").append(content.toString()).append("\""); + params.append("}"); + + String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header); + } + } } diff --git a/src/main/java/org/flume/alarm/domain/Device.java b/src/main/java/org/flume/alarm/domain/Device.java index 8736ea9..9320709 100644 --- a/src/main/java/org/flume/alarm/domain/Device.java +++ b/src/main/java/org/flume/alarm/domain/Device.java @@ -34,6 +34,7 @@ private Set alarmRecords; private Boolean active = true; private Boolean isAlarm = true; + private String place; /** @@ -264,4 +265,13 @@ public void setAlarm(Boolean alarm) { isAlarm = alarm; } + + @Column(name = "PLACE", nullable = false) + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } } diff --git a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java index 3032f2c..30f1c45 100644 --- a/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java +++ b/src/main/java/org/flume/alarm/resp/FireHydrantResponse.java @@ -8,9 +8,7 @@ import org.flume.alarm.core.util.DateUtils; import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; -import org.flume.alarm.domain.FireHydrant; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -134,6 +132,13 @@ "", devCode, DeviceTypeEnum.FireHydrant.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.FireHydrant.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", FireHydrantAlarmEnum.FireHydrantOpenAlarm.toString() + "报警"); + sendUtils.sendEventBySms(device, eventObj); } } diff --git a/src/main/java/org/flume/alarm/resp/LiquidResponse.java b/src/main/java/org/flume/alarm/resp/LiquidResponse.java index 72b96e8..8a178ff 100644 --- a/src/main/java/org/flume/alarm/resp/LiquidResponse.java +++ b/src/main/java/org/flume/alarm/resp/LiquidResponse.java @@ -10,14 +10,19 @@ import org.flume.alarm.domain.Device; import org.flume.alarm.dto.LiquidDTO; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.*; +import org.flume.alarm.restful.DeviceUtilDTO; +import org.flume.alarm.restful.PublicUtilDTO; +import org.flume.alarm.restful.SendUtils; import org.flume.alarm.util.Configure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.TimerTask; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -92,6 +97,14 @@ level, devCode, DeviceTypeEnum.Liquid.toString()); + + // 短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Liquid.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", LiquidAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "液位值为" + level + "米"); + sendUtils.sendEventBySms(device, eventObj); } } } diff --git a/src/main/java/org/flume/alarm/resp/MethaneResponse.java b/src/main/java/org/flume/alarm/resp/MethaneResponse.java index 9d1caf5..878773a 100644 --- a/src/main/java/org/flume/alarm/resp/MethaneResponse.java +++ b/src/main/java/org/flume/alarm/resp/MethaneResponse.java @@ -6,6 +6,8 @@ import org.flume.alarm.base.AbstractResponse; import org.flume.alarm.base.DeviceTypeEnum; import org.flume.alarm.core.util.DateUtils; +import org.flume.alarm.core.util.StringUtils; +import org.flume.alarm.domain.Device; import org.flume.alarm.manager.*; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; @@ -83,6 +85,14 @@ gas, devCode, DeviceTypeEnum.Methane.toString()); + + // 通过短信发送报警消息 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Methane.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", MethaneAlarmEnum.OVER_THRESH.toString() + "报警"); + eventObj.put("value", "浓度值为" + gas + "LEL%"); + sendUtils.sendEventBySms(device, eventObj); } } /*** diff --git a/src/main/java/org/flume/alarm/resp/NoiseResponse.java b/src/main/java/org/flume/alarm/resp/NoiseResponse.java index 9e27e93..30c9cd8 100644 --- a/src/main/java/org/flume/alarm/resp/NoiseResponse.java +++ b/src/main/java/org/flume/alarm/resp/NoiseResponse.java @@ -9,7 +9,6 @@ import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.domain.Device; import org.flume.alarm.manager.*; -import org.flume.alarm.restful.AlarmDataCenterUtilDTO; import org.flume.alarm.restful.DeviceUtilDTO; import org.flume.alarm.restful.PublicUtilDTO; import org.flume.alarm.restful.SendUtils; @@ -92,6 +91,13 @@ freq, devCode, NoiseAlarmEnum.OVER_THRESH.toString()); + + // 推送至短信报警 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Noise.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", "管线漏损报警"); + sendUtils.sendEventBySms(device, eventObj); } } /*** diff --git a/src/main/java/org/flume/alarm/resp/WellResponse.java b/src/main/java/org/flume/alarm/resp/WellResponse.java index 970ffde..2a54984 100644 --- a/src/main/java/org/flume/alarm/resp/WellResponse.java +++ b/src/main/java/org/flume/alarm/resp/WellResponse.java @@ -13,18 +13,15 @@ import org.flume.alarm.manager.ImeiManager; import org.flume.alarm.manager.WellManager; import org.flume.alarm.mq.RocketMQProducer; -import org.flume.alarm.restful.*; +import org.flume.alarm.restful.PublicUtilDTO; +import org.flume.alarm.restful.SendUtils; import org.flume.alarm.util.Configure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.scheduling.annotation.Async; import java.io.IOException; -import java.util.*; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; +import java.util.Date; /** * Created by lenovo on 2018/1/9. @@ -119,6 +116,13 @@ "", WellAlarmEnum.WellOpenAlarm.toString(), DateUtils.sdf4.format(new Date())); + + // 推送短信消息 + Device device = deviceManager.getDeviceByDevCode(devCode, DeviceTypeEnum.Well.toString()); + if (null == device || StringUtils.isBlank(device.getInstallPosition())) return; + JSONObject eventObj = new JSONObject(); + eventObj.put("type", WellAlarmEnum.WellOpenAlarm.toString()); + sendUtils.sendEventBySms(device, eventObj); } } else { alarmRecordManager.saveData(devCode, DeviceTypeEnum.Well.toString(), "", diff --git a/src/main/java/org/flume/alarm/restful/HttpClientUtils.java b/src/main/java/org/flume/alarm/restful/HttpClientUtils.java index 5a18269..5932ba3 100644 --- a/src/main/java/org/flume/alarm/restful/HttpClientUtils.java +++ b/src/main/java/org/flume/alarm/restful/HttpClientUtils.java @@ -1,13 +1,13 @@ package org.flume.alarm.restful; +import net.sf.json.JSONObject; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.flume.alarm.util.Configure; -import javax.xml.bind.annotation.XmlType; import java.io.IOException; public class HttpClientUtils { @@ -49,6 +49,31 @@ return null; } + public static String post(String url, String body, JSONObject header) { + HttpClient client = new HttpClient(); + client.setTimeout(30000); + PostMethod method = new PostMethod(url); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); + method.addRequestHeader("X-APP-KEY", header.getString("X-APP-KEY")); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + public static String postCase(String uri, String body) { diff --git a/src/main/java/org/flume/alarm/restful/SendUtils.java b/src/main/java/org/flume/alarm/restful/SendUtils.java index 4acbeea..c0a4af1 100644 --- a/src/main/java/org/flume/alarm/restful/SendUtils.java +++ b/src/main/java/org/flume/alarm/restful/SendUtils.java @@ -129,11 +129,11 @@ json.put("version", "1.0"); json.put("timestamp", System.currentTimeMillis()); JSONObject eventsJson = new JSONObject(); - List dataJsonList = new ArrayList<>(); + List dataJsonList = new ArrayList(); JSONObject dataJson = new JSONObject(); JSONObject paramsJson = new JSONObject(); - List paramsJsonList = new ArrayList<>(); - List eventsJsonList = new ArrayList<>(); + List paramsJsonList = new ArrayList(); + List eventsJsonList = new ArrayList(); dataJson.put("key", key); dataJson.put("value", value); dataJsonList.add(dataJson); @@ -161,7 +161,7 @@ json.put("version", "1.0"); json.put("timestamp", System.currentTimeMillis()); JSONObject deviceStatusJson = new JSONObject(); - List deviceStatusJsonList = new ArrayList<>(); + List deviceStatusJsonList = new ArrayList(); deviceStatusJson.put("deviceNo", device.getInstallPosition()); //上下线动作(1.在线,2.离线 3.设备故障 4.设备维护 deviceStatusJson.put("status", 1); @@ -170,4 +170,49 @@ rocketMQProducer.sendMsg(json.toString(), "reportDeviceStatus"); } } + + public void sendEventBySms(Device device, JSONObject eventObj) { + if ("true".equals(Configure.getProperty("synchronizeSms.enabled", "false"))) { + String smsSenderUrl = Configure.getProperty("smsSenderURL", "http://general.bushub.rj.prd/sms/user/send"); + String smsAppKey = Configure.getProperty("X-APP-KEY-SMS", "2f0e62c2-08b0-4d34-b90a-5a04b4c162ee"); + String sim = device.getSimid(); + if (null == sim || StringUtils.isBlank(sim)) { + return; + } + + if (null == smsAppKey || StringUtils.isBlank(smsAppKey)) { + return; + } + + JSONObject header = new JSONObject(); + header.put("X-APP-KEY", smsAppKey); + + StringBuilder params = new StringBuilder(); + params.append("{"); + params.append("\"mobile\":"); + params.append("\"").append(sim).append("\"").append(","); + + String prefix = "【智慧蓉江】"; + String eventTm = DateUtils.sdf4.format(new Date()); + String devName = device.getDevName(); + String place = device.getPlace(); + + StringBuilder content = new StringBuilder(""); + content.append(prefix); + content.append(eventTm).append(","); + content.append("管网监测设备[").append(devName).append("],"); + content.append("发生").append(eventObj.getString("type")).append(","); + if (eventObj.containsKey("value") == true) { + content.append(eventObj.getString("value")).append(","); + } + content.append("详细地址是:").append(place).append(","); + content.append("请关注并及时处理。"); + + params.append("\"content\":"); + params.append("\"").append(content.toString()).append("\""); + params.append("}"); + + String resp = HttpClientUtils.post(smsSenderUrl, params.toString(), header); + } + } } diff --git a/src/main/resources/springSensor/application.properties b/src/main/resources/springSensor/application.properties index 3a30547..a008ba9 100644 --- a/src/main/resources/springSensor/application.properties +++ b/src/main/resources/springSensor/application.properties @@ -198,6 +198,15 @@ sendCenterURL=http://city.bushub.rj.prd/eventCenter/city/api/report applyCodeURL=http:/city.bushub.rj.prd/codeCenter/api/open/apply/code X-APP-KEY=2d3a8e35-0533-42a0-97a2-63f82a3216f9 + +# ============================================================================ +# 推送告警至业务中台短信服务 +# ============================================================================ +synchronizeSms.enabled=true +smsSenderURL=http://general.bushub.rj.prd/sms/user/send +X-APP-KEY-SMS=2f0e62c2-08b0-4d34-b90a-5a04b4c162ee +sms-prefix=【智慧蓉江】 + # ============================================================================ # 设置报警次数 # ============================================================================