|
|
@@ -42,6 +42,8 @@ public class MessageHandler extends ChannelInboundHandlerAdapter {
|
|
|
private SmsUtil smsUtil;
|
|
|
@Autowired
|
|
|
private DevicePhoneFetchUtil devicePhoneFetchUtil;
|
|
|
+ @Autowired
|
|
|
+ private AlarmUtil alarmUtil;
|
|
|
|
|
|
@Autowired
|
|
|
public MessageHandler(GasMonitorDataService firefightingPressureService) {
|
|
|
@@ -177,6 +179,8 @@ public class MessageHandler extends ChannelInboundHandlerAdapter {
|
|
|
|
|
|
//用MAC地址作为设备的设备编号
|
|
|
String deviceId = resultData.getMacAddress();
|
|
|
+ String deviceName = "可燃气体设备";
|
|
|
+ String deviceType = "flammable-gas";
|
|
|
|
|
|
//获取温度阈值
|
|
|
String deviceWarningCode = GasDeviceCodeEnum.FIREFIGHTING_DEVICE.getCode();
|
|
|
@@ -200,12 +204,18 @@ public class MessageHandler extends ChannelInboundHandlerAdapter {
|
|
|
boolean temperatureIsOverThreshold = temperature > temWarningValue;
|
|
|
if(temperatureIsOverThreshold){
|
|
|
sendMessage(deviceId,temWarningMsg,resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ temWarningMsg, temWarningCode, BigDecimal.valueOf(temWarningValue),
|
|
|
+ BigDecimal.valueOf(temperature), "可燃气体温度报警");
|
|
|
}
|
|
|
//判断湿度
|
|
|
float humidity = resultData.getHumidity();
|
|
|
boolean humidityIsOverThreshold=humidity>humWarningValue;
|
|
|
if(humidityIsOverThreshold){
|
|
|
sendMessage(deviceId,humWarningMsg,resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ humWarningMsg, humWarningCode, BigDecimal.valueOf(humWarningValue),
|
|
|
+ BigDecimal.valueOf(humidity), "可燃气体湿度报警");
|
|
|
}
|
|
|
//判断气体浓度
|
|
|
BigDecimal gasConcentration = resultData.getGasConcentration();
|
|
|
@@ -213,56 +223,107 @@ public class MessageHandler extends ChannelInboundHandlerAdapter {
|
|
|
boolean concentrationIsOverThreshold=actualGasConcentration>gasWarningValue;
|
|
|
if(concentrationIsOverThreshold){
|
|
|
sendMessage(deviceId,gasWarningMsg,resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ gasWarningMsg, gasWarningCode, BigDecimal.valueOf(gasWarningValue),
|
|
|
+ gasConcentration, "可燃气体浓度报警");
|
|
|
}
|
|
|
//获取到的数据逐一进行判断
|
|
|
Map<String, Boolean> alarmBits = resultData.parseAlarmBits();
|
|
|
if(alarmBits.get("unknownAlarm")){
|
|
|
sendMessage(deviceId,"未知报警",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "未知报警", "WARN-UNKNOWN", null,
|
|
|
+ null, "可燃气体未知报警");
|
|
|
}
|
|
|
if(alarmBits.get("highAlarm")){
|
|
|
sendMessage(deviceId,"高报警",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "高报警", "WARN-HIGH", null,
|
|
|
+ null, "可燃气体高报警");
|
|
|
}
|
|
|
if(alarmBits.get("overRange")){
|
|
|
sendMessage(deviceId,"超量程",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "超量程", "WARN-OVER-RANGE", null,
|
|
|
+ null, "可燃气体超量程报警");
|
|
|
}
|
|
|
if(alarmBits.get("calibrationCycle")){
|
|
|
sendMessage(deviceId,"标定周期",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "标定周期", "WARN-CALIBRATION-CYCLE", null,
|
|
|
+ null, "可燃气体标定周期报警");
|
|
|
}
|
|
|
if(alarmBits.get("overLife")){
|
|
|
sendMessage(deviceId,"超寿命",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "超寿命", "WARN-OVER-LIFE", null,
|
|
|
+ null, "可燃气体超寿命报警");
|
|
|
}
|
|
|
if(alarmBits.get("fallAlarm")){
|
|
|
sendMessage(deviceId,"跌倒报警",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "跌倒报警", "WARN-FALL", null,
|
|
|
+ null, "可燃气体跌倒报警");
|
|
|
}
|
|
|
if(alarmBits.get("undervoltage")){
|
|
|
sendMessage(deviceId,"欠压报警",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "欠压报警", "WARN-UNDERVOLTAGE", null,
|
|
|
+ null, "可燃气体欠压报警");
|
|
|
}
|
|
|
if(alarmBits.get("rangeAlarm")){
|
|
|
sendMessage(deviceId,"区间报警",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "区间报警", "WARN-RANGE", null,
|
|
|
+ null, "可燃气体区间报警");
|
|
|
}
|
|
|
if(alarmBits.get("keyAlarm")){
|
|
|
sendMessage(deviceId,"按键报警",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "按键报警", "WARN-KEY", null,
|
|
|
+ null, "可燃气体按键报警");
|
|
|
}
|
|
|
if(alarmBits.get("vibrationAlarm")){
|
|
|
sendMessage(deviceId,"震动报警",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "震动报警", "WARN-VIBRATION", null,
|
|
|
+ null, "可燃气体震动报警");
|
|
|
}
|
|
|
if(alarmBits.get("waterLevelAlarm")){
|
|
|
sendMessage(deviceId,"水位报警",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "水位报警", "WARN-WATER-LEVEL", null,
|
|
|
+ null, "可燃气体水位报警");
|
|
|
}
|
|
|
if(alarmBits.get("powerOffAlarm")){
|
|
|
sendMessage(deviceId,"断电报警",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "断电报警", "WARN-POWER-OFF", null,
|
|
|
+ null, "可燃气体断电报警");
|
|
|
}
|
|
|
if(alarmBits.get("sensorFault")){
|
|
|
sendMessage(deviceId,"传感器故障",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "传感器故障", "WARN-SENSOR-FAULT", null,
|
|
|
+ null, "可燃气体传感器故障");
|
|
|
}
|
|
|
if(alarmBits.get("overHumidity")){
|
|
|
sendMessage(deviceId,"超湿报警",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "超湿报警", "WARN-OVER-HUMIDITY", null,
|
|
|
+ null, "可燃气体超湿报警");
|
|
|
}
|
|
|
if(alarmBits.get("overTemperature")){
|
|
|
sendMessage(deviceId,"超温报警",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "超温报警", "WARN-OVER-TEMPERATURE", null,
|
|
|
+ null, "可燃气体超温报警");
|
|
|
}
|
|
|
if(alarmBits.get("systemFault")){
|
|
|
sendMessage(deviceId,"系统故障",resultData.getLongitude(),resultData.getLatitude());
|
|
|
+ alarmUtil.saveAlarm(deviceName, deviceId, deviceType,
|
|
|
+ "系统故障", "WARN-SYSTEM-FAULT", null,
|
|
|
+ null, "可燃气体系统故障");
|
|
|
}
|
|
|
}
|
|
|
public Double checkTemAndHum(String deviceWarningCode,String warningCode){
|