diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; 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 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterHour.java b/src/main/java/org/well/well/domain/DataMeterHour.java new file mode 100644 index 0000000..9b12e9d --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterHour.java @@ -0,0 +1,416 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每小时数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_hour") +public class DataMeterHour implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + public DataMeterHour(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterHour.java b/src/main/java/org/well/well/domain/DataMeterHour.java new file mode 100644 index 0000000..9b12e9d --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterHour.java @@ -0,0 +1,416 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每小时数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_hour") +public class DataMeterHour implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + public DataMeterHour(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterMin.java b/src/main/java/org/well/well/domain/DataMeterMin.java new file mode 100644 index 0000000..97f84ae --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterMin.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪分钟数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_min") +public class DataMeterMin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterMin(Map meterMap,String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterHour.java b/src/main/java/org/well/well/domain/DataMeterHour.java new file mode 100644 index 0000000..9b12e9d --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterHour.java @@ -0,0 +1,416 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每小时数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_hour") +public class DataMeterHour implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + public DataMeterHour(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterMin.java b/src/main/java/org/well/well/domain/DataMeterMin.java new file mode 100644 index 0000000..97f84ae --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterMin.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪分钟数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_min") +public class DataMeterMin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterMin(Map meterMap,String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/manager/MeterDayManager.java b/src/main/java/org/well/well/manager/MeterDayManager.java new file mode 100644 index 0000000..fae4fa6 --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterDayManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterDayManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + + @Transactional + public void processMeterData(Map meterMap) { + + try { + String devCode = meterMap.get("devCode"); + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterDay(meterMap, null == busWell ? "" : busWell.getWellCode())); + + } 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 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterHour.java b/src/main/java/org/well/well/domain/DataMeterHour.java new file mode 100644 index 0000000..9b12e9d --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterHour.java @@ -0,0 +1,416 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每小时数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_hour") +public class DataMeterHour implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + public DataMeterHour(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterMin.java b/src/main/java/org/well/well/domain/DataMeterMin.java new file mode 100644 index 0000000..97f84ae --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterMin.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪分钟数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_min") +public class DataMeterMin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterMin(Map meterMap,String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/manager/MeterDayManager.java b/src/main/java/org/well/well/manager/MeterDayManager.java new file mode 100644 index 0000000..fae4fa6 --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterDayManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterDayManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + + @Transactional + public void processMeterData(Map meterMap) { + + try { + String devCode = meterMap.get("devCode"); + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterDay(meterMap, null == busWell ? "" : busWell.getWellCode())); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterHourManager.java b/src/main/java/org/well/well/manager/MeterHourManager.java new file mode 100644 index 0000000..6a3867d --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterHourManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterHourManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterHour(meterMap,null==busWell?"":busWell.getWellCode())); + + }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 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterHour.java b/src/main/java/org/well/well/domain/DataMeterHour.java new file mode 100644 index 0000000..9b12e9d --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterHour.java @@ -0,0 +1,416 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每小时数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_hour") +public class DataMeterHour implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + public DataMeterHour(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterMin.java b/src/main/java/org/well/well/domain/DataMeterMin.java new file mode 100644 index 0000000..97f84ae --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterMin.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪分钟数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_min") +public class DataMeterMin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterMin(Map meterMap,String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/manager/MeterDayManager.java b/src/main/java/org/well/well/manager/MeterDayManager.java new file mode 100644 index 0000000..fae4fa6 --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterDayManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterDayManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + + @Transactional + public void processMeterData(Map meterMap) { + + try { + String devCode = meterMap.get("devCode"); + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterDay(meterMap, null == busWell ? "" : busWell.getWellCode())); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterHourManager.java b/src/main/java/org/well/well/manager/MeterHourManager.java new file mode 100644 index 0000000..6a3867d --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterHourManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterHourManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterHour(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..7618fa4 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -9,6 +9,7 @@ import org.well.well.domain.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.Map; @Service @@ -21,95 +22,125 @@ BusWellManager busWellManager; @Resource AlarmJobManager alarmJobManager; + @Resource + MeterMinManager meterMinManager; + @Resource + MeterHourManager meterHourManager; + @Resource + MeterDayManager meterDayManager; + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + + private static Map devCodeMap = new HashMap(); + + static { + devCodeMap.put("399435X0000002", "2006243001"); + devCodeMap.put("399435X0000001", "2006243002"); + } @Transactional - public void processMeterData(Map meterMap){ - try { - String devCode=meterMap.get("devCode"); - //1.清离线 - deviceManager.clearOffline(devCode); - //2.存数据 - BusWell busWell = busWellManager.getWellByDevCode(devCode); - save(new DataMeter(meterMap,null==busWell?"":busWell.getWellCode())); - //3.有无超限 - String alarmContent = "", alarmValue = ""; - if(StringUtils.isNotBlank(meterMap.get("temp"))&&Float.valueOf(meterMap.get("temp"))>=60){ - alarmContent+="温度超限报警,"; - alarmValue+="温度:" + meterMap.get("temp") + "℃,"; - } - if(StringUtils.isNotBlank(meterMap.get("PH"))&&(Float.valueOf(meterMap.get("PH"))>=10|| - Float.valueOf(meterMap.get("PH"))<=6)){ - alarmContent+="PH值超限报警,"; - alarmValue+="PH:" + meterMap.get("PH") + ","; - } - if(StringUtils.isNotBlank(meterMap.get("conductivity"))&& - Float.valueOf(meterMap.get("conductivity"))>=5){ - alarmContent+="电导率超限报警,"; - alarmValue+="电导率:" + meterMap.get("conductivity") + "mS/cm,"; - } - if(StringUtils.isNotBlank(meterMap.get("DO"))&&Float.valueOf(meterMap.get("DO"))>=20){ - alarmContent+="溶解氧超限报警,"; - alarmValue+="溶解氧:" + meterMap.get("DO") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("turbidity"))&&Float.valueOf(meterMap.get("turbidity"))>=1000){ - alarmContent+="浊度超限报警,"; - alarmValue+="浊度:" + meterMap.get("turbidity") + "NTU,"; - } - if(StringUtils.isNotBlank(meterMap.get("COD"))&&Float.valueOf(meterMap.get("COD"))>=500){ - alarmContent+="化学需氧量超限报警,"; - alarmValue+="化学需氧量:" + meterMap.get("COD") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("AN"))&&Float.valueOf(meterMap.get("AN"))>=20){ - alarmContent+="氨氮超限报警,"; - alarmValue+="氨氮:" + meterMap.get("AN") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TP"))&&Float.valueOf(meterMap.get("TP"))>=15){ - alarmContent+="总磷超限报警,"; - alarmValue+="总磷:" + meterMap.get("TP") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TN"))&&Float.valueOf(meterMap.get("TN"))>=30){ - alarmContent+="总氮超限报警,"; - alarmValue+="总氮:" + meterMap.get("TN") + "mg/L,"; - } - if (StringUtils.isNotBlank(alarmContent)) { - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); - } else {//不存在上一条报警时 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 - //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); - //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); + public void processMeterData(Map meterMap) { + + String devCodeBefore = meterMap.get("devCode"); + if ("399435X0000002".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243001"); + } else if ("399435X0000001".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243002"); + } + String CN = meterMap.get("CN"); + if (cnArr[1].equals(CN)) { + meterMinManager.processMeterData(meterMap); + } else if (cnArr[2].equals(CN)) { + meterHourManager.processMeterData(meterMap); + } else if (cnArr[3].equals(CN)) { + meterDayManager.processMeterData(meterMap); + } else if (cnArr[0].equals(CN)) { + try { + String devCode = meterMap.get("devCode"); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeter(meterMap, null == busWell ? "" : busWell.getWellCode())); + //3.有无超限 + String alarmContent = "", alarmValue = ""; + if (StringUtils.isNotBlank(meterMap.get("temp")) && Float.valueOf(meterMap.get("temp")) >= 60) { + alarmContent += "温度超限报警,"; + alarmValue += "温度:" + meterMap.get("temp") + "℃,"; + } + if (StringUtils.isNotBlank(meterMap.get("PH")) && (Float.valueOf(meterMap.get("PH")) >= 10 || + Float.valueOf(meterMap.get("PH")) <= 6)) { + alarmContent += "PH值超限报警,"; + alarmValue += "PH:" + meterMap.get("PH") + ","; + } + if (StringUtils.isNotBlank(meterMap.get("conductivity")) && + Float.valueOf(meterMap.get("conductivity")) >= 5) { + alarmContent += "电导率超限报警,"; + alarmValue += "电导率:" + meterMap.get("conductivity") + "mS/cm,"; + } + if (StringUtils.isNotBlank(meterMap.get("DO")) && Float.valueOf(meterMap.get("DO")) >= 20) { + alarmContent += "溶解氧超限报警,"; + alarmValue += "溶解氧:" + meterMap.get("DO") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("turbidity")) && Float.valueOf(meterMap.get("turbidity")) >= 1000) { + alarmContent += "浊度超限报警,"; + alarmValue += "浊度:" + meterMap.get("turbidity") + "NTU,"; + } + if (StringUtils.isNotBlank(meterMap.get("COD")) && Float.valueOf(meterMap.get("COD")) >= 500) { + alarmContent += "化学需氧量超限报警,"; + alarmValue += "化学需氧量:" + meterMap.get("COD") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("AN")) && Float.valueOf(meterMap.get("AN")) >= 20) { + alarmContent += "氨氮超限报警,"; + alarmValue += "氨氮:" + meterMap.get("AN") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TP")) && Float.valueOf(meterMap.get("TP")) >= 15) { + alarmContent += "总磷超限报警,"; + alarmValue += "总磷:" + meterMap.get("TP") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TN")) && Float.valueOf(meterMap.get("TN")) >= 30) { + alarmContent += "总氮超限报警,"; + alarmValue += "总氮:" + meterMap.get("TN") + "mg/L,"; + } + if (StringUtils.isNotBlank(alarmContent)) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(), "1"); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); - ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? - busWell.getWellCode() : ""); + ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? + busWell.getWellCode() : ""); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } - } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 - alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } catch (Exception e) { + e.printStackTrace(); } - }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 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterHour.java b/src/main/java/org/well/well/domain/DataMeterHour.java new file mode 100644 index 0000000..9b12e9d --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterHour.java @@ -0,0 +1,416 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每小时数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_hour") +public class DataMeterHour implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + public DataMeterHour(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterMin.java b/src/main/java/org/well/well/domain/DataMeterMin.java new file mode 100644 index 0000000..97f84ae --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterMin.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪分钟数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_min") +public class DataMeterMin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterMin(Map meterMap,String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/manager/MeterDayManager.java b/src/main/java/org/well/well/manager/MeterDayManager.java new file mode 100644 index 0000000..fae4fa6 --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterDayManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterDayManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + + @Transactional + public void processMeterData(Map meterMap) { + + try { + String devCode = meterMap.get("devCode"); + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterDay(meterMap, null == busWell ? "" : busWell.getWellCode())); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterHourManager.java b/src/main/java/org/well/well/manager/MeterHourManager.java new file mode 100644 index 0000000..6a3867d --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterHourManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterHourManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterHour(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..7618fa4 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -9,6 +9,7 @@ import org.well.well.domain.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.Map; @Service @@ -21,95 +22,125 @@ BusWellManager busWellManager; @Resource AlarmJobManager alarmJobManager; + @Resource + MeterMinManager meterMinManager; + @Resource + MeterHourManager meterHourManager; + @Resource + MeterDayManager meterDayManager; + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + + private static Map devCodeMap = new HashMap(); + + static { + devCodeMap.put("399435X0000002", "2006243001"); + devCodeMap.put("399435X0000001", "2006243002"); + } @Transactional - public void processMeterData(Map meterMap){ - try { - String devCode=meterMap.get("devCode"); - //1.清离线 - deviceManager.clearOffline(devCode); - //2.存数据 - BusWell busWell = busWellManager.getWellByDevCode(devCode); - save(new DataMeter(meterMap,null==busWell?"":busWell.getWellCode())); - //3.有无超限 - String alarmContent = "", alarmValue = ""; - if(StringUtils.isNotBlank(meterMap.get("temp"))&&Float.valueOf(meterMap.get("temp"))>=60){ - alarmContent+="温度超限报警,"; - alarmValue+="温度:" + meterMap.get("temp") + "℃,"; - } - if(StringUtils.isNotBlank(meterMap.get("PH"))&&(Float.valueOf(meterMap.get("PH"))>=10|| - Float.valueOf(meterMap.get("PH"))<=6)){ - alarmContent+="PH值超限报警,"; - alarmValue+="PH:" + meterMap.get("PH") + ","; - } - if(StringUtils.isNotBlank(meterMap.get("conductivity"))&& - Float.valueOf(meterMap.get("conductivity"))>=5){ - alarmContent+="电导率超限报警,"; - alarmValue+="电导率:" + meterMap.get("conductivity") + "mS/cm,"; - } - if(StringUtils.isNotBlank(meterMap.get("DO"))&&Float.valueOf(meterMap.get("DO"))>=20){ - alarmContent+="溶解氧超限报警,"; - alarmValue+="溶解氧:" + meterMap.get("DO") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("turbidity"))&&Float.valueOf(meterMap.get("turbidity"))>=1000){ - alarmContent+="浊度超限报警,"; - alarmValue+="浊度:" + meterMap.get("turbidity") + "NTU,"; - } - if(StringUtils.isNotBlank(meterMap.get("COD"))&&Float.valueOf(meterMap.get("COD"))>=500){ - alarmContent+="化学需氧量超限报警,"; - alarmValue+="化学需氧量:" + meterMap.get("COD") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("AN"))&&Float.valueOf(meterMap.get("AN"))>=20){ - alarmContent+="氨氮超限报警,"; - alarmValue+="氨氮:" + meterMap.get("AN") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TP"))&&Float.valueOf(meterMap.get("TP"))>=15){ - alarmContent+="总磷超限报警,"; - alarmValue+="总磷:" + meterMap.get("TP") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TN"))&&Float.valueOf(meterMap.get("TN"))>=30){ - alarmContent+="总氮超限报警,"; - alarmValue+="总氮:" + meterMap.get("TN") + "mg/L,"; - } - if (StringUtils.isNotBlank(alarmContent)) { - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); - } else {//不存在上一条报警时 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 - //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); - //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); + public void processMeterData(Map meterMap) { + + String devCodeBefore = meterMap.get("devCode"); + if ("399435X0000002".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243001"); + } else if ("399435X0000001".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243002"); + } + String CN = meterMap.get("CN"); + if (cnArr[1].equals(CN)) { + meterMinManager.processMeterData(meterMap); + } else if (cnArr[2].equals(CN)) { + meterHourManager.processMeterData(meterMap); + } else if (cnArr[3].equals(CN)) { + meterDayManager.processMeterData(meterMap); + } else if (cnArr[0].equals(CN)) { + try { + String devCode = meterMap.get("devCode"); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeter(meterMap, null == busWell ? "" : busWell.getWellCode())); + //3.有无超限 + String alarmContent = "", alarmValue = ""; + if (StringUtils.isNotBlank(meterMap.get("temp")) && Float.valueOf(meterMap.get("temp")) >= 60) { + alarmContent += "温度超限报警,"; + alarmValue += "温度:" + meterMap.get("temp") + "℃,"; + } + if (StringUtils.isNotBlank(meterMap.get("PH")) && (Float.valueOf(meterMap.get("PH")) >= 10 || + Float.valueOf(meterMap.get("PH")) <= 6)) { + alarmContent += "PH值超限报警,"; + alarmValue += "PH:" + meterMap.get("PH") + ","; + } + if (StringUtils.isNotBlank(meterMap.get("conductivity")) && + Float.valueOf(meterMap.get("conductivity")) >= 5) { + alarmContent += "电导率超限报警,"; + alarmValue += "电导率:" + meterMap.get("conductivity") + "mS/cm,"; + } + if (StringUtils.isNotBlank(meterMap.get("DO")) && Float.valueOf(meterMap.get("DO")) >= 20) { + alarmContent += "溶解氧超限报警,"; + alarmValue += "溶解氧:" + meterMap.get("DO") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("turbidity")) && Float.valueOf(meterMap.get("turbidity")) >= 1000) { + alarmContent += "浊度超限报警,"; + alarmValue += "浊度:" + meterMap.get("turbidity") + "NTU,"; + } + if (StringUtils.isNotBlank(meterMap.get("COD")) && Float.valueOf(meterMap.get("COD")) >= 500) { + alarmContent += "化学需氧量超限报警,"; + alarmValue += "化学需氧量:" + meterMap.get("COD") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("AN")) && Float.valueOf(meterMap.get("AN")) >= 20) { + alarmContent += "氨氮超限报警,"; + alarmValue += "氨氮:" + meterMap.get("AN") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TP")) && Float.valueOf(meterMap.get("TP")) >= 15) { + alarmContent += "总磷超限报警,"; + alarmValue += "总磷:" + meterMap.get("TP") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TN")) && Float.valueOf(meterMap.get("TN")) >= 30) { + alarmContent += "总氮超限报警,"; + alarmValue += "总氮:" + meterMap.get("TN") + "mg/L,"; + } + if (StringUtils.isNotBlank(alarmContent)) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(), "1"); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); - ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? - busWell.getWellCode() : ""); + ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? + busWell.getWellCode() : ""); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } - } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 - alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } catch (Exception e) { + e.printStackTrace(); } - }catch (Exception e){ - e.printStackTrace(); } } } diff --git a/src/main/java/org/well/well/manager/MeterMinManager.java b/src/main/java/org/well/well/manager/MeterMinManager.java new file mode 100644 index 0000000..2068dfa --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterMinManager.java @@ -0,0 +1,32 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.BusWell; +import org.well.well.domain.DataMeter; +import org.well.well.domain.DataMeterMin; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterMinManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + //1.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterMin(meterMap,null==busWell?"":busWell.getWellCode())); + + }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 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterHour.java b/src/main/java/org/well/well/domain/DataMeterHour.java new file mode 100644 index 0000000..9b12e9d --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterHour.java @@ -0,0 +1,416 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每小时数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_hour") +public class DataMeterHour implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + public DataMeterHour(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterMin.java b/src/main/java/org/well/well/domain/DataMeterMin.java new file mode 100644 index 0000000..97f84ae --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterMin.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪分钟数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_min") +public class DataMeterMin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterMin(Map meterMap,String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/manager/MeterDayManager.java b/src/main/java/org/well/well/manager/MeterDayManager.java new file mode 100644 index 0000000..fae4fa6 --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterDayManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterDayManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + + @Transactional + public void processMeterData(Map meterMap) { + + try { + String devCode = meterMap.get("devCode"); + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterDay(meterMap, null == busWell ? "" : busWell.getWellCode())); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterHourManager.java b/src/main/java/org/well/well/manager/MeterHourManager.java new file mode 100644 index 0000000..6a3867d --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterHourManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterHourManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterHour(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..7618fa4 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -9,6 +9,7 @@ import org.well.well.domain.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.Map; @Service @@ -21,95 +22,125 @@ BusWellManager busWellManager; @Resource AlarmJobManager alarmJobManager; + @Resource + MeterMinManager meterMinManager; + @Resource + MeterHourManager meterHourManager; + @Resource + MeterDayManager meterDayManager; + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + + private static Map devCodeMap = new HashMap(); + + static { + devCodeMap.put("399435X0000002", "2006243001"); + devCodeMap.put("399435X0000001", "2006243002"); + } @Transactional - public void processMeterData(Map meterMap){ - try { - String devCode=meterMap.get("devCode"); - //1.清离线 - deviceManager.clearOffline(devCode); - //2.存数据 - BusWell busWell = busWellManager.getWellByDevCode(devCode); - save(new DataMeter(meterMap,null==busWell?"":busWell.getWellCode())); - //3.有无超限 - String alarmContent = "", alarmValue = ""; - if(StringUtils.isNotBlank(meterMap.get("temp"))&&Float.valueOf(meterMap.get("temp"))>=60){ - alarmContent+="温度超限报警,"; - alarmValue+="温度:" + meterMap.get("temp") + "℃,"; - } - if(StringUtils.isNotBlank(meterMap.get("PH"))&&(Float.valueOf(meterMap.get("PH"))>=10|| - Float.valueOf(meterMap.get("PH"))<=6)){ - alarmContent+="PH值超限报警,"; - alarmValue+="PH:" + meterMap.get("PH") + ","; - } - if(StringUtils.isNotBlank(meterMap.get("conductivity"))&& - Float.valueOf(meterMap.get("conductivity"))>=5){ - alarmContent+="电导率超限报警,"; - alarmValue+="电导率:" + meterMap.get("conductivity") + "mS/cm,"; - } - if(StringUtils.isNotBlank(meterMap.get("DO"))&&Float.valueOf(meterMap.get("DO"))>=20){ - alarmContent+="溶解氧超限报警,"; - alarmValue+="溶解氧:" + meterMap.get("DO") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("turbidity"))&&Float.valueOf(meterMap.get("turbidity"))>=1000){ - alarmContent+="浊度超限报警,"; - alarmValue+="浊度:" + meterMap.get("turbidity") + "NTU,"; - } - if(StringUtils.isNotBlank(meterMap.get("COD"))&&Float.valueOf(meterMap.get("COD"))>=500){ - alarmContent+="化学需氧量超限报警,"; - alarmValue+="化学需氧量:" + meterMap.get("COD") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("AN"))&&Float.valueOf(meterMap.get("AN"))>=20){ - alarmContent+="氨氮超限报警,"; - alarmValue+="氨氮:" + meterMap.get("AN") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TP"))&&Float.valueOf(meterMap.get("TP"))>=15){ - alarmContent+="总磷超限报警,"; - alarmValue+="总磷:" + meterMap.get("TP") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TN"))&&Float.valueOf(meterMap.get("TN"))>=30){ - alarmContent+="总氮超限报警,"; - alarmValue+="总氮:" + meterMap.get("TN") + "mg/L,"; - } - if (StringUtils.isNotBlank(alarmContent)) { - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); - } else {//不存在上一条报警时 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 - //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); - //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); + public void processMeterData(Map meterMap) { + + String devCodeBefore = meterMap.get("devCode"); + if ("399435X0000002".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243001"); + } else if ("399435X0000001".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243002"); + } + String CN = meterMap.get("CN"); + if (cnArr[1].equals(CN)) { + meterMinManager.processMeterData(meterMap); + } else if (cnArr[2].equals(CN)) { + meterHourManager.processMeterData(meterMap); + } else if (cnArr[3].equals(CN)) { + meterDayManager.processMeterData(meterMap); + } else if (cnArr[0].equals(CN)) { + try { + String devCode = meterMap.get("devCode"); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeter(meterMap, null == busWell ? "" : busWell.getWellCode())); + //3.有无超限 + String alarmContent = "", alarmValue = ""; + if (StringUtils.isNotBlank(meterMap.get("temp")) && Float.valueOf(meterMap.get("temp")) >= 60) { + alarmContent += "温度超限报警,"; + alarmValue += "温度:" + meterMap.get("temp") + "℃,"; + } + if (StringUtils.isNotBlank(meterMap.get("PH")) && (Float.valueOf(meterMap.get("PH")) >= 10 || + Float.valueOf(meterMap.get("PH")) <= 6)) { + alarmContent += "PH值超限报警,"; + alarmValue += "PH:" + meterMap.get("PH") + ","; + } + if (StringUtils.isNotBlank(meterMap.get("conductivity")) && + Float.valueOf(meterMap.get("conductivity")) >= 5) { + alarmContent += "电导率超限报警,"; + alarmValue += "电导率:" + meterMap.get("conductivity") + "mS/cm,"; + } + if (StringUtils.isNotBlank(meterMap.get("DO")) && Float.valueOf(meterMap.get("DO")) >= 20) { + alarmContent += "溶解氧超限报警,"; + alarmValue += "溶解氧:" + meterMap.get("DO") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("turbidity")) && Float.valueOf(meterMap.get("turbidity")) >= 1000) { + alarmContent += "浊度超限报警,"; + alarmValue += "浊度:" + meterMap.get("turbidity") + "NTU,"; + } + if (StringUtils.isNotBlank(meterMap.get("COD")) && Float.valueOf(meterMap.get("COD")) >= 500) { + alarmContent += "化学需氧量超限报警,"; + alarmValue += "化学需氧量:" + meterMap.get("COD") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("AN")) && Float.valueOf(meterMap.get("AN")) >= 20) { + alarmContent += "氨氮超限报警,"; + alarmValue += "氨氮:" + meterMap.get("AN") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TP")) && Float.valueOf(meterMap.get("TP")) >= 15) { + alarmContent += "总磷超限报警,"; + alarmValue += "总磷:" + meterMap.get("TP") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TN")) && Float.valueOf(meterMap.get("TN")) >= 30) { + alarmContent += "总氮超限报警,"; + alarmValue += "总氮:" + meterMap.get("TN") + "mg/L,"; + } + if (StringUtils.isNotBlank(alarmContent)) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(), "1"); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); - ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? - busWell.getWellCode() : ""); + ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? + busWell.getWellCode() : ""); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } - } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 - alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } catch (Exception e) { + e.printStackTrace(); } - }catch (Exception e){ - e.printStackTrace(); } } } diff --git a/src/main/java/org/well/well/manager/MeterMinManager.java b/src/main/java/org/well/well/manager/MeterMinManager.java new file mode 100644 index 0000000..2068dfa --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterMinManager.java @@ -0,0 +1,32 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.BusWell; +import org.well.well.domain.DataMeter; +import org.well.well.domain.DataMeterMin; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterMinManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + //1.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterMin(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/resp/WaterQualityResponse.java b/src/main/java/org/well/well/resp/WaterQualityResponse.java new file mode 100644 index 0000000..47d3674 --- /dev/null +++ b/src/main/java/org/well/well/resp/WaterQualityResponse.java @@ -0,0 +1,63 @@ +package org.well.well.resp; + +import com.alibaba.fastjson.JSON; +import net.sf.json.JSONArray; +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.base.DeviceTypeEnum; +import org.well.well.core.util.DateUtils; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; +import org.well.well.manager.MeterManager; + +import java.util.HashMap; +import java.util.Map; + +/** + * Created by lenovo on 2018/1/9. + */ +public class WaterQualityResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void process(String content) { + try { + ClassPathXmlApplicationContext ac = this.getAc(); + MeterManager meterManager = ac.getBean(MeterManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("DevID").toString(); + String dataTimeStr = json.get("LogTime").toString(); + Map meterMap = new HashMap(); + Map meterMapBefore = new HashMap(); + meterMap.put("DataTime", dataTimeStr.replaceAll("[[\\s-:punct:]]","")); + meterMap.put("CN", "2011"); + meterMap.put("devCode", devCode); +// JSONArray jsonArray = JSON.parseArray(json.get("Status").toString()); + JSONArray jsonArray = JSONArray.fromObject(json.get("Status")); + for (int i = 0; i < jsonArray.size(); i++) { + String name = ((JSONObject) jsonArray.get(i)).get("Key").toString(); + String value = ((JSONObject) jsonArray.get(i)).get("Value").toString(); + meterMapBefore.put(name,value); + } + meterMap.put("temp", meterMapBefore.get("Temp")); + meterMap.put("PH", meterMapBefore.get("PH")); + meterMap.put("conductivity", meterMapBefore.get("Cond")); + meterMap.put("DO", meterMapBefore.get("DO")); + meterMap.put("turbidity", meterMapBefore.get("Turb")); + meterMap.put("COD", meterMapBefore.get("COD")); + meterMap.put("AN", meterMapBefore.get("AN")); + meterMap.put("TP", meterMapBefore.get("TP")); + meterMap.put("TN", meterMapBefore.get("TN")); + meterManager.processMeterData(meterMap); + }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 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterHour.java b/src/main/java/org/well/well/domain/DataMeterHour.java new file mode 100644 index 0000000..9b12e9d --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterHour.java @@ -0,0 +1,416 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每小时数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_hour") +public class DataMeterHour implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + public DataMeterHour(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterMin.java b/src/main/java/org/well/well/domain/DataMeterMin.java new file mode 100644 index 0000000..97f84ae --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterMin.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪分钟数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_min") +public class DataMeterMin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterMin(Map meterMap,String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/manager/MeterDayManager.java b/src/main/java/org/well/well/manager/MeterDayManager.java new file mode 100644 index 0000000..fae4fa6 --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterDayManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterDayManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + + @Transactional + public void processMeterData(Map meterMap) { + + try { + String devCode = meterMap.get("devCode"); + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterDay(meterMap, null == busWell ? "" : busWell.getWellCode())); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterHourManager.java b/src/main/java/org/well/well/manager/MeterHourManager.java new file mode 100644 index 0000000..6a3867d --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterHourManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterHourManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterHour(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..7618fa4 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -9,6 +9,7 @@ import org.well.well.domain.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.Map; @Service @@ -21,95 +22,125 @@ BusWellManager busWellManager; @Resource AlarmJobManager alarmJobManager; + @Resource + MeterMinManager meterMinManager; + @Resource + MeterHourManager meterHourManager; + @Resource + MeterDayManager meterDayManager; + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + + private static Map devCodeMap = new HashMap(); + + static { + devCodeMap.put("399435X0000002", "2006243001"); + devCodeMap.put("399435X0000001", "2006243002"); + } @Transactional - public void processMeterData(Map meterMap){ - try { - String devCode=meterMap.get("devCode"); - //1.清离线 - deviceManager.clearOffline(devCode); - //2.存数据 - BusWell busWell = busWellManager.getWellByDevCode(devCode); - save(new DataMeter(meterMap,null==busWell?"":busWell.getWellCode())); - //3.有无超限 - String alarmContent = "", alarmValue = ""; - if(StringUtils.isNotBlank(meterMap.get("temp"))&&Float.valueOf(meterMap.get("temp"))>=60){ - alarmContent+="温度超限报警,"; - alarmValue+="温度:" + meterMap.get("temp") + "℃,"; - } - if(StringUtils.isNotBlank(meterMap.get("PH"))&&(Float.valueOf(meterMap.get("PH"))>=10|| - Float.valueOf(meterMap.get("PH"))<=6)){ - alarmContent+="PH值超限报警,"; - alarmValue+="PH:" + meterMap.get("PH") + ","; - } - if(StringUtils.isNotBlank(meterMap.get("conductivity"))&& - Float.valueOf(meterMap.get("conductivity"))>=5){ - alarmContent+="电导率超限报警,"; - alarmValue+="电导率:" + meterMap.get("conductivity") + "mS/cm,"; - } - if(StringUtils.isNotBlank(meterMap.get("DO"))&&Float.valueOf(meterMap.get("DO"))>=20){ - alarmContent+="溶解氧超限报警,"; - alarmValue+="溶解氧:" + meterMap.get("DO") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("turbidity"))&&Float.valueOf(meterMap.get("turbidity"))>=1000){ - alarmContent+="浊度超限报警,"; - alarmValue+="浊度:" + meterMap.get("turbidity") + "NTU,"; - } - if(StringUtils.isNotBlank(meterMap.get("COD"))&&Float.valueOf(meterMap.get("COD"))>=500){ - alarmContent+="化学需氧量超限报警,"; - alarmValue+="化学需氧量:" + meterMap.get("COD") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("AN"))&&Float.valueOf(meterMap.get("AN"))>=20){ - alarmContent+="氨氮超限报警,"; - alarmValue+="氨氮:" + meterMap.get("AN") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TP"))&&Float.valueOf(meterMap.get("TP"))>=15){ - alarmContent+="总磷超限报警,"; - alarmValue+="总磷:" + meterMap.get("TP") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TN"))&&Float.valueOf(meterMap.get("TN"))>=30){ - alarmContent+="总氮超限报警,"; - alarmValue+="总氮:" + meterMap.get("TN") + "mg/L,"; - } - if (StringUtils.isNotBlank(alarmContent)) { - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); - } else {//不存在上一条报警时 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 - //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); - //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); + public void processMeterData(Map meterMap) { + + String devCodeBefore = meterMap.get("devCode"); + if ("399435X0000002".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243001"); + } else if ("399435X0000001".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243002"); + } + String CN = meterMap.get("CN"); + if (cnArr[1].equals(CN)) { + meterMinManager.processMeterData(meterMap); + } else if (cnArr[2].equals(CN)) { + meterHourManager.processMeterData(meterMap); + } else if (cnArr[3].equals(CN)) { + meterDayManager.processMeterData(meterMap); + } else if (cnArr[0].equals(CN)) { + try { + String devCode = meterMap.get("devCode"); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeter(meterMap, null == busWell ? "" : busWell.getWellCode())); + //3.有无超限 + String alarmContent = "", alarmValue = ""; + if (StringUtils.isNotBlank(meterMap.get("temp")) && Float.valueOf(meterMap.get("temp")) >= 60) { + alarmContent += "温度超限报警,"; + alarmValue += "温度:" + meterMap.get("temp") + "℃,"; + } + if (StringUtils.isNotBlank(meterMap.get("PH")) && (Float.valueOf(meterMap.get("PH")) >= 10 || + Float.valueOf(meterMap.get("PH")) <= 6)) { + alarmContent += "PH值超限报警,"; + alarmValue += "PH:" + meterMap.get("PH") + ","; + } + if (StringUtils.isNotBlank(meterMap.get("conductivity")) && + Float.valueOf(meterMap.get("conductivity")) >= 5) { + alarmContent += "电导率超限报警,"; + alarmValue += "电导率:" + meterMap.get("conductivity") + "mS/cm,"; + } + if (StringUtils.isNotBlank(meterMap.get("DO")) && Float.valueOf(meterMap.get("DO")) >= 20) { + alarmContent += "溶解氧超限报警,"; + alarmValue += "溶解氧:" + meterMap.get("DO") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("turbidity")) && Float.valueOf(meterMap.get("turbidity")) >= 1000) { + alarmContent += "浊度超限报警,"; + alarmValue += "浊度:" + meterMap.get("turbidity") + "NTU,"; + } + if (StringUtils.isNotBlank(meterMap.get("COD")) && Float.valueOf(meterMap.get("COD")) >= 500) { + alarmContent += "化学需氧量超限报警,"; + alarmValue += "化学需氧量:" + meterMap.get("COD") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("AN")) && Float.valueOf(meterMap.get("AN")) >= 20) { + alarmContent += "氨氮超限报警,"; + alarmValue += "氨氮:" + meterMap.get("AN") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TP")) && Float.valueOf(meterMap.get("TP")) >= 15) { + alarmContent += "总磷超限报警,"; + alarmValue += "总磷:" + meterMap.get("TP") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TN")) && Float.valueOf(meterMap.get("TN")) >= 30) { + alarmContent += "总氮超限报警,"; + alarmValue += "总氮:" + meterMap.get("TN") + "mg/L,"; + } + if (StringUtils.isNotBlank(alarmContent)) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(), "1"); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); - ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? - busWell.getWellCode() : ""); + ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? + busWell.getWellCode() : ""); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } - } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 - alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } catch (Exception e) { + e.printStackTrace(); } - }catch (Exception e){ - e.printStackTrace(); } } } diff --git a/src/main/java/org/well/well/manager/MeterMinManager.java b/src/main/java/org/well/well/manager/MeterMinManager.java new file mode 100644 index 0000000..2068dfa --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterMinManager.java @@ -0,0 +1,32 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.BusWell; +import org.well.well.domain.DataMeter; +import org.well.well.domain.DataMeterMin; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterMinManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + //1.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterMin(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/resp/WaterQualityResponse.java b/src/main/java/org/well/well/resp/WaterQualityResponse.java new file mode 100644 index 0000000..47d3674 --- /dev/null +++ b/src/main/java/org/well/well/resp/WaterQualityResponse.java @@ -0,0 +1,63 @@ +package org.well.well.resp; + +import com.alibaba.fastjson.JSON; +import net.sf.json.JSONArray; +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.base.DeviceTypeEnum; +import org.well.well.core.util.DateUtils; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; +import org.well.well.manager.MeterManager; + +import java.util.HashMap; +import java.util.Map; + +/** + * Created by lenovo on 2018/1/9. + */ +public class WaterQualityResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void process(String content) { + try { + ClassPathXmlApplicationContext ac = this.getAc(); + MeterManager meterManager = ac.getBean(MeterManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("DevID").toString(); + String dataTimeStr = json.get("LogTime").toString(); + Map meterMap = new HashMap(); + Map meterMapBefore = new HashMap(); + meterMap.put("DataTime", dataTimeStr.replaceAll("[[\\s-:punct:]]","")); + meterMap.put("CN", "2011"); + meterMap.put("devCode", devCode); +// JSONArray jsonArray = JSON.parseArray(json.get("Status").toString()); + JSONArray jsonArray = JSONArray.fromObject(json.get("Status")); + for (int i = 0; i < jsonArray.size(); i++) { + String name = ((JSONObject) jsonArray.get(i)).get("Key").toString(); + String value = ((JSONObject) jsonArray.get(i)).get("Value").toString(); + meterMapBefore.put(name,value); + } + meterMap.put("temp", meterMapBefore.get("Temp")); + meterMap.put("PH", meterMapBefore.get("PH")); + meterMap.put("conductivity", meterMapBefore.get("Cond")); + meterMap.put("DO", meterMapBefore.get("DO")); + meterMap.put("turbidity", meterMapBefore.get("Turb")); + meterMap.put("COD", meterMapBefore.get("COD")); + meterMap.put("AN", meterMapBefore.get("AN")); + meterMap.put("TP", meterMapBefore.get("TP")); + meterMap.put("TN", meterMapBefore.get("TN")); + meterManager.processMeterData(meterMap); + }catch (Exception e){ + e.printStackTrace(); + } + } +} + + diff --git a/src/main/java/org/well/well/util/ResponseResolver.java b/src/main/java/org/well/well/util/ResponseResolver.java index 7f7626d..6fef231 100644 --- a/src/main/java/org/well/well/util/ResponseResolver.java +++ b/src/main/java/org/well/well/util/ResponseResolver.java @@ -27,6 +27,7 @@ // abstractResponseHashMap.put(DeviceTypeEnum.Dig.name(), new NoiseDigResponse()); abstractResponseHashMap.put(DeviceTypeEnum.NoiseDig.name(), new NoiseDigResponse()); abstractResponseHashMap.put(DeviceTypeEnum.Locator.name(), new LocatorResponse()); + abstractResponseHashMap.put(DeviceTypeEnum.WaterQuality.name(), new WaterQualityResponse()); } diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterHour.java b/src/main/java/org/well/well/domain/DataMeterHour.java new file mode 100644 index 0000000..9b12e9d --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterHour.java @@ -0,0 +1,416 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每小时数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_hour") +public class DataMeterHour implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + public DataMeterHour(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterMin.java b/src/main/java/org/well/well/domain/DataMeterMin.java new file mode 100644 index 0000000..97f84ae --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterMin.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪分钟数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_min") +public class DataMeterMin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterMin(Map meterMap,String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/manager/MeterDayManager.java b/src/main/java/org/well/well/manager/MeterDayManager.java new file mode 100644 index 0000000..fae4fa6 --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterDayManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterDayManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + + @Transactional + public void processMeterData(Map meterMap) { + + try { + String devCode = meterMap.get("devCode"); + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterDay(meterMap, null == busWell ? "" : busWell.getWellCode())); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterHourManager.java b/src/main/java/org/well/well/manager/MeterHourManager.java new file mode 100644 index 0000000..6a3867d --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterHourManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterHourManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterHour(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..7618fa4 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -9,6 +9,7 @@ import org.well.well.domain.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.Map; @Service @@ -21,95 +22,125 @@ BusWellManager busWellManager; @Resource AlarmJobManager alarmJobManager; + @Resource + MeterMinManager meterMinManager; + @Resource + MeterHourManager meterHourManager; + @Resource + MeterDayManager meterDayManager; + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + + private static Map devCodeMap = new HashMap(); + + static { + devCodeMap.put("399435X0000002", "2006243001"); + devCodeMap.put("399435X0000001", "2006243002"); + } @Transactional - public void processMeterData(Map meterMap){ - try { - String devCode=meterMap.get("devCode"); - //1.清离线 - deviceManager.clearOffline(devCode); - //2.存数据 - BusWell busWell = busWellManager.getWellByDevCode(devCode); - save(new DataMeter(meterMap,null==busWell?"":busWell.getWellCode())); - //3.有无超限 - String alarmContent = "", alarmValue = ""; - if(StringUtils.isNotBlank(meterMap.get("temp"))&&Float.valueOf(meterMap.get("temp"))>=60){ - alarmContent+="温度超限报警,"; - alarmValue+="温度:" + meterMap.get("temp") + "℃,"; - } - if(StringUtils.isNotBlank(meterMap.get("PH"))&&(Float.valueOf(meterMap.get("PH"))>=10|| - Float.valueOf(meterMap.get("PH"))<=6)){ - alarmContent+="PH值超限报警,"; - alarmValue+="PH:" + meterMap.get("PH") + ","; - } - if(StringUtils.isNotBlank(meterMap.get("conductivity"))&& - Float.valueOf(meterMap.get("conductivity"))>=5){ - alarmContent+="电导率超限报警,"; - alarmValue+="电导率:" + meterMap.get("conductivity") + "mS/cm,"; - } - if(StringUtils.isNotBlank(meterMap.get("DO"))&&Float.valueOf(meterMap.get("DO"))>=20){ - alarmContent+="溶解氧超限报警,"; - alarmValue+="溶解氧:" + meterMap.get("DO") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("turbidity"))&&Float.valueOf(meterMap.get("turbidity"))>=1000){ - alarmContent+="浊度超限报警,"; - alarmValue+="浊度:" + meterMap.get("turbidity") + "NTU,"; - } - if(StringUtils.isNotBlank(meterMap.get("COD"))&&Float.valueOf(meterMap.get("COD"))>=500){ - alarmContent+="化学需氧量超限报警,"; - alarmValue+="化学需氧量:" + meterMap.get("COD") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("AN"))&&Float.valueOf(meterMap.get("AN"))>=20){ - alarmContent+="氨氮超限报警,"; - alarmValue+="氨氮:" + meterMap.get("AN") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TP"))&&Float.valueOf(meterMap.get("TP"))>=15){ - alarmContent+="总磷超限报警,"; - alarmValue+="总磷:" + meterMap.get("TP") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TN"))&&Float.valueOf(meterMap.get("TN"))>=30){ - alarmContent+="总氮超限报警,"; - alarmValue+="总氮:" + meterMap.get("TN") + "mg/L,"; - } - if (StringUtils.isNotBlank(alarmContent)) { - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); - } else {//不存在上一条报警时 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 - //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); - //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); + public void processMeterData(Map meterMap) { + + String devCodeBefore = meterMap.get("devCode"); + if ("399435X0000002".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243001"); + } else if ("399435X0000001".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243002"); + } + String CN = meterMap.get("CN"); + if (cnArr[1].equals(CN)) { + meterMinManager.processMeterData(meterMap); + } else if (cnArr[2].equals(CN)) { + meterHourManager.processMeterData(meterMap); + } else if (cnArr[3].equals(CN)) { + meterDayManager.processMeterData(meterMap); + } else if (cnArr[0].equals(CN)) { + try { + String devCode = meterMap.get("devCode"); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeter(meterMap, null == busWell ? "" : busWell.getWellCode())); + //3.有无超限 + String alarmContent = "", alarmValue = ""; + if (StringUtils.isNotBlank(meterMap.get("temp")) && Float.valueOf(meterMap.get("temp")) >= 60) { + alarmContent += "温度超限报警,"; + alarmValue += "温度:" + meterMap.get("temp") + "℃,"; + } + if (StringUtils.isNotBlank(meterMap.get("PH")) && (Float.valueOf(meterMap.get("PH")) >= 10 || + Float.valueOf(meterMap.get("PH")) <= 6)) { + alarmContent += "PH值超限报警,"; + alarmValue += "PH:" + meterMap.get("PH") + ","; + } + if (StringUtils.isNotBlank(meterMap.get("conductivity")) && + Float.valueOf(meterMap.get("conductivity")) >= 5) { + alarmContent += "电导率超限报警,"; + alarmValue += "电导率:" + meterMap.get("conductivity") + "mS/cm,"; + } + if (StringUtils.isNotBlank(meterMap.get("DO")) && Float.valueOf(meterMap.get("DO")) >= 20) { + alarmContent += "溶解氧超限报警,"; + alarmValue += "溶解氧:" + meterMap.get("DO") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("turbidity")) && Float.valueOf(meterMap.get("turbidity")) >= 1000) { + alarmContent += "浊度超限报警,"; + alarmValue += "浊度:" + meterMap.get("turbidity") + "NTU,"; + } + if (StringUtils.isNotBlank(meterMap.get("COD")) && Float.valueOf(meterMap.get("COD")) >= 500) { + alarmContent += "化学需氧量超限报警,"; + alarmValue += "化学需氧量:" + meterMap.get("COD") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("AN")) && Float.valueOf(meterMap.get("AN")) >= 20) { + alarmContent += "氨氮超限报警,"; + alarmValue += "氨氮:" + meterMap.get("AN") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TP")) && Float.valueOf(meterMap.get("TP")) >= 15) { + alarmContent += "总磷超限报警,"; + alarmValue += "总磷:" + meterMap.get("TP") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TN")) && Float.valueOf(meterMap.get("TN")) >= 30) { + alarmContent += "总氮超限报警,"; + alarmValue += "总氮:" + meterMap.get("TN") + "mg/L,"; + } + if (StringUtils.isNotBlank(alarmContent)) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(), "1"); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); - ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? - busWell.getWellCode() : ""); + ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? + busWell.getWellCode() : ""); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } - } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 - alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } catch (Exception e) { + e.printStackTrace(); } - }catch (Exception e){ - e.printStackTrace(); } } } diff --git a/src/main/java/org/well/well/manager/MeterMinManager.java b/src/main/java/org/well/well/manager/MeterMinManager.java new file mode 100644 index 0000000..2068dfa --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterMinManager.java @@ -0,0 +1,32 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.BusWell; +import org.well.well.domain.DataMeter; +import org.well.well.domain.DataMeterMin; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterMinManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + //1.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterMin(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/resp/WaterQualityResponse.java b/src/main/java/org/well/well/resp/WaterQualityResponse.java new file mode 100644 index 0000000..47d3674 --- /dev/null +++ b/src/main/java/org/well/well/resp/WaterQualityResponse.java @@ -0,0 +1,63 @@ +package org.well.well.resp; + +import com.alibaba.fastjson.JSON; +import net.sf.json.JSONArray; +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.base.DeviceTypeEnum; +import org.well.well.core.util.DateUtils; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; +import org.well.well.manager.MeterManager; + +import java.util.HashMap; +import java.util.Map; + +/** + * Created by lenovo on 2018/1/9. + */ +public class WaterQualityResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void process(String content) { + try { + ClassPathXmlApplicationContext ac = this.getAc(); + MeterManager meterManager = ac.getBean(MeterManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("DevID").toString(); + String dataTimeStr = json.get("LogTime").toString(); + Map meterMap = new HashMap(); + Map meterMapBefore = new HashMap(); + meterMap.put("DataTime", dataTimeStr.replaceAll("[[\\s-:punct:]]","")); + meterMap.put("CN", "2011"); + meterMap.put("devCode", devCode); +// JSONArray jsonArray = JSON.parseArray(json.get("Status").toString()); + JSONArray jsonArray = JSONArray.fromObject(json.get("Status")); + for (int i = 0; i < jsonArray.size(); i++) { + String name = ((JSONObject) jsonArray.get(i)).get("Key").toString(); + String value = ((JSONObject) jsonArray.get(i)).get("Value").toString(); + meterMapBefore.put(name,value); + } + meterMap.put("temp", meterMapBefore.get("Temp")); + meterMap.put("PH", meterMapBefore.get("PH")); + meterMap.put("conductivity", meterMapBefore.get("Cond")); + meterMap.put("DO", meterMapBefore.get("DO")); + meterMap.put("turbidity", meterMapBefore.get("Turb")); + meterMap.put("COD", meterMapBefore.get("COD")); + meterMap.put("AN", meterMapBefore.get("AN")); + meterMap.put("TP", meterMapBefore.get("TP")); + meterMap.put("TN", meterMapBefore.get("TN")); + meterManager.processMeterData(meterMap); + }catch (Exception e){ + e.printStackTrace(); + } + } +} + + diff --git a/src/main/java/org/well/well/util/ResponseResolver.java b/src/main/java/org/well/well/util/ResponseResolver.java index 7f7626d..6fef231 100644 --- a/src/main/java/org/well/well/util/ResponseResolver.java +++ b/src/main/java/org/well/well/util/ResponseResolver.java @@ -27,6 +27,7 @@ // abstractResponseHashMap.put(DeviceTypeEnum.Dig.name(), new NoiseDigResponse()); abstractResponseHashMap.put(DeviceTypeEnum.NoiseDig.name(), new NoiseDigResponse()); abstractResponseHashMap.put(DeviceTypeEnum.Locator.name(), new LocatorResponse()); + abstractResponseHashMap.put(DeviceTypeEnum.WaterQuality.name(), new WaterQualityResponse()); } diff --git a/src/main/resources/wellSensor/application.properties b/src/main/resources/wellSensor/application.properties index 2e24ea6..68b9e28 100644 --- a/src/main/resources/wellSensor/application.properties +++ b/src/main/resources/wellSensor/application.properties @@ -20,7 +20,7 @@ #db.default.username=sensor #db.default.password=sensor db.default.driverClassName=com.mysql.jdbc.Driver -db.default.url=jdbc:mysql://111.198.10.15:11102/smartwell?useUnicode=true&characterEncoding=UTF-8&useSSL=false +db.default.url=jdbc:mysql://111.198.10.15:11102/smartwell_yizhuang?useUnicode=true&characterEncoding=UTF-8&useSSL=false db.default.username=root db.default.password=Casic203! ### ============================================================================ diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterHour.java b/src/main/java/org/well/well/domain/DataMeterHour.java new file mode 100644 index 0000000..9b12e9d --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterHour.java @@ -0,0 +1,416 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每小时数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_hour") +public class DataMeterHour implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + public DataMeterHour(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterMin.java b/src/main/java/org/well/well/domain/DataMeterMin.java new file mode 100644 index 0000000..97f84ae --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterMin.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪分钟数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_min") +public class DataMeterMin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterMin(Map meterMap,String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/manager/MeterDayManager.java b/src/main/java/org/well/well/manager/MeterDayManager.java new file mode 100644 index 0000000..fae4fa6 --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterDayManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterDayManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + + @Transactional + public void processMeterData(Map meterMap) { + + try { + String devCode = meterMap.get("devCode"); + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterDay(meterMap, null == busWell ? "" : busWell.getWellCode())); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterHourManager.java b/src/main/java/org/well/well/manager/MeterHourManager.java new file mode 100644 index 0000000..6a3867d --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterHourManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterHourManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterHour(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..7618fa4 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -9,6 +9,7 @@ import org.well.well.domain.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.Map; @Service @@ -21,95 +22,125 @@ BusWellManager busWellManager; @Resource AlarmJobManager alarmJobManager; + @Resource + MeterMinManager meterMinManager; + @Resource + MeterHourManager meterHourManager; + @Resource + MeterDayManager meterDayManager; + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + + private static Map devCodeMap = new HashMap(); + + static { + devCodeMap.put("399435X0000002", "2006243001"); + devCodeMap.put("399435X0000001", "2006243002"); + } @Transactional - public void processMeterData(Map meterMap){ - try { - String devCode=meterMap.get("devCode"); - //1.清离线 - deviceManager.clearOffline(devCode); - //2.存数据 - BusWell busWell = busWellManager.getWellByDevCode(devCode); - save(new DataMeter(meterMap,null==busWell?"":busWell.getWellCode())); - //3.有无超限 - String alarmContent = "", alarmValue = ""; - if(StringUtils.isNotBlank(meterMap.get("temp"))&&Float.valueOf(meterMap.get("temp"))>=60){ - alarmContent+="温度超限报警,"; - alarmValue+="温度:" + meterMap.get("temp") + "℃,"; - } - if(StringUtils.isNotBlank(meterMap.get("PH"))&&(Float.valueOf(meterMap.get("PH"))>=10|| - Float.valueOf(meterMap.get("PH"))<=6)){ - alarmContent+="PH值超限报警,"; - alarmValue+="PH:" + meterMap.get("PH") + ","; - } - if(StringUtils.isNotBlank(meterMap.get("conductivity"))&& - Float.valueOf(meterMap.get("conductivity"))>=5){ - alarmContent+="电导率超限报警,"; - alarmValue+="电导率:" + meterMap.get("conductivity") + "mS/cm,"; - } - if(StringUtils.isNotBlank(meterMap.get("DO"))&&Float.valueOf(meterMap.get("DO"))>=20){ - alarmContent+="溶解氧超限报警,"; - alarmValue+="溶解氧:" + meterMap.get("DO") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("turbidity"))&&Float.valueOf(meterMap.get("turbidity"))>=1000){ - alarmContent+="浊度超限报警,"; - alarmValue+="浊度:" + meterMap.get("turbidity") + "NTU,"; - } - if(StringUtils.isNotBlank(meterMap.get("COD"))&&Float.valueOf(meterMap.get("COD"))>=500){ - alarmContent+="化学需氧量超限报警,"; - alarmValue+="化学需氧量:" + meterMap.get("COD") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("AN"))&&Float.valueOf(meterMap.get("AN"))>=20){ - alarmContent+="氨氮超限报警,"; - alarmValue+="氨氮:" + meterMap.get("AN") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TP"))&&Float.valueOf(meterMap.get("TP"))>=15){ - alarmContent+="总磷超限报警,"; - alarmValue+="总磷:" + meterMap.get("TP") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TN"))&&Float.valueOf(meterMap.get("TN"))>=30){ - alarmContent+="总氮超限报警,"; - alarmValue+="总氮:" + meterMap.get("TN") + "mg/L,"; - } - if (StringUtils.isNotBlank(alarmContent)) { - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); - } else {//不存在上一条报警时 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 - //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); - //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); + public void processMeterData(Map meterMap) { + + String devCodeBefore = meterMap.get("devCode"); + if ("399435X0000002".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243001"); + } else if ("399435X0000001".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243002"); + } + String CN = meterMap.get("CN"); + if (cnArr[1].equals(CN)) { + meterMinManager.processMeterData(meterMap); + } else if (cnArr[2].equals(CN)) { + meterHourManager.processMeterData(meterMap); + } else if (cnArr[3].equals(CN)) { + meterDayManager.processMeterData(meterMap); + } else if (cnArr[0].equals(CN)) { + try { + String devCode = meterMap.get("devCode"); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeter(meterMap, null == busWell ? "" : busWell.getWellCode())); + //3.有无超限 + String alarmContent = "", alarmValue = ""; + if (StringUtils.isNotBlank(meterMap.get("temp")) && Float.valueOf(meterMap.get("temp")) >= 60) { + alarmContent += "温度超限报警,"; + alarmValue += "温度:" + meterMap.get("temp") + "℃,"; + } + if (StringUtils.isNotBlank(meterMap.get("PH")) && (Float.valueOf(meterMap.get("PH")) >= 10 || + Float.valueOf(meterMap.get("PH")) <= 6)) { + alarmContent += "PH值超限报警,"; + alarmValue += "PH:" + meterMap.get("PH") + ","; + } + if (StringUtils.isNotBlank(meterMap.get("conductivity")) && + Float.valueOf(meterMap.get("conductivity")) >= 5) { + alarmContent += "电导率超限报警,"; + alarmValue += "电导率:" + meterMap.get("conductivity") + "mS/cm,"; + } + if (StringUtils.isNotBlank(meterMap.get("DO")) && Float.valueOf(meterMap.get("DO")) >= 20) { + alarmContent += "溶解氧超限报警,"; + alarmValue += "溶解氧:" + meterMap.get("DO") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("turbidity")) && Float.valueOf(meterMap.get("turbidity")) >= 1000) { + alarmContent += "浊度超限报警,"; + alarmValue += "浊度:" + meterMap.get("turbidity") + "NTU,"; + } + if (StringUtils.isNotBlank(meterMap.get("COD")) && Float.valueOf(meterMap.get("COD")) >= 500) { + alarmContent += "化学需氧量超限报警,"; + alarmValue += "化学需氧量:" + meterMap.get("COD") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("AN")) && Float.valueOf(meterMap.get("AN")) >= 20) { + alarmContent += "氨氮超限报警,"; + alarmValue += "氨氮:" + meterMap.get("AN") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TP")) && Float.valueOf(meterMap.get("TP")) >= 15) { + alarmContent += "总磷超限报警,"; + alarmValue += "总磷:" + meterMap.get("TP") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TN")) && Float.valueOf(meterMap.get("TN")) >= 30) { + alarmContent += "总氮超限报警,"; + alarmValue += "总氮:" + meterMap.get("TN") + "mg/L,"; + } + if (StringUtils.isNotBlank(alarmContent)) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(), "1"); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); - ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? - busWell.getWellCode() : ""); + ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? + busWell.getWellCode() : ""); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } - } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 - alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } catch (Exception e) { + e.printStackTrace(); } - }catch (Exception e){ - e.printStackTrace(); } } } diff --git a/src/main/java/org/well/well/manager/MeterMinManager.java b/src/main/java/org/well/well/manager/MeterMinManager.java new file mode 100644 index 0000000..2068dfa --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterMinManager.java @@ -0,0 +1,32 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.BusWell; +import org.well.well.domain.DataMeter; +import org.well.well.domain.DataMeterMin; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterMinManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + //1.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterMin(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/resp/WaterQualityResponse.java b/src/main/java/org/well/well/resp/WaterQualityResponse.java new file mode 100644 index 0000000..47d3674 --- /dev/null +++ b/src/main/java/org/well/well/resp/WaterQualityResponse.java @@ -0,0 +1,63 @@ +package org.well.well.resp; + +import com.alibaba.fastjson.JSON; +import net.sf.json.JSONArray; +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.base.DeviceTypeEnum; +import org.well.well.core.util.DateUtils; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; +import org.well.well.manager.MeterManager; + +import java.util.HashMap; +import java.util.Map; + +/** + * Created by lenovo on 2018/1/9. + */ +public class WaterQualityResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void process(String content) { + try { + ClassPathXmlApplicationContext ac = this.getAc(); + MeterManager meterManager = ac.getBean(MeterManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("DevID").toString(); + String dataTimeStr = json.get("LogTime").toString(); + Map meterMap = new HashMap(); + Map meterMapBefore = new HashMap(); + meterMap.put("DataTime", dataTimeStr.replaceAll("[[\\s-:punct:]]","")); + meterMap.put("CN", "2011"); + meterMap.put("devCode", devCode); +// JSONArray jsonArray = JSON.parseArray(json.get("Status").toString()); + JSONArray jsonArray = JSONArray.fromObject(json.get("Status")); + for (int i = 0; i < jsonArray.size(); i++) { + String name = ((JSONObject) jsonArray.get(i)).get("Key").toString(); + String value = ((JSONObject) jsonArray.get(i)).get("Value").toString(); + meterMapBefore.put(name,value); + } + meterMap.put("temp", meterMapBefore.get("Temp")); + meterMap.put("PH", meterMapBefore.get("PH")); + meterMap.put("conductivity", meterMapBefore.get("Cond")); + meterMap.put("DO", meterMapBefore.get("DO")); + meterMap.put("turbidity", meterMapBefore.get("Turb")); + meterMap.put("COD", meterMapBefore.get("COD")); + meterMap.put("AN", meterMapBefore.get("AN")); + meterMap.put("TP", meterMapBefore.get("TP")); + meterMap.put("TN", meterMapBefore.get("TN")); + meterManager.processMeterData(meterMap); + }catch (Exception e){ + e.printStackTrace(); + } + } +} + + diff --git a/src/main/java/org/well/well/util/ResponseResolver.java b/src/main/java/org/well/well/util/ResponseResolver.java index 7f7626d..6fef231 100644 --- a/src/main/java/org/well/well/util/ResponseResolver.java +++ b/src/main/java/org/well/well/util/ResponseResolver.java @@ -27,6 +27,7 @@ // abstractResponseHashMap.put(DeviceTypeEnum.Dig.name(), new NoiseDigResponse()); abstractResponseHashMap.put(DeviceTypeEnum.NoiseDig.name(), new NoiseDigResponse()); abstractResponseHashMap.put(DeviceTypeEnum.Locator.name(), new LocatorResponse()); + abstractResponseHashMap.put(DeviceTypeEnum.WaterQuality.name(), new WaterQualityResponse()); } diff --git a/src/main/resources/wellSensor/application.properties b/src/main/resources/wellSensor/application.properties index 2e24ea6..68b9e28 100644 --- a/src/main/resources/wellSensor/application.properties +++ b/src/main/resources/wellSensor/application.properties @@ -20,7 +20,7 @@ #db.default.username=sensor #db.default.password=sensor db.default.driverClassName=com.mysql.jdbc.Driver -db.default.url=jdbc:mysql://111.198.10.15:11102/smartwell?useUnicode=true&characterEncoding=UTF-8&useSSL=false +db.default.url=jdbc:mysql://111.198.10.15:11102/smartwell_yizhuang?useUnicode=true&characterEncoding=UTF-8&useSSL=false db.default.username=root db.default.password=Casic203! ### ============================================================================ diff --git a/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml b/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml index 27d1d56..a11375d 100644 --- a/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml +++ b/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml @@ -3,18 +3,11 @@ diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index 0802335..92e1840 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -141,11 +141,13 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"13131313135\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":98,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"level\":6.73,\"uptime\":\"20191217161000\"},{\"level\":5.72,\"uptime\":\"20191217162000\"},{\"level\":7.71,\"uptime\":\"20200211103000\"}],\"logTime\":\"20200211103000\"},\"ts\":1556186030842}"; // temp="{\"mType\":\"SetResponse\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidConfigSuccess\"},\"ts\":1556182310514}"; // temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"12121212125\",\"mBody\":{\"bType\":\"LiquidData\",\"cell\":97,\"datas\":[{\"level\":4,\"uptime\":\"20191219150000\"},{\"level\":4,\"uptime\":\"20191219151000\"},{\"level\":6.5,\"uptime\":\"20191219152000\"}],\"logTime\":\"20191219152000\"},\"ts\":1556186030842}"; - temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; +// temp="{\"mType\":\"Data\",\"devType\":\"NoiseDig\",\"devCode\":\"14141414146\",\"mBody\":{\"bType\":\"NoiseDigData\",\"cell\":88,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"noiseVal\":60,\"noiseFreq\":50,\"uptime\":\"20200109123131\"}],\"logTime\":\"20200119123131\"},\"ts\":1556184691451}"; // temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"13131313131\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017154056\",\"bType\":\"WellEvent\"},\"ts\":1571298056241}"; // temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"312020011111\",\"mBody\":{\"cell\":95,\"pci\":100,\"rsrp\":50,\"snr\":20,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20200407085400\"},{\"gas\":0.080566406,\"uptime\":\"20200407085400\"},{\"gas\":25,\"uptime\":\"20200407085400\"},{\"gas\":0.09990235,\"uptime\":\"20200407085400\"},{\"gas\":0.070898436,\"uptime\":\"20200407085400\"},{\"gas\":60,\"uptime\":\"20200408085400\"}],\"logTime\":\"20200407085400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"642019010387\",\"mBody\":{\"datas\":[{\"longitude\":0.0,\"latitude\":0.0,\"uptime\":\"20200118111000\"}],\"logTime\":\"20200118111006\",\"bType\":\"LocatorData\"},\"ts\":1579317006078}"; + + temp="{\"Status\":\"[{\\\"Value\\\":7.8876,\\\"Key\\\":\\\"PH\\\"},{\\\"Value\\\":28.0265,\\\"Key\\\":\\\"Temp\\\"},{\\\"Value\\\":0.1994,\\\"Key\\\":\\\"Turb\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"Cond\\\"},{\\\"Value\\\":0.5252,\\\"Key\\\":\\\"DO\\\"},{\\\"Value\\\":0,\\\"Key\\\":\\\"COD\\\"},{\\\"Value\\\":2746.4216,\\\"Key\\\":\\\"AN\\\"},{\\\"Value\\\":1.0002,\\\"Key\\\":\\\"TP\\\"},{\\\"Value\\\":1.4385,\\\"Key\\\":\\\"TN\\\"},{\\\"Value\\\":100,\\\"Key\\\":\\\"Power\\\"}]\",\"devType\":\"WaterQuality\",\"LogTime\":\"2020-06-30 16:21:36\",\"DevID\":\"W1L30Z\",\"Provider\":\"KaiNa\"}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index 80e6dea..77ec8a5 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -23,7 +23,8 @@ Locator("井盖定位监测仪", 18), Meter("水质监测仪", 19), FLOWGAUGE("流量计", 20), - RAINGAUGE("雨量计", 21); + RAINGAUGE("雨量计", 21), + WaterQuality("水质监测仪凯纳", 22); // 成员变量 diff --git a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java index 3c49080..9775712 100644 --- a/src/main/java/org/well/well/core/util/MeterDecoderUtil.java +++ b/src/main/java/org/well/well/core/util/MeterDecoderUtil.java @@ -9,19 +9,55 @@ public class MeterDecoderUtil { + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + public static Map decodeStr(String str) { + String CN = subString(str.substring(str.indexOf("CN=")), "CN=", ";"); Map meterMap = new HashMap(); - meterMap.put("temp",subString(str,"w01010-Rtd=",",w01010-Flag=")); - meterMap.put("PH",subString(str,"w01001-Rtd=",",w01001-Flag=")); - meterMap.put("conductivity",subString(str,"w01014-Rtd=", ",w01014-Flag=")); - meterMap.put("DO",subString(str,"w01009-Rtd=",",w01009-Flag=")); - meterMap.put("turbidity",subString(str,"w01012-Rtd=",",w01012-Flag=")); - meterMap.put("COD",subString(str,"w01018-Rtd=",",w01018-Flag=")); - meterMap.put("AN",subString(str,"w21003-Rtd=",",w21003-Flag=")); - meterMap.put("TP",subString(str,"w21011-Rtd=",",w21011-Flag=")); - meterMap.put("TN",subString(str,"w21001-Rtd=",",w21001-Flag=")); - meterMap.put("devCode",subString(str.substring(str.indexOf("MN=")),"MN=",";")); - meterMap.put("DataTime",subString(str.substring(str.indexOf("DataTime=")),"DataTime=",";")); + meterMap.put("CN", CN); + if (cnArr[0].equals(CN)) { + meterMap.put("temp", subString(str, "903-Rtd=", ",903-Flag=")); + meterMap.put("PH", subString(str, "001-Rtd=", ",001-Flag=")); + meterMap.put("conductivity", subString(str, "904-Rtd=", ",904-Flag=")); + meterMap.put("DO", subString(str, "902-Rtd=", ",902-Flag=")); + meterMap.put("turbidity", subString(str, "901-Rtd=", ",901-Flag=")); + meterMap.put("COD", subString(str, "011-Rtd=", ",011-Flag=")); + meterMap.put("AN", subString(str, "060-Rtd=", ",060-Flag=")); + meterMap.put("TP", subString(str, "101-Rtd=", ",101-Flag=")); + meterMap.put("TN", subString(str, "065-Rtd=", ",065-Flag=")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } else { + meterMap.put("temp_max", subString(str.substring(str.indexOf("903-Max=")), "903-Max=", ";")); + meterMap.put("temp_min", subString(str.substring(str.indexOf("903-Min=")), "903-Min=", ",")); + meterMap.put("temp_avg", subString(str.substring(str.indexOf("903-Avg=")), "903-Avg=", ",")); + meterMap.put("PH_max", subString(str.substring(str.indexOf("001-Max=")), "001-Max=", ";")); + meterMap.put("PH_min", subString(str.substring(str.indexOf("001-Min=")), "001-Min=", ",")); + meterMap.put("PH_avg", subString(str.substring(str.indexOf("001-Avg=")), "001-Avg=", ",")); + meterMap.put("turbidity_max", subString(str.substring(str.indexOf("901-Max=")), "901-Max=", "&")); + meterMap.put("turbidity_min", subString(str.substring(str.indexOf("901-Min=")), "901-Min=", ",")); + meterMap.put("turbidity_avg", subString(str.substring(str.indexOf("901-Avg=")), "901-Avg=", ",")); + meterMap.put("DO_max", subString(str.substring(str.indexOf("902-Max=")), "902-Max=", ";")); + meterMap.put("DO_min", subString(str.substring(str.indexOf("902-Min=")), "902-Min=", ",")); + meterMap.put("DO_avg", subString(str.substring(str.indexOf("902-Avg=")), "902-Avg=", ",")); + meterMap.put("conductivity_max", subString(str.substring(str.indexOf("904-Max=")), "904-Max=", ";")); + meterMap.put("conductivity_min", subString(str.substring(str.indexOf("904-Min=")), "904-Min=", ",")); + meterMap.put("conductivity_avg", subString(str.substring(str.indexOf("904-Avg=")), "904-Avg=", ",")); + meterMap.put("COD_max", subString(str.substring(str.indexOf("011-Max=")), "011-Max=", ";")); + meterMap.put("COD_min", subString(str.substring(str.indexOf("011-Min=")), "011-Min=", ",")); + meterMap.put("COD_avg", subString(str.substring(str.indexOf("011-Avg=")), "011-Avg=", ",")); + meterMap.put("AN_max", subString(str.substring(str.indexOf("060-Max=")), "060-Max=", ";")); + meterMap.put("AN_min", subString(str.substring(str.indexOf("060-Min=")), "060-Min=", ",")); + meterMap.put("AN_avg", subString(str.substring(str.indexOf("060-Avg=")), "060-Avg=", ",")); + meterMap.put("TP_max", subString(str.substring(str.indexOf("101-Max=")), "101-Max=", ";")); + meterMap.put("TP_min", subString(str.substring(str.indexOf("101-Min=")), "101-Min=", ",")); + meterMap.put("TP_avg", subString(str.substring(str.indexOf("101-Avg=")), "101-Avg=", ",")); + meterMap.put("TN_max", subString(str.substring(str.indexOf("065-Max=")), "065-Max=", ";")); + meterMap.put("TN_min", subString(str.substring(str.indexOf("065-Min=")), "065-Min=", ",")); + meterMap.put("TN_avg", subString(str.substring(str.indexOf("065-Avg=")), "065-Avg=", ",")); + meterMap.put("devCode", subString(str.substring(str.indexOf("MN=")), "MN=", ";")); + meterMap.put("DataTime", subString(str.substring(str.indexOf("DataTime=")), "DataTime=", ";")); + } return meterMap; } @@ -29,7 +65,7 @@ public static String subString(String str, String strStart, String strEnd) { int strStartIndex = str.indexOf(strStart); int strEndIndex = str.indexOf(strEnd); - return (strStartIndex < 0||strEndIndex < 0)?"": + return (strStartIndex < 0 || strEndIndex < 0) ? "" : str.substring(strStartIndex, strEndIndex).substring(strStart.length()); } diff --git a/src/main/java/org/well/well/domain/DataMeterDay.java b/src/main/java/org/well/well/domain/DataMeterDay.java new file mode 100644 index 0000000..5132edf --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterDay.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每日数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_day") +public class DataMeterDay implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterDay(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterHour.java b/src/main/java/org/well/well/domain/DataMeterHour.java new file mode 100644 index 0000000..9b12e9d --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterHour.java @@ -0,0 +1,416 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪每小时数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_hour") +public class DataMeterHour implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + public DataMeterHour(Map meterMap, String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/domain/DataMeterMin.java b/src/main/java/org/well/well/domain/DataMeterMin.java new file mode 100644 index 0000000..97f84ae --- /dev/null +++ b/src/main/java/org/well/well/domain/DataMeterMin.java @@ -0,0 +1,417 @@ +package org.well.well.domain; + + +import org.well.well.core.util.DateUtils; + +import javax.persistence.*; +import java.io.Serializable; +import java.text.ParseException; +import java.util.Date; +import java.util.Map; + +/** + *

+ * 水质监测仪分钟数据上传数据表 + *

+ * + * @author stylefeng123 + * @since 2020-07-02 + */ +@Entity +@Table(name = "data_meter_min") +public class DataMeterMin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID") + private Integer id; + /** + * 井编号 + */ + @Column(name ="WELL_CODE") + private String wellCode; + /** + * 设备编号 + */ + @Column(name ="DEVCODE") + private String devcode; + /** + * 状态描述 + */ + @Column(name ="DESCN") + private String descn; + /** + * 采集时间 + */ + @Column(name ="UPTIME") + private Date uptime; + /** + * 记录时间 + */ + @Column(name ="LOGTIME") + private Date logtime; + @Column(name ="temp_max") + private String tempMax; + @Column(name ="temp_min") + private String tempMin; + @Column(name ="temp_avg") + private String tempAvg; + @Column(name ="conductivity_max") + private String conductivityMax; + @Column(name ="conductivity_min") + private String conductivityMin; + @Column(name ="conductivity_avg") + private String conductivityAvg; + @Column(name ="PH_max") + private String phMax; + @Column(name ="PH_min") + private String phMin; + @Column(name ="PH_avg") + private String phAvg; + @Column(name ="DO_max") + private String doMax; + @Column(name ="DO_min") + private String doMin; + @Column(name ="DO_avg") + private String doAvg; + @Column(name ="turbidity_max") + private String turbidityMax; + @Column(name ="turbidity_min") + private String turbidityMin; + @Column(name ="turbidity_avg") + private String turbidityAvg; + @Column(name ="COD_max") + private String codMax; + @Column(name ="COD_min") + private String codMin; + @Column(name ="COD_avg") + private String codAvg; + @Column(name ="AN_max") + private String anMax; + @Column(name ="AN_min") + private String anMin; + @Column(name ="AN_avg") + private String anAvg; + @Column(name ="TP_max") + private String tpMax; + @Column(name ="TP_min") + private String tpMin; + @Column(name ="TP_avg") + private String tpAvg; + @Column(name ="TN_max") + private String tnMax; + @Column(name ="TN_min") + private String tnMin; + @Column(name ="TN_avg") + private String tnAvg; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public String getTempMax() { + return tempMax; + } + + public void setTempMax(String tempMax) { + this.tempMax = tempMax; + } + + public String getTempMin() { + return tempMin; + } + + public void setTempMin(String tempMin) { + this.tempMin = tempMin; + } + + public String getTempAvg() { + return tempAvg; + } + + public void setTempAvg(String tempAvg) { + this.tempAvg = tempAvg; + } + + public String getConductivityMax() { + return conductivityMax; + } + + public void setConductivityMax(String conductivityMax) { + this.conductivityMax = conductivityMax; + } + + public String getConductivityMin() { + return conductivityMin; + } + + public void setConductivityMin(String conductivityMin) { + this.conductivityMin = conductivityMin; + } + + public String getConductivityAvg() { + return conductivityAvg; + } + + public void setConductivityAvg(String conductivityAvg) { + this.conductivityAvg = conductivityAvg; + } + + public String getPhMax() { + return phMax; + } + + public void setPhMax(String phMax) { + this.phMax = phMax; + } + + public String getPhMin() { + return phMin; + } + + public void setPhMin(String phMin) { + this.phMin = phMin; + } + + public String getPhAvg() { + return phAvg; + } + + public void setPhAvg(String phAvg) { + this.phAvg = phAvg; + } + + public String getDoMax() { + return doMax; + } + + public void setDoMax(String doMax) { + this.doMax = doMax; + } + + public String getDoMin() { + return doMin; + } + + public void setDoMin(String doMin) { + this.doMin = doMin; + } + + public String getDoAvg() { + return doAvg; + } + + public void setDoAvg(String doAvg) { + this.doAvg = doAvg; + } + + public String getTurbidityMax() { + return turbidityMax; + } + + public void setTurbidityMax(String turbidityMax) { + this.turbidityMax = turbidityMax; + } + + public String getTurbidityMin() { + return turbidityMin; + } + + public void setTurbidityMin(String turbidityMin) { + this.turbidityMin = turbidityMin; + } + + public String getTurbidityAvg() { + return turbidityAvg; + } + + public void setTurbidityAvg(String turbidityAvg) { + this.turbidityAvg = turbidityAvg; + } + + public String getCodMax() { + return codMax; + } + + public void setCodMax(String codMax) { + this.codMax = codMax; + } + + public String getCodMin() { + return codMin; + } + + public void setCodMin(String codMin) { + this.codMin = codMin; + } + + public String getCodAvg() { + return codAvg; + } + + public void setCodAvg(String codAvg) { + this.codAvg = codAvg; + } + + public String getAnMax() { + return anMax; + } + + public void setAnMax(String anMax) { + this.anMax = anMax; + } + + public String getAnMin() { + return anMin; + } + + public void setAnMin(String anMin) { + this.anMin = anMin; + } + + public String getAnAvg() { + return anAvg; + } + + public void setAnAvg(String anAvg) { + this.anAvg = anAvg; + } + + public String getTpMax() { + return tpMax; + } + + public void setTpMax(String tpMax) { + this.tpMax = tpMax; + } + + public String getTpMin() { + return tpMin; + } + + public void setTpMin(String tpMin) { + this.tpMin = tpMin; + } + + public String getTpAvg() { + return tpAvg; + } + + public void setTpAvg(String tpAvg) { + this.tpAvg = tpAvg; + } + + public String getTnMax() { + return tnMax; + } + + public void setTnMax(String tnMax) { + this.tnMax = tnMax; + } + + public String getTnMin() { + return tnMin; + } + + public void setTnMin(String tnMin) { + this.tnMin = tnMin; + } + + public String getTnAvg() { + return tnAvg; + } + + public void setTnAvg(String tnAvg) { + this.tnAvg = tnAvg; + } + + public DataMeterMin(Map meterMap,String wellCode) { + this.devcode=(meterMap.get("devCode")); + this.logtime=(new Date()); + try { + this.uptime=(DateUtils.sdf4.parse(DateUtils.DateFormat(meterMap.get("DataTime")))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.wellCode=wellCode; + this.tempAvg=(meterMap.get("temp_avg")); + this.tempMax=(meterMap.get("temp_max")); + this.tempMin=(meterMap.get("temp_min")); + this.conductivityAvg=(meterMap.get("conductivity_avg")); + this.conductivityMax=(meterMap.get("conductivity_max")); + this.conductivityMin=(meterMap.get("conductivity_min")); + this.phAvg=(meterMap.get("PH_avg")); + this.phMax=(meterMap.get("PH_max")); + this.phMin=(meterMap.get("PH_min")); + this.doAvg=(meterMap.get("DO_avg")); + this.doMax=(meterMap.get("DO_max")); + this.doMin=(meterMap.get("DO_min")); + this.turbidityAvg=(meterMap.get("turbidity_avg")); + this.turbidityMax=(meterMap.get("turbidity_max")); + this.turbidityMin=(meterMap.get("turbidity_min")); + this.codAvg=(meterMap.get("COD_avg")); + this.codMax=(meterMap.get("COD_max")); + this.codMin=(meterMap.get("COD_min")); + this.anAvg=(meterMap.get("AN_avg")); + this.anMax=(meterMap.get("AN_max")); + this.anMin=(meterMap.get("AN_min")); + this.tpAvg=(meterMap.get("TP_avg")); + this.tpMax=(meterMap.get("TP_max")); + this.tpMin=(meterMap.get("TP_min")); + this.tnAvg=(meterMap.get("TN_avg")); + this.tnMax=(meterMap.get("TN_max")); + this.tnMin=(meterMap.get("TN_min")); + + } + +} diff --git a/src/main/java/org/well/well/manager/MeterDayManager.java b/src/main/java/org/well/well/manager/MeterDayManager.java new file mode 100644 index 0000000..fae4fa6 --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterDayManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterDayManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + + @Transactional + public void processMeterData(Map meterMap) { + + try { + String devCode = meterMap.get("devCode"); + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterDay(meterMap, null == busWell ? "" : busWell.getWellCode())); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterHourManager.java b/src/main/java/org/well/well/manager/MeterHourManager.java new file mode 100644 index 0000000..6a3867d --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterHourManager.java @@ -0,0 +1,34 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.base.DeviceTypeEnum; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; +import org.well.well.core.util.ThreadUtil; +import org.well.well.domain.*; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterHourManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + + //存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterHour(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..7618fa4 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -9,6 +9,7 @@ import org.well.well.domain.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.Map; @Service @@ -21,95 +22,125 @@ BusWellManager busWellManager; @Resource AlarmJobManager alarmJobManager; + @Resource + MeterMinManager meterMinManager; + @Resource + MeterHourManager meterHourManager; + @Resource + MeterDayManager meterDayManager; + private static String[] cnArr = {"2011", "2051", "2061", "2031"}; + + private static Map devCodeMap = new HashMap(); + + static { + devCodeMap.put("399435X0000002", "2006243001"); + devCodeMap.put("399435X0000001", "2006243002"); + } @Transactional - public void processMeterData(Map meterMap){ - try { - String devCode=meterMap.get("devCode"); - //1.清离线 - deviceManager.clearOffline(devCode); - //2.存数据 - BusWell busWell = busWellManager.getWellByDevCode(devCode); - save(new DataMeter(meterMap,null==busWell?"":busWell.getWellCode())); - //3.有无超限 - String alarmContent = "", alarmValue = ""; - if(StringUtils.isNotBlank(meterMap.get("temp"))&&Float.valueOf(meterMap.get("temp"))>=60){ - alarmContent+="温度超限报警,"; - alarmValue+="温度:" + meterMap.get("temp") + "℃,"; - } - if(StringUtils.isNotBlank(meterMap.get("PH"))&&(Float.valueOf(meterMap.get("PH"))>=10|| - Float.valueOf(meterMap.get("PH"))<=6)){ - alarmContent+="PH值超限报警,"; - alarmValue+="PH:" + meterMap.get("PH") + ","; - } - if(StringUtils.isNotBlank(meterMap.get("conductivity"))&& - Float.valueOf(meterMap.get("conductivity"))>=5){ - alarmContent+="电导率超限报警,"; - alarmValue+="电导率:" + meterMap.get("conductivity") + "mS/cm,"; - } - if(StringUtils.isNotBlank(meterMap.get("DO"))&&Float.valueOf(meterMap.get("DO"))>=20){ - alarmContent+="溶解氧超限报警,"; - alarmValue+="溶解氧:" + meterMap.get("DO") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("turbidity"))&&Float.valueOf(meterMap.get("turbidity"))>=1000){ - alarmContent+="浊度超限报警,"; - alarmValue+="浊度:" + meterMap.get("turbidity") + "NTU,"; - } - if(StringUtils.isNotBlank(meterMap.get("COD"))&&Float.valueOf(meterMap.get("COD"))>=500){ - alarmContent+="化学需氧量超限报警,"; - alarmValue+="化学需氧量:" + meterMap.get("COD") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("AN"))&&Float.valueOf(meterMap.get("AN"))>=20){ - alarmContent+="氨氮超限报警,"; - alarmValue+="氨氮:" + meterMap.get("AN") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TP"))&&Float.valueOf(meterMap.get("TP"))>=15){ - alarmContent+="总磷超限报警,"; - alarmValue+="总磷:" + meterMap.get("TP") + "mg/L,"; - } - if(StringUtils.isNotBlank(meterMap.get("TN"))&&Float.valueOf(meterMap.get("TN"))>=30){ - alarmContent+="总氮超限报警,"; - alarmValue+="总氮:" + meterMap.get("TN") + "mg/L,"; - } - if (StringUtils.isNotBlank(alarmContent)) { - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); - } else {//不存在上一条报警时 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 - //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); - //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", null, - "水质超限告警", - alarmValue.substring(0, alarmValue.length() - 1), device, - devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), - alarmContent.substring(0, alarmContent.length() - 1)); + public void processMeterData(Map meterMap) { + + String devCodeBefore = meterMap.get("devCode"); + if ("399435X0000002".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243001"); + } else if ("399435X0000001".equals(devCodeBefore)) { + meterMap.put("devCode", "2006243002"); + } + String CN = meterMap.get("CN"); + if (cnArr[1].equals(CN)) { + meterMinManager.processMeterData(meterMap); + } else if (cnArr[2].equals(CN)) { + meterHourManager.processMeterData(meterMap); + } else if (cnArr[3].equals(CN)) { + meterDayManager.processMeterData(meterMap); + } else if (cnArr[0].equals(CN)) { + try { + String devCode = meterMap.get("devCode"); + //1.清离线 + deviceManager.clearOffline(devCode); + //2.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeter(meterMap, null == busWell ? "" : busWell.getWellCode())); + //3.有无超限 + String alarmContent = "", alarmValue = ""; + if (StringUtils.isNotBlank(meterMap.get("temp")) && Float.valueOf(meterMap.get("temp")) >= 60) { + alarmContent += "温度超限报警,"; + alarmValue += "温度:" + meterMap.get("temp") + "℃,"; + } + if (StringUtils.isNotBlank(meterMap.get("PH")) && (Float.valueOf(meterMap.get("PH")) >= 10 || + Float.valueOf(meterMap.get("PH")) <= 6)) { + alarmContent += "PH值超限报警,"; + alarmValue += "PH:" + meterMap.get("PH") + ","; + } + if (StringUtils.isNotBlank(meterMap.get("conductivity")) && + Float.valueOf(meterMap.get("conductivity")) >= 5) { + alarmContent += "电导率超限报警,"; + alarmValue += "电导率:" + meterMap.get("conductivity") + "mS/cm,"; + } + if (StringUtils.isNotBlank(meterMap.get("DO")) && Float.valueOf(meterMap.get("DO")) >= 20) { + alarmContent += "溶解氧超限报警,"; + alarmValue += "溶解氧:" + meterMap.get("DO") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("turbidity")) && Float.valueOf(meterMap.get("turbidity")) >= 1000) { + alarmContent += "浊度超限报警,"; + alarmValue += "浊度:" + meterMap.get("turbidity") + "NTU,"; + } + if (StringUtils.isNotBlank(meterMap.get("COD")) && Float.valueOf(meterMap.get("COD")) >= 500) { + alarmContent += "化学需氧量超限报警,"; + alarmValue += "化学需氧量:" + meterMap.get("COD") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("AN")) && Float.valueOf(meterMap.get("AN")) >= 20) { + alarmContent += "氨氮超限报警,"; + alarmValue += "氨氮:" + meterMap.get("AN") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TP")) && Float.valueOf(meterMap.get("TP")) >= 15) { + alarmContent += "总磷超限报警,"; + alarmValue += "总磷:" + meterMap.get("TP") + "mg/L,"; + } + if (StringUtils.isNotBlank(meterMap.get("TN")) && Float.valueOf(meterMap.get("TN")) >= 30) { + alarmContent += "总氮超限报警,"; + alarmValue += "总氮:" + meterMap.get("TN") + "mg/L,"; + } + if (StringUtils.isNotBlank(alarmContent)) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); + } else {//不存在上一条报警时 + Device device = deviceManager.getDeviceByDevCode(devCode); + if (device == null) return;//未注册设备舍弃 + //1.生成新的工单 + AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(), "1"); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", null, + "水质超限告警", + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), meterMap.get("DataTime"), + alarmContent.substring(0, alarmContent.length() - 1)); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); - ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? - busWell.getWellCode() : ""); + ThreadUtil.excuteMsg(alarmJob.getId(), "水质超限告警", busWell != null ? + busWell.getWellCode() : ""); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } - } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 - alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } catch (Exception e) { + e.printStackTrace(); } - }catch (Exception e){ - e.printStackTrace(); } } } diff --git a/src/main/java/org/well/well/manager/MeterMinManager.java b/src/main/java/org/well/well/manager/MeterMinManager.java new file mode 100644 index 0000000..2068dfa --- /dev/null +++ b/src/main/java/org/well/well/manager/MeterMinManager.java @@ -0,0 +1,32 @@ +package org.well.well.manager; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.domain.BusWell; +import org.well.well.domain.DataMeter; +import org.well.well.domain.DataMeterMin; + +import javax.annotation.Resource; +import java.util.Map; + +@Service +public class MeterMinManager extends HibernateEntityDao { + + @Resource + BusWellManager busWellManager; + + @Transactional + public void processMeterData(Map meterMap){ + + try { + String devCode=meterMap.get("devCode"); + //1.存数据 + BusWell busWell = busWellManager.getWellByDevCode(devCode); + save(new DataMeterMin(meterMap,null==busWell?"":busWell.getWellCode())); + + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/well/well/resp/WaterQualityResponse.java b/src/main/java/org/well/well/resp/WaterQualityResponse.java new file mode 100644 index 0000000..47d3674 --- /dev/null +++ b/src/main/java/org/well/well/resp/WaterQualityResponse.java @@ -0,0 +1,63 @@ +package org.well.well.resp; + +import com.alibaba.fastjson.JSON; +import net.sf.json.JSONArray; +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.base.DeviceTypeEnum; +import org.well.well.core.util.DateUtils; +import org.well.well.manager.DeviceConfigManager; +import org.well.well.manager.ImeiManager; +import org.well.well.manager.LiquidManager; +import org.well.well.manager.MeterManager; + +import java.util.HashMap; +import java.util.Map; + +/** + * Created by lenovo on 2018/1/9. + */ +public class WaterQualityResponse extends AbstractResponse { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void process(String content) { + try { + ClassPathXmlApplicationContext ac = this.getAc(); + MeterManager meterManager = ac.getBean(MeterManager.class); + JSONObject json = JSONObject.fromObject(content); + String devCode = json.get("DevID").toString(); + String dataTimeStr = json.get("LogTime").toString(); + Map meterMap = new HashMap(); + Map meterMapBefore = new HashMap(); + meterMap.put("DataTime", dataTimeStr.replaceAll("[[\\s-:punct:]]","")); + meterMap.put("CN", "2011"); + meterMap.put("devCode", devCode); +// JSONArray jsonArray = JSON.parseArray(json.get("Status").toString()); + JSONArray jsonArray = JSONArray.fromObject(json.get("Status")); + for (int i = 0; i < jsonArray.size(); i++) { + String name = ((JSONObject) jsonArray.get(i)).get("Key").toString(); + String value = ((JSONObject) jsonArray.get(i)).get("Value").toString(); + meterMapBefore.put(name,value); + } + meterMap.put("temp", meterMapBefore.get("Temp")); + meterMap.put("PH", meterMapBefore.get("PH")); + meterMap.put("conductivity", meterMapBefore.get("Cond")); + meterMap.put("DO", meterMapBefore.get("DO")); + meterMap.put("turbidity", meterMapBefore.get("Turb")); + meterMap.put("COD", meterMapBefore.get("COD")); + meterMap.put("AN", meterMapBefore.get("AN")); + meterMap.put("TP", meterMapBefore.get("TP")); + meterMap.put("TN", meterMapBefore.get("TN")); + meterManager.processMeterData(meterMap); + }catch (Exception e){ + e.printStackTrace(); + } + } +} + + diff --git a/src/main/java/org/well/well/util/ResponseResolver.java b/src/main/java/org/well/well/util/ResponseResolver.java index 7f7626d..6fef231 100644 --- a/src/main/java/org/well/well/util/ResponseResolver.java +++ b/src/main/java/org/well/well/util/ResponseResolver.java @@ -27,6 +27,7 @@ // abstractResponseHashMap.put(DeviceTypeEnum.Dig.name(), new NoiseDigResponse()); abstractResponseHashMap.put(DeviceTypeEnum.NoiseDig.name(), new NoiseDigResponse()); abstractResponseHashMap.put(DeviceTypeEnum.Locator.name(), new LocatorResponse()); + abstractResponseHashMap.put(DeviceTypeEnum.WaterQuality.name(), new WaterQualityResponse()); } diff --git a/src/main/resources/wellSensor/application.properties b/src/main/resources/wellSensor/application.properties index 2e24ea6..68b9e28 100644 --- a/src/main/resources/wellSensor/application.properties +++ b/src/main/resources/wellSensor/application.properties @@ -20,7 +20,7 @@ #db.default.username=sensor #db.default.password=sensor db.default.driverClassName=com.mysql.jdbc.Driver -db.default.url=jdbc:mysql://111.198.10.15:11102/smartwell?useUnicode=true&characterEncoding=UTF-8&useSSL=false +db.default.url=jdbc:mysql://111.198.10.15:11102/smartwell_yizhuang?useUnicode=true&characterEncoding=UTF-8&useSSL=false db.default.username=root db.default.password=Casic203! ### ============================================================================ diff --git a/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml b/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml index 27d1d56..a11375d 100644 --- a/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml +++ b/src/main/resources/wellSensor/applicationContex-ActiveMQ.xml @@ -3,18 +3,11 @@ diff --git a/target/classes/wellSensor/application.properties b/target/classes/wellSensor/application.properties index 2e24ea6..68b9e28 100644 --- a/target/classes/wellSensor/application.properties +++ b/target/classes/wellSensor/application.properties @@ -20,7 +20,7 @@ #db.default.username=sensor #db.default.password=sensor db.default.driverClassName=com.mysql.jdbc.Driver -db.default.url=jdbc:mysql://111.198.10.15:11102/smartwell?useUnicode=true&characterEncoding=UTF-8&useSSL=false +db.default.url=jdbc:mysql://111.198.10.15:11102/smartwell_yizhuang?useUnicode=true&characterEncoding=UTF-8&useSSL=false db.default.username=root db.default.password=Casic203! ### ============================================================================