diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/well/core/util/PointConvertUtility.java b/src/main/java/org/well/well/core/util/PointConvertUtility.java new file mode 100644 index 0000000..088171a --- /dev/null +++ b/src/main/java/org/well/well/core/util/PointConvertUtility.java @@ -0,0 +1,99 @@ +package org.well.well.core.util; + +import com.alibaba.fastjson.JSONObject; +import com.google.gson.GsonBuilder; +import io.netty.handler.codec.http.HttpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class PointConvertUtility { + private static final Logger logger = LoggerFactory.getLogger(PointConvertUtility.class); + private static final String baiduUrl= "http://api.map.baidu.com/geoconv/v1/"; + private static final String baiduAk="QL9aqGNjgcRAGkt6F0BrsVmfGGOgjVyr"; + + private static final String gaodeUrl="https://restapi.amap.com/v3/assistant/coordinate/convert"; + private static final String gaodeKey="ab182d27663bbbaac890730b55db2754"; + + + public static Map convertBaiduAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("coords",coords); + params.put("ak",baiduAk); + params.put("from",1); + params.put("to",5); + String str = HttpClientUtils.post(baiduUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==0){ + JSONObject coordinate = (JSONObject)jsStr.getJSONArray("result").get(0); + double x = coordinate.getDouble("x"); + double y = coordinate.getDouble("y"); + result.put("x",x); + result.put("y",y); + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static Map convertGaodeAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("locations",coords); + params.put("key",gaodeKey); + params.put("coordsys","gps"); + String str = HttpClientUtils.post(gaodeUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==1){ + String coordinate = jsStr.getString("locations"); + String[] xy = coordinate.split(","); + if(xy!=null && xy.length >= 2){ + result.put("x",xy[0]); + result.put("y",xy[1]); + } + + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +// public static void convertCoordinate(BusWellInfo busWellInfo){ +// if(ToolUtil.isNotEmpty(busWellInfo.getCoordinateX()) && ToolUtil.isNotEmpty(busWellInfo.getCoordinateY())){ +// Map baiduCoordinate = PointConvertUtility.convertBaiduAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(baiduCoordinate)) { +// busWellInfo.setLngBaidu(baiduCoordinate.get("x").toString()); +// busWellInfo.setLatBaidu(baiduCoordinate.get("y").toString()); +// }else{ +// logger.error("{}百度坐标转换失败",busWellInfo.getWellCode()); +// } +// +// Map gaodeCoordinate = PointConvertUtility.convertGaodeAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(gaodeCoordinate)) { +// busWellInfo.setLngGaode(gaodeCoordinate.get("x").toString()); +// busWellInfo.setLatGaode(gaodeCoordinate.get("y").toString()); +// }else{ +// logger.error("{}高德坐标转换失败",busWellInfo.getWellCode()); +// } +// } +// } +} diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/well/core/util/PointConvertUtility.java b/src/main/java/org/well/well/core/util/PointConvertUtility.java new file mode 100644 index 0000000..088171a --- /dev/null +++ b/src/main/java/org/well/well/core/util/PointConvertUtility.java @@ -0,0 +1,99 @@ +package org.well.well.core.util; + +import com.alibaba.fastjson.JSONObject; +import com.google.gson.GsonBuilder; +import io.netty.handler.codec.http.HttpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class PointConvertUtility { + private static final Logger logger = LoggerFactory.getLogger(PointConvertUtility.class); + private static final String baiduUrl= "http://api.map.baidu.com/geoconv/v1/"; + private static final String baiduAk="QL9aqGNjgcRAGkt6F0BrsVmfGGOgjVyr"; + + private static final String gaodeUrl="https://restapi.amap.com/v3/assistant/coordinate/convert"; + private static final String gaodeKey="ab182d27663bbbaac890730b55db2754"; + + + public static Map convertBaiduAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("coords",coords); + params.put("ak",baiduAk); + params.put("from",1); + params.put("to",5); + String str = HttpClientUtils.post(baiduUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==0){ + JSONObject coordinate = (JSONObject)jsStr.getJSONArray("result").get(0); + double x = coordinate.getDouble("x"); + double y = coordinate.getDouble("y"); + result.put("x",x); + result.put("y",y); + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static Map convertGaodeAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("locations",coords); + params.put("key",gaodeKey); + params.put("coordsys","gps"); + String str = HttpClientUtils.post(gaodeUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==1){ + String coordinate = jsStr.getString("locations"); + String[] xy = coordinate.split(","); + if(xy!=null && xy.length >= 2){ + result.put("x",xy[0]); + result.put("y",xy[1]); + } + + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +// public static void convertCoordinate(BusWellInfo busWellInfo){ +// if(ToolUtil.isNotEmpty(busWellInfo.getCoordinateX()) && ToolUtil.isNotEmpty(busWellInfo.getCoordinateY())){ +// Map baiduCoordinate = PointConvertUtility.convertBaiduAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(baiduCoordinate)) { +// busWellInfo.setLngBaidu(baiduCoordinate.get("x").toString()); +// busWellInfo.setLatBaidu(baiduCoordinate.get("y").toString()); +// }else{ +// logger.error("{}百度坐标转换失败",busWellInfo.getWellCode()); +// } +// +// Map gaodeCoordinate = PointConvertUtility.convertGaodeAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(gaodeCoordinate)) { +// busWellInfo.setLngGaode(gaodeCoordinate.get("x").toString()); +// busWellInfo.setLatGaode(gaodeCoordinate.get("y").toString()); +// }else{ +// logger.error("{}高德坐标转换失败",busWellInfo.getWellCode()); +// } +// } +// } +} diff --git a/src/main/java/org/well/well/domain/Locator.java b/src/main/java/org/well/well/domain/Locator.java new file mode 100644 index 0000000..c6a901b --- /dev/null +++ b/src/main/java/org/well/well/domain/Locator.java @@ -0,0 +1,94 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + + +@Entity +@Table(name = "data_wellcover_loca") +public class Locator implements Serializable { + /** + * + */ + private static final long serialVersionUID = 429994083551525856L; + private Long dbId; + private String devCode; + private String wellCode; + private String longitude; + private String latitude; + private Date logtime; + private Date upTime; + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + + @Column(name = "LNG") + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + @Column(name = "LAT") + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + @Column(name = "UPTIME") + public Date getUpTime() { + return upTime; + } + + public void setUpTime(Date upTime) { + this.upTime = upTime; + } + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Locator(String devCode, String wellCode,String longitude, String latitude) { + this.devCode = devCode; + this.wellCode = wellCode; + this.latitude = latitude; + this.longitude = longitude; + this.logtime = new Date(); + } +} diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/well/core/util/PointConvertUtility.java b/src/main/java/org/well/well/core/util/PointConvertUtility.java new file mode 100644 index 0000000..088171a --- /dev/null +++ b/src/main/java/org/well/well/core/util/PointConvertUtility.java @@ -0,0 +1,99 @@ +package org.well.well.core.util; + +import com.alibaba.fastjson.JSONObject; +import com.google.gson.GsonBuilder; +import io.netty.handler.codec.http.HttpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class PointConvertUtility { + private static final Logger logger = LoggerFactory.getLogger(PointConvertUtility.class); + private static final String baiduUrl= "http://api.map.baidu.com/geoconv/v1/"; + private static final String baiduAk="QL9aqGNjgcRAGkt6F0BrsVmfGGOgjVyr"; + + private static final String gaodeUrl="https://restapi.amap.com/v3/assistant/coordinate/convert"; + private static final String gaodeKey="ab182d27663bbbaac890730b55db2754"; + + + public static Map convertBaiduAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("coords",coords); + params.put("ak",baiduAk); + params.put("from",1); + params.put("to",5); + String str = HttpClientUtils.post(baiduUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==0){ + JSONObject coordinate = (JSONObject)jsStr.getJSONArray("result").get(0); + double x = coordinate.getDouble("x"); + double y = coordinate.getDouble("y"); + result.put("x",x); + result.put("y",y); + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static Map convertGaodeAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("locations",coords); + params.put("key",gaodeKey); + params.put("coordsys","gps"); + String str = HttpClientUtils.post(gaodeUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==1){ + String coordinate = jsStr.getString("locations"); + String[] xy = coordinate.split(","); + if(xy!=null && xy.length >= 2){ + result.put("x",xy[0]); + result.put("y",xy[1]); + } + + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +// public static void convertCoordinate(BusWellInfo busWellInfo){ +// if(ToolUtil.isNotEmpty(busWellInfo.getCoordinateX()) && ToolUtil.isNotEmpty(busWellInfo.getCoordinateY())){ +// Map baiduCoordinate = PointConvertUtility.convertBaiduAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(baiduCoordinate)) { +// busWellInfo.setLngBaidu(baiduCoordinate.get("x").toString()); +// busWellInfo.setLatBaidu(baiduCoordinate.get("y").toString()); +// }else{ +// logger.error("{}百度坐标转换失败",busWellInfo.getWellCode()); +// } +// +// Map gaodeCoordinate = PointConvertUtility.convertGaodeAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(gaodeCoordinate)) { +// busWellInfo.setLngGaode(gaodeCoordinate.get("x").toString()); +// busWellInfo.setLatGaode(gaodeCoordinate.get("y").toString()); +// }else{ +// logger.error("{}高德坐标转换失败",busWellInfo.getWellCode()); +// } +// } +// } +} diff --git a/src/main/java/org/well/well/domain/Locator.java b/src/main/java/org/well/well/domain/Locator.java new file mode 100644 index 0000000..c6a901b --- /dev/null +++ b/src/main/java/org/well/well/domain/Locator.java @@ -0,0 +1,94 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + + +@Entity +@Table(name = "data_wellcover_loca") +public class Locator implements Serializable { + /** + * + */ + private static final long serialVersionUID = 429994083551525856L; + private Long dbId; + private String devCode; + private String wellCode; + private String longitude; + private String latitude; + private Date logtime; + private Date upTime; + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + + @Column(name = "LNG") + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + @Column(name = "LAT") + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + @Column(name = "UPTIME") + public Date getUpTime() { + return upTime; + } + + public void setUpTime(Date upTime) { + this.upTime = upTime; + } + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Locator(String devCode, String wellCode,String longitude, String latitude) { + this.devCode = devCode; + this.wellCode = wellCode; + this.latitude = latitude; + this.longitude = longitude; + this.logtime = new Date(); + } +} diff --git a/src/main/java/org/well/well/domain/SysUser.java b/src/main/java/org/well/well/domain/SysUser.java index 7021434..c70febb 100644 --- a/src/main/java/org/well/well/domain/SysUser.java +++ b/src/main/java/org/well/well/domain/SysUser.java @@ -5,7 +5,7 @@ /** *

- * 部门表 + * 人员表 *

* */ diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/well/core/util/PointConvertUtility.java b/src/main/java/org/well/well/core/util/PointConvertUtility.java new file mode 100644 index 0000000..088171a --- /dev/null +++ b/src/main/java/org/well/well/core/util/PointConvertUtility.java @@ -0,0 +1,99 @@ +package org.well.well.core.util; + +import com.alibaba.fastjson.JSONObject; +import com.google.gson.GsonBuilder; +import io.netty.handler.codec.http.HttpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class PointConvertUtility { + private static final Logger logger = LoggerFactory.getLogger(PointConvertUtility.class); + private static final String baiduUrl= "http://api.map.baidu.com/geoconv/v1/"; + private static final String baiduAk="QL9aqGNjgcRAGkt6F0BrsVmfGGOgjVyr"; + + private static final String gaodeUrl="https://restapi.amap.com/v3/assistant/coordinate/convert"; + private static final String gaodeKey="ab182d27663bbbaac890730b55db2754"; + + + public static Map convertBaiduAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("coords",coords); + params.put("ak",baiduAk); + params.put("from",1); + params.put("to",5); + String str = HttpClientUtils.post(baiduUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==0){ + JSONObject coordinate = (JSONObject)jsStr.getJSONArray("result").get(0); + double x = coordinate.getDouble("x"); + double y = coordinate.getDouble("y"); + result.put("x",x); + result.put("y",y); + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static Map convertGaodeAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("locations",coords); + params.put("key",gaodeKey); + params.put("coordsys","gps"); + String str = HttpClientUtils.post(gaodeUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==1){ + String coordinate = jsStr.getString("locations"); + String[] xy = coordinate.split(","); + if(xy!=null && xy.length >= 2){ + result.put("x",xy[0]); + result.put("y",xy[1]); + } + + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +// public static void convertCoordinate(BusWellInfo busWellInfo){ +// if(ToolUtil.isNotEmpty(busWellInfo.getCoordinateX()) && ToolUtil.isNotEmpty(busWellInfo.getCoordinateY())){ +// Map baiduCoordinate = PointConvertUtility.convertBaiduAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(baiduCoordinate)) { +// busWellInfo.setLngBaidu(baiduCoordinate.get("x").toString()); +// busWellInfo.setLatBaidu(baiduCoordinate.get("y").toString()); +// }else{ +// logger.error("{}百度坐标转换失败",busWellInfo.getWellCode()); +// } +// +// Map gaodeCoordinate = PointConvertUtility.convertGaodeAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(gaodeCoordinate)) { +// busWellInfo.setLngGaode(gaodeCoordinate.get("x").toString()); +// busWellInfo.setLatGaode(gaodeCoordinate.get("y").toString()); +// }else{ +// logger.error("{}高德坐标转换失败",busWellInfo.getWellCode()); +// } +// } +// } +} diff --git a/src/main/java/org/well/well/domain/Locator.java b/src/main/java/org/well/well/domain/Locator.java new file mode 100644 index 0000000..c6a901b --- /dev/null +++ b/src/main/java/org/well/well/domain/Locator.java @@ -0,0 +1,94 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + + +@Entity +@Table(name = "data_wellcover_loca") +public class Locator implements Serializable { + /** + * + */ + private static final long serialVersionUID = 429994083551525856L; + private Long dbId; + private String devCode; + private String wellCode; + private String longitude; + private String latitude; + private Date logtime; + private Date upTime; + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + + @Column(name = "LNG") + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + @Column(name = "LAT") + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + @Column(name = "UPTIME") + public Date getUpTime() { + return upTime; + } + + public void setUpTime(Date upTime) { + this.upTime = upTime; + } + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Locator(String devCode, String wellCode,String longitude, String latitude) { + this.devCode = devCode; + this.wellCode = wellCode; + this.latitude = latitude; + this.longitude = longitude; + this.logtime = new Date(); + } +} diff --git a/src/main/java/org/well/well/domain/SysUser.java b/src/main/java/org/well/well/domain/SysUser.java index 7021434..c70febb 100644 --- a/src/main/java/org/well/well/domain/SysUser.java +++ b/src/main/java/org/well/well/domain/SysUser.java @@ -5,7 +5,7 @@ /** *

- * 部门表 + * 人员表 *

* */ diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index fb58dd7..7f62c9b 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -10,6 +10,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Service public class AlarmRuleManager extends HibernateEntityDao { @@ -29,8 +32,8 @@ // criteria.createAlias("device", "device"); // criteria.add(Restrictions.eq("device.devCode", devCode)); criteria.add(Restrictions.eq("devCode", devCode)); - if(null!=sensorType) - criteria.add(Restrictions.eq("sensorType", sensorType)); + if (null != sensorType) + criteria.add(Restrictions.eq("sensorType", sensorType)); AlarmRule alarmRule = (AlarmRule) criteria.uniqueResult(); return alarmRule; } @@ -62,7 +65,7 @@ ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + - "^"+String.valueOf(alarmRule.getLowValue())) : ""); + "^" + String.valueOf(alarmRule.getLowValue())) : ""); } else if (DeviceTypeEnum.Methane.toString().equals(devTypeName)) { ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { @@ -79,4 +82,34 @@ return ruleStr; } + public Long getTenantIdBydep(String depId) { + try { + String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; + List tenantList = getSession().createSQLQuery(sql).list(); + if (tenantList.size() > 0) + return Long.valueOf(tenantList.get(0).toString()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + public List getRuleRank(String devCode, String depId) { + Long tenantId = getTenantIdBydep(depId); + if (null == tenantId) return null; + try { + Map paraMap = new HashMap(); + String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ + " ORDER BY level"; + paraMap.put("devcode", devCode); + paraMap.put("tenantId", tenantId); + List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); + return ruleRankList; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } } diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/well/core/util/PointConvertUtility.java b/src/main/java/org/well/well/core/util/PointConvertUtility.java new file mode 100644 index 0000000..088171a --- /dev/null +++ b/src/main/java/org/well/well/core/util/PointConvertUtility.java @@ -0,0 +1,99 @@ +package org.well.well.core.util; + +import com.alibaba.fastjson.JSONObject; +import com.google.gson.GsonBuilder; +import io.netty.handler.codec.http.HttpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class PointConvertUtility { + private static final Logger logger = LoggerFactory.getLogger(PointConvertUtility.class); + private static final String baiduUrl= "http://api.map.baidu.com/geoconv/v1/"; + private static final String baiduAk="QL9aqGNjgcRAGkt6F0BrsVmfGGOgjVyr"; + + private static final String gaodeUrl="https://restapi.amap.com/v3/assistant/coordinate/convert"; + private static final String gaodeKey="ab182d27663bbbaac890730b55db2754"; + + + public static Map convertBaiduAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("coords",coords); + params.put("ak",baiduAk); + params.put("from",1); + params.put("to",5); + String str = HttpClientUtils.post(baiduUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==0){ + JSONObject coordinate = (JSONObject)jsStr.getJSONArray("result").get(0); + double x = coordinate.getDouble("x"); + double y = coordinate.getDouble("y"); + result.put("x",x); + result.put("y",y); + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static Map convertGaodeAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("locations",coords); + params.put("key",gaodeKey); + params.put("coordsys","gps"); + String str = HttpClientUtils.post(gaodeUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==1){ + String coordinate = jsStr.getString("locations"); + String[] xy = coordinate.split(","); + if(xy!=null && xy.length >= 2){ + result.put("x",xy[0]); + result.put("y",xy[1]); + } + + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +// public static void convertCoordinate(BusWellInfo busWellInfo){ +// if(ToolUtil.isNotEmpty(busWellInfo.getCoordinateX()) && ToolUtil.isNotEmpty(busWellInfo.getCoordinateY())){ +// Map baiduCoordinate = PointConvertUtility.convertBaiduAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(baiduCoordinate)) { +// busWellInfo.setLngBaidu(baiduCoordinate.get("x").toString()); +// busWellInfo.setLatBaidu(baiduCoordinate.get("y").toString()); +// }else{ +// logger.error("{}百度坐标转换失败",busWellInfo.getWellCode()); +// } +// +// Map gaodeCoordinate = PointConvertUtility.convertGaodeAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(gaodeCoordinate)) { +// busWellInfo.setLngGaode(gaodeCoordinate.get("x").toString()); +// busWellInfo.setLatGaode(gaodeCoordinate.get("y").toString()); +// }else{ +// logger.error("{}高德坐标转换失败",busWellInfo.getWellCode()); +// } +// } +// } +} diff --git a/src/main/java/org/well/well/domain/Locator.java b/src/main/java/org/well/well/domain/Locator.java new file mode 100644 index 0000000..c6a901b --- /dev/null +++ b/src/main/java/org/well/well/domain/Locator.java @@ -0,0 +1,94 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + + +@Entity +@Table(name = "data_wellcover_loca") +public class Locator implements Serializable { + /** + * + */ + private static final long serialVersionUID = 429994083551525856L; + private Long dbId; + private String devCode; + private String wellCode; + private String longitude; + private String latitude; + private Date logtime; + private Date upTime; + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + + @Column(name = "LNG") + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + @Column(name = "LAT") + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + @Column(name = "UPTIME") + public Date getUpTime() { + return upTime; + } + + public void setUpTime(Date upTime) { + this.upTime = upTime; + } + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Locator(String devCode, String wellCode,String longitude, String latitude) { + this.devCode = devCode; + this.wellCode = wellCode; + this.latitude = latitude; + this.longitude = longitude; + this.logtime = new Date(); + } +} diff --git a/src/main/java/org/well/well/domain/SysUser.java b/src/main/java/org/well/well/domain/SysUser.java index 7021434..c70febb 100644 --- a/src/main/java/org/well/well/domain/SysUser.java +++ b/src/main/java/org/well/well/domain/SysUser.java @@ -5,7 +5,7 @@ /** *

- * 部门表 + * 人员表 *

* */ diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index fb58dd7..7f62c9b 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -10,6 +10,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Service public class AlarmRuleManager extends HibernateEntityDao { @@ -29,8 +32,8 @@ // criteria.createAlias("device", "device"); // criteria.add(Restrictions.eq("device.devCode", devCode)); criteria.add(Restrictions.eq("devCode", devCode)); - if(null!=sensorType) - criteria.add(Restrictions.eq("sensorType", sensorType)); + if (null != sensorType) + criteria.add(Restrictions.eq("sensorType", sensorType)); AlarmRule alarmRule = (AlarmRule) criteria.uniqueResult(); return alarmRule; } @@ -62,7 +65,7 @@ ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + - "^"+String.valueOf(alarmRule.getLowValue())) : ""); + "^" + String.valueOf(alarmRule.getLowValue())) : ""); } else if (DeviceTypeEnum.Methane.toString().equals(devTypeName)) { ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { @@ -79,4 +82,34 @@ return ruleStr; } + public Long getTenantIdBydep(String depId) { + try { + String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; + List tenantList = getSession().createSQLQuery(sql).list(); + if (tenantList.size() > 0) + return Long.valueOf(tenantList.get(0).toString()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + public List getRuleRank(String devCode, String depId) { + Long tenantId = getTenantIdBydep(depId); + if (null == tenantId) return null; + try { + Map paraMap = new HashMap(); + String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ + " ORDER BY level"; + paraMap.put("devcode", devCode); + paraMap.put("tenantId", tenantId); + List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); + return ruleRankList; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } } diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index fa1f6ce..40e045b 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -26,7 +26,6 @@ return get(deviceWell.getWellId()); } } - }catch (Exception e ){ e.printStackTrace(); } diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/well/core/util/PointConvertUtility.java b/src/main/java/org/well/well/core/util/PointConvertUtility.java new file mode 100644 index 0000000..088171a --- /dev/null +++ b/src/main/java/org/well/well/core/util/PointConvertUtility.java @@ -0,0 +1,99 @@ +package org.well.well.core.util; + +import com.alibaba.fastjson.JSONObject; +import com.google.gson.GsonBuilder; +import io.netty.handler.codec.http.HttpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class PointConvertUtility { + private static final Logger logger = LoggerFactory.getLogger(PointConvertUtility.class); + private static final String baiduUrl= "http://api.map.baidu.com/geoconv/v1/"; + private static final String baiduAk="QL9aqGNjgcRAGkt6F0BrsVmfGGOgjVyr"; + + private static final String gaodeUrl="https://restapi.amap.com/v3/assistant/coordinate/convert"; + private static final String gaodeKey="ab182d27663bbbaac890730b55db2754"; + + + public static Map convertBaiduAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("coords",coords); + params.put("ak",baiduAk); + params.put("from",1); + params.put("to",5); + String str = HttpClientUtils.post(baiduUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==0){ + JSONObject coordinate = (JSONObject)jsStr.getJSONArray("result").get(0); + double x = coordinate.getDouble("x"); + double y = coordinate.getDouble("y"); + result.put("x",x); + result.put("y",y); + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static Map convertGaodeAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("locations",coords); + params.put("key",gaodeKey); + params.put("coordsys","gps"); + String str = HttpClientUtils.post(gaodeUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==1){ + String coordinate = jsStr.getString("locations"); + String[] xy = coordinate.split(","); + if(xy!=null && xy.length >= 2){ + result.put("x",xy[0]); + result.put("y",xy[1]); + } + + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +// public static void convertCoordinate(BusWellInfo busWellInfo){ +// if(ToolUtil.isNotEmpty(busWellInfo.getCoordinateX()) && ToolUtil.isNotEmpty(busWellInfo.getCoordinateY())){ +// Map baiduCoordinate = PointConvertUtility.convertBaiduAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(baiduCoordinate)) { +// busWellInfo.setLngBaidu(baiduCoordinate.get("x").toString()); +// busWellInfo.setLatBaidu(baiduCoordinate.get("y").toString()); +// }else{ +// logger.error("{}百度坐标转换失败",busWellInfo.getWellCode()); +// } +// +// Map gaodeCoordinate = PointConvertUtility.convertGaodeAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(gaodeCoordinate)) { +// busWellInfo.setLngGaode(gaodeCoordinate.get("x").toString()); +// busWellInfo.setLatGaode(gaodeCoordinate.get("y").toString()); +// }else{ +// logger.error("{}高德坐标转换失败",busWellInfo.getWellCode()); +// } +// } +// } +} diff --git a/src/main/java/org/well/well/domain/Locator.java b/src/main/java/org/well/well/domain/Locator.java new file mode 100644 index 0000000..c6a901b --- /dev/null +++ b/src/main/java/org/well/well/domain/Locator.java @@ -0,0 +1,94 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + + +@Entity +@Table(name = "data_wellcover_loca") +public class Locator implements Serializable { + /** + * + */ + private static final long serialVersionUID = 429994083551525856L; + private Long dbId; + private String devCode; + private String wellCode; + private String longitude; + private String latitude; + private Date logtime; + private Date upTime; + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + + @Column(name = "LNG") + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + @Column(name = "LAT") + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + @Column(name = "UPTIME") + public Date getUpTime() { + return upTime; + } + + public void setUpTime(Date upTime) { + this.upTime = upTime; + } + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Locator(String devCode, String wellCode,String longitude, String latitude) { + this.devCode = devCode; + this.wellCode = wellCode; + this.latitude = latitude; + this.longitude = longitude; + this.logtime = new Date(); + } +} diff --git a/src/main/java/org/well/well/domain/SysUser.java b/src/main/java/org/well/well/domain/SysUser.java index 7021434..c70febb 100644 --- a/src/main/java/org/well/well/domain/SysUser.java +++ b/src/main/java/org/well/well/domain/SysUser.java @@ -5,7 +5,7 @@ /** *

- * 部门表 + * 人员表 *

* */ diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index fb58dd7..7f62c9b 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -10,6 +10,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Service public class AlarmRuleManager extends HibernateEntityDao { @@ -29,8 +32,8 @@ // criteria.createAlias("device", "device"); // criteria.add(Restrictions.eq("device.devCode", devCode)); criteria.add(Restrictions.eq("devCode", devCode)); - if(null!=sensorType) - criteria.add(Restrictions.eq("sensorType", sensorType)); + if (null != sensorType) + criteria.add(Restrictions.eq("sensorType", sensorType)); AlarmRule alarmRule = (AlarmRule) criteria.uniqueResult(); return alarmRule; } @@ -62,7 +65,7 @@ ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + - "^"+String.valueOf(alarmRule.getLowValue())) : ""); + "^" + String.valueOf(alarmRule.getLowValue())) : ""); } else if (DeviceTypeEnum.Methane.toString().equals(devTypeName)) { ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { @@ -79,4 +82,34 @@ return ruleStr; } + public Long getTenantIdBydep(String depId) { + try { + String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; + List tenantList = getSession().createSQLQuery(sql).list(); + if (tenantList.size() > 0) + return Long.valueOf(tenantList.get(0).toString()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + public List getRuleRank(String devCode, String depId) { + Long tenantId = getTenantIdBydep(depId); + if (null == tenantId) return null; + try { + Map paraMap = new HashMap(); + String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ + " ORDER BY level"; + paraMap.put("devcode", devCode); + paraMap.put("tenantId", tenantId); + List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); + return ruleRankList; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } } diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index fa1f6ce..40e045b 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -26,7 +26,6 @@ return get(deviceWell.getWellId()); } } - }catch (Exception e ){ e.printStackTrace(); } diff --git a/src/main/java/org/well/well/manager/DeviceWellManager.java b/src/main/java/org/well/well/manager/DeviceWellManager.java index e93a141..eb983c1 100644 --- a/src/main/java/org/well/well/manager/DeviceWellManager.java +++ b/src/main/java/org/well/well/manager/DeviceWellManager.java @@ -12,13 +12,18 @@ @Service public class DeviceWellManager extends HibernateEntityDao { + public DeviceWell getDeviceWellByDevice(Device device){ - Criteria criteria = getSession().createCriteria(DeviceWell.class); - criteria.add(Restrictions.eq("deviceId", device.getId())); - criteria.add(Restrictions.eq("valid", true)); - List deviceWellList = criteria.list(); - if (deviceWellList != null && deviceWellList.size() > 0) - return deviceWellList.get(0); + try { + Criteria criteria = getSession().createCriteria(DeviceWell.class); + criteria.add(Restrictions.eq("deviceId", device.getId())); + criteria.add(Restrictions.eq("valid", true)); + List deviceWellList = criteria.list(); + if (deviceWellList != null && deviceWellList.size() > 0) + return deviceWellList.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } } diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/well/core/util/PointConvertUtility.java b/src/main/java/org/well/well/core/util/PointConvertUtility.java new file mode 100644 index 0000000..088171a --- /dev/null +++ b/src/main/java/org/well/well/core/util/PointConvertUtility.java @@ -0,0 +1,99 @@ +package org.well.well.core.util; + +import com.alibaba.fastjson.JSONObject; +import com.google.gson.GsonBuilder; +import io.netty.handler.codec.http.HttpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class PointConvertUtility { + private static final Logger logger = LoggerFactory.getLogger(PointConvertUtility.class); + private static final String baiduUrl= "http://api.map.baidu.com/geoconv/v1/"; + private static final String baiduAk="QL9aqGNjgcRAGkt6F0BrsVmfGGOgjVyr"; + + private static final String gaodeUrl="https://restapi.amap.com/v3/assistant/coordinate/convert"; + private static final String gaodeKey="ab182d27663bbbaac890730b55db2754"; + + + public static Map convertBaiduAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("coords",coords); + params.put("ak",baiduAk); + params.put("from",1); + params.put("to",5); + String str = HttpClientUtils.post(baiduUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==0){ + JSONObject coordinate = (JSONObject)jsStr.getJSONArray("result").get(0); + double x = coordinate.getDouble("x"); + double y = coordinate.getDouble("y"); + result.put("x",x); + result.put("y",y); + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static Map convertGaodeAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("locations",coords); + params.put("key",gaodeKey); + params.put("coordsys","gps"); + String str = HttpClientUtils.post(gaodeUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==1){ + String coordinate = jsStr.getString("locations"); + String[] xy = coordinate.split(","); + if(xy!=null && xy.length >= 2){ + result.put("x",xy[0]); + result.put("y",xy[1]); + } + + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +// public static void convertCoordinate(BusWellInfo busWellInfo){ +// if(ToolUtil.isNotEmpty(busWellInfo.getCoordinateX()) && ToolUtil.isNotEmpty(busWellInfo.getCoordinateY())){ +// Map baiduCoordinate = PointConvertUtility.convertBaiduAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(baiduCoordinate)) { +// busWellInfo.setLngBaidu(baiduCoordinate.get("x").toString()); +// busWellInfo.setLatBaidu(baiduCoordinate.get("y").toString()); +// }else{ +// logger.error("{}百度坐标转换失败",busWellInfo.getWellCode()); +// } +// +// Map gaodeCoordinate = PointConvertUtility.convertGaodeAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(gaodeCoordinate)) { +// busWellInfo.setLngGaode(gaodeCoordinate.get("x").toString()); +// busWellInfo.setLatGaode(gaodeCoordinate.get("y").toString()); +// }else{ +// logger.error("{}高德坐标转换失败",busWellInfo.getWellCode()); +// } +// } +// } +} diff --git a/src/main/java/org/well/well/domain/Locator.java b/src/main/java/org/well/well/domain/Locator.java new file mode 100644 index 0000000..c6a901b --- /dev/null +++ b/src/main/java/org/well/well/domain/Locator.java @@ -0,0 +1,94 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + + +@Entity +@Table(name = "data_wellcover_loca") +public class Locator implements Serializable { + /** + * + */ + private static final long serialVersionUID = 429994083551525856L; + private Long dbId; + private String devCode; + private String wellCode; + private String longitude; + private String latitude; + private Date logtime; + private Date upTime; + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + + @Column(name = "LNG") + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + @Column(name = "LAT") + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + @Column(name = "UPTIME") + public Date getUpTime() { + return upTime; + } + + public void setUpTime(Date upTime) { + this.upTime = upTime; + } + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Locator(String devCode, String wellCode,String longitude, String latitude) { + this.devCode = devCode; + this.wellCode = wellCode; + this.latitude = latitude; + this.longitude = longitude; + this.logtime = new Date(); + } +} diff --git a/src/main/java/org/well/well/domain/SysUser.java b/src/main/java/org/well/well/domain/SysUser.java index 7021434..c70febb 100644 --- a/src/main/java/org/well/well/domain/SysUser.java +++ b/src/main/java/org/well/well/domain/SysUser.java @@ -5,7 +5,7 @@ /** *

- * 部门表 + * 人员表 *

* */ diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index fb58dd7..7f62c9b 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -10,6 +10,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Service public class AlarmRuleManager extends HibernateEntityDao { @@ -29,8 +32,8 @@ // criteria.createAlias("device", "device"); // criteria.add(Restrictions.eq("device.devCode", devCode)); criteria.add(Restrictions.eq("devCode", devCode)); - if(null!=sensorType) - criteria.add(Restrictions.eq("sensorType", sensorType)); + if (null != sensorType) + criteria.add(Restrictions.eq("sensorType", sensorType)); AlarmRule alarmRule = (AlarmRule) criteria.uniqueResult(); return alarmRule; } @@ -62,7 +65,7 @@ ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + - "^"+String.valueOf(alarmRule.getLowValue())) : ""); + "^" + String.valueOf(alarmRule.getLowValue())) : ""); } else if (DeviceTypeEnum.Methane.toString().equals(devTypeName)) { ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { @@ -79,4 +82,34 @@ return ruleStr; } + public Long getTenantIdBydep(String depId) { + try { + String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; + List tenantList = getSession().createSQLQuery(sql).list(); + if (tenantList.size() > 0) + return Long.valueOf(tenantList.get(0).toString()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + public List getRuleRank(String devCode, String depId) { + Long tenantId = getTenantIdBydep(depId); + if (null == tenantId) return null; + try { + Map paraMap = new HashMap(); + String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ + " ORDER BY level"; + paraMap.put("devcode", devCode); + paraMap.put("tenantId", tenantId); + List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); + return ruleRankList; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } } diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index fa1f6ce..40e045b 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -26,7 +26,6 @@ return get(deviceWell.getWellId()); } } - }catch (Exception e ){ e.printStackTrace(); } diff --git a/src/main/java/org/well/well/manager/DeviceWellManager.java b/src/main/java/org/well/well/manager/DeviceWellManager.java index e93a141..eb983c1 100644 --- a/src/main/java/org/well/well/manager/DeviceWellManager.java +++ b/src/main/java/org/well/well/manager/DeviceWellManager.java @@ -12,13 +12,18 @@ @Service public class DeviceWellManager extends HibernateEntityDao { + public DeviceWell getDeviceWellByDevice(Device device){ - Criteria criteria = getSession().createCriteria(DeviceWell.class); - criteria.add(Restrictions.eq("deviceId", device.getId())); - criteria.add(Restrictions.eq("valid", true)); - List deviceWellList = criteria.list(); - if (deviceWellList != null && deviceWellList.size() > 0) - return deviceWellList.get(0); + try { + Criteria criteria = getSession().createCriteria(DeviceWell.class); + criteria.add(Restrictions.eq("deviceId", device.getId())); + criteria.add(Restrictions.eq("valid", true)); + List deviceWellList = criteria.list(); + if (deviceWellList != null && deviceWellList.size() > 0) + return deviceWellList.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index e0b6b4b..bd4f3ee 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -12,14 +12,10 @@ import org.well.well.core.util.StringUtils; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; -import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Created by test203 on 2017/11/30. @@ -82,22 +78,38 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) > Float.valueOf(thresh)) {//超限 AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + //获取报警等级 + String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + if(busWell!=null){ + List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); + for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { + LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( + String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); + alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + break; + } + } + } + } + if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), - LiquidAlarmEnum.OVER_THRESH.getName()); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", - LiquidAlarmEnum.OVER_THRESH.getName(), level, device, + alarmContent, level, device, devCode, alarmJob.getWellCode(), upTime); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/well/core/util/PointConvertUtility.java b/src/main/java/org/well/well/core/util/PointConvertUtility.java new file mode 100644 index 0000000..088171a --- /dev/null +++ b/src/main/java/org/well/well/core/util/PointConvertUtility.java @@ -0,0 +1,99 @@ +package org.well.well.core.util; + +import com.alibaba.fastjson.JSONObject; +import com.google.gson.GsonBuilder; +import io.netty.handler.codec.http.HttpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class PointConvertUtility { + private static final Logger logger = LoggerFactory.getLogger(PointConvertUtility.class); + private static final String baiduUrl= "http://api.map.baidu.com/geoconv/v1/"; + private static final String baiduAk="QL9aqGNjgcRAGkt6F0BrsVmfGGOgjVyr"; + + private static final String gaodeUrl="https://restapi.amap.com/v3/assistant/coordinate/convert"; + private static final String gaodeKey="ab182d27663bbbaac890730b55db2754"; + + + public static Map convertBaiduAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("coords",coords); + params.put("ak",baiduAk); + params.put("from",1); + params.put("to",5); + String str = HttpClientUtils.post(baiduUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==0){ + JSONObject coordinate = (JSONObject)jsStr.getJSONArray("result").get(0); + double x = coordinate.getDouble("x"); + double y = coordinate.getDouble("y"); + result.put("x",x); + result.put("y",y); + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static Map convertGaodeAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("locations",coords); + params.put("key",gaodeKey); + params.put("coordsys","gps"); + String str = HttpClientUtils.post(gaodeUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==1){ + String coordinate = jsStr.getString("locations"); + String[] xy = coordinate.split(","); + if(xy!=null && xy.length >= 2){ + result.put("x",xy[0]); + result.put("y",xy[1]); + } + + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +// public static void convertCoordinate(BusWellInfo busWellInfo){ +// if(ToolUtil.isNotEmpty(busWellInfo.getCoordinateX()) && ToolUtil.isNotEmpty(busWellInfo.getCoordinateY())){ +// Map baiduCoordinate = PointConvertUtility.convertBaiduAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(baiduCoordinate)) { +// busWellInfo.setLngBaidu(baiduCoordinate.get("x").toString()); +// busWellInfo.setLatBaidu(baiduCoordinate.get("y").toString()); +// }else{ +// logger.error("{}百度坐标转换失败",busWellInfo.getWellCode()); +// } +// +// Map gaodeCoordinate = PointConvertUtility.convertGaodeAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(gaodeCoordinate)) { +// busWellInfo.setLngGaode(gaodeCoordinate.get("x").toString()); +// busWellInfo.setLatGaode(gaodeCoordinate.get("y").toString()); +// }else{ +// logger.error("{}高德坐标转换失败",busWellInfo.getWellCode()); +// } +// } +// } +} diff --git a/src/main/java/org/well/well/domain/Locator.java b/src/main/java/org/well/well/domain/Locator.java new file mode 100644 index 0000000..c6a901b --- /dev/null +++ b/src/main/java/org/well/well/domain/Locator.java @@ -0,0 +1,94 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + + +@Entity +@Table(name = "data_wellcover_loca") +public class Locator implements Serializable { + /** + * + */ + private static final long serialVersionUID = 429994083551525856L; + private Long dbId; + private String devCode; + private String wellCode; + private String longitude; + private String latitude; + private Date logtime; + private Date upTime; + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + + @Column(name = "LNG") + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + @Column(name = "LAT") + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + @Column(name = "UPTIME") + public Date getUpTime() { + return upTime; + } + + public void setUpTime(Date upTime) { + this.upTime = upTime; + } + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Locator(String devCode, String wellCode,String longitude, String latitude) { + this.devCode = devCode; + this.wellCode = wellCode; + this.latitude = latitude; + this.longitude = longitude; + this.logtime = new Date(); + } +} diff --git a/src/main/java/org/well/well/domain/SysUser.java b/src/main/java/org/well/well/domain/SysUser.java index 7021434..c70febb 100644 --- a/src/main/java/org/well/well/domain/SysUser.java +++ b/src/main/java/org/well/well/domain/SysUser.java @@ -5,7 +5,7 @@ /** *

- * 部门表 + * 人员表 *

* */ diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index fb58dd7..7f62c9b 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -10,6 +10,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Service public class AlarmRuleManager extends HibernateEntityDao { @@ -29,8 +32,8 @@ // criteria.createAlias("device", "device"); // criteria.add(Restrictions.eq("device.devCode", devCode)); criteria.add(Restrictions.eq("devCode", devCode)); - if(null!=sensorType) - criteria.add(Restrictions.eq("sensorType", sensorType)); + if (null != sensorType) + criteria.add(Restrictions.eq("sensorType", sensorType)); AlarmRule alarmRule = (AlarmRule) criteria.uniqueResult(); return alarmRule; } @@ -62,7 +65,7 @@ ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + - "^"+String.valueOf(alarmRule.getLowValue())) : ""); + "^" + String.valueOf(alarmRule.getLowValue())) : ""); } else if (DeviceTypeEnum.Methane.toString().equals(devTypeName)) { ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { @@ -79,4 +82,34 @@ return ruleStr; } + public Long getTenantIdBydep(String depId) { + try { + String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; + List tenantList = getSession().createSQLQuery(sql).list(); + if (tenantList.size() > 0) + return Long.valueOf(tenantList.get(0).toString()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + public List getRuleRank(String devCode, String depId) { + Long tenantId = getTenantIdBydep(depId); + if (null == tenantId) return null; + try { + Map paraMap = new HashMap(); + String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ + " ORDER BY level"; + paraMap.put("devcode", devCode); + paraMap.put("tenantId", tenantId); + List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); + return ruleRankList; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } } diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index fa1f6ce..40e045b 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -26,7 +26,6 @@ return get(deviceWell.getWellId()); } } - }catch (Exception e ){ e.printStackTrace(); } diff --git a/src/main/java/org/well/well/manager/DeviceWellManager.java b/src/main/java/org/well/well/manager/DeviceWellManager.java index e93a141..eb983c1 100644 --- a/src/main/java/org/well/well/manager/DeviceWellManager.java +++ b/src/main/java/org/well/well/manager/DeviceWellManager.java @@ -12,13 +12,18 @@ @Service public class DeviceWellManager extends HibernateEntityDao { + public DeviceWell getDeviceWellByDevice(Device device){ - Criteria criteria = getSession().createCriteria(DeviceWell.class); - criteria.add(Restrictions.eq("deviceId", device.getId())); - criteria.add(Restrictions.eq("valid", true)); - List deviceWellList = criteria.list(); - if (deviceWellList != null && deviceWellList.size() > 0) - return deviceWellList.get(0); + try { + Criteria criteria = getSession().createCriteria(DeviceWell.class); + criteria.add(Restrictions.eq("deviceId", device.getId())); + criteria.add(Restrictions.eq("valid", true)); + List deviceWellList = criteria.list(); + if (deviceWellList != null && deviceWellList.size() > 0) + return deviceWellList.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index e0b6b4b..bd4f3ee 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -12,14 +12,10 @@ import org.well.well.core.util.StringUtils; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; -import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Created by test203 on 2017/11/30. @@ -82,22 +78,38 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) > Float.valueOf(thresh)) {//超限 AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + //获取报警等级 + String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + if(busWell!=null){ + List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); + for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { + LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( + String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); + alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + break; + } + } + } + } + if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), - LiquidAlarmEnum.OVER_THRESH.getName()); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", - LiquidAlarmEnum.OVER_THRESH.getName(), level, device, + alarmContent, level, device, devCode, alarmJob.getWellCode(), upTime); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); diff --git a/src/main/java/org/well/well/manager/LocatorManager.java b/src/main/java/org/well/well/manager/LocatorManager.java new file mode 100644 index 0000000..8953d01 --- /dev/null +++ b/src/main/java/org/well/well/manager/LocatorManager.java @@ -0,0 +1,76 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DecimalUtils; +import org.well.well.core.util.PointConvertUtility; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.BusWell; +import org.well.well.domain.Locator; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +@Service +public class LocatorManager extends HibernateEntityDao { + @Resource + private BusWellManager busWellManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, + String longitude, String latitude) { + + Map resultMap = new HashMap(); + try { + Locator locator = new Locator(devCode, wellCode,longitude, latitude); + save(locator); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + try { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + if (busWell != null && "1".equals(busWell.getBfzt())) {//只有井处于布防状态下才写入经纬度数据 + for (int i = 0; i < jsonArray.size(); i++) { + String longitude = ((JSONObject) jsonArray.get(i)).get("longitude").toString(); + String latitude = ((JSONObject) jsonArray.get(i)).get("latitude").toString(); + if (StringUtils.isBlank(longitude) || StringUtils.isBlank(latitude)) { + longitude = null != busWell ? busWell.getLatBaidu() : longitude; + latitude = null != busWell ? busWell.getLatBaidu() : latitude; + } else { + if (Float.valueOf(longitude) < 1 || Float.valueOf(latitude) < 1) { + longitude = null != busWell ? busWell.getLatBaidu() : longitude; + latitude = null != busWell ? busWell.getLatBaidu() : latitude; + }else { +// Map stringObjectMap=PointConvertUtility. +// convertBaiduAPI(longitude,latitude); +// longitude=stringObjectMap!=null?stringObjectMap.get("x").toString():longitude; +// latitude=stringObjectMap!=null?stringObjectMap.get("y").toString():latitude; + + } + } + saveData(devCode,busWell==null?"":busWell.getWellCode(), + StringUtils.isNotBlank(longitude) ? DecimalUtils.df6.format(Double.valueOf(longitude)) : longitude, + StringUtils.isNotBlank(latitude) ? DecimalUtils.df6.format(Double.valueOf(latitude)) : latitude);//存采集数据 + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonObject + "失败-------"); + } + } +} + + + + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/well/core/util/PointConvertUtility.java b/src/main/java/org/well/well/core/util/PointConvertUtility.java new file mode 100644 index 0000000..088171a --- /dev/null +++ b/src/main/java/org/well/well/core/util/PointConvertUtility.java @@ -0,0 +1,99 @@ +package org.well.well.core.util; + +import com.alibaba.fastjson.JSONObject; +import com.google.gson.GsonBuilder; +import io.netty.handler.codec.http.HttpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class PointConvertUtility { + private static final Logger logger = LoggerFactory.getLogger(PointConvertUtility.class); + private static final String baiduUrl= "http://api.map.baidu.com/geoconv/v1/"; + private static final String baiduAk="QL9aqGNjgcRAGkt6F0BrsVmfGGOgjVyr"; + + private static final String gaodeUrl="https://restapi.amap.com/v3/assistant/coordinate/convert"; + private static final String gaodeKey="ab182d27663bbbaac890730b55db2754"; + + + public static Map convertBaiduAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("coords",coords); + params.put("ak",baiduAk); + params.put("from",1); + params.put("to",5); + String str = HttpClientUtils.post(baiduUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==0){ + JSONObject coordinate = (JSONObject)jsStr.getJSONArray("result").get(0); + double x = coordinate.getDouble("x"); + double y = coordinate.getDouble("y"); + result.put("x",x); + result.put("y",y); + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static Map convertGaodeAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("locations",coords); + params.put("key",gaodeKey); + params.put("coordsys","gps"); + String str = HttpClientUtils.post(gaodeUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==1){ + String coordinate = jsStr.getString("locations"); + String[] xy = coordinate.split(","); + if(xy!=null && xy.length >= 2){ + result.put("x",xy[0]); + result.put("y",xy[1]); + } + + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +// public static void convertCoordinate(BusWellInfo busWellInfo){ +// if(ToolUtil.isNotEmpty(busWellInfo.getCoordinateX()) && ToolUtil.isNotEmpty(busWellInfo.getCoordinateY())){ +// Map baiduCoordinate = PointConvertUtility.convertBaiduAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(baiduCoordinate)) { +// busWellInfo.setLngBaidu(baiduCoordinate.get("x").toString()); +// busWellInfo.setLatBaidu(baiduCoordinate.get("y").toString()); +// }else{ +// logger.error("{}百度坐标转换失败",busWellInfo.getWellCode()); +// } +// +// Map gaodeCoordinate = PointConvertUtility.convertGaodeAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(gaodeCoordinate)) { +// busWellInfo.setLngGaode(gaodeCoordinate.get("x").toString()); +// busWellInfo.setLatGaode(gaodeCoordinate.get("y").toString()); +// }else{ +// logger.error("{}高德坐标转换失败",busWellInfo.getWellCode()); +// } +// } +// } +} diff --git a/src/main/java/org/well/well/domain/Locator.java b/src/main/java/org/well/well/domain/Locator.java new file mode 100644 index 0000000..c6a901b --- /dev/null +++ b/src/main/java/org/well/well/domain/Locator.java @@ -0,0 +1,94 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + + +@Entity +@Table(name = "data_wellcover_loca") +public class Locator implements Serializable { + /** + * + */ + private static final long serialVersionUID = 429994083551525856L; + private Long dbId; + private String devCode; + private String wellCode; + private String longitude; + private String latitude; + private Date logtime; + private Date upTime; + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + + @Column(name = "LNG") + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + @Column(name = "LAT") + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + @Column(name = "UPTIME") + public Date getUpTime() { + return upTime; + } + + public void setUpTime(Date upTime) { + this.upTime = upTime; + } + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Locator(String devCode, String wellCode,String longitude, String latitude) { + this.devCode = devCode; + this.wellCode = wellCode; + this.latitude = latitude; + this.longitude = longitude; + this.logtime = new Date(); + } +} diff --git a/src/main/java/org/well/well/domain/SysUser.java b/src/main/java/org/well/well/domain/SysUser.java index 7021434..c70febb 100644 --- a/src/main/java/org/well/well/domain/SysUser.java +++ b/src/main/java/org/well/well/domain/SysUser.java @@ -5,7 +5,7 @@ /** *

- * 部门表 + * 人员表 *

* */ diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index fb58dd7..7f62c9b 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -10,6 +10,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Service public class AlarmRuleManager extends HibernateEntityDao { @@ -29,8 +32,8 @@ // criteria.createAlias("device", "device"); // criteria.add(Restrictions.eq("device.devCode", devCode)); criteria.add(Restrictions.eq("devCode", devCode)); - if(null!=sensorType) - criteria.add(Restrictions.eq("sensorType", sensorType)); + if (null != sensorType) + criteria.add(Restrictions.eq("sensorType", sensorType)); AlarmRule alarmRule = (AlarmRule) criteria.uniqueResult(); return alarmRule; } @@ -62,7 +65,7 @@ ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + - "^"+String.valueOf(alarmRule.getLowValue())) : ""); + "^" + String.valueOf(alarmRule.getLowValue())) : ""); } else if (DeviceTypeEnum.Methane.toString().equals(devTypeName)) { ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { @@ -79,4 +82,34 @@ return ruleStr; } + public Long getTenantIdBydep(String depId) { + try { + String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; + List tenantList = getSession().createSQLQuery(sql).list(); + if (tenantList.size() > 0) + return Long.valueOf(tenantList.get(0).toString()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + public List getRuleRank(String devCode, String depId) { + Long tenantId = getTenantIdBydep(depId); + if (null == tenantId) return null; + try { + Map paraMap = new HashMap(); + String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ + " ORDER BY level"; + paraMap.put("devcode", devCode); + paraMap.put("tenantId", tenantId); + List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); + return ruleRankList; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } } diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index fa1f6ce..40e045b 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -26,7 +26,6 @@ return get(deviceWell.getWellId()); } } - }catch (Exception e ){ e.printStackTrace(); } diff --git a/src/main/java/org/well/well/manager/DeviceWellManager.java b/src/main/java/org/well/well/manager/DeviceWellManager.java index e93a141..eb983c1 100644 --- a/src/main/java/org/well/well/manager/DeviceWellManager.java +++ b/src/main/java/org/well/well/manager/DeviceWellManager.java @@ -12,13 +12,18 @@ @Service public class DeviceWellManager extends HibernateEntityDao { + public DeviceWell getDeviceWellByDevice(Device device){ - Criteria criteria = getSession().createCriteria(DeviceWell.class); - criteria.add(Restrictions.eq("deviceId", device.getId())); - criteria.add(Restrictions.eq("valid", true)); - List deviceWellList = criteria.list(); - if (deviceWellList != null && deviceWellList.size() > 0) - return deviceWellList.get(0); + try { + Criteria criteria = getSession().createCriteria(DeviceWell.class); + criteria.add(Restrictions.eq("deviceId", device.getId())); + criteria.add(Restrictions.eq("valid", true)); + List deviceWellList = criteria.list(); + if (deviceWellList != null && deviceWellList.size() > 0) + return deviceWellList.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index e0b6b4b..bd4f3ee 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -12,14 +12,10 @@ import org.well.well.core.util.StringUtils; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; -import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Created by test203 on 2017/11/30. @@ -82,22 +78,38 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) > Float.valueOf(thresh)) {//超限 AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + //获取报警等级 + String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + if(busWell!=null){ + List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); + for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { + LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( + String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); + alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + break; + } + } + } + } + if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), - LiquidAlarmEnum.OVER_THRESH.getName()); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", - LiquidAlarmEnum.OVER_THRESH.getName(), level, device, + alarmContent, level, device, devCode, alarmJob.getWellCode(), upTime); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); diff --git a/src/main/java/org/well/well/manager/LocatorManager.java b/src/main/java/org/well/well/manager/LocatorManager.java new file mode 100644 index 0000000..8953d01 --- /dev/null +++ b/src/main/java/org/well/well/manager/LocatorManager.java @@ -0,0 +1,76 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DecimalUtils; +import org.well.well.core.util.PointConvertUtility; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.BusWell; +import org.well.well.domain.Locator; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +@Service +public class LocatorManager extends HibernateEntityDao { + @Resource + private BusWellManager busWellManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, + String longitude, String latitude) { + + Map resultMap = new HashMap(); + try { + Locator locator = new Locator(devCode, wellCode,longitude, latitude); + save(locator); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + try { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + if (busWell != null && "1".equals(busWell.getBfzt())) {//只有井处于布防状态下才写入经纬度数据 + for (int i = 0; i < jsonArray.size(); i++) { + String longitude = ((JSONObject) jsonArray.get(i)).get("longitude").toString(); + String latitude = ((JSONObject) jsonArray.get(i)).get("latitude").toString(); + if (StringUtils.isBlank(longitude) || StringUtils.isBlank(latitude)) { + longitude = null != busWell ? busWell.getLatBaidu() : longitude; + latitude = null != busWell ? busWell.getLatBaidu() : latitude; + } else { + if (Float.valueOf(longitude) < 1 || Float.valueOf(latitude) < 1) { + longitude = null != busWell ? busWell.getLatBaidu() : longitude; + latitude = null != busWell ? busWell.getLatBaidu() : latitude; + }else { +// Map stringObjectMap=PointConvertUtility. +// convertBaiduAPI(longitude,latitude); +// longitude=stringObjectMap!=null?stringObjectMap.get("x").toString():longitude; +// latitude=stringObjectMap!=null?stringObjectMap.get("y").toString():latitude; + + } + } + saveData(devCode,busWell==null?"":busWell.getWellCode(), + StringUtils.isNotBlank(longitude) ? DecimalUtils.df6.format(Double.valueOf(longitude)) : longitude, + StringUtils.isNotBlank(latitude) ? DecimalUtils.df6.format(Double.valueOf(latitude)) : latitude);//存采集数据 + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonObject + "失败-------"); + } + } +} + + + + diff --git a/src/main/java/org/well/well/manager/UserManager.java b/src/main/java/org/well/well/manager/UserManager.java index 7fb524d..003fa96 100644 --- a/src/main/java/org/well/well/manager/UserManager.java +++ b/src/main/java/org/well/well/manager/UserManager.java @@ -1,12 +1,12 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.StringUtils; import org.well.well.domain.BusWell; import org.well.well.domain.SysUser; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; @@ -17,8 +17,6 @@ @Resource - BusWellManager busWellManager; - @Resource UserClientManager userClientManager; private static final String[] strings={"1","2","3"};//状态(1:启用 2:冻结 3:删除) public List getUsersByWell(BusWell busWell){//根据井编号查负责人 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/well/core/util/PointConvertUtility.java b/src/main/java/org/well/well/core/util/PointConvertUtility.java new file mode 100644 index 0000000..088171a --- /dev/null +++ b/src/main/java/org/well/well/core/util/PointConvertUtility.java @@ -0,0 +1,99 @@ +package org.well.well.core.util; + +import com.alibaba.fastjson.JSONObject; +import com.google.gson.GsonBuilder; +import io.netty.handler.codec.http.HttpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class PointConvertUtility { + private static final Logger logger = LoggerFactory.getLogger(PointConvertUtility.class); + private static final String baiduUrl= "http://api.map.baidu.com/geoconv/v1/"; + private static final String baiduAk="QL9aqGNjgcRAGkt6F0BrsVmfGGOgjVyr"; + + private static final String gaodeUrl="https://restapi.amap.com/v3/assistant/coordinate/convert"; + private static final String gaodeKey="ab182d27663bbbaac890730b55db2754"; + + + public static Map convertBaiduAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("coords",coords); + params.put("ak",baiduAk); + params.put("from",1); + params.put("to",5); + String str = HttpClientUtils.post(baiduUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==0){ + JSONObject coordinate = (JSONObject)jsStr.getJSONArray("result").get(0); + double x = coordinate.getDouble("x"); + double y = coordinate.getDouble("y"); + result.put("x",x); + result.put("y",y); + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static Map convertGaodeAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("locations",coords); + params.put("key",gaodeKey); + params.put("coordsys","gps"); + String str = HttpClientUtils.post(gaodeUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==1){ + String coordinate = jsStr.getString("locations"); + String[] xy = coordinate.split(","); + if(xy!=null && xy.length >= 2){ + result.put("x",xy[0]); + result.put("y",xy[1]); + } + + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +// public static void convertCoordinate(BusWellInfo busWellInfo){ +// if(ToolUtil.isNotEmpty(busWellInfo.getCoordinateX()) && ToolUtil.isNotEmpty(busWellInfo.getCoordinateY())){ +// Map baiduCoordinate = PointConvertUtility.convertBaiduAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(baiduCoordinate)) { +// busWellInfo.setLngBaidu(baiduCoordinate.get("x").toString()); +// busWellInfo.setLatBaidu(baiduCoordinate.get("y").toString()); +// }else{ +// logger.error("{}百度坐标转换失败",busWellInfo.getWellCode()); +// } +// +// Map gaodeCoordinate = PointConvertUtility.convertGaodeAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(gaodeCoordinate)) { +// busWellInfo.setLngGaode(gaodeCoordinate.get("x").toString()); +// busWellInfo.setLatGaode(gaodeCoordinate.get("y").toString()); +// }else{ +// logger.error("{}高德坐标转换失败",busWellInfo.getWellCode()); +// } +// } +// } +} diff --git a/src/main/java/org/well/well/domain/Locator.java b/src/main/java/org/well/well/domain/Locator.java new file mode 100644 index 0000000..c6a901b --- /dev/null +++ b/src/main/java/org/well/well/domain/Locator.java @@ -0,0 +1,94 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + + +@Entity +@Table(name = "data_wellcover_loca") +public class Locator implements Serializable { + /** + * + */ + private static final long serialVersionUID = 429994083551525856L; + private Long dbId; + private String devCode; + private String wellCode; + private String longitude; + private String latitude; + private Date logtime; + private Date upTime; + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + + @Column(name = "LNG") + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + @Column(name = "LAT") + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + @Column(name = "UPTIME") + public Date getUpTime() { + return upTime; + } + + public void setUpTime(Date upTime) { + this.upTime = upTime; + } + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Locator(String devCode, String wellCode,String longitude, String latitude) { + this.devCode = devCode; + this.wellCode = wellCode; + this.latitude = latitude; + this.longitude = longitude; + this.logtime = new Date(); + } +} diff --git a/src/main/java/org/well/well/domain/SysUser.java b/src/main/java/org/well/well/domain/SysUser.java index 7021434..c70febb 100644 --- a/src/main/java/org/well/well/domain/SysUser.java +++ b/src/main/java/org/well/well/domain/SysUser.java @@ -5,7 +5,7 @@ /** *

- * 部门表 + * 人员表 *

* */ diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index fb58dd7..7f62c9b 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -10,6 +10,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Service public class AlarmRuleManager extends HibernateEntityDao { @@ -29,8 +32,8 @@ // criteria.createAlias("device", "device"); // criteria.add(Restrictions.eq("device.devCode", devCode)); criteria.add(Restrictions.eq("devCode", devCode)); - if(null!=sensorType) - criteria.add(Restrictions.eq("sensorType", sensorType)); + if (null != sensorType) + criteria.add(Restrictions.eq("sensorType", sensorType)); AlarmRule alarmRule = (AlarmRule) criteria.uniqueResult(); return alarmRule; } @@ -62,7 +65,7 @@ ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + - "^"+String.valueOf(alarmRule.getLowValue())) : ""); + "^" + String.valueOf(alarmRule.getLowValue())) : ""); } else if (DeviceTypeEnum.Methane.toString().equals(devTypeName)) { ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { @@ -79,4 +82,34 @@ return ruleStr; } + public Long getTenantIdBydep(String depId) { + try { + String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; + List tenantList = getSession().createSQLQuery(sql).list(); + if (tenantList.size() > 0) + return Long.valueOf(tenantList.get(0).toString()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + public List getRuleRank(String devCode, String depId) { + Long tenantId = getTenantIdBydep(depId); + if (null == tenantId) return null; + try { + Map paraMap = new HashMap(); + String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ + " ORDER BY level"; + paraMap.put("devcode", devCode); + paraMap.put("tenantId", tenantId); + List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); + return ruleRankList; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } } diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index fa1f6ce..40e045b 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -26,7 +26,6 @@ return get(deviceWell.getWellId()); } } - }catch (Exception e ){ e.printStackTrace(); } diff --git a/src/main/java/org/well/well/manager/DeviceWellManager.java b/src/main/java/org/well/well/manager/DeviceWellManager.java index e93a141..eb983c1 100644 --- a/src/main/java/org/well/well/manager/DeviceWellManager.java +++ b/src/main/java/org/well/well/manager/DeviceWellManager.java @@ -12,13 +12,18 @@ @Service public class DeviceWellManager extends HibernateEntityDao { + public DeviceWell getDeviceWellByDevice(Device device){ - Criteria criteria = getSession().createCriteria(DeviceWell.class); - criteria.add(Restrictions.eq("deviceId", device.getId())); - criteria.add(Restrictions.eq("valid", true)); - List deviceWellList = criteria.list(); - if (deviceWellList != null && deviceWellList.size() > 0) - return deviceWellList.get(0); + try { + Criteria criteria = getSession().createCriteria(DeviceWell.class); + criteria.add(Restrictions.eq("deviceId", device.getId())); + criteria.add(Restrictions.eq("valid", true)); + List deviceWellList = criteria.list(); + if (deviceWellList != null && deviceWellList.size() > 0) + return deviceWellList.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index e0b6b4b..bd4f3ee 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -12,14 +12,10 @@ import org.well.well.core.util.StringUtils; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; -import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Created by test203 on 2017/11/30. @@ -82,22 +78,38 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) > Float.valueOf(thresh)) {//超限 AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + //获取报警等级 + String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + if(busWell!=null){ + List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); + for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { + LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( + String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); + alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + break; + } + } + } + } + if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), - LiquidAlarmEnum.OVER_THRESH.getName()); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", - LiquidAlarmEnum.OVER_THRESH.getName(), level, device, + alarmContent, level, device, devCode, alarmJob.getWellCode(), upTime); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); diff --git a/src/main/java/org/well/well/manager/LocatorManager.java b/src/main/java/org/well/well/manager/LocatorManager.java new file mode 100644 index 0000000..8953d01 --- /dev/null +++ b/src/main/java/org/well/well/manager/LocatorManager.java @@ -0,0 +1,76 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DecimalUtils; +import org.well.well.core.util.PointConvertUtility; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.BusWell; +import org.well.well.domain.Locator; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +@Service +public class LocatorManager extends HibernateEntityDao { + @Resource + private BusWellManager busWellManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, + String longitude, String latitude) { + + Map resultMap = new HashMap(); + try { + Locator locator = new Locator(devCode, wellCode,longitude, latitude); + save(locator); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + try { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + if (busWell != null && "1".equals(busWell.getBfzt())) {//只有井处于布防状态下才写入经纬度数据 + for (int i = 0; i < jsonArray.size(); i++) { + String longitude = ((JSONObject) jsonArray.get(i)).get("longitude").toString(); + String latitude = ((JSONObject) jsonArray.get(i)).get("latitude").toString(); + if (StringUtils.isBlank(longitude) || StringUtils.isBlank(latitude)) { + longitude = null != busWell ? busWell.getLatBaidu() : longitude; + latitude = null != busWell ? busWell.getLatBaidu() : latitude; + } else { + if (Float.valueOf(longitude) < 1 || Float.valueOf(latitude) < 1) { + longitude = null != busWell ? busWell.getLatBaidu() : longitude; + latitude = null != busWell ? busWell.getLatBaidu() : latitude; + }else { +// Map stringObjectMap=PointConvertUtility. +// convertBaiduAPI(longitude,latitude); +// longitude=stringObjectMap!=null?stringObjectMap.get("x").toString():longitude; +// latitude=stringObjectMap!=null?stringObjectMap.get("y").toString():latitude; + + } + } + saveData(devCode,busWell==null?"":busWell.getWellCode(), + StringUtils.isNotBlank(longitude) ? DecimalUtils.df6.format(Double.valueOf(longitude)) : longitude, + StringUtils.isNotBlank(latitude) ? DecimalUtils.df6.format(Double.valueOf(latitude)) : latitude);//存采集数据 + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonObject + "失败-------"); + } + } +} + + + + diff --git a/src/main/java/org/well/well/manager/UserManager.java b/src/main/java/org/well/well/manager/UserManager.java index 7fb524d..003fa96 100644 --- a/src/main/java/org/well/well/manager/UserManager.java +++ b/src/main/java/org/well/well/manager/UserManager.java @@ -1,12 +1,12 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.StringUtils; import org.well.well.domain.BusWell; import org.well.well.domain.SysUser; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; @@ -17,8 +17,6 @@ @Resource - BusWellManager busWellManager; - @Resource UserClientManager userClientManager; private static final String[] strings={"1","2","3"};//状态(1:启用 2:冻结 3:删除) public List getUsersByWell(BusWell busWell){//根据井编号查负责人 diff --git a/src/main/java/org/well/well/resp/LocatorResponse.java b/src/main/java/org/well/well/resp/LocatorResponse.java new file mode 100644 index 0000000..584e42e --- /dev/null +++ b/src/main/java/org/well/well/resp/LocatorResponse.java @@ -0,0 +1,41 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LocatorManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class LocatorResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "StartupRequest"}; + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + LocatorManager locatorManager = ac.getBean(LocatorManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType"))) {//存储上报数据 + locatorManager.processNormalData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode, imei, iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f755f92..f0fc6af 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -125,9 +125,11 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; -// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":7.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; + AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java index 93e2b2b..33531af 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/LiquidAlarmEnum.java @@ -10,7 +10,10 @@ LiquidPressureFail("液位静压探头采集失败", 3), LiquidPressureError("液位静压探头数据异常", 4), LiquidUnknown("液位未知异常", 5), - OVER_THRESH("液位超限", 6); + OVER_THRESH("液位超限", 6), + OVER_THRESH1("一级液位超限", 7), + OVER_THRESH2("二级液位超限", 8), + OVER_THRESH3("三级液位超限", 9); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 4d84779..29c5bad 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -18,7 +18,8 @@ TempHumi("温湿度监测仪", 13), Concentrator("数据集中器", 14), Lamphouse("灯箱监测仪", 15), - Dig("开挖监测仪", 16); + Dig("开挖监测仪", 16), + Locator("井盖定位监测仪", 17); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/DecimalUtils.java b/src/main/java/org/well/well/core/util/DecimalUtils.java new file mode 100644 index 0000000..2d99778 --- /dev/null +++ b/src/main/java/org/well/well/core/util/DecimalUtils.java @@ -0,0 +1,11 @@ +package org.well.well.core.util; + +import java.text.DecimalFormat; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DecimalUtils { + public static DecimalFormat df6 = new DecimalFormat("####.000000"); + +} diff --git a/src/main/java/org/well/well/core/util/HttpClientUtils.java b/src/main/java/org/well/well/core/util/HttpClientUtils.java new file mode 100644 index 0000000..54fb984 --- /dev/null +++ b/src/main/java/org/well/well/core/util/HttpClientUtils.java @@ -0,0 +1,139 @@ +package org.well.well.core.util; + + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; + +import java.io.IOException; + +public class HttpClientUtils { + + /** + * ���� post������ʱ���Ӧ�ò����ݴ��ݲ�����ͬ���ز�ͬ���
+ */ + public static String post(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + // for (Map.Entry entry : headers.entrySet()) { + method.addRequestHeader("Content-type", + "application/json; charset=utf-8"); + method.addRequestHeader("Accept", "application/json"); +// method.addRequestHeader("J-WSSE", JWSSE); + // method.setEntity(new StringEntity(jsonParam.toString(), + // Charset.forName("UTF-8"))); + + // method.setRequestHeader(entry.getKey(), entry.getValue()); + // method.setRequestHeader("Accept-Charset", "UTF-8"); + // } + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + /** + * post�ύ�� + */ + public static String postForm(String uri, String body) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + PostMethod method = new PostMethod(uri); + method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// + method.addRequestHeader("Accept", "application/json"); + method.setRequestBody(body); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return new String(method.getResponseBody(), "UTF-8"); +// return method.getResponseBodyAsString(); + // return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return e.getMessage(); + } + return null; + } + + /** + * ���� get���� + */ + @SuppressWarnings("deprecation") + public static String get(String uri) { + HttpClient client = new HttpClient(); + client.setTimeout(6000); + GetMethod method = new GetMethod(uri); + try { + int statusCode = client.executeMethod(method); + if (statusCode == HttpStatus.SC_OK) { + return method.getResponseBodyAsString(); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + // try { + // System.out + // .println(HTTP + // .get("http://v.juhe.cn/sms/send?mobile=13691291634&tpl_id=42731&tpl_value=%23username%23%3D%E4%BD%99%E4%BD%B3%E5%BB%BA%26%23startTime%23%3D2017-08-15+14%3A30%26%23endTime%23%3D2017-08-15+17%3A00&dtype=json&key=302dc9a8655b1de25b1e1258db99f4ea")); + // } catch (Exception e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // + // String uri = "http://wrs.tunnel.qydev.com/ga_webservice/zdryPort"; + // + // String xml = + // "" + // + "" + // + "" + // + "" + // + " " + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "1" + // + "" + // + "" + ""; + // Map headers = new HashMap(); + // // headers.put("Content-Type", "text/xml;utf-8"); +// String uri = "http://22.192.40.34:8080/qlimg/imgserver/uploadBase64"; +// String body = "data:image/png," +// + Img.img2base64("d:/111.png"); +// String re = HTTP.post(uri, body); +// System.out.println(re); + } +} diff --git a/src/main/java/org/well/well/core/util/PointConvertUtility.java b/src/main/java/org/well/well/core/util/PointConvertUtility.java new file mode 100644 index 0000000..088171a --- /dev/null +++ b/src/main/java/org/well/well/core/util/PointConvertUtility.java @@ -0,0 +1,99 @@ +package org.well.well.core.util; + +import com.alibaba.fastjson.JSONObject; +import com.google.gson.GsonBuilder; +import io.netty.handler.codec.http.HttpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class PointConvertUtility { + private static final Logger logger = LoggerFactory.getLogger(PointConvertUtility.class); + private static final String baiduUrl= "http://api.map.baidu.com/geoconv/v1/"; + private static final String baiduAk="QL9aqGNjgcRAGkt6F0BrsVmfGGOgjVyr"; + + private static final String gaodeUrl="https://restapi.amap.com/v3/assistant/coordinate/convert"; + private static final String gaodeKey="ab182d27663bbbaac890730b55db2754"; + + + public static Map convertBaiduAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("coords",coords); + params.put("ak",baiduAk); + params.put("from",1); + params.put("to",5); + String str = HttpClientUtils.post(baiduUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==0){ + JSONObject coordinate = (JSONObject)jsStr.getJSONArray("result").get(0); + double x = coordinate.getDouble("x"); + double y = coordinate.getDouble("y"); + result.put("x",x); + result.put("y",y); + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static Map convertGaodeAPI(String lng, String lat){ + Map result = new HashMap(); + String coords = lng+","+lat; + try { + Map params = new HashMap(); + params.put("locations",coords); + params.put("key",gaodeKey); + params.put("coordsys","gps"); + String str = HttpClientUtils.post(gaodeUrl, + new GsonBuilder().enableComplexMapKeySerialization(). + create().toJson(params)); + JSONObject jsStr = JSONObject.parseObject(str); + if(jsStr.getInteger("status")==1){ + String coordinate = jsStr.getString("locations"); + String[] xy = coordinate.split(","); + if(xy!=null && xy.length >= 2){ + result.put("x",xy[0]); + result.put("y",xy[1]); + } + + return result; + }else{ + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +// public static void convertCoordinate(BusWellInfo busWellInfo){ +// if(ToolUtil.isNotEmpty(busWellInfo.getCoordinateX()) && ToolUtil.isNotEmpty(busWellInfo.getCoordinateY())){ +// Map baiduCoordinate = PointConvertUtility.convertBaiduAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(baiduCoordinate)) { +// busWellInfo.setLngBaidu(baiduCoordinate.get("x").toString()); +// busWellInfo.setLatBaidu(baiduCoordinate.get("y").toString()); +// }else{ +// logger.error("{}百度坐标转换失败",busWellInfo.getWellCode()); +// } +// +// Map gaodeCoordinate = PointConvertUtility.convertGaodeAPI(busWellInfo.getCoordinateX(),busWellInfo.getCoordinateY()); +// if(ToolUtil.isNotEmpty(gaodeCoordinate)) { +// busWellInfo.setLngGaode(gaodeCoordinate.get("x").toString()); +// busWellInfo.setLatGaode(gaodeCoordinate.get("y").toString()); +// }else{ +// logger.error("{}高德坐标转换失败",busWellInfo.getWellCode()); +// } +// } +// } +} diff --git a/src/main/java/org/well/well/domain/Locator.java b/src/main/java/org/well/well/domain/Locator.java new file mode 100644 index 0000000..c6a901b --- /dev/null +++ b/src/main/java/org/well/well/domain/Locator.java @@ -0,0 +1,94 @@ +package org.well.well.domain; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + + +@Entity +@Table(name = "data_wellcover_loca") +public class Locator implements Serializable { + /** + * + */ + private static final long serialVersionUID = 429994083551525856L; + private Long dbId; + private String devCode; + private String wellCode; + private String longitude; + private String latitude; + private Date logtime; + private Date upTime; + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + public Long getDbId() { + return dbId; + } + public void setDbId(Long dbId) { + this.dbId = dbId; + } + + @Column(name = "DEVCODE") + public String getDevCode() { + return devCode; + } + + public void setDevCode(String devCode) { + this.devCode = devCode; + } + + + @Column(name = "LNG") + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + @Column(name = "LAT") + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + @Column(name = "LOGTIME") + public Date getLogtime() { + return logtime; + } + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + @Column(name = "UPTIME") + public Date getUpTime() { + return upTime; + } + + public void setUpTime(Date upTime) { + this.upTime = upTime; + } + @Column(name = "WELL_CODE") + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public Locator(String devCode, String wellCode,String longitude, String latitude) { + this.devCode = devCode; + this.wellCode = wellCode; + this.latitude = latitude; + this.longitude = longitude; + this.logtime = new Date(); + } +} diff --git a/src/main/java/org/well/well/domain/SysUser.java b/src/main/java/org/well/well/domain/SysUser.java index 7021434..c70febb 100644 --- a/src/main/java/org/well/well/domain/SysUser.java +++ b/src/main/java/org/well/well/domain/SysUser.java @@ -5,7 +5,7 @@ /** *

- * 部门表 + * 人员表 *

* */ diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index fb58dd7..7f62c9b 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -10,6 +10,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Service public class AlarmRuleManager extends HibernateEntityDao { @@ -29,8 +32,8 @@ // criteria.createAlias("device", "device"); // criteria.add(Restrictions.eq("device.devCode", devCode)); criteria.add(Restrictions.eq("devCode", devCode)); - if(null!=sensorType) - criteria.add(Restrictions.eq("sensorType", sensorType)); + if (null != sensorType) + criteria.add(Restrictions.eq("sensorType", sensorType)); AlarmRule alarmRule = (AlarmRule) criteria.uniqueResult(); return alarmRule; } @@ -62,7 +65,7 @@ ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + - "^"+String.valueOf(alarmRule.getLowValue())) : ""); + "^" + String.valueOf(alarmRule.getLowValue())) : ""); } else if (DeviceTypeEnum.Methane.toString().equals(devTypeName)) { ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { @@ -79,4 +82,34 @@ return ruleStr; } + public Long getTenantIdBydep(String depId) { + try { + String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; + List tenantList = getSession().createSQLQuery(sql).list(); + if (tenantList.size() > 0) + return Long.valueOf(tenantList.get(0).toString()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + public List getRuleRank(String devCode, String depId) { + Long tenantId = getTenantIdBydep(depId); + if (null == tenantId) return null; + try { + Map paraMap = new HashMap(); + String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ + " ORDER BY level"; + paraMap.put("devcode", devCode); + paraMap.put("tenantId", tenantId); + List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); + return ruleRankList; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } } diff --git a/src/main/java/org/well/well/manager/BusWellManager.java b/src/main/java/org/well/well/manager/BusWellManager.java index fa1f6ce..40e045b 100644 --- a/src/main/java/org/well/well/manager/BusWellManager.java +++ b/src/main/java/org/well/well/manager/BusWellManager.java @@ -26,7 +26,6 @@ return get(deviceWell.getWellId()); } } - }catch (Exception e ){ e.printStackTrace(); } diff --git a/src/main/java/org/well/well/manager/DeviceWellManager.java b/src/main/java/org/well/well/manager/DeviceWellManager.java index e93a141..eb983c1 100644 --- a/src/main/java/org/well/well/manager/DeviceWellManager.java +++ b/src/main/java/org/well/well/manager/DeviceWellManager.java @@ -12,13 +12,18 @@ @Service public class DeviceWellManager extends HibernateEntityDao { + public DeviceWell getDeviceWellByDevice(Device device){ - Criteria criteria = getSession().createCriteria(DeviceWell.class); - criteria.add(Restrictions.eq("deviceId", device.getId())); - criteria.add(Restrictions.eq("valid", true)); - List deviceWellList = criteria.list(); - if (deviceWellList != null && deviceWellList.size() > 0) - return deviceWellList.get(0); + try { + Criteria criteria = getSession().createCriteria(DeviceWell.class); + criteria.add(Restrictions.eq("deviceId", device.getId())); + criteria.add(Restrictions.eq("valid", true)); + List deviceWellList = criteria.list(); + if (deviceWellList != null && deviceWellList.size() > 0) + return deviceWellList.get(0); + }catch (Exception e){ + e.printStackTrace(); + } return null; } } diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index e0b6b4b..bd4f3ee 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -12,14 +12,10 @@ import org.well.well.core.util.StringUtils; import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; -import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Created by test203 on 2017/11/30. @@ -82,22 +78,38 @@ String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (StringUtils.isNotBlank(thresh) && Float.valueOf(level) > Float.valueOf(thresh)) {//超限 AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + //获取报警等级 + String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + if(busWell!=null){ + List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); + for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { + LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( + String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); + alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + break; + } + } + } + } + if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), - LiquidAlarmEnum.OVER_THRESH.getName()); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", - LiquidAlarmEnum.OVER_THRESH.getName(), level, device, + alarmContent, level, device, devCode, alarmJob.getWellCode(), upTime); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); diff --git a/src/main/java/org/well/well/manager/LocatorManager.java b/src/main/java/org/well/well/manager/LocatorManager.java new file mode 100644 index 0000000..8953d01 --- /dev/null +++ b/src/main/java/org/well/well/manager/LocatorManager.java @@ -0,0 +1,76 @@ +package org.well.well.manager; + + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.DecimalUtils; +import org.well.well.core.util.PointConvertUtility; +import org.well.well.core.util.StringUtils; +import org.well.well.domain.BusWell; +import org.well.well.domain.Locator; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +@Service +public class LocatorManager extends HibernateEntityDao { + @Resource + private BusWellManager busWellManager; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + public Map saveData(String devCode, String wellCode, + String longitude, String latitude) { + + Map resultMap = new HashMap(); + try { + Locator locator = new Locator(devCode, wellCode,longitude, latitude); + save(locator); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + public void processNormalData(JSONObject jsonObject, String devCode) { + try { + JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + BusWell busWell = busWellManager.getWellByDevCode(devCode); + if (busWell != null && "1".equals(busWell.getBfzt())) {//只有井处于布防状态下才写入经纬度数据 + for (int i = 0; i < jsonArray.size(); i++) { + String longitude = ((JSONObject) jsonArray.get(i)).get("longitude").toString(); + String latitude = ((JSONObject) jsonArray.get(i)).get("latitude").toString(); + if (StringUtils.isBlank(longitude) || StringUtils.isBlank(latitude)) { + longitude = null != busWell ? busWell.getLatBaidu() : longitude; + latitude = null != busWell ? busWell.getLatBaidu() : latitude; + } else { + if (Float.valueOf(longitude) < 1 || Float.valueOf(latitude) < 1) { + longitude = null != busWell ? busWell.getLatBaidu() : longitude; + latitude = null != busWell ? busWell.getLatBaidu() : latitude; + }else { +// Map stringObjectMap=PointConvertUtility. +// convertBaiduAPI(longitude,latitude); +// longitude=stringObjectMap!=null?stringObjectMap.get("x").toString():longitude; +// latitude=stringObjectMap!=null?stringObjectMap.get("y").toString():latitude; + + } + } + saveData(devCode,busWell==null?"":busWell.getWellCode(), + StringUtils.isNotBlank(longitude) ? DecimalUtils.df6.format(Double.valueOf(longitude)) : longitude, + StringUtils.isNotBlank(latitude) ? DecimalUtils.df6.format(Double.valueOf(latitude)) : latitude);//存采集数据 + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonObject + "失败-------"); + } + } +} + + + + diff --git a/src/main/java/org/well/well/manager/UserManager.java b/src/main/java/org/well/well/manager/UserManager.java index 7fb524d..003fa96 100644 --- a/src/main/java/org/well/well/manager/UserManager.java +++ b/src/main/java/org/well/well/manager/UserManager.java @@ -1,12 +1,12 @@ package org.well.well.manager; +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Service; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.StringUtils; import org.well.well.domain.BusWell; import org.well.well.domain.SysUser; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; @@ -17,8 +17,6 @@ @Resource - BusWellManager busWellManager; - @Resource UserClientManager userClientManager; private static final String[] strings={"1","2","3"};//状态(1:启用 2:冻结 3:删除) public List getUsersByWell(BusWell busWell){//根据井编号查负责人 diff --git a/src/main/java/org/well/well/resp/LocatorResponse.java b/src/main/java/org/well/well/resp/LocatorResponse.java new file mode 100644 index 0000000..584e42e --- /dev/null +++ b/src/main/java/org/well/well/resp/LocatorResponse.java @@ -0,0 +1,41 @@ +package org.well.well.resp; + +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.base.AbstractResponse; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LocatorManager; + +/** + * Created by lenovo on 2018/1/9. + */ +public class LocatorResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final String[] mType = {"Data", "Event", "StartupRequest"}; + + @Override + public void process(String content) { + ClassPathXmlApplicationContext ac = this.getAc(); + LocatorManager locatorManager = ac.getBean(LocatorManager.class); + ImeiManager imeiManager = ac.getBean(ImeiManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("devCode").toString(); + logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); + JSONObject jsonObject = (JSONObject) json.get("mBody"); + if (mType[0].equals(json.get("mType"))) {//存储上报数据 + locatorManager.processNormalData(jsonObject,devCode); + } else if (mType[2].equals(json.get("mType"))) {//三码存储 + try { + String imei = jsonObject.get("imei").toString(); + String iccid = jsonObject.get("iccid").toString(); + imeiManager.saveData(devCode, imei, iccid); + } catch (Exception e) { + e.printStackTrace(); + logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); + } + } + } +} diff --git a/src/main/java/org/well/well/util/ResponseResolver.java b/src/main/java/org/well/well/util/ResponseResolver.java index 97e72a4..60f416f 100644 --- a/src/main/java/org/well/well/util/ResponseResolver.java +++ b/src/main/java/org/well/well/util/ResponseResolver.java @@ -25,6 +25,8 @@ abstractResponseHashMap.put(DeviceTypeEnum.WasteGas.name(), new WasteGasResponse()); abstractResponseHashMap.put(DeviceTypeEnum.TempHumi.name(), new TempHumiResponse()); abstractResponseHashMap.put(DeviceTypeEnum.Dig.name(), new NoiseDigResponse()); + abstractResponseHashMap.put(DeviceTypeEnum.Dig.name(), new NoiseDigResponse()); + abstractResponseHashMap.put(DeviceTypeEnum.Locator.name(), new LocatorResponse()); }