diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index d4aabb9..d2c8395 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -101,6 +102,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, "水质超限告警"); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index d4aabb9..d2c8395 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -101,6 +102,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, "水质超限告警"); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index df94ec7..5531f86 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -16,6 +16,7 @@ import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -125,10 +126,15 @@ //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); if (!StringUtils.isEmpty(busWell.getTel())) { - final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为"+gas; + final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为" + gas; //4.toDO:向济南港华推送消息 SmsPushUtil.excutePushMsg(busWell.getTel(), pushMsgContent); } + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Methane.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index d4aabb9..d2c8395 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -101,6 +102,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, "水质超限告警"); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index df94ec7..5531f86 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -16,6 +16,7 @@ import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -125,10 +126,15 @@ //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); if (!StringUtils.isEmpty(busWell.getTel())) { - final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为"+gas; + final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为" + gas; //4.toDO:向济南港华推送消息 SmsPushUtil.excutePushMsg(busWell.getTel(), pushMsgContent); } + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Methane.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 448457b..ad187bc 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -130,6 +131,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.NoiseDig.name(), ""); + } } } else {//未超限 diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index d4aabb9..d2c8395 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -101,6 +102,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, "水质超限告警"); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index df94ec7..5531f86 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -16,6 +16,7 @@ import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -125,10 +126,15 @@ //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); if (!StringUtils.isEmpty(busWell.getTel())) { - final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为"+gas; + final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为" + gas; //4.toDO:向济南港华推送消息 SmsPushUtil.excutePushMsg(busWell.getTel(), pushMsgContent); } + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Methane.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 448457b..ad187bc 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -130,6 +131,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.NoiseDig.name(), ""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/NoiseManager.java b/src/main/java/org/well/well/manager/NoiseManager.java index 778c934..c235598 100644 --- a/src/main/java/org/well/well/manager/NoiseManager.java +++ b/src/main/java/org/well/well/manager/NoiseManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -123,7 +124,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); - + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index d4aabb9..d2c8395 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -101,6 +102,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, "水质超限告警"); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index df94ec7..5531f86 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -16,6 +16,7 @@ import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -125,10 +126,15 @@ //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); if (!StringUtils.isEmpty(busWell.getTel())) { - final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为"+gas; + final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为" + gas; //4.toDO:向济南港华推送消息 SmsPushUtil.excutePushMsg(busWell.getTel(), pushMsgContent); } + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Methane.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 448457b..ad187bc 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -130,6 +131,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.NoiseDig.name(), ""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/NoiseManager.java b/src/main/java/org/well/well/manager/NoiseManager.java index 778c934..c235598 100644 --- a/src/main/java/org/well/well/manager/NoiseManager.java +++ b/src/main/java/org/well/well/manager/NoiseManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -123,7 +124,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); - + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index c7ec546..50cdb32 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -159,6 +160,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, TempHumiAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index d4aabb9..d2c8395 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -101,6 +102,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, "水质超限告警"); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index df94ec7..5531f86 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -16,6 +16,7 @@ import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -125,10 +126,15 @@ //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); if (!StringUtils.isEmpty(busWell.getTel())) { - final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为"+gas; + final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为" + gas; //4.toDO:向济南港华推送消息 SmsPushUtil.excutePushMsg(busWell.getTel(), pushMsgContent); } + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Methane.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 448457b..ad187bc 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -130,6 +131,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.NoiseDig.name(), ""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/NoiseManager.java b/src/main/java/org/well/well/manager/NoiseManager.java index 778c934..c235598 100644 --- a/src/main/java/org/well/well/manager/NoiseManager.java +++ b/src/main/java/org/well/well/manager/NoiseManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -123,7 +124,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); - + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index c7ec546..50cdb32 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -159,6 +160,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, TempHumiAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TubeManager.java b/src/main/java/org/well/well/manager/TubeManager.java index cb47fea..3b5c61d 100644 --- a/src/main/java/org/well/well/manager/TubeManager.java +++ b/src/main/java/org/well/well/manager/TubeManager.java @@ -9,11 +9,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Tube; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -121,6 +123,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(),gas,busWell.getPosition(), + alarmContent, DeviceTypeEnum.Tube.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index d4aabb9..d2c8395 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -101,6 +102,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, "水质超限告警"); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index df94ec7..5531f86 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -16,6 +16,7 @@ import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -125,10 +126,15 @@ //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); if (!StringUtils.isEmpty(busWell.getTel())) { - final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为"+gas; + final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为" + gas; //4.toDO:向济南港华推送消息 SmsPushUtil.excutePushMsg(busWell.getTel(), pushMsgContent); } + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Methane.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 448457b..ad187bc 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -130,6 +131,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.NoiseDig.name(), ""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/NoiseManager.java b/src/main/java/org/well/well/manager/NoiseManager.java index 778c934..c235598 100644 --- a/src/main/java/org/well/well/manager/NoiseManager.java +++ b/src/main/java/org/well/well/manager/NoiseManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -123,7 +124,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); - + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index c7ec546..50cdb32 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -159,6 +160,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, TempHumiAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TubeManager.java b/src/main/java/org/well/well/manager/TubeManager.java index cb47fea..3b5c61d 100644 --- a/src/main/java/org/well/well/manager/TubeManager.java +++ b/src/main/java/org/well/well/manager/TubeManager.java @@ -9,11 +9,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Tube; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -121,6 +123,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(),gas,busWell.getPosition(), + alarmContent, DeviceTypeEnum.Tube.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index e0bda7f..4e4b394 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -157,10 +158,10 @@ 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(); - CO=String.format("%.2f", Double.valueOf(CO)); - O2=String.format("%.2f", Double.valueOf(O2)); - H2S=String.format("%.2f", Double.valueOf(H2S)); - CH4=String.format("%.2f", Double.valueOf(CH4)); + CO = String.format("%.2f", Double.valueOf(CO)); + O2 = String.format("%.2f", Double.valueOf(O2)); + H2S = String.format("%.2f", Double.valueOf(H2S)); + CH4 = String.format("%.2f", Double.valueOf(CH4)); String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); //1.清离线 @@ -174,7 +175,7 @@ if (i < jsonArray.size() - 1) continue; //获取告警等级 Map alarmMap = getAlarmContent(busWell, devCode, CO, O2, H2S, CH4); - if (alarmMap.size()>0) { + if (alarmMap.size() > 0) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); String alarmContent = alarmMap.get("alarmContent").toString(); Integer alarmLevel = Integer.valueOf(alarmMap.get("alarmLevel").toString()); @@ -193,19 +194,24 @@ if (device == null) return;//未注册设备舍弃 //1.生成新的工单 Long jobId = SnowFlakeUtil.getId(); - alarmJobManager.saveData(jobId,devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(),"1"); + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); //2.写入新的告警 alarmRecordManager.saveData(jobId, "1", alarmLevel, WasteGasAlarmEnum.OVER_THRESH.getName(), alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, busWell!=null?busWell.getWellCode():"", upTime, + devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent.substring(0, alarmContent.length() - 1)); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, WasteGasAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + WasteGasAlarmEnum.OVER_THRESH.getName(), DeviceTypeEnum.WasteGas.name(), "%LEL"); + } } } else {//未超限 //1.清除之前的报警 diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index d4aabb9..d2c8395 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -101,6 +102,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, "水质超限告警"); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index df94ec7..5531f86 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -16,6 +16,7 @@ import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -125,10 +126,15 @@ //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); if (!StringUtils.isEmpty(busWell.getTel())) { - final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为"+gas; + final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为" + gas; //4.toDO:向济南港华推送消息 SmsPushUtil.excutePushMsg(busWell.getTel(), pushMsgContent); } + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Methane.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 448457b..ad187bc 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -130,6 +131,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.NoiseDig.name(), ""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/NoiseManager.java b/src/main/java/org/well/well/manager/NoiseManager.java index 778c934..c235598 100644 --- a/src/main/java/org/well/well/manager/NoiseManager.java +++ b/src/main/java/org/well/well/manager/NoiseManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -123,7 +124,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); - + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index c7ec546..50cdb32 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -159,6 +160,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, TempHumiAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TubeManager.java b/src/main/java/org/well/well/manager/TubeManager.java index cb47fea..3b5c61d 100644 --- a/src/main/java/org/well/well/manager/TubeManager.java +++ b/src/main/java/org/well/well/manager/TubeManager.java @@ -9,11 +9,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Tube; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -121,6 +123,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(),gas,busWell.getPosition(), + alarmContent, DeviceTypeEnum.Tube.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index e0bda7f..4e4b394 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -157,10 +158,10 @@ 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(); - CO=String.format("%.2f", Double.valueOf(CO)); - O2=String.format("%.2f", Double.valueOf(O2)); - H2S=String.format("%.2f", Double.valueOf(H2S)); - CH4=String.format("%.2f", Double.valueOf(CH4)); + CO = String.format("%.2f", Double.valueOf(CO)); + O2 = String.format("%.2f", Double.valueOf(O2)); + H2S = String.format("%.2f", Double.valueOf(H2S)); + CH4 = String.format("%.2f", Double.valueOf(CH4)); String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); //1.清离线 @@ -174,7 +175,7 @@ if (i < jsonArray.size() - 1) continue; //获取告警等级 Map alarmMap = getAlarmContent(busWell, devCode, CO, O2, H2S, CH4); - if (alarmMap.size()>0) { + if (alarmMap.size() > 0) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); String alarmContent = alarmMap.get("alarmContent").toString(); Integer alarmLevel = Integer.valueOf(alarmMap.get("alarmLevel").toString()); @@ -193,19 +194,24 @@ if (device == null) return;//未注册设备舍弃 //1.生成新的工单 Long jobId = SnowFlakeUtil.getId(); - alarmJobManager.saveData(jobId,devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(),"1"); + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); //2.写入新的告警 alarmRecordManager.saveData(jobId, "1", alarmLevel, WasteGasAlarmEnum.OVER_THRESH.getName(), alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, busWell!=null?busWell.getWellCode():"", upTime, + devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent.substring(0, alarmContent.length() - 1)); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, WasteGasAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + WasteGasAlarmEnum.OVER_THRESH.getName(), DeviceTypeEnum.WasteGas.name(), "%LEL"); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 815dc09..f2ef063 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -6,11 +6,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; 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.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -115,6 +118,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "井盖开盖报警", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId,WellAlarmEnum.WellOpenAlarm.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(),"", busWell.getPosition(), + WellAlarmEnum.WellOpenAlarm.name(), DeviceTypeEnum.Well.name(), ""); + } } } } diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index d4aabb9..d2c8395 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -101,6 +102,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, "水质超限告警"); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index df94ec7..5531f86 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -16,6 +16,7 @@ import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -125,10 +126,15 @@ //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); if (!StringUtils.isEmpty(busWell.getTel())) { - final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为"+gas; + final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为" + gas; //4.toDO:向济南港华推送消息 SmsPushUtil.excutePushMsg(busWell.getTel(), pushMsgContent); } + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Methane.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 448457b..ad187bc 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -130,6 +131,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.NoiseDig.name(), ""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/NoiseManager.java b/src/main/java/org/well/well/manager/NoiseManager.java index 778c934..c235598 100644 --- a/src/main/java/org/well/well/manager/NoiseManager.java +++ b/src/main/java/org/well/well/manager/NoiseManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -123,7 +124,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); - + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index c7ec546..50cdb32 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -159,6 +160,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, TempHumiAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TubeManager.java b/src/main/java/org/well/well/manager/TubeManager.java index cb47fea..3b5c61d 100644 --- a/src/main/java/org/well/well/manager/TubeManager.java +++ b/src/main/java/org/well/well/manager/TubeManager.java @@ -9,11 +9,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Tube; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -121,6 +123,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(),gas,busWell.getPosition(), + alarmContent, DeviceTypeEnum.Tube.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index e0bda7f..4e4b394 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -157,10 +158,10 @@ 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(); - CO=String.format("%.2f", Double.valueOf(CO)); - O2=String.format("%.2f", Double.valueOf(O2)); - H2S=String.format("%.2f", Double.valueOf(H2S)); - CH4=String.format("%.2f", Double.valueOf(CH4)); + CO = String.format("%.2f", Double.valueOf(CO)); + O2 = String.format("%.2f", Double.valueOf(O2)); + H2S = String.format("%.2f", Double.valueOf(H2S)); + CH4 = String.format("%.2f", Double.valueOf(CH4)); String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); //1.清离线 @@ -174,7 +175,7 @@ if (i < jsonArray.size() - 1) continue; //获取告警等级 Map alarmMap = getAlarmContent(busWell, devCode, CO, O2, H2S, CH4); - if (alarmMap.size()>0) { + if (alarmMap.size() > 0) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); String alarmContent = alarmMap.get("alarmContent").toString(); Integer alarmLevel = Integer.valueOf(alarmMap.get("alarmLevel").toString()); @@ -193,19 +194,24 @@ if (device == null) return;//未注册设备舍弃 //1.生成新的工单 Long jobId = SnowFlakeUtil.getId(); - alarmJobManager.saveData(jobId,devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(),"1"); + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); //2.写入新的告警 alarmRecordManager.saveData(jobId, "1", alarmLevel, WasteGasAlarmEnum.OVER_THRESH.getName(), alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, busWell!=null?busWell.getWellCode():"", upTime, + devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent.substring(0, alarmContent.length() - 1)); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, WasteGasAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + WasteGasAlarmEnum.OVER_THRESH.getName(), DeviceTypeEnum.WasteGas.name(), "%LEL"); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 815dc09..f2ef063 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -6,11 +6,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; 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.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -115,6 +118,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "井盖开盖报警", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId,WellAlarmEnum.WellOpenAlarm.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(),"", busWell.getPosition(), + WellAlarmEnum.WellOpenAlarm.name(), DeviceTypeEnum.Well.name(), ""); + } } } } diff --git a/src/main/java/org/well/well/util/AlarmPushProvider.java b/src/main/java/org/well/well/util/AlarmPushProvider.java new file mode 100644 index 0000000..f268cad --- /dev/null +++ b/src/main/java/org/well/well/util/AlarmPushProvider.java @@ -0,0 +1,52 @@ +package org.well.well.util; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class AlarmPushProvider { + + private static final Logger log = LoggerFactory.getLogger(SendBatchSmsUtil.class.getName()); + + public static void alarmPushBuilder(String devcode, String tel, String value, String position, + String alarmContent, String deviceType, String units) { +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// try { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了浓度超限,浓度值为" + value; +// ThreadUtil.excuteMsg(null, msg, ""); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { + JSONArray msglist = new JSONArray(); + JSONObject msgMap = new JSONObject(); + msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + msgMap.put("devcode", devcode+"("+deviceType+")"); + msgMap.put("value", value+units); + msgMap.put("content", alarmContent); + String phoneJson = ""; + List aliSignNameList = new ArrayList<>(); + String aliSignName = Configure.getProperty("aliSignNameJson", ""); + String[] phones = tel.split(","); + List phoneList = new ArrayList<>(); + for (String phone : phones) { + msglist.add(msgMap); + phoneList.add(phone); + aliSignNameList.add(aliSignName); + } + phoneJson = JSONObject.toJSONString(phoneList); + SendBatchSmsUtil.sendMsg(phoneJson, msglist.toJSONString(), JSONObject.toJSONString(aliSignNameList)); +// } +// } + } + +} diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index d4aabb9..d2c8395 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -101,6 +102,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, "水质超限告警"); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index df94ec7..5531f86 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -16,6 +16,7 @@ import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -125,10 +126,15 @@ //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); if (!StringUtils.isEmpty(busWell.getTel())) { - final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为"+gas; + final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为" + gas; //4.toDO:向济南港华推送消息 SmsPushUtil.excutePushMsg(busWell.getTel(), pushMsgContent); } + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Methane.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 448457b..ad187bc 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -130,6 +131,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.NoiseDig.name(), ""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/NoiseManager.java b/src/main/java/org/well/well/manager/NoiseManager.java index 778c934..c235598 100644 --- a/src/main/java/org/well/well/manager/NoiseManager.java +++ b/src/main/java/org/well/well/manager/NoiseManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -123,7 +124,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); - + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index c7ec546..50cdb32 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -159,6 +160,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, TempHumiAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TubeManager.java b/src/main/java/org/well/well/manager/TubeManager.java index cb47fea..3b5c61d 100644 --- a/src/main/java/org/well/well/manager/TubeManager.java +++ b/src/main/java/org/well/well/manager/TubeManager.java @@ -9,11 +9,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Tube; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -121,6 +123,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(),gas,busWell.getPosition(), + alarmContent, DeviceTypeEnum.Tube.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index e0bda7f..4e4b394 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -157,10 +158,10 @@ 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(); - CO=String.format("%.2f", Double.valueOf(CO)); - O2=String.format("%.2f", Double.valueOf(O2)); - H2S=String.format("%.2f", Double.valueOf(H2S)); - CH4=String.format("%.2f", Double.valueOf(CH4)); + CO = String.format("%.2f", Double.valueOf(CO)); + O2 = String.format("%.2f", Double.valueOf(O2)); + H2S = String.format("%.2f", Double.valueOf(H2S)); + CH4 = String.format("%.2f", Double.valueOf(CH4)); String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); //1.清离线 @@ -174,7 +175,7 @@ if (i < jsonArray.size() - 1) continue; //获取告警等级 Map alarmMap = getAlarmContent(busWell, devCode, CO, O2, H2S, CH4); - if (alarmMap.size()>0) { + if (alarmMap.size() > 0) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); String alarmContent = alarmMap.get("alarmContent").toString(); Integer alarmLevel = Integer.valueOf(alarmMap.get("alarmLevel").toString()); @@ -193,19 +194,24 @@ if (device == null) return;//未注册设备舍弃 //1.生成新的工单 Long jobId = SnowFlakeUtil.getId(); - alarmJobManager.saveData(jobId,devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(),"1"); + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); //2.写入新的告警 alarmRecordManager.saveData(jobId, "1", alarmLevel, WasteGasAlarmEnum.OVER_THRESH.getName(), alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, busWell!=null?busWell.getWellCode():"", upTime, + devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent.substring(0, alarmContent.length() - 1)); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, WasteGasAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + WasteGasAlarmEnum.OVER_THRESH.getName(), DeviceTypeEnum.WasteGas.name(), "%LEL"); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 815dc09..f2ef063 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -6,11 +6,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; 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.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -115,6 +118,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "井盖开盖报警", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId,WellAlarmEnum.WellOpenAlarm.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(),"", busWell.getPosition(), + WellAlarmEnum.WellOpenAlarm.name(), DeviceTypeEnum.Well.name(), ""); + } } } } diff --git a/src/main/java/org/well/well/util/AlarmPushProvider.java b/src/main/java/org/well/well/util/AlarmPushProvider.java new file mode 100644 index 0000000..f268cad --- /dev/null +++ b/src/main/java/org/well/well/util/AlarmPushProvider.java @@ -0,0 +1,52 @@ +package org.well.well.util; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class AlarmPushProvider { + + private static final Logger log = LoggerFactory.getLogger(SendBatchSmsUtil.class.getName()); + + public static void alarmPushBuilder(String devcode, String tel, String value, String position, + String alarmContent, String deviceType, String units) { +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// try { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了浓度超限,浓度值为" + value; +// ThreadUtil.excuteMsg(null, msg, ""); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { + JSONArray msglist = new JSONArray(); + JSONObject msgMap = new JSONObject(); + msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + msgMap.put("devcode", devcode+"("+deviceType+")"); + msgMap.put("value", value+units); + msgMap.put("content", alarmContent); + String phoneJson = ""; + List aliSignNameList = new ArrayList<>(); + String aliSignName = Configure.getProperty("aliSignNameJson", ""); + String[] phones = tel.split(","); + List phoneList = new ArrayList<>(); + for (String phone : phones) { + msglist.add(msgMap); + phoneList.add(phone); + aliSignNameList.add(aliSignName); + } + phoneJson = JSONObject.toJSONString(phoneList); + SendBatchSmsUtil.sendMsg(phoneJson, msglist.toJSONString(), JSONObject.toJSONString(aliSignNameList)); +// } +// } + } + +} diff --git a/src/main/java/org/well/well/util/SendBatchSmsUtil.java b/src/main/java/org/well/well/util/SendBatchSmsUtil.java new file mode 100644 index 0000000..05c969d --- /dev/null +++ b/src/main/java/org/well/well/util/SendBatchSmsUtil.java @@ -0,0 +1,116 @@ +package org.well.well.util; +// This file is auto-generated, don't edit it. Thanks. + +import com.alibaba.fastjson.JSONObject; +import com.aliyun.auth.credentials.Credential; +import com.aliyun.auth.credentials.provider.StaticCredentialProvider; +import com.aliyun.sdk.service.dysmsapi20170525.AsyncClient; +import com.aliyun.sdk.service.dysmsapi20170525.models.SendBatchSmsRequest; +import com.aliyun.sdk.service.dysmsapi20170525.models.SendBatchSmsResponse; +import com.google.gson.Gson; +import darabonba.core.client.ClientOverrideConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.time.Duration; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +public class SendBatchSmsUtil { + + private static final Logger log = LoggerFactory.getLogger(SendBatchSmsUtil.class.getName()); + + + public static void sendMsg(String phoneJson, String msgJson,String aliSignNameJson) { + String aliKey = Configure.getProperty("aliKey", ""); + String aliSecret = Configure.getProperty("aliSecret", ""); + String aliUrl = Configure.getProperty("aliUrl", ""); + + String aliTemplateCode = Configure.getProperty("aliTemplateCode", ""); + StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() + .accessKeyId(aliKey) + .accessKeySecret(aliSecret) + .build()); + + AsyncClient client = AsyncClient.builder() + .region("cn-shanghai") // Region ID + .credentialsProvider(provider) + .overrideConfiguration( + ClientOverrideConfiguration.create() + .setEndpointOverride(aliUrl) + .setConnectTimeout(Duration.ofSeconds(30)) + ) + .build(); + List> msgList = new ArrayList<>(); +// Map msgMap = new HashMap<>(); +// msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", "123456"); +// msgMap.put("value", "24Vol"); +// msgMap.put("content", "浓度超限"); +// msgList.add(msgMap); +// Map msgMapCoye=(Map)((HashMap) msgMap).clone(); +// msgList.add(msgMapCoye); +// SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() +// .phoneNumberJson(phoneJson) +// .signNameJson(aliSignNameJson) +// .templateCode(aliTemplateCode) +// .templateParamJson(msgJson) +// .build(); + SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() + .phoneNumberJson(phoneJson) + .signNameJson(aliSignNameJson) + .templateCode(aliTemplateCode) + .templateParamJson(msgJson) + .build(); + System.out.println(JSONObject.toJSONString(msgList)); + CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); + try { + SendBatchSmsResponse resp = response.get(); + System.out.println(new Gson().toJson(resp)); + client.close(); + } catch (Exception ex) { + log.error("发送消息出现异常,手机号内容为{},信息内容为{}", phoneJson, msgJson, ex.getMessage()); + } + } + + +// public static void main(String[] args) throws Exception { +// StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() +// .accessKeyId("LTAI5tDFNucQF2Bdy4fHgzrN") +// .accessKeySecret("hZ22QQPxQue1G0R8Ty2bo6GimrLdoB") +// .build()); +// +// AsyncClient client = AsyncClient.builder() +// .region("cn-shanghai") // Region ID +// .credentialsProvider(provider) +// .overrideConfiguration( +// ClientOverrideConfiguration.create() +// .setEndpointOverride("dysmsapi.aliyuncs.com") +// .setConnectTimeout(Duration.ofSeconds(30)) +// ) +// .build(); +// List> msgList = new ArrayList<>(); +// Map msgMap = new HashMap<>(); +// msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", "123456"); +// msgMap.put("value", "24Vol"); +// msgMap.put("content", "浓度超限"); +// msgList.add(msgMap); +// Map msgMapCoye=(Map)((HashMap) msgMap).clone(); +// msgList.add(msgMapCoye); +// System.out.println(JSONObject.toJSONString(msgList)); +// SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() +// .phoneNumberJson("[\"13651065090\",\"13652031267\"]") +// .signNameJson("[\"柴壮告警提醒\",\"柴壮告警提醒\"]") +// .templateCode("SMS_268700020") +// .templateParamJson(JSONObject.toJSONString(msgList)) +// .build(); +// +// CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); +// SendBatchSmsResponse resp = response.get(); +// System.out.println(new Gson().toJson(resp)); +// client.close(); +// } +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3203547..11701b8 100644 --- a/pom.xml +++ b/pom.xml @@ -242,11 +242,11 @@ 2.7.6 - - - - - + + + + + org.apache.activemq @@ -268,5 +268,13 @@ spring-jms 3.2.8.RELEASE + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.22 + + \ No newline at end of file diff --git a/smartwell_sink b/smartwell_sink deleted file mode 160000 index f4d30d5..0000000 --- a/smartwell_sink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4d30d5b1b1f19f52a3948851af73e3ac8aefc88 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 58617f8..01300ef 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -135,9 +135,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":.55,\"humidity\":0.2,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":10.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; - temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312021040005\",\"mBody\":{\"cell\":84,\"pci\":279,\"rsrp\":-115,\"snr\":11,\"datas\":[{\"gas\":98.0,\"uptime\":\"20220915115800\"}],\"logTime\":\"20220915115332\",\"bType\":\"MethaneData\"},\"ts\":1663125512779}"; // temp="{\"mType\":\"Event\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"eventType\":[\"TemperatureFail\",\"TemperatureError\",\"HumidityFail\",\"HumidityError\"],\"logTime\":\"20191021140118\",\"bType\":\"TempHumiEvent\"},\"ts\":1571292078959}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"NoiseDig\",\"devCode\":\"88888888881\",\"mBody\":{\"bType\":\"NoiseDigConfigSuccess\"},\"ts\":1556182310514}"; @@ -170,7 +170,7 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"342020030014\",\"mBody\":{\"cell\":15,\"pci\":94,\"rsrp\":-103,\"snr\":7,\"datas\":[{\"gas\":0.0,\"uptime\":\"20211128000000\"}],\"logTime\":\"20211210174648\",\"bType\":\"TubeData\"},\"ts\":1639129608475}"; // // temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050010\",\"mBody\":{\"cell\":91,\"pci\":279,\"rsrp\":-105,\"snr\":10,\"datas\":[{\"gas\":40.0,\"uptime\":\"20220113175000\"},{\"liquid\":1040.07336,\"uptime\":\"20220113175000\"}],\"logTime\":\"20220113175144\",\"bType\":\"LGData\"},\"ts\":1642067504321}"; -// temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":0.599999964,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; + temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":11.0,\"uptime\":\"20220513020200\"},{\"gas\":0.599999964,\"uptime\":\"20220513030200\"},{\"liquid\":1108.392,\"uptime\":\"20220513020200\"},{\"liquid\":1112.47058,\"uptime\":\"20220513030200\"}],\"logTime\":\"20220513030400\",\"bType\":\"LGData\"},\"ts\":1652382240656}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 9e7cc70..acb2e0d 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -10,11 +10,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.LGGas; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -124,6 +126,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(), + alarmContent,DeviceTypeEnum.LG.name(),"%LEL"); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 521fe78..acf7672 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -17,6 +17,7 @@ import org.well.well.domain.Device; import org.well.well.domain.LGLiquid; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.Configure; import org.well.well.util.SnowFlakeUtil; import org.well.well.util.Weather1Util; @@ -90,14 +91,14 @@ Double levelFloat = new BigDecimal(level).doubleValue() / 100; //3220开头的设备需要加安装高度 - if (Integer.valueOf(devCode.substring(0,8))>=devcodePrex1) { + if (Integer.valueOf(devCode.substring(0, 8)) >= devcodePrex1) { String press = Configure.getProperty("Press"); if (StringUtils.isBlank(press)) { press = Weather1Util.getPress(); - System.out.println("*****press="+press); + System.out.println("*****press=" + press); } double liquidVal = new BigDecimal(press).floatValue() / 98; - if (liquidVal >= levelFloat ) { + if (liquidVal >= levelFloat) { levelFloat = 0.0; } else { levelFloat = levelFloat - liquidVal; @@ -106,7 +107,7 @@ } else if (devCode.indexOf(devcodePrex) == 0 && levelFloat != 0) { //默认安装高度20cm - levelFloat=levelFloat+0.2; + levelFloat = levelFloat + 0.2; } //1.存数据 LiquidDTO liquidDTO = new LiquidDTO(String.format("%.2f", Double.valueOf(levelFloat)), cell, @@ -125,7 +126,7 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString()); //超限 - if (StringUtils.isNotBlank(thresh)&&Float.valueOf(level) >= Float.valueOf(thresh)) { + if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) >= Float.valueOf(thresh)) { Device device = deviceManager.getDeviceByDevCode(devCode); //获取报警内容 String alarmContent = GasLiquidAlarmEnum.LIQUID_OVER_THRESH.getName(); @@ -135,9 +136,9 @@ return; } AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); - Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); if (alarmJob == null) { - alarmJobManager.saveData(jobId,devCode, busWell != null ? + alarmJobManager.saveData(jobId, devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); } //2.写入新的告警 @@ -146,6 +147,11 @@ devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(alarmJob.getId(), alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), level, busWell.getPosition(), + alarmContent, DeviceTypeEnum.LG.name(), ""); + } } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 06e1878..be4ad39 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -139,6 +140,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),level, busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index d4aabb9..d2c8395 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -101,6 +102,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, "水质超限告警"); + //配置了手机号,可以走短信平台发送 + if(!StringUtils.isEmpty(busWell.getTel())){ + AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent,DeviceTypeEnum.Liquid.name(),""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index df94ec7..5531f86 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -16,6 +16,7 @@ import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -125,10 +126,15 @@ //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); if (!StringUtils.isEmpty(busWell.getTel())) { - final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为"+gas; + final String pushMsgContent = "在" + DateUtils.sdf4.format(new Date()) + ",设备" + devCode + "在" + busWell.getPosition() + "发生" + alarmContent + ",浓度值为" + gas; //4.toDO:向济南港华推送消息 SmsPushUtil.excutePushMsg(busWell.getTel(), pushMsgContent); } + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Methane.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 448457b..ad187bc 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -130,6 +131,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.NoiseDig.name(), ""); + } } } else {//未超限 diff --git a/src/main/java/org/well/well/manager/NoiseManager.java b/src/main/java/org/well/well/manager/NoiseManager.java index 778c934..c235598 100644 --- a/src/main/java/org/well/well/manager/NoiseManager.java +++ b/src/main/java/org/well/well/manager/NoiseManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -123,7 +124,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, alarmContent); - + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), val, busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index c7ec546..50cdb32 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -159,6 +160,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, TempHumiAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + alarmContent, DeviceTypeEnum.Noise.name(), ""); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/TubeManager.java b/src/main/java/org/well/well/manager/TubeManager.java index cb47fea..3b5c61d 100644 --- a/src/main/java/org/well/well/manager/TubeManager.java +++ b/src/main/java/org/well/well/manager/TubeManager.java @@ -9,11 +9,13 @@ 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.core.util.ThreadUtil; import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Tube; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -121,6 +123,11 @@ devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(jobId, alarmContent); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(),gas,busWell.getPosition(), + alarmContent, DeviceTypeEnum.Tube.name(), ""); + } } else { alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index e0bda7f..4e4b394 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -13,6 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -157,10 +158,10 @@ 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(); - CO=String.format("%.2f", Double.valueOf(CO)); - O2=String.format("%.2f", Double.valueOf(O2)); - H2S=String.format("%.2f", Double.valueOf(H2S)); - CH4=String.format("%.2f", Double.valueOf(CH4)); + CO = String.format("%.2f", Double.valueOf(CO)); + O2 = String.format("%.2f", Double.valueOf(O2)); + H2S = String.format("%.2f", Double.valueOf(H2S)); + CH4 = String.format("%.2f", Double.valueOf(CH4)); String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); Boolean isOpen = Boolean.valueOf(((JSONObject) jsonArray.get(i)).get("liquidSwitch").toString()); //1.清离线 @@ -174,7 +175,7 @@ if (i < jsonArray.size() - 1) continue; //获取告警等级 Map alarmMap = getAlarmContent(busWell, devCode, CO, O2, H2S, CH4); - if (alarmMap.size()>0) { + if (alarmMap.size() > 0) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); String alarmContent = alarmMap.get("alarmContent").toString(); Integer alarmLevel = Integer.valueOf(alarmMap.get("alarmLevel").toString()); @@ -193,19 +194,24 @@ if (device == null) return;//未注册设备舍弃 //1.生成新的工单 Long jobId = SnowFlakeUtil.getId(); - alarmJobManager.saveData(jobId,devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(),"1"); + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); //2.写入新的告警 alarmRecordManager.saveData(jobId, "1", alarmLevel, WasteGasAlarmEnum.OVER_THRESH.getName(), alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, busWell!=null?busWell.getWellCode():"", upTime, + devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent.substring(0, alarmContent.length() - 1)); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId, WasteGasAlarmEnum.OVER_THRESH.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), alarmValue.substring(0, alarmValue.length() - 1), busWell.getPosition(), + WasteGasAlarmEnum.OVER_THRESH.getName(), DeviceTypeEnum.WasteGas.name(), "%LEL"); + } } } else {//未超限 //1.清除之前的报警 diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index 815dc09..f2ef063 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -6,11 +6,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.WasteGasAlarmEnum; 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.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.AlarmPushProvider; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; @@ -115,6 +118,11 @@ // if (cids.size() > 0) // PushList.pushToUser(cids, "井盖开盖报警", "报警啦,快来处理"); ThreadUtil.excuteMsg(jobId,WellAlarmEnum.WellOpenAlarm.getName()); + //配置了手机号,可以走短信平台发送 + if (!StringUtils.isEmpty(busWell.getTel())) { + AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(),"", busWell.getPosition(), + WellAlarmEnum.WellOpenAlarm.name(), DeviceTypeEnum.Well.name(), ""); + } } } } diff --git a/src/main/java/org/well/well/util/AlarmPushProvider.java b/src/main/java/org/well/well/util/AlarmPushProvider.java new file mode 100644 index 0000000..f268cad --- /dev/null +++ b/src/main/java/org/well/well/util/AlarmPushProvider.java @@ -0,0 +1,52 @@ +package org.well.well.util; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class AlarmPushProvider { + + private static final Logger log = LoggerFactory.getLogger(SendBatchSmsUtil.class.getName()); + + public static void alarmPushBuilder(String devcode, String tel, String value, String position, + String alarmContent, String deviceType, String units) { +// if (alarmPushConfig.getEnable().equals(1)) { +// if (alarmPushConfig.getWebsocketAlarm().equals(1)) { +// try { +// String msg = "在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "," +// + "设备" + devcode + "发生了浓度超限,浓度值为" + value; +// ThreadUtil.excuteMsg(null, msg, ""); +// } catch (UnsupportedEncodingException uee) { +// log.error("websocket推送,内容转码出现异常,异常信息为{}", uee.getMessage()); +// } +// } +// if (alarmPushConfig.getShortMessageAlarm().equals(1)) { + JSONArray msglist = new JSONArray(); + JSONObject msgMap = new JSONObject(); + msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + msgMap.put("devcode", devcode+"("+deviceType+")"); + msgMap.put("value", value+units); + msgMap.put("content", alarmContent); + String phoneJson = ""; + List aliSignNameList = new ArrayList<>(); + String aliSignName = Configure.getProperty("aliSignNameJson", ""); + String[] phones = tel.split(","); + List phoneList = new ArrayList<>(); + for (String phone : phones) { + msglist.add(msgMap); + phoneList.add(phone); + aliSignNameList.add(aliSignName); + } + phoneJson = JSONObject.toJSONString(phoneList); + SendBatchSmsUtil.sendMsg(phoneJson, msglist.toJSONString(), JSONObject.toJSONString(aliSignNameList)); +// } +// } + } + +} diff --git a/src/main/java/org/well/well/util/SendBatchSmsUtil.java b/src/main/java/org/well/well/util/SendBatchSmsUtil.java new file mode 100644 index 0000000..05c969d --- /dev/null +++ b/src/main/java/org/well/well/util/SendBatchSmsUtil.java @@ -0,0 +1,116 @@ +package org.well.well.util; +// This file is auto-generated, don't edit it. Thanks. + +import com.alibaba.fastjson.JSONObject; +import com.aliyun.auth.credentials.Credential; +import com.aliyun.auth.credentials.provider.StaticCredentialProvider; +import com.aliyun.sdk.service.dysmsapi20170525.AsyncClient; +import com.aliyun.sdk.service.dysmsapi20170525.models.SendBatchSmsRequest; +import com.aliyun.sdk.service.dysmsapi20170525.models.SendBatchSmsResponse; +import com.google.gson.Gson; +import darabonba.core.client.ClientOverrideConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.time.Duration; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +public class SendBatchSmsUtil { + + private static final Logger log = LoggerFactory.getLogger(SendBatchSmsUtil.class.getName()); + + + public static void sendMsg(String phoneJson, String msgJson,String aliSignNameJson) { + String aliKey = Configure.getProperty("aliKey", ""); + String aliSecret = Configure.getProperty("aliSecret", ""); + String aliUrl = Configure.getProperty("aliUrl", ""); + + String aliTemplateCode = Configure.getProperty("aliTemplateCode", ""); + StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() + .accessKeyId(aliKey) + .accessKeySecret(aliSecret) + .build()); + + AsyncClient client = AsyncClient.builder() + .region("cn-shanghai") // Region ID + .credentialsProvider(provider) + .overrideConfiguration( + ClientOverrideConfiguration.create() + .setEndpointOverride(aliUrl) + .setConnectTimeout(Duration.ofSeconds(30)) + ) + .build(); + List> msgList = new ArrayList<>(); +// Map msgMap = new HashMap<>(); +// msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", "123456"); +// msgMap.put("value", "24Vol"); +// msgMap.put("content", "浓度超限"); +// msgList.add(msgMap); +// Map msgMapCoye=(Map)((HashMap) msgMap).clone(); +// msgList.add(msgMapCoye); +// SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() +// .phoneNumberJson(phoneJson) +// .signNameJson(aliSignNameJson) +// .templateCode(aliTemplateCode) +// .templateParamJson(msgJson) +// .build(); + SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() + .phoneNumberJson(phoneJson) + .signNameJson(aliSignNameJson) + .templateCode(aliTemplateCode) + .templateParamJson(msgJson) + .build(); + System.out.println(JSONObject.toJSONString(msgList)); + CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); + try { + SendBatchSmsResponse resp = response.get(); + System.out.println(new Gson().toJson(resp)); + client.close(); + } catch (Exception ex) { + log.error("发送消息出现异常,手机号内容为{},信息内容为{}", phoneJson, msgJson, ex.getMessage()); + } + } + + +// public static void main(String[] args) throws Exception { +// StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() +// .accessKeyId("LTAI5tDFNucQF2Bdy4fHgzrN") +// .accessKeySecret("hZ22QQPxQue1G0R8Ty2bo6GimrLdoB") +// .build()); +// +// AsyncClient client = AsyncClient.builder() +// .region("cn-shanghai") // Region ID +// .credentialsProvider(provider) +// .overrideConfiguration( +// ClientOverrideConfiguration.create() +// .setEndpointOverride("dysmsapi.aliyuncs.com") +// .setConnectTimeout(Duration.ofSeconds(30)) +// ) +// .build(); +// List> msgList = new ArrayList<>(); +// Map msgMap = new HashMap<>(); +// msgMap.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); +// msgMap.put("devcode", "123456"); +// msgMap.put("value", "24Vol"); +// msgMap.put("content", "浓度超限"); +// msgList.add(msgMap); +// Map msgMapCoye=(Map)((HashMap) msgMap).clone(); +// msgList.add(msgMapCoye); +// System.out.println(JSONObject.toJSONString(msgList)); +// SendBatchSmsRequest sendBatchSmsRequest = SendBatchSmsRequest.builder() +// .phoneNumberJson("[\"13651065090\",\"13652031267\"]") +// .signNameJson("[\"柴壮告警提醒\",\"柴壮告警提醒\"]") +// .templateCode("SMS_268700020") +// .templateParamJson(JSONObject.toJSONString(msgList)) +// .build(); +// +// CompletableFuture response = client.sendBatchSms(sendBatchSmsRequest); +// SendBatchSmsResponse resp = response.get(); +// System.out.println(new Gson().toJson(resp)); +// client.close(); +// } +} \ No newline at end of file diff --git a/src/main/resources/wellSensor/application.properties b/src/main/resources/wellSensor/application.properties index 2411a26..b614fc0 100644 --- a/src/main/resources/wellSensor/application.properties +++ b/src/main/resources/wellSensor/application.properties @@ -184,4 +184,10 @@ Appkey = 937cd1ce7e4f44545b3a1841ab6794b0 Press = +aliKey = LTAI5tDFNucQF2Bdy4fHgzrN +aliSecret= hZ22QQPxQue1G0R8Ty2bo6GimrLdoB +aliUrl = dysmsapi.aliyuncs.com +aliSignNameJson= 柴壮告警提醒 +aliTemplateCode= SMS_268475055 +