diff --git a/pom.xml b/pom.xml
index 11701b8..bcae60b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,5 +276,11 @@
2.0.22
+
+ com.google.code.gson
+ gson
+ 2.8.9
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 11701b8..bcae60b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,5 +276,11 @@
2.0.22
+
+ com.google.code.gson
+ gson
+ 2.8.9
+
+
\ No newline at end of file
diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java
index 01300ef..01f5002 100644
--- a/src/main/java/org/well/mysql/sink/WellSink.java
+++ b/src/main/java/org/well/mysql/sink/WellSink.java
@@ -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\":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}";
+ temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":80.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 11701b8..bcae60b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,5 +276,11 @@
2.0.22
+
+ com.google.code.gson
+ gson
+ 2.8.9
+
+
\ No newline at end of file
diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java
index 01300ef..01f5002 100644
--- a/src/main/java/org/well/mysql/sink/WellSink.java
+++ b/src/main/java/org/well/mysql/sink/WellSink.java
@@ -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\":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}";
+ temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":80.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 8f05b67..d958178 100644
--- a/src/main/java/org/well/well/manager/LGGasManager.java
+++ b/src/main/java/org/well/well/manager/LGGasManager.java
@@ -1,5 +1,6 @@
package org.well.well.manager;
+import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
@@ -16,6 +17,7 @@
import org.well.well.domain.BusWell;
import org.well.well.domain.Device;
import org.well.well.domain.LGGas;
+import org.well.well.util.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +28,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class LGGasManager extends HibernateEntityDao {
@@ -66,7 +70,12 @@
String cell = jsonObject.getString("cell");
JSONArray jsonArray = jsonObject.getJSONArray("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
if (null == ((JSONObject) jsonArray.get(i)).get("gas")) {
continue;
@@ -74,7 +83,6 @@
String gas = ((JSONObject) jsonArray.get(i)).getString("gas");
String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime");
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);
//2.有无超限处理流程(判断最后一条数据)
@@ -115,9 +123,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");
}
//1.写入新的告警
@@ -127,9 +135,9 @@
//3.toDo:向app推送报警消息
ThreadUtil.excuteMsg(jobId, alarmContent);
//配置了手机号,可以走短信平台发送
- if(!StringUtils.isEmpty(busWell.getTel())){
- AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(),
- alarmContent,DeviceTypeEnum.LG.toString(),"%LEL");
+ if (!StringUtils.isEmpty(busWell.getTel())) {
+ AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(),
+ alarmContent, DeviceTypeEnum.LG.toString(), "%LEL");
}
} else {
alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单");
diff --git a/pom.xml b/pom.xml
index 11701b8..bcae60b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,5 +276,11 @@
2.0.22
+
+ com.google.code.gson
+ gson
+ 2.8.9
+
+
\ No newline at end of file
diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java
index 01300ef..01f5002 100644
--- a/src/main/java/org/well/mysql/sink/WellSink.java
+++ b/src/main/java/org/well/mysql/sink/WellSink.java
@@ -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\":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}";
+ temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":80.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 8f05b67..d958178 100644
--- a/src/main/java/org/well/well/manager/LGGasManager.java
+++ b/src/main/java/org/well/well/manager/LGGasManager.java
@@ -1,5 +1,6 @@
package org.well.well.manager;
+import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
@@ -16,6 +17,7 @@
import org.well.well.domain.BusWell;
import org.well.well.domain.Device;
import org.well.well.domain.LGGas;
+import org.well.well.util.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +28,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class LGGasManager extends HibernateEntityDao {
@@ -66,7 +70,12 @@
String cell = jsonObject.getString("cell");
JSONArray jsonArray = jsonObject.getJSONArray("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
if (null == ((JSONObject) jsonArray.get(i)).get("gas")) {
continue;
@@ -74,7 +83,6 @@
String gas = ((JSONObject) jsonArray.get(i)).getString("gas");
String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime");
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);
//2.有无超限处理流程(判断最后一条数据)
@@ -115,9 +123,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");
}
//1.写入新的告警
@@ -127,9 +135,9 @@
//3.toDo:向app推送报警消息
ThreadUtil.excuteMsg(jobId, alarmContent);
//配置了手机号,可以走短信平台发送
- if(!StringUtils.isEmpty(busWell.getTel())){
- AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(),
- alarmContent,DeviceTypeEnum.LG.toString(),"%LEL");
+ if (!StringUtils.isEmpty(busWell.getTel())) {
+ AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(),
+ alarmContent, DeviceTypeEnum.LG.toString(), "%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 0986009..bf7e4f1 100644
--- a/src/main/java/org/well/well/manager/LGLiquidManager.java
+++ b/src/main/java/org/well/well/manager/LGLiquidManager.java
@@ -75,6 +75,8 @@
return resultMap;
}
+
+
@Transactional
public void processNormalData(JSONObject jsonObject, String devCode) {
String cell = jsonObject.getString("cell");
diff --git a/pom.xml b/pom.xml
index 11701b8..bcae60b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,5 +276,11 @@
2.0.22
+
+ com.google.code.gson
+ gson
+ 2.8.9
+
+
\ No newline at end of file
diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java
index 01300ef..01f5002 100644
--- a/src/main/java/org/well/mysql/sink/WellSink.java
+++ b/src/main/java/org/well/mysql/sink/WellSink.java
@@ -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\":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}";
+ temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":80.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 8f05b67..d958178 100644
--- a/src/main/java/org/well/well/manager/LGGasManager.java
+++ b/src/main/java/org/well/well/manager/LGGasManager.java
@@ -1,5 +1,6 @@
package org.well.well.manager;
+import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
@@ -16,6 +17,7 @@
import org.well.well.domain.BusWell;
import org.well.well.domain.Device;
import org.well.well.domain.LGGas;
+import org.well.well.util.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +28,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class LGGasManager extends HibernateEntityDao {
@@ -66,7 +70,12 @@
String cell = jsonObject.getString("cell");
JSONArray jsonArray = jsonObject.getJSONArray("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
if (null == ((JSONObject) jsonArray.get(i)).get("gas")) {
continue;
@@ -74,7 +83,6 @@
String gas = ((JSONObject) jsonArray.get(i)).getString("gas");
String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime");
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);
//2.有无超限处理流程(判断最后一条数据)
@@ -115,9 +123,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");
}
//1.写入新的告警
@@ -127,9 +135,9 @@
//3.toDo:向app推送报警消息
ThreadUtil.excuteMsg(jobId, alarmContent);
//配置了手机号,可以走短信平台发送
- if(!StringUtils.isEmpty(busWell.getTel())){
- AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(),
- alarmContent,DeviceTypeEnum.LG.toString(),"%LEL");
+ if (!StringUtils.isEmpty(busWell.getTel())) {
+ AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(),
+ alarmContent, DeviceTypeEnum.LG.toString(), "%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 0986009..bf7e4f1 100644
--- a/src/main/java/org/well/well/manager/LGLiquidManager.java
+++ b/src/main/java/org/well/well/manager/LGLiquidManager.java
@@ -75,6 +75,8 @@
return resultMap;
}
+
+
@Transactional
public void processNormalData(JSONObject jsonObject, String devCode) {
String cell = jsonObject.getString("cell");
diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java
index 7cf4eff..fb5d569 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.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +27,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class MethaneManager extends HibernateEntityDao {
@@ -68,12 +71,16 @@
String snr = null != jsonObject.get("snr") ? jsonObject.get("snr").toString() : "";
JSONArray jsonArray = (JSONArray) jsonObject.get("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString();
String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString();
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime, pci, rsrp, snr);
//2.有无超限处理流程(判断最后一条数据)
diff --git a/pom.xml b/pom.xml
index 11701b8..bcae60b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,5 +276,11 @@
2.0.22
+
+ com.google.code.gson
+ gson
+ 2.8.9
+
+
\ No newline at end of file
diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java
index 01300ef..01f5002 100644
--- a/src/main/java/org/well/mysql/sink/WellSink.java
+++ b/src/main/java/org/well/mysql/sink/WellSink.java
@@ -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\":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}";
+ temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":80.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 8f05b67..d958178 100644
--- a/src/main/java/org/well/well/manager/LGGasManager.java
+++ b/src/main/java/org/well/well/manager/LGGasManager.java
@@ -1,5 +1,6 @@
package org.well.well.manager;
+import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
@@ -16,6 +17,7 @@
import org.well.well.domain.BusWell;
import org.well.well.domain.Device;
import org.well.well.domain.LGGas;
+import org.well.well.util.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +28,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class LGGasManager extends HibernateEntityDao {
@@ -66,7 +70,12 @@
String cell = jsonObject.getString("cell");
JSONArray jsonArray = jsonObject.getJSONArray("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
if (null == ((JSONObject) jsonArray.get(i)).get("gas")) {
continue;
@@ -74,7 +83,6 @@
String gas = ((JSONObject) jsonArray.get(i)).getString("gas");
String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime");
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);
//2.有无超限处理流程(判断最后一条数据)
@@ -115,9 +123,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");
}
//1.写入新的告警
@@ -127,9 +135,9 @@
//3.toDo:向app推送报警消息
ThreadUtil.excuteMsg(jobId, alarmContent);
//配置了手机号,可以走短信平台发送
- if(!StringUtils.isEmpty(busWell.getTel())){
- AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(),
- alarmContent,DeviceTypeEnum.LG.toString(),"%LEL");
+ if (!StringUtils.isEmpty(busWell.getTel())) {
+ AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(),
+ alarmContent, DeviceTypeEnum.LG.toString(), "%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 0986009..bf7e4f1 100644
--- a/src/main/java/org/well/well/manager/LGLiquidManager.java
+++ b/src/main/java/org/well/well/manager/LGLiquidManager.java
@@ -75,6 +75,8 @@
return resultMap;
}
+
+
@Transactional
public void processNormalData(JSONObject jsonObject, String devCode) {
String cell = jsonObject.getString("cell");
diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java
index 7cf4eff..fb5d569 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.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +27,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class MethaneManager extends HibernateEntityDao {
@@ -68,12 +71,16 @@
String snr = null != jsonObject.get("snr") ? jsonObject.get("snr").toString() : "";
JSONArray jsonArray = (JSONArray) jsonObject.get("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString();
String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString();
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime, pci, rsrp, snr);
//2.有无超限处理流程(判断最后一条数据)
diff --git a/src/main/java/org/well/well/util/AbnormalDataProcessor.java b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
new file mode 100644
index 0000000..88e4589
--- /dev/null
+++ b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
@@ -0,0 +1,17 @@
+package org.well.well.util;
+
+public class AbnormalDataProcessor {
+
+ public static Boolean showSkip(String value) {
+ value= String.format("%.2f", Double.valueOf(value));
+ switch (value) {
+ case "40.00":
+ case "60.00":
+ case "80.00":
+ return false;
+ default:
+ return true;
+ }
+ }
+
+}
diff --git a/pom.xml b/pom.xml
index 11701b8..bcae60b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,5 +276,11 @@
2.0.22
+
+ com.google.code.gson
+ gson
+ 2.8.9
+
+
\ No newline at end of file
diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java
index 01300ef..01f5002 100644
--- a/src/main/java/org/well/mysql/sink/WellSink.java
+++ b/src/main/java/org/well/mysql/sink/WellSink.java
@@ -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\":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}";
+ temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":80.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 8f05b67..d958178 100644
--- a/src/main/java/org/well/well/manager/LGGasManager.java
+++ b/src/main/java/org/well/well/manager/LGGasManager.java
@@ -1,5 +1,6 @@
package org.well.well.manager;
+import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
@@ -16,6 +17,7 @@
import org.well.well.domain.BusWell;
import org.well.well.domain.Device;
import org.well.well.domain.LGGas;
+import org.well.well.util.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +28,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class LGGasManager extends HibernateEntityDao {
@@ -66,7 +70,12 @@
String cell = jsonObject.getString("cell");
JSONArray jsonArray = jsonObject.getJSONArray("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
if (null == ((JSONObject) jsonArray.get(i)).get("gas")) {
continue;
@@ -74,7 +83,6 @@
String gas = ((JSONObject) jsonArray.get(i)).getString("gas");
String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime");
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);
//2.有无超限处理流程(判断最后一条数据)
@@ -115,9 +123,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");
}
//1.写入新的告警
@@ -127,9 +135,9 @@
//3.toDo:向app推送报警消息
ThreadUtil.excuteMsg(jobId, alarmContent);
//配置了手机号,可以走短信平台发送
- if(!StringUtils.isEmpty(busWell.getTel())){
- AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(),
- alarmContent,DeviceTypeEnum.LG.toString(),"%LEL");
+ if (!StringUtils.isEmpty(busWell.getTel())) {
+ AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(),
+ alarmContent, DeviceTypeEnum.LG.toString(), "%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 0986009..bf7e4f1 100644
--- a/src/main/java/org/well/well/manager/LGLiquidManager.java
+++ b/src/main/java/org/well/well/manager/LGLiquidManager.java
@@ -75,6 +75,8 @@
return resultMap;
}
+
+
@Transactional
public void processNormalData(JSONObject jsonObject, String devCode) {
String cell = jsonObject.getString("cell");
diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java
index 7cf4eff..fb5d569 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.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +27,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class MethaneManager extends HibernateEntityDao {
@@ -68,12 +71,16 @@
String snr = null != jsonObject.get("snr") ? jsonObject.get("snr").toString() : "";
JSONArray jsonArray = (JSONArray) jsonObject.get("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString();
String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString();
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime, pci, rsrp, snr);
//2.有无超限处理流程(判断最后一条数据)
diff --git a/src/main/java/org/well/well/util/AbnormalDataProcessor.java b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
new file mode 100644
index 0000000..88e4589
--- /dev/null
+++ b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
@@ -0,0 +1,17 @@
+package org.well.well.util;
+
+public class AbnormalDataProcessor {
+
+ public static Boolean showSkip(String value) {
+ value= String.format("%.2f", Double.valueOf(value));
+ switch (value) {
+ case "40.00":
+ case "60.00":
+ case "80.00":
+ return false;
+ default:
+ return true;
+ }
+ }
+
+}
diff --git a/src/main/java/org/well/well/util/AlarmPushProvider.java b/src/main/java/org/well/well/util/AlarmPushProvider.java
index 2bcfb8e..07e5c1a 100644
--- a/src/main/java/org/well/well/util/AlarmPushProvider.java
+++ b/src/main/java/org/well/well/util/AlarmPushProvider.java
@@ -14,7 +14,8 @@
private static final Logger log = LoggerFactory.getLogger(SendBatchSmsUtil.class.getName());
- public static void alarmPushBuilder(String devcode, String tel, String value, String position,
+
+ public static void aliPushBuilder(String devcode, String tel, String value, String position,
String alarmContent, String deviceType, String units) {
// if (alarmPushConfig.getEnable().equals(1)) {
// if (alarmPushConfig.getWebsocketAlarm().equals(1)) {
@@ -30,7 +31,7 @@
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);
+ msgMap.put("devcode", devcode+"("+deviceType+")");
msgMap.put("value", value+units);
msgMap.put("position", position);
msgMap.put("content", alarmContent);
@@ -51,4 +52,20 @@
// }
}
+ public static void alarmPushBuilder(String devcode, String tels, String value, String position,
+ String alarmContent, String deviceType, String units) {
+// 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("position", position);
+// msgMap.put("content", alarmContent);
+// String phoneJson = "";
+ String content ="设备编号为"+devcode+"的"+deviceType+",在"+position+"发生了"+alarmContent+",报警值为"+value+units+",请及时处理!";
+ HyShortMsgUtil.sendMsg(content,tels);
+ }
+
+
+
}
diff --git a/pom.xml b/pom.xml
index 11701b8..bcae60b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,5 +276,11 @@
2.0.22
+
+ com.google.code.gson
+ gson
+ 2.8.9
+
+
\ No newline at end of file
diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java
index 01300ef..01f5002 100644
--- a/src/main/java/org/well/mysql/sink/WellSink.java
+++ b/src/main/java/org/well/mysql/sink/WellSink.java
@@ -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\":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}";
+ temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":80.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 8f05b67..d958178 100644
--- a/src/main/java/org/well/well/manager/LGGasManager.java
+++ b/src/main/java/org/well/well/manager/LGGasManager.java
@@ -1,5 +1,6 @@
package org.well.well.manager;
+import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
@@ -16,6 +17,7 @@
import org.well.well.domain.BusWell;
import org.well.well.domain.Device;
import org.well.well.domain.LGGas;
+import org.well.well.util.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +28,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class LGGasManager extends HibernateEntityDao {
@@ -66,7 +70,12 @@
String cell = jsonObject.getString("cell");
JSONArray jsonArray = jsonObject.getJSONArray("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
if (null == ((JSONObject) jsonArray.get(i)).get("gas")) {
continue;
@@ -74,7 +83,6 @@
String gas = ((JSONObject) jsonArray.get(i)).getString("gas");
String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime");
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);
//2.有无超限处理流程(判断最后一条数据)
@@ -115,9 +123,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");
}
//1.写入新的告警
@@ -127,9 +135,9 @@
//3.toDo:向app推送报警消息
ThreadUtil.excuteMsg(jobId, alarmContent);
//配置了手机号,可以走短信平台发送
- if(!StringUtils.isEmpty(busWell.getTel())){
- AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(),
- alarmContent,DeviceTypeEnum.LG.toString(),"%LEL");
+ if (!StringUtils.isEmpty(busWell.getTel())) {
+ AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(),
+ alarmContent, DeviceTypeEnum.LG.toString(), "%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 0986009..bf7e4f1 100644
--- a/src/main/java/org/well/well/manager/LGLiquidManager.java
+++ b/src/main/java/org/well/well/manager/LGLiquidManager.java
@@ -75,6 +75,8 @@
return resultMap;
}
+
+
@Transactional
public void processNormalData(JSONObject jsonObject, String devCode) {
String cell = jsonObject.getString("cell");
diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java
index 7cf4eff..fb5d569 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.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +27,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class MethaneManager extends HibernateEntityDao {
@@ -68,12 +71,16 @@
String snr = null != jsonObject.get("snr") ? jsonObject.get("snr").toString() : "";
JSONArray jsonArray = (JSONArray) jsonObject.get("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString();
String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString();
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime, pci, rsrp, snr);
//2.有无超限处理流程(判断最后一条数据)
diff --git a/src/main/java/org/well/well/util/AbnormalDataProcessor.java b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
new file mode 100644
index 0000000..88e4589
--- /dev/null
+++ b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
@@ -0,0 +1,17 @@
+package org.well.well.util;
+
+public class AbnormalDataProcessor {
+
+ public static Boolean showSkip(String value) {
+ value= String.format("%.2f", Double.valueOf(value));
+ switch (value) {
+ case "40.00":
+ case "60.00":
+ case "80.00":
+ return false;
+ default:
+ return true;
+ }
+ }
+
+}
diff --git a/src/main/java/org/well/well/util/AlarmPushProvider.java b/src/main/java/org/well/well/util/AlarmPushProvider.java
index 2bcfb8e..07e5c1a 100644
--- a/src/main/java/org/well/well/util/AlarmPushProvider.java
+++ b/src/main/java/org/well/well/util/AlarmPushProvider.java
@@ -14,7 +14,8 @@
private static final Logger log = LoggerFactory.getLogger(SendBatchSmsUtil.class.getName());
- public static void alarmPushBuilder(String devcode, String tel, String value, String position,
+
+ public static void aliPushBuilder(String devcode, String tel, String value, String position,
String alarmContent, String deviceType, String units) {
// if (alarmPushConfig.getEnable().equals(1)) {
// if (alarmPushConfig.getWebsocketAlarm().equals(1)) {
@@ -30,7 +31,7 @@
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);
+ msgMap.put("devcode", devcode+"("+deviceType+")");
msgMap.put("value", value+units);
msgMap.put("position", position);
msgMap.put("content", alarmContent);
@@ -51,4 +52,20 @@
// }
}
+ public static void alarmPushBuilder(String devcode, String tels, String value, String position,
+ String alarmContent, String deviceType, String units) {
+// 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("position", position);
+// msgMap.put("content", alarmContent);
+// String phoneJson = "";
+ String content ="设备编号为"+devcode+"的"+deviceType+",在"+position+"发生了"+alarmContent+",报警值为"+value+units+",请及时处理!";
+ HyShortMsgUtil.sendMsg(content,tels);
+ }
+
+
+
}
diff --git a/src/main/java/org/well/well/util/Configure.java b/src/main/java/org/well/well/util/Configure.java
index e2da687..d72d304 100644
--- a/src/main/java/org/well/well/util/Configure.java
+++ b/src/main/java/org/well/well/util/Configure.java
@@ -27,7 +27,8 @@
public static String getProperty(String key, String defaultValue) {
try {
- String value = new String(properties.getProperty(key).getBytes("ISO-8859-1"), "utf-8");
+ String value= properties.getProperty(key);
+// String value = new String(properties.getProperty(key).getBytes("ISO-8859-1"), "utf-8");
if (null == value) {
return defaultValue;
} else {
diff --git a/pom.xml b/pom.xml
index 11701b8..bcae60b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,5 +276,11 @@
2.0.22
+
+ com.google.code.gson
+ gson
+ 2.8.9
+
+
\ No newline at end of file
diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java
index 01300ef..01f5002 100644
--- a/src/main/java/org/well/mysql/sink/WellSink.java
+++ b/src/main/java/org/well/mysql/sink/WellSink.java
@@ -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\":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}";
+ temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":80.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 8f05b67..d958178 100644
--- a/src/main/java/org/well/well/manager/LGGasManager.java
+++ b/src/main/java/org/well/well/manager/LGGasManager.java
@@ -1,5 +1,6 @@
package org.well.well.manager;
+import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
@@ -16,6 +17,7 @@
import org.well.well.domain.BusWell;
import org.well.well.domain.Device;
import org.well.well.domain.LGGas;
+import org.well.well.util.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +28,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class LGGasManager extends HibernateEntityDao {
@@ -66,7 +70,12 @@
String cell = jsonObject.getString("cell");
JSONArray jsonArray = jsonObject.getJSONArray("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
if (null == ((JSONObject) jsonArray.get(i)).get("gas")) {
continue;
@@ -74,7 +83,6 @@
String gas = ((JSONObject) jsonArray.get(i)).getString("gas");
String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime");
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);
//2.有无超限处理流程(判断最后一条数据)
@@ -115,9 +123,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");
}
//1.写入新的告警
@@ -127,9 +135,9 @@
//3.toDo:向app推送报警消息
ThreadUtil.excuteMsg(jobId, alarmContent);
//配置了手机号,可以走短信平台发送
- if(!StringUtils.isEmpty(busWell.getTel())){
- AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(),
- alarmContent,DeviceTypeEnum.LG.toString(),"%LEL");
+ if (!StringUtils.isEmpty(busWell.getTel())) {
+ AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(),
+ alarmContent, DeviceTypeEnum.LG.toString(), "%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 0986009..bf7e4f1 100644
--- a/src/main/java/org/well/well/manager/LGLiquidManager.java
+++ b/src/main/java/org/well/well/manager/LGLiquidManager.java
@@ -75,6 +75,8 @@
return resultMap;
}
+
+
@Transactional
public void processNormalData(JSONObject jsonObject, String devCode) {
String cell = jsonObject.getString("cell");
diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java
index 7cf4eff..fb5d569 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.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +27,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class MethaneManager extends HibernateEntityDao {
@@ -68,12 +71,16 @@
String snr = null != jsonObject.get("snr") ? jsonObject.get("snr").toString() : "";
JSONArray jsonArray = (JSONArray) jsonObject.get("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString();
String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString();
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime, pci, rsrp, snr);
//2.有无超限处理流程(判断最后一条数据)
diff --git a/src/main/java/org/well/well/util/AbnormalDataProcessor.java b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
new file mode 100644
index 0000000..88e4589
--- /dev/null
+++ b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
@@ -0,0 +1,17 @@
+package org.well.well.util;
+
+public class AbnormalDataProcessor {
+
+ public static Boolean showSkip(String value) {
+ value= String.format("%.2f", Double.valueOf(value));
+ switch (value) {
+ case "40.00":
+ case "60.00":
+ case "80.00":
+ return false;
+ default:
+ return true;
+ }
+ }
+
+}
diff --git a/src/main/java/org/well/well/util/AlarmPushProvider.java b/src/main/java/org/well/well/util/AlarmPushProvider.java
index 2bcfb8e..07e5c1a 100644
--- a/src/main/java/org/well/well/util/AlarmPushProvider.java
+++ b/src/main/java/org/well/well/util/AlarmPushProvider.java
@@ -14,7 +14,8 @@
private static final Logger log = LoggerFactory.getLogger(SendBatchSmsUtil.class.getName());
- public static void alarmPushBuilder(String devcode, String tel, String value, String position,
+
+ public static void aliPushBuilder(String devcode, String tel, String value, String position,
String alarmContent, String deviceType, String units) {
// if (alarmPushConfig.getEnable().equals(1)) {
// if (alarmPushConfig.getWebsocketAlarm().equals(1)) {
@@ -30,7 +31,7 @@
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);
+ msgMap.put("devcode", devcode+"("+deviceType+")");
msgMap.put("value", value+units);
msgMap.put("position", position);
msgMap.put("content", alarmContent);
@@ -51,4 +52,20 @@
// }
}
+ public static void alarmPushBuilder(String devcode, String tels, String value, String position,
+ String alarmContent, String deviceType, String units) {
+// 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("position", position);
+// msgMap.put("content", alarmContent);
+// String phoneJson = "";
+ String content ="设备编号为"+devcode+"的"+deviceType+",在"+position+"发生了"+alarmContent+",报警值为"+value+units+",请及时处理!";
+ HyShortMsgUtil.sendMsg(content,tels);
+ }
+
+
+
}
diff --git a/src/main/java/org/well/well/util/Configure.java b/src/main/java/org/well/well/util/Configure.java
index e2da687..d72d304 100644
--- a/src/main/java/org/well/well/util/Configure.java
+++ b/src/main/java/org/well/well/util/Configure.java
@@ -27,7 +27,8 @@
public static String getProperty(String key, String defaultValue) {
try {
- String value = new String(properties.getProperty(key).getBytes("ISO-8859-1"), "utf-8");
+ String value= properties.getProperty(key);
+// String value = new String(properties.getProperty(key).getBytes("ISO-8859-1"), "utf-8");
if (null == value) {
return defaultValue;
} else {
diff --git a/src/main/java/org/well/well/util/HyShortMsgUtil.java b/src/main/java/org/well/well/util/HyShortMsgUtil.java
new file mode 100644
index 0000000..601288c
--- /dev/null
+++ b/src/main/java/org/well/well/util/HyShortMsgUtil.java
@@ -0,0 +1,82 @@
+package org.well.well.util;
+
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+
+/**
+ * 互亿无线的短信平台util
+ *
+ * @author cz
+ * @date 2023-3-20
+ */
+public class HyShortMsgUtil {
+// private static String Url = "http://106.ihuyi.com/webservice/sms.php?method=Submit";
+
+ private static final Logger log = LoggerFactory.getLogger(HyShortMsgUtil.class.getName());
+
+ public static void sendMsg(String content, String mobiles) {
+
+ String Url = Configure.getProperty("hy_url", "");
+ String appId = Configure.getProperty("appId", "");
+ String appKey = Configure.getProperty("appKey", "");
+ HttpClient client = new HttpClient();
+ PostMethod method = new PostMethod(Url);
+
+ client.getParams().setContentCharset("GBK");
+ method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=GBK");
+
+ int mobile_code = (int) ((Math.random() * 9 + 1) * 100000);
+
+ NameValuePair[] data = {//提交短信
+ new NameValuePair("account", appId), //查看用户名 登录用户中心->验证码通知短信>产品总览->API接口信息->APIID
+ new NameValuePair("password", appKey), //查看密码 登录用户中心->验证码通知短信>产品总览->API接口信息->APIKEY
+ //new NameValuePair("password", util.StringUtil.MD5Encode("密码")),
+ new NameValuePair("mobile", "13651065090"),
+ new NameValuePair("content", content),
+ };
+
+ String[] mobileList = mobiles.split(",");
+
+ try {
+ //批量发送
+ for (String mobile : mobileList) {
+ data[2].setValue(mobile);
+ method.setRequestBody(data);
+ client.executeMethod(method);
+ String SubmitResult = method.getResponseBodyAsString();
+ //System.out.println(SubmitResult);
+ Document doc = DocumentHelper.parseText(SubmitResult);
+ Element root = doc.getRootElement();
+ String code = root.elementText("code");
+ String msg = root.elementText("msg");
+ String smsid = root.elementText("smsid");
+ log.info("手机号是{},发送内容是{},短信回执码:{},返回消息是{},smsid是{}", data[2].getValue(), data[3].getValue(), code, msg, smsid);
+ if ("2".equals(code)) {
+ System.out.println("短信提交成功");
+ }
+ }
+ } catch (HttpException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (DocumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+}
diff --git a/pom.xml b/pom.xml
index 11701b8..bcae60b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,5 +276,11 @@
2.0.22
+
+ com.google.code.gson
+ gson
+ 2.8.9
+
+
\ No newline at end of file
diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java
index 01300ef..01f5002 100644
--- a/src/main/java/org/well/mysql/sink/WellSink.java
+++ b/src/main/java/org/well/mysql/sink/WellSink.java
@@ -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\":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}";
+ temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":80.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 8f05b67..d958178 100644
--- a/src/main/java/org/well/well/manager/LGGasManager.java
+++ b/src/main/java/org/well/well/manager/LGGasManager.java
@@ -1,5 +1,6 @@
package org.well.well.manager;
+import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
@@ -16,6 +17,7 @@
import org.well.well.domain.BusWell;
import org.well.well.domain.Device;
import org.well.well.domain.LGGas;
+import org.well.well.util.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +28,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class LGGasManager extends HibernateEntityDao {
@@ -66,7 +70,12 @@
String cell = jsonObject.getString("cell");
JSONArray jsonArray = jsonObject.getJSONArray("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
if (null == ((JSONObject) jsonArray.get(i)).get("gas")) {
continue;
@@ -74,7 +83,6 @@
String gas = ((JSONObject) jsonArray.get(i)).getString("gas");
String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime");
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);
//2.有无超限处理流程(判断最后一条数据)
@@ -115,9 +123,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");
}
//1.写入新的告警
@@ -127,9 +135,9 @@
//3.toDo:向app推送报警消息
ThreadUtil.excuteMsg(jobId, alarmContent);
//配置了手机号,可以走短信平台发送
- if(!StringUtils.isEmpty(busWell.getTel())){
- AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(),
- alarmContent,DeviceTypeEnum.LG.toString(),"%LEL");
+ if (!StringUtils.isEmpty(busWell.getTel())) {
+ AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(),
+ alarmContent, DeviceTypeEnum.LG.toString(), "%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 0986009..bf7e4f1 100644
--- a/src/main/java/org/well/well/manager/LGLiquidManager.java
+++ b/src/main/java/org/well/well/manager/LGLiquidManager.java
@@ -75,6 +75,8 @@
return resultMap;
}
+
+
@Transactional
public void processNormalData(JSONObject jsonObject, String devCode) {
String cell = jsonObject.getString("cell");
diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java
index 7cf4eff..fb5d569 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.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +27,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class MethaneManager extends HibernateEntityDao {
@@ -68,12 +71,16 @@
String snr = null != jsonObject.get("snr") ? jsonObject.get("snr").toString() : "";
JSONArray jsonArray = (JSONArray) jsonObject.get("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString();
String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString();
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime, pci, rsrp, snr);
//2.有无超限处理流程(判断最后一条数据)
diff --git a/src/main/java/org/well/well/util/AbnormalDataProcessor.java b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
new file mode 100644
index 0000000..88e4589
--- /dev/null
+++ b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
@@ -0,0 +1,17 @@
+package org.well.well.util;
+
+public class AbnormalDataProcessor {
+
+ public static Boolean showSkip(String value) {
+ value= String.format("%.2f", Double.valueOf(value));
+ switch (value) {
+ case "40.00":
+ case "60.00":
+ case "80.00":
+ return false;
+ default:
+ return true;
+ }
+ }
+
+}
diff --git a/src/main/java/org/well/well/util/AlarmPushProvider.java b/src/main/java/org/well/well/util/AlarmPushProvider.java
index 2bcfb8e..07e5c1a 100644
--- a/src/main/java/org/well/well/util/AlarmPushProvider.java
+++ b/src/main/java/org/well/well/util/AlarmPushProvider.java
@@ -14,7 +14,8 @@
private static final Logger log = LoggerFactory.getLogger(SendBatchSmsUtil.class.getName());
- public static void alarmPushBuilder(String devcode, String tel, String value, String position,
+
+ public static void aliPushBuilder(String devcode, String tel, String value, String position,
String alarmContent, String deviceType, String units) {
// if (alarmPushConfig.getEnable().equals(1)) {
// if (alarmPushConfig.getWebsocketAlarm().equals(1)) {
@@ -30,7 +31,7 @@
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);
+ msgMap.put("devcode", devcode+"("+deviceType+")");
msgMap.put("value", value+units);
msgMap.put("position", position);
msgMap.put("content", alarmContent);
@@ -51,4 +52,20 @@
// }
}
+ public static void alarmPushBuilder(String devcode, String tels, String value, String position,
+ String alarmContent, String deviceType, String units) {
+// 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("position", position);
+// msgMap.put("content", alarmContent);
+// String phoneJson = "";
+ String content ="设备编号为"+devcode+"的"+deviceType+",在"+position+"发生了"+alarmContent+",报警值为"+value+units+",请及时处理!";
+ HyShortMsgUtil.sendMsg(content,tels);
+ }
+
+
+
}
diff --git a/src/main/java/org/well/well/util/Configure.java b/src/main/java/org/well/well/util/Configure.java
index e2da687..d72d304 100644
--- a/src/main/java/org/well/well/util/Configure.java
+++ b/src/main/java/org/well/well/util/Configure.java
@@ -27,7 +27,8 @@
public static String getProperty(String key, String defaultValue) {
try {
- String value = new String(properties.getProperty(key).getBytes("ISO-8859-1"), "utf-8");
+ String value= properties.getProperty(key);
+// String value = new String(properties.getProperty(key).getBytes("ISO-8859-1"), "utf-8");
if (null == value) {
return defaultValue;
} else {
diff --git a/src/main/java/org/well/well/util/HyShortMsgUtil.java b/src/main/java/org/well/well/util/HyShortMsgUtil.java
new file mode 100644
index 0000000..601288c
--- /dev/null
+++ b/src/main/java/org/well/well/util/HyShortMsgUtil.java
@@ -0,0 +1,82 @@
+package org.well.well.util;
+
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+
+/**
+ * 互亿无线的短信平台util
+ *
+ * @author cz
+ * @date 2023-3-20
+ */
+public class HyShortMsgUtil {
+// private static String Url = "http://106.ihuyi.com/webservice/sms.php?method=Submit";
+
+ private static final Logger log = LoggerFactory.getLogger(HyShortMsgUtil.class.getName());
+
+ public static void sendMsg(String content, String mobiles) {
+
+ String Url = Configure.getProperty("hy_url", "");
+ String appId = Configure.getProperty("appId", "");
+ String appKey = Configure.getProperty("appKey", "");
+ HttpClient client = new HttpClient();
+ PostMethod method = new PostMethod(Url);
+
+ client.getParams().setContentCharset("GBK");
+ method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=GBK");
+
+ int mobile_code = (int) ((Math.random() * 9 + 1) * 100000);
+
+ NameValuePair[] data = {//提交短信
+ new NameValuePair("account", appId), //查看用户名 登录用户中心->验证码通知短信>产品总览->API接口信息->APIID
+ new NameValuePair("password", appKey), //查看密码 登录用户中心->验证码通知短信>产品总览->API接口信息->APIKEY
+ //new NameValuePair("password", util.StringUtil.MD5Encode("密码")),
+ new NameValuePair("mobile", "13651065090"),
+ new NameValuePair("content", content),
+ };
+
+ String[] mobileList = mobiles.split(",");
+
+ try {
+ //批量发送
+ for (String mobile : mobileList) {
+ data[2].setValue(mobile);
+ method.setRequestBody(data);
+ client.executeMethod(method);
+ String SubmitResult = method.getResponseBodyAsString();
+ //System.out.println(SubmitResult);
+ Document doc = DocumentHelper.parseText(SubmitResult);
+ Element root = doc.getRootElement();
+ String code = root.elementText("code");
+ String msg = root.elementText("msg");
+ String smsid = root.elementText("smsid");
+ log.info("手机号是{},发送内容是{},短信回执码:{},返回消息是{},smsid是{}", data[2].getValue(), data[3].getValue(), code, msg, smsid);
+ if ("2".equals(code)) {
+ System.out.println("短信提交成功");
+ }
+ }
+ } catch (HttpException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (DocumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+}
diff --git a/src/main/resources/wellSensor/application.properties b/src/main/resources/wellSensor/application.properties
index b3946b0..b921a04 100644
--- a/src/main/resources/wellSensor/application.properties
+++ b/src/main/resources/wellSensor/application.properties
@@ -1,5 +1,3 @@
-
-
# ============================================================================
# application
# ============================================================================
@@ -10,8 +8,6 @@
com.mossle.layout.messages
application.scope.type=mock
application.database.type=h2
-
-
# ============================================================================
# dbtest
# ============================================================================
@@ -53,13 +49,9 @@
jdbc.testOnReturn=false
jdbc.timeBetweenEvictionRunsMillis=30000
jdbc.numTestsPerEvictionRun=100
-
-
# log4jdbc
# ============================================================================
log4jdbc.enable=false
-
-
# ============================================================================
# hibernate
# ============================================================================
@@ -70,8 +62,6 @@
hibernate.format_sql=false
hibernate.generate_statistics=true
#hibernate.hbm2ddl.auto=create
-
-
# ============================================================================
# mail
# ============================================================================
@@ -83,8 +73,6 @@
mail.mode=skip
mail.test.mail=demo.mossle@gmail.com
mail.default.from=demo.mossle@gmail.com
-
-
#============================================================================
# log
#============================================================================
@@ -95,27 +83,17 @@
log.mail.enable=false
log.inspektr.enable=false
log.log4jdbc.enable=false
-
-
# ============================================================================
# filter
# ============================================================================
-
-
-
# ============================================================================
# servlet
# ============================================================================
-
-
-
# ============================================================================
# quartz
# ============================================================================
quartz.autostartup=false
org.quartz.plugin.historytrigger.class=org.quartz.plugins.history.LoggingTriggerHistoryPlugin
-
-
# ============================================================================
# cache
# ============================================================================
@@ -124,18 +102,14 @@
cache.memcached.client.url=localhost:11211
cache.memcached.server.enable=true
cache.memcached.server.url=localhost:11211
-
# ============================================================================
# store
# ============================================================================
store.baseDir=casic.store
-
# ============================================================================
# lampSink
# ============================================================================
lampSink.enable=false
-
-
# ============================================================================
# schedular
# ========================================================= ===================
@@ -143,51 +117,48 @@
scheduler.com.casic.baseService.scheduler.DeviceCheckingJob.execute=true
deviceChecking.enabled=true
#cron.time=0 37 15 * * ?
+# ============================================================================
+# \uFFFD\uFFFD\uFFFD\u037C\uFFFD\uFFFD
+# ============================================================================
+SEND.INTERVAL=10000
+# ============================================================================
+# \u4E2A\u63A8\u914D\u7F6E\u4FE1\u606F
+# ============================================================================
+gt.appId=qQqFtTBrUa7SGLjntUlpT4
+gt.appKey=GNjHLiqJkD6OoeZbtbdfi5
+gt.masterSecret=TZRYQknkxLAJ58uH56PeS6
+# ============================================================================
+# ACTIVEMQ\u914D\u7F6E
+# ============================================================================
+activemq_url=tcp://192.168.0.203:61616
+activemq_username=
+activemq_password=
+# ============================================================================
+# \u544A\u8B66\u3001\u5DE5\u5355\u63A8\u9001\u5730\u5740
+# ============================================================================
+sendURL=http://119.254.103.80:14537/job/updateSinkJob
+# ============================================================================
+# \u6E2F\u534E\u71C3\u6C14\u62A5\u8B66\u77ED\u4FE1\u63A8\u9001
+# ============================================================================
+GH_SMS_URL=http://61.145.229.28:8803
+GH_USER_ID=JU5802
+GH_PWD=761060
+# ============================================================================
+# \u5929\u6C14\u83B7\u53D6\u63A5\u53E3
+# ============================================================================
+SERVIES_HOST=https://way.jd.com/he/freeweather
+CITY=beijing
+Appkey=937cd1ce7e4f44545b3a1841ab6794b0
+Press=
+aliKey=LTAI5tDFNucQF2Bdy4fHgzrN
+aliSecret=hZ22QQPxQue1G0R8Ty2bo6GimrLdoB
+aliUrl=dysmsapi.aliyuncs.com
+aliSignNameJson=\u67F4\u58EE\u544A\u8B66\u63D0\u9192
+aliTemplateCode=SMS_274425014
-# ============================================================================
-# ���ͼ��
-# ============================================================================
-SEND.INTERVAL = 10000
-# ============================================================================
-# 个推配置信息
-# ============================================================================
-gt.appId = qQqFtTBrUa7SGLjntUlpT4
-gt.appKey = GNjHLiqJkD6OoeZbtbdfi5
-gt.masterSecret = TZRYQknkxLAJ58uH56PeS6
-
-# ============================================================================
-# ACTIVEMQ配置
-# ============================================================================
-activemq_url = tcp://192.168.0.203:61616
-activemq_username =
-activemq_password =
-
-
-# ============================================================================
-# 告警、工单推送地址
-# ============================================================================
-sendURL = http://119.254.103.80:14537/job/updateSinkJob
-
-
-
-# ============================================================================
-# 港华燃气报警短信推送
-# ============================================================================
-GH_SMS_URL = http://61.145.229.28:8803
-GH_USER_ID = JU5802
-GH_PWD = 761060
-# ============================================================================
-# 天气获取接口
-# ============================================================================
-SERVIES_HOST= https://way.jd.com/he/freeweather
-CITY = beijing
-Appkey = 937cd1ce7e4f44545b3a1841ab6794b0
-Press =
-
-aliKey = LTAI5tDFNucQF2Bdy4fHgzrN
-aliSecret= hZ22QQPxQue1G0R8Ty2bo6GimrLdoB
-aliUrl = dysmsapi.aliyuncs.com
-aliSignNameJson = 柴壮告警提醒
-aliTemplateCode= SMS_273775754
+#\u4E92\u4EBF\u65E0\u7EBF\u7684\u77ED\u4FE1\u5E73\u53F0
+appId=C09164727
+appKey=9c80f9334af06a5f9cacc1468eb84632
+hy_url=http://106.ihuyi.com/webservice/sms.php?method=Submit
diff --git a/pom.xml b/pom.xml
index 11701b8..bcae60b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,5 +276,11 @@
2.0.22
+
+ com.google.code.gson
+ gson
+ 2.8.9
+
+
\ No newline at end of file
diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java
index 01300ef..01f5002 100644
--- a/src/main/java/org/well/mysql/sink/WellSink.java
+++ b/src/main/java/org/well/mysql/sink/WellSink.java
@@ -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\":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}";
+ temp="{\"mType\":\"Data\",\"devType\":\"LG\",\"devCode\":\"322021050019\",\"mBody\":{\"cell\":83,\"pci\":100,\"rsrp\":-85,\"snr\":24,\"datas\":[{\"gas\":80.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 8f05b67..d958178 100644
--- a/src/main/java/org/well/well/manager/LGGasManager.java
+++ b/src/main/java/org/well/well/manager/LGGasManager.java
@@ -1,5 +1,6 @@
package org.well.well.manager;
+import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
@@ -16,6 +17,7 @@
import org.well.well.domain.BusWell;
import org.well.well.domain.Device;
import org.well.well.domain.LGGas;
+import org.well.well.util.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +28,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class LGGasManager extends HibernateEntityDao {
@@ -66,7 +70,12 @@
String cell = jsonObject.getString("cell");
JSONArray jsonArray = jsonObject.getJSONArray("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
if (null == ((JSONObject) jsonArray.get(i)).get("gas")) {
continue;
@@ -74,7 +83,6 @@
String gas = ((JSONObject) jsonArray.get(i)).getString("gas");
String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime");
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);
//2.有无超限处理流程(判断最后一条数据)
@@ -115,9 +123,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");
}
//1.写入新的告警
@@ -127,9 +135,9 @@
//3.toDo:向app推送报警消息
ThreadUtil.excuteMsg(jobId, alarmContent);
//配置了手机号,可以走短信平台发送
- if(!StringUtils.isEmpty(busWell.getTel())){
- AlarmPushProvider.alarmPushBuilder(devCode,busWell.getTel(),gas, busWell.getPosition(),
- alarmContent,DeviceTypeEnum.LG.toString(),"%LEL");
+ if (!StringUtils.isEmpty(busWell.getTel())) {
+ AlarmPushProvider.alarmPushBuilder(devCode, busWell.getTel(), gas, busWell.getPosition(),
+ alarmContent, DeviceTypeEnum.LG.toString(), "%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 0986009..bf7e4f1 100644
--- a/src/main/java/org/well/well/manager/LGLiquidManager.java
+++ b/src/main/java/org/well/well/manager/LGLiquidManager.java
@@ -75,6 +75,8 @@
return resultMap;
}
+
+
@Transactional
public void processNormalData(JSONObject jsonObject, String devCode) {
String cell = jsonObject.getString("cell");
diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java
index 7cf4eff..fb5d569 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.AbnormalDataProcessor;
import org.well.well.util.AlarmPushProvider;
import org.well.well.util.SnowFlakeUtil;
@@ -26,6 +27,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Service
public class MethaneManager extends HibernateEntityDao {
@@ -68,12 +71,16 @@
String snr = null != jsonObject.get("snr") ? jsonObject.get("snr").toString() : "";
JSONArray jsonArray = (JSONArray) jsonObject.get("datas");
BusWell busWell = busWellManager.getWellByDevCode(devCode);
- for (int i = 0; i < jsonArray.size(); i++) {
+ Stream listFilter = jsonArray.stream()
+ .filter(object ->
+ ((JSONObject) object).containsKey("gas")
+ &&AbnormalDataProcessor.showSkip(((JSONObject) object).getString("gas")));
+ List jsonFilter=listFilter.collect(Collectors.toList());
+ for (int i = 0; i < jsonFilter.size(); i++) {
try {
String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString();
String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString();
gas = String.format("%.2f", Double.valueOf(gas));
-
//1.存数据
saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime, pci, rsrp, snr);
//2.有无超限处理流程(判断最后一条数据)
diff --git a/src/main/java/org/well/well/util/AbnormalDataProcessor.java b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
new file mode 100644
index 0000000..88e4589
--- /dev/null
+++ b/src/main/java/org/well/well/util/AbnormalDataProcessor.java
@@ -0,0 +1,17 @@
+package org.well.well.util;
+
+public class AbnormalDataProcessor {
+
+ public static Boolean showSkip(String value) {
+ value= String.format("%.2f", Double.valueOf(value));
+ switch (value) {
+ case "40.00":
+ case "60.00":
+ case "80.00":
+ return false;
+ default:
+ return true;
+ }
+ }
+
+}
diff --git a/src/main/java/org/well/well/util/AlarmPushProvider.java b/src/main/java/org/well/well/util/AlarmPushProvider.java
index 2bcfb8e..07e5c1a 100644
--- a/src/main/java/org/well/well/util/AlarmPushProvider.java
+++ b/src/main/java/org/well/well/util/AlarmPushProvider.java
@@ -14,7 +14,8 @@
private static final Logger log = LoggerFactory.getLogger(SendBatchSmsUtil.class.getName());
- public static void alarmPushBuilder(String devcode, String tel, String value, String position,
+
+ public static void aliPushBuilder(String devcode, String tel, String value, String position,
String alarmContent, String deviceType, String units) {
// if (alarmPushConfig.getEnable().equals(1)) {
// if (alarmPushConfig.getWebsocketAlarm().equals(1)) {
@@ -30,7 +31,7 @@
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);
+ msgMap.put("devcode", devcode+"("+deviceType+")");
msgMap.put("value", value+units);
msgMap.put("position", position);
msgMap.put("content", alarmContent);
@@ -51,4 +52,20 @@
// }
}
+ public static void alarmPushBuilder(String devcode, String tels, String value, String position,
+ String alarmContent, String deviceType, String units) {
+// 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("position", position);
+// msgMap.put("content", alarmContent);
+// String phoneJson = "";
+ String content ="设备编号为"+devcode+"的"+deviceType+",在"+position+"发生了"+alarmContent+",报警值为"+value+units+",请及时处理!";
+ HyShortMsgUtil.sendMsg(content,tels);
+ }
+
+
+
}
diff --git a/src/main/java/org/well/well/util/Configure.java b/src/main/java/org/well/well/util/Configure.java
index e2da687..d72d304 100644
--- a/src/main/java/org/well/well/util/Configure.java
+++ b/src/main/java/org/well/well/util/Configure.java
@@ -27,7 +27,8 @@
public static String getProperty(String key, String defaultValue) {
try {
- String value = new String(properties.getProperty(key).getBytes("ISO-8859-1"), "utf-8");
+ String value= properties.getProperty(key);
+// String value = new String(properties.getProperty(key).getBytes("ISO-8859-1"), "utf-8");
if (null == value) {
return defaultValue;
} else {
diff --git a/src/main/java/org/well/well/util/HyShortMsgUtil.java b/src/main/java/org/well/well/util/HyShortMsgUtil.java
new file mode 100644
index 0000000..601288c
--- /dev/null
+++ b/src/main/java/org/well/well/util/HyShortMsgUtil.java
@@ -0,0 +1,82 @@
+package org.well.well.util;
+
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+
+/**
+ * 互亿无线的短信平台util
+ *
+ * @author cz
+ * @date 2023-3-20
+ */
+public class HyShortMsgUtil {
+// private static String Url = "http://106.ihuyi.com/webservice/sms.php?method=Submit";
+
+ private static final Logger log = LoggerFactory.getLogger(HyShortMsgUtil.class.getName());
+
+ public static void sendMsg(String content, String mobiles) {
+
+ String Url = Configure.getProperty("hy_url", "");
+ String appId = Configure.getProperty("appId", "");
+ String appKey = Configure.getProperty("appKey", "");
+ HttpClient client = new HttpClient();
+ PostMethod method = new PostMethod(Url);
+
+ client.getParams().setContentCharset("GBK");
+ method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=GBK");
+
+ int mobile_code = (int) ((Math.random() * 9 + 1) * 100000);
+
+ NameValuePair[] data = {//提交短信
+ new NameValuePair("account", appId), //查看用户名 登录用户中心->验证码通知短信>产品总览->API接口信息->APIID
+ new NameValuePair("password", appKey), //查看密码 登录用户中心->验证码通知短信>产品总览->API接口信息->APIKEY
+ //new NameValuePair("password", util.StringUtil.MD5Encode("密码")),
+ new NameValuePair("mobile", "13651065090"),
+ new NameValuePair("content", content),
+ };
+
+ String[] mobileList = mobiles.split(",");
+
+ try {
+ //批量发送
+ for (String mobile : mobileList) {
+ data[2].setValue(mobile);
+ method.setRequestBody(data);
+ client.executeMethod(method);
+ String SubmitResult = method.getResponseBodyAsString();
+ //System.out.println(SubmitResult);
+ Document doc = DocumentHelper.parseText(SubmitResult);
+ Element root = doc.getRootElement();
+ String code = root.elementText("code");
+ String msg = root.elementText("msg");
+ String smsid = root.elementText("smsid");
+ log.info("手机号是{},发送内容是{},短信回执码:{},返回消息是{},smsid是{}", data[2].getValue(), data[3].getValue(), code, msg, smsid);
+ if ("2".equals(code)) {
+ System.out.println("短信提交成功");
+ }
+ }
+ } catch (HttpException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (DocumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+}
diff --git a/src/main/resources/wellSensor/application.properties b/src/main/resources/wellSensor/application.properties
index b3946b0..b921a04 100644
--- a/src/main/resources/wellSensor/application.properties
+++ b/src/main/resources/wellSensor/application.properties
@@ -1,5 +1,3 @@
-
-
# ============================================================================
# application
# ============================================================================
@@ -10,8 +8,6 @@
com.mossle.layout.messages
application.scope.type=mock
application.database.type=h2
-
-
# ============================================================================
# dbtest
# ============================================================================
@@ -53,13 +49,9 @@
jdbc.testOnReturn=false
jdbc.timeBetweenEvictionRunsMillis=30000
jdbc.numTestsPerEvictionRun=100
-
-
# log4jdbc
# ============================================================================
log4jdbc.enable=false
-
-
# ============================================================================
# hibernate
# ============================================================================
@@ -70,8 +62,6 @@
hibernate.format_sql=false
hibernate.generate_statistics=true
#hibernate.hbm2ddl.auto=create
-
-
# ============================================================================
# mail
# ============================================================================
@@ -83,8 +73,6 @@
mail.mode=skip
mail.test.mail=demo.mossle@gmail.com
mail.default.from=demo.mossle@gmail.com
-
-
#============================================================================
# log
#============================================================================
@@ -95,27 +83,17 @@
log.mail.enable=false
log.inspektr.enable=false
log.log4jdbc.enable=false
-
-
# ============================================================================
# filter
# ============================================================================
-
-
-
# ============================================================================
# servlet
# ============================================================================
-
-
-
# ============================================================================
# quartz
# ============================================================================
quartz.autostartup=false
org.quartz.plugin.historytrigger.class=org.quartz.plugins.history.LoggingTriggerHistoryPlugin
-
-
# ============================================================================
# cache
# ============================================================================
@@ -124,18 +102,14 @@
cache.memcached.client.url=localhost:11211
cache.memcached.server.enable=true
cache.memcached.server.url=localhost:11211
-
# ============================================================================
# store
# ============================================================================
store.baseDir=casic.store
-
# ============================================================================
# lampSink
# ============================================================================
lampSink.enable=false
-
-
# ============================================================================
# schedular
# ========================================================= ===================
@@ -143,51 +117,48 @@
scheduler.com.casic.baseService.scheduler.DeviceCheckingJob.execute=true
deviceChecking.enabled=true
#cron.time=0 37 15 * * ?
+# ============================================================================
+# \uFFFD\uFFFD\uFFFD\u037C\uFFFD\uFFFD
+# ============================================================================
+SEND.INTERVAL=10000
+# ============================================================================
+# \u4E2A\u63A8\u914D\u7F6E\u4FE1\u606F
+# ============================================================================
+gt.appId=qQqFtTBrUa7SGLjntUlpT4
+gt.appKey=GNjHLiqJkD6OoeZbtbdfi5
+gt.masterSecret=TZRYQknkxLAJ58uH56PeS6
+# ============================================================================
+# ACTIVEMQ\u914D\u7F6E
+# ============================================================================
+activemq_url=tcp://192.168.0.203:61616
+activemq_username=
+activemq_password=
+# ============================================================================
+# \u544A\u8B66\u3001\u5DE5\u5355\u63A8\u9001\u5730\u5740
+# ============================================================================
+sendURL=http://119.254.103.80:14537/job/updateSinkJob
+# ============================================================================
+# \u6E2F\u534E\u71C3\u6C14\u62A5\u8B66\u77ED\u4FE1\u63A8\u9001
+# ============================================================================
+GH_SMS_URL=http://61.145.229.28:8803
+GH_USER_ID=JU5802
+GH_PWD=761060
+# ============================================================================
+# \u5929\u6C14\u83B7\u53D6\u63A5\u53E3
+# ============================================================================
+SERVIES_HOST=https://way.jd.com/he/freeweather
+CITY=beijing
+Appkey=937cd1ce7e4f44545b3a1841ab6794b0
+Press=
+aliKey=LTAI5tDFNucQF2Bdy4fHgzrN
+aliSecret=hZ22QQPxQue1G0R8Ty2bo6GimrLdoB
+aliUrl=dysmsapi.aliyuncs.com
+aliSignNameJson=\u67F4\u58EE\u544A\u8B66\u63D0\u9192
+aliTemplateCode=SMS_274425014
-# ============================================================================
-# ���ͼ��
-# ============================================================================
-SEND.INTERVAL = 10000
-# ============================================================================
-# 个推配置信息
-# ============================================================================
-gt.appId = qQqFtTBrUa7SGLjntUlpT4
-gt.appKey = GNjHLiqJkD6OoeZbtbdfi5
-gt.masterSecret = TZRYQknkxLAJ58uH56PeS6
-
-# ============================================================================
-# ACTIVEMQ配置
-# ============================================================================
-activemq_url = tcp://192.168.0.203:61616
-activemq_username =
-activemq_password =
-
-
-# ============================================================================
-# 告警、工单推送地址
-# ============================================================================
-sendURL = http://119.254.103.80:14537/job/updateSinkJob
-
-
-
-# ============================================================================
-# 港华燃气报警短信推送
-# ============================================================================
-GH_SMS_URL = http://61.145.229.28:8803
-GH_USER_ID = JU5802
-GH_PWD = 761060
-# ============================================================================
-# 天气获取接口
-# ============================================================================
-SERVIES_HOST= https://way.jd.com/he/freeweather
-CITY = beijing
-Appkey = 937cd1ce7e4f44545b3a1841ab6794b0
-Press =
-
-aliKey = LTAI5tDFNucQF2Bdy4fHgzrN
-aliSecret= hZ22QQPxQue1G0R8Ty2bo6GimrLdoB
-aliUrl = dysmsapi.aliyuncs.com
-aliSignNameJson = 柴壮告警提醒
-aliTemplateCode= SMS_273775754
+#\u4E92\u4EBF\u65E0\u7EBF\u7684\u77ED\u4FE1\u5E73\u53F0
+appId=C09164727
+appKey=9c80f9334af06a5f9cacc1468eb84632
+hy_url=http://106.ihuyi.com/webservice/sms.php?method=Submit
diff --git a/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml b/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml
index b5e0991..deb1980 100644
--- a/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml
+++ b/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml
@@ -19,12 +19,11 @@
http://activemq.apache.org/schema/core/activemq-core-5.14.5.xsd"
>
-
+
+ userName="${activemq_username}"/>