diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; 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 f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java index b8a1d01..bfdfff4 100644 --- a/src/main/java/org/well/well/domain/WasteGas.java +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -134,7 +134,7 @@ public WasteGas(String devCode, String wellCode, Date upTime, String CO, String O2,String H2S, String CH4,Boolean isOpen) { this.devId = devCode; - this.devId = wellCode; + this.wellCode = wellCode; this.upTime = upTime; this.co = CO; this.o2 = O2; diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java index b8a1d01..bfdfff4 100644 --- a/src/main/java/org/well/well/domain/WasteGas.java +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -134,7 +134,7 @@ public WasteGas(String devCode, String wellCode, Date upTime, String CO, String O2,String H2S, String CH4,Boolean isOpen) { this.devId = devCode; - this.devId = wellCode; + this.wellCode = wellCode; this.upTime = upTime; this.co = CO; this.o2 = O2; diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 8b9114a..10df679 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -92,7 +92,7 @@ criteria.add(Restrictions.eq("devcode", devCode)); // criteria.add(Restrictions.ne("jobStatus", "3")); criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); - criteria.add(Restrictions.eq("jogType", jobType)); +// criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java index b8a1d01..bfdfff4 100644 --- a/src/main/java/org/well/well/domain/WasteGas.java +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -134,7 +134,7 @@ public WasteGas(String devCode, String wellCode, Date upTime, String CO, String O2,String H2S, String CH4,Boolean isOpen) { this.devId = devCode; - this.devId = wellCode; + this.wellCode = wellCode; this.upTime = upTime; this.co = CO; this.o2 = O2; diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 8b9114a..10df679 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -92,7 +92,7 @@ criteria.add(Restrictions.eq("devcode", devCode)); // criteria.add(Restrictions.ne("jobStatus", "3")); criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); - criteria.add(Restrictions.eq("jogType", jobType)); +// criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 2316f03..4369eb2 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -23,16 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - public Map saveData(Long jobId, String alarmType, + public Map saveData(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String devCode, - String wellCode, String alarmTime) throws IOException { + String wellCode, String alarmTime,String alarmMsg) throws IOException { Map resultMap = new HashMap(); try { - AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType,alarmLevel, alarmContent, alarmValue, + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime)),alarmMsg); save(alarmRecord); @@ -93,7 +93,7 @@ Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); - criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); +// criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); criteria.add(Restrictions.eq("status", alarmStatusArr[1])); List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java index b8a1d01..bfdfff4 100644 --- a/src/main/java/org/well/well/domain/WasteGas.java +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -134,7 +134,7 @@ public WasteGas(String devCode, String wellCode, Date upTime, String CO, String O2,String H2S, String CH4,Boolean isOpen) { this.devId = devCode; - this.devId = wellCode; + this.wellCode = wellCode; this.upTime = upTime; this.co = CO; this.o2 = O2; diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 8b9114a..10df679 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -92,7 +92,7 @@ criteria.add(Restrictions.eq("devcode", devCode)); // criteria.add(Restrictions.ne("jobStatus", "3")); criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); - criteria.add(Restrictions.eq("jogType", jobType)); +// criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 2316f03..4369eb2 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -23,16 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - public Map saveData(Long jobId, String alarmType, + public Map saveData(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String devCode, - String wellCode, String alarmTime) throws IOException { + String wellCode, String alarmTime,String alarmMsg) throws IOException { Map resultMap = new HashMap(); try { - AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType,alarmLevel, alarmContent, alarmValue, + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime)),alarmMsg); save(alarmRecord); @@ -93,7 +93,7 @@ Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); - criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); +// criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); criteria.add(Restrictions.eq("status", alarmStatusArr[1])); List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index 7f62c9b..db931d2 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -3,11 +3,13 @@ import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRule; import org.well.well.domain.SensorType; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Service; +import org.well.well.domain.SysDept; import javax.annotation.Resource; import java.util.HashMap; @@ -21,6 +23,9 @@ @Resource private SensorTypeManager sensorTypeManager; + @Resource + private DeptManager deptManager; + public Criteria getCriteria() { return getSession().createCriteria(AlarmRule.class); } @@ -55,6 +60,12 @@ if (null != alarmRule) { ruleStr = String.valueOf(alarmRule.getHighValue()); } + } else if (DeviceTypeEnum.Dig.toString().equals(devTypeName)) { +// SensorType sensorType = sensorTypeManager.get("000064"); + alarmRule = findRuleByDevAndSensor(devCode, null); + if (null != alarmRule) { + ruleStr = String.valueOf(alarmRule.getHighValue()); + } } else if (DeviceTypeEnum.MultiLeak.toString().equals(devTypeName)) { SensorType sensorType = sensorTypeManager.get("000031"); SensorType sensorType2 = sensorTypeManager.get("000032"); @@ -70,7 +81,19 @@ ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { ruleStr += "50,10,2,18:23";//CO,H2S,CH4,O2(18~23) - }/* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { + } else if (DeviceTypeEnum.TempHumi.toString().equals(devTypeName)) { + SensorType sensorType = sensorTypeManager.get("000050"); + SensorType sensorType2 = sensorTypeManager.get("000055"); + SensorType sensorType3 = sensorTypeManager.get("000033"); + alarmRule = findRuleByDevAndSensor(devCode, sensorType); + alarmRule2 = findRuleByDevAndSensor(devCode, sensorType2); + alarmRule3 = findRuleByDevAndSensor(devCode, sensorType3); + ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + + "^" + String.valueOf(alarmRule.getLowValue())) : ""); + } + /* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { ruleStr += "突变范围:5℃以上"; } else if (devTypeName.indexOf("形变光纤") > -1) { ruleStr = "200(Mpa)"; @@ -82,27 +105,35 @@ return ruleStr; } - public Long getTenantIdBydep(String depId) { - try { - String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; - List tenantList = getSession().createSQLQuery(sql).list(); - if (tenantList.size() > 0) - return Long.valueOf(tenantList.get(0).toString()); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } +// public Long getTenantIdBydep(String depId) { +// try { +// String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; +// List tenantList = getSession().createSQLQuery(sql).list(); +// if (tenantList.size() > 0) +// return Long.valueOf(tenantList.get(0).toString()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } public List getRuleRank(String devCode, String depId) { - Long tenantId = getTenantIdBydep(depId); + Long tenantId = null; + if (StringUtils.isNotBlank(depId)) { + SysDept sysDept = deptManager.get(Long.valueOf(depId)); + if (null != sysDept) { + String tenantStr = sysDept.getTenantId(); + tenantId = StringUtils.isBlank(tenantStr) ? tenantId : Long.valueOf(tenantStr); + } + } + if (null == tenantId) return null; try { Map paraMap = new HashMap(); - String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + - "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ - " ORDER BY level"; + String sql = "SELECT level,low_value,high_value,name FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId" + + " ORDER BY name,level"; paraMap.put("devcode", devCode); paraMap.put("tenantId", tenantId); List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java index b8a1d01..bfdfff4 100644 --- a/src/main/java/org/well/well/domain/WasteGas.java +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -134,7 +134,7 @@ public WasteGas(String devCode, String wellCode, Date upTime, String CO, String O2,String H2S, String CH4,Boolean isOpen) { this.devId = devCode; - this.devId = wellCode; + this.wellCode = wellCode; this.upTime = upTime; this.co = CO; this.o2 = O2; diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 8b9114a..10df679 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -92,7 +92,7 @@ criteria.add(Restrictions.eq("devcode", devCode)); // criteria.add(Restrictions.ne("jobStatus", "3")); criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); - criteria.add(Restrictions.eq("jogType", jobType)); +// criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 2316f03..4369eb2 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -23,16 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - public Map saveData(Long jobId, String alarmType, + public Map saveData(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String devCode, - String wellCode, String alarmTime) throws IOException { + String wellCode, String alarmTime,String alarmMsg) throws IOException { Map resultMap = new HashMap(); try { - AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType,alarmLevel, alarmContent, alarmValue, + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime)),alarmMsg); save(alarmRecord); @@ -93,7 +93,7 @@ Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); - criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); +// criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); criteria.add(Restrictions.eq("status", alarmStatusArr[1])); List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index 7f62c9b..db931d2 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -3,11 +3,13 @@ import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRule; import org.well.well.domain.SensorType; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Service; +import org.well.well.domain.SysDept; import javax.annotation.Resource; import java.util.HashMap; @@ -21,6 +23,9 @@ @Resource private SensorTypeManager sensorTypeManager; + @Resource + private DeptManager deptManager; + public Criteria getCriteria() { return getSession().createCriteria(AlarmRule.class); } @@ -55,6 +60,12 @@ if (null != alarmRule) { ruleStr = String.valueOf(alarmRule.getHighValue()); } + } else if (DeviceTypeEnum.Dig.toString().equals(devTypeName)) { +// SensorType sensorType = sensorTypeManager.get("000064"); + alarmRule = findRuleByDevAndSensor(devCode, null); + if (null != alarmRule) { + ruleStr = String.valueOf(alarmRule.getHighValue()); + } } else if (DeviceTypeEnum.MultiLeak.toString().equals(devTypeName)) { SensorType sensorType = sensorTypeManager.get("000031"); SensorType sensorType2 = sensorTypeManager.get("000032"); @@ -70,7 +81,19 @@ ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { ruleStr += "50,10,2,18:23";//CO,H2S,CH4,O2(18~23) - }/* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { + } else if (DeviceTypeEnum.TempHumi.toString().equals(devTypeName)) { + SensorType sensorType = sensorTypeManager.get("000050"); + SensorType sensorType2 = sensorTypeManager.get("000055"); + SensorType sensorType3 = sensorTypeManager.get("000033"); + alarmRule = findRuleByDevAndSensor(devCode, sensorType); + alarmRule2 = findRuleByDevAndSensor(devCode, sensorType2); + alarmRule3 = findRuleByDevAndSensor(devCode, sensorType3); + ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + + "^" + String.valueOf(alarmRule.getLowValue())) : ""); + } + /* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { ruleStr += "突变范围:5℃以上"; } else if (devTypeName.indexOf("形变光纤") > -1) { ruleStr = "200(Mpa)"; @@ -82,27 +105,35 @@ return ruleStr; } - public Long getTenantIdBydep(String depId) { - try { - String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; - List tenantList = getSession().createSQLQuery(sql).list(); - if (tenantList.size() > 0) - return Long.valueOf(tenantList.get(0).toString()); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } +// public Long getTenantIdBydep(String depId) { +// try { +// String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; +// List tenantList = getSession().createSQLQuery(sql).list(); +// if (tenantList.size() > 0) +// return Long.valueOf(tenantList.get(0).toString()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } public List getRuleRank(String devCode, String depId) { - Long tenantId = getTenantIdBydep(depId); + Long tenantId = null; + if (StringUtils.isNotBlank(depId)) { + SysDept sysDept = deptManager.get(Long.valueOf(depId)); + if (null != sysDept) { + String tenantStr = sysDept.getTenantId(); + tenantId = StringUtils.isBlank(tenantStr) ? tenantId : Long.valueOf(tenantStr); + } + } + if (null == tenantId) return null; try { Map paraMap = new HashMap(); - String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + - "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ - " ORDER BY level"; + String sql = "SELECT level,low_value,high_value,name FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId" + + " ORDER BY name,level"; paraMap.put("devcode", devCode); paraMap.put("tenantId", tenantId); List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index bd4f3ee..146a46d 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -80,15 +80,17 @@ AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; if(busWell!=null){ List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { - LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( - String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); - alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; +// LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); +// alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); break; } } @@ -99,18 +101,19 @@ //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), + LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, alarmContent, level, device, - devCode, alarmJob.getWellCode(), upTime); + devCode, alarmJob.getWellCode(), upTime,alarmContent); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -152,10 +155,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException 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 f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java index b8a1d01..bfdfff4 100644 --- a/src/main/java/org/well/well/domain/WasteGas.java +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -134,7 +134,7 @@ public WasteGas(String devCode, String wellCode, Date upTime, String CO, String O2,String H2S, String CH4,Boolean isOpen) { this.devId = devCode; - this.devId = wellCode; + this.wellCode = wellCode; this.upTime = upTime; this.co = CO; this.o2 = O2; diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 8b9114a..10df679 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -92,7 +92,7 @@ criteria.add(Restrictions.eq("devcode", devCode)); // criteria.add(Restrictions.ne("jobStatus", "3")); criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); - criteria.add(Restrictions.eq("jogType", jobType)); +// criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 2316f03..4369eb2 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -23,16 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - public Map saveData(Long jobId, String alarmType, + public Map saveData(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String devCode, - String wellCode, String alarmTime) throws IOException { + String wellCode, String alarmTime,String alarmMsg) throws IOException { Map resultMap = new HashMap(); try { - AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType,alarmLevel, alarmContent, alarmValue, + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime)),alarmMsg); save(alarmRecord); @@ -93,7 +93,7 @@ Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); - criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); +// criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); criteria.add(Restrictions.eq("status", alarmStatusArr[1])); List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index 7f62c9b..db931d2 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -3,11 +3,13 @@ import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRule; import org.well.well.domain.SensorType; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Service; +import org.well.well.domain.SysDept; import javax.annotation.Resource; import java.util.HashMap; @@ -21,6 +23,9 @@ @Resource private SensorTypeManager sensorTypeManager; + @Resource + private DeptManager deptManager; + public Criteria getCriteria() { return getSession().createCriteria(AlarmRule.class); } @@ -55,6 +60,12 @@ if (null != alarmRule) { ruleStr = String.valueOf(alarmRule.getHighValue()); } + } else if (DeviceTypeEnum.Dig.toString().equals(devTypeName)) { +// SensorType sensorType = sensorTypeManager.get("000064"); + alarmRule = findRuleByDevAndSensor(devCode, null); + if (null != alarmRule) { + ruleStr = String.valueOf(alarmRule.getHighValue()); + } } else if (DeviceTypeEnum.MultiLeak.toString().equals(devTypeName)) { SensorType sensorType = sensorTypeManager.get("000031"); SensorType sensorType2 = sensorTypeManager.get("000032"); @@ -70,7 +81,19 @@ ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { ruleStr += "50,10,2,18:23";//CO,H2S,CH4,O2(18~23) - }/* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { + } else if (DeviceTypeEnum.TempHumi.toString().equals(devTypeName)) { + SensorType sensorType = sensorTypeManager.get("000050"); + SensorType sensorType2 = sensorTypeManager.get("000055"); + SensorType sensorType3 = sensorTypeManager.get("000033"); + alarmRule = findRuleByDevAndSensor(devCode, sensorType); + alarmRule2 = findRuleByDevAndSensor(devCode, sensorType2); + alarmRule3 = findRuleByDevAndSensor(devCode, sensorType3); + ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + + "^" + String.valueOf(alarmRule.getLowValue())) : ""); + } + /* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { ruleStr += "突变范围:5℃以上"; } else if (devTypeName.indexOf("形变光纤") > -1) { ruleStr = "200(Mpa)"; @@ -82,27 +105,35 @@ return ruleStr; } - public Long getTenantIdBydep(String depId) { - try { - String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; - List tenantList = getSession().createSQLQuery(sql).list(); - if (tenantList.size() > 0) - return Long.valueOf(tenantList.get(0).toString()); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } +// public Long getTenantIdBydep(String depId) { +// try { +// String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; +// List tenantList = getSession().createSQLQuery(sql).list(); +// if (tenantList.size() > 0) +// return Long.valueOf(tenantList.get(0).toString()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } public List getRuleRank(String devCode, String depId) { - Long tenantId = getTenantIdBydep(depId); + Long tenantId = null; + if (StringUtils.isNotBlank(depId)) { + SysDept sysDept = deptManager.get(Long.valueOf(depId)); + if (null != sysDept) { + String tenantStr = sysDept.getTenantId(); + tenantId = StringUtils.isBlank(tenantStr) ? tenantId : Long.valueOf(tenantStr); + } + } + if (null == tenantId) return null; try { Map paraMap = new HashMap(); - String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + - "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ - " ORDER BY level"; + String sql = "SELECT level,low_value,high_value,name FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId" + + " ORDER BY name,level"; paraMap.put("devcode", devCode); paraMap.put("tenantId", tenantId); List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index bd4f3ee..146a46d 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -80,15 +80,17 @@ AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; if(busWell!=null){ List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { - LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( - String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); - alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; +// LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); +// alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); break; } } @@ -99,18 +101,19 @@ //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), + LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, alarmContent, level, device, - devCode, alarmJob.getWellCode(), upTime); + devCode, alarmJob.getWellCode(), upTime,alarmContent); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -152,10 +155,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index a9204b2..ecbd415 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -68,18 +68,28 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + //获取报警等级 + String alarmContent = MethaneAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel = 0; +// alarmContent = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? +// MethaneAlarmEnum.OVER_THRESH1.getName() : +// (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? +// MethaneAlarmEnum.OVER_THRESH2.getName() : alarmContent); + alarmLevel = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? + 1 : (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? + 2 : alarmLevel); if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), - gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 @@ -88,9 +98,9 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, + alarmContent, gas, device, + devCode, alarmJob.getWellCode(), upTime,alarmContent); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -132,10 +142,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException 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 f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java index b8a1d01..bfdfff4 100644 --- a/src/main/java/org/well/well/domain/WasteGas.java +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -134,7 +134,7 @@ public WasteGas(String devCode, String wellCode, Date upTime, String CO, String O2,String H2S, String CH4,Boolean isOpen) { this.devId = devCode; - this.devId = wellCode; + this.wellCode = wellCode; this.upTime = upTime; this.co = CO; this.o2 = O2; diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 8b9114a..10df679 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -92,7 +92,7 @@ criteria.add(Restrictions.eq("devcode", devCode)); // criteria.add(Restrictions.ne("jobStatus", "3")); criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); - criteria.add(Restrictions.eq("jogType", jobType)); +// criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 2316f03..4369eb2 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -23,16 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - public Map saveData(Long jobId, String alarmType, + public Map saveData(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String devCode, - String wellCode, String alarmTime) throws IOException { + String wellCode, String alarmTime,String alarmMsg) throws IOException { Map resultMap = new HashMap(); try { - AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType,alarmLevel, alarmContent, alarmValue, + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime)),alarmMsg); save(alarmRecord); @@ -93,7 +93,7 @@ Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); - criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); +// criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); criteria.add(Restrictions.eq("status", alarmStatusArr[1])); List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index 7f62c9b..db931d2 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -3,11 +3,13 @@ import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRule; import org.well.well.domain.SensorType; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Service; +import org.well.well.domain.SysDept; import javax.annotation.Resource; import java.util.HashMap; @@ -21,6 +23,9 @@ @Resource private SensorTypeManager sensorTypeManager; + @Resource + private DeptManager deptManager; + public Criteria getCriteria() { return getSession().createCriteria(AlarmRule.class); } @@ -55,6 +60,12 @@ if (null != alarmRule) { ruleStr = String.valueOf(alarmRule.getHighValue()); } + } else if (DeviceTypeEnum.Dig.toString().equals(devTypeName)) { +// SensorType sensorType = sensorTypeManager.get("000064"); + alarmRule = findRuleByDevAndSensor(devCode, null); + if (null != alarmRule) { + ruleStr = String.valueOf(alarmRule.getHighValue()); + } } else if (DeviceTypeEnum.MultiLeak.toString().equals(devTypeName)) { SensorType sensorType = sensorTypeManager.get("000031"); SensorType sensorType2 = sensorTypeManager.get("000032"); @@ -70,7 +81,19 @@ ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { ruleStr += "50,10,2,18:23";//CO,H2S,CH4,O2(18~23) - }/* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { + } else if (DeviceTypeEnum.TempHumi.toString().equals(devTypeName)) { + SensorType sensorType = sensorTypeManager.get("000050"); + SensorType sensorType2 = sensorTypeManager.get("000055"); + SensorType sensorType3 = sensorTypeManager.get("000033"); + alarmRule = findRuleByDevAndSensor(devCode, sensorType); + alarmRule2 = findRuleByDevAndSensor(devCode, sensorType2); + alarmRule3 = findRuleByDevAndSensor(devCode, sensorType3); + ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + + "^" + String.valueOf(alarmRule.getLowValue())) : ""); + } + /* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { ruleStr += "突变范围:5℃以上"; } else if (devTypeName.indexOf("形变光纤") > -1) { ruleStr = "200(Mpa)"; @@ -82,27 +105,35 @@ return ruleStr; } - public Long getTenantIdBydep(String depId) { - try { - String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; - List tenantList = getSession().createSQLQuery(sql).list(); - if (tenantList.size() > 0) - return Long.valueOf(tenantList.get(0).toString()); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } +// public Long getTenantIdBydep(String depId) { +// try { +// String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; +// List tenantList = getSession().createSQLQuery(sql).list(); +// if (tenantList.size() > 0) +// return Long.valueOf(tenantList.get(0).toString()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } public List getRuleRank(String devCode, String depId) { - Long tenantId = getTenantIdBydep(depId); + Long tenantId = null; + if (StringUtils.isNotBlank(depId)) { + SysDept sysDept = deptManager.get(Long.valueOf(depId)); + if (null != sysDept) { + String tenantStr = sysDept.getTenantId(); + tenantId = StringUtils.isBlank(tenantStr) ? tenantId : Long.valueOf(tenantStr); + } + } + if (null == tenantId) return null; try { Map paraMap = new HashMap(); - String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + - "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ - " ORDER BY level"; + String sql = "SELECT level,low_value,high_value,name FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId" + + " ORDER BY name,level"; paraMap.put("devcode", devCode); paraMap.put("tenantId", tenantId); List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index bd4f3ee..146a46d 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -80,15 +80,17 @@ AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; if(busWell!=null){ List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { - LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( - String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); - alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; +// LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); +// alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); break; } } @@ -99,18 +101,19 @@ //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), + LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, alarmContent, level, device, - devCode, alarmJob.getWellCode(), upTime); + devCode, alarmJob.getWellCode(), upTime,alarmContent); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -152,10 +155,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index a9204b2..ecbd415 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -68,18 +68,28 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + //获取报警等级 + String alarmContent = MethaneAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel = 0; +// alarmContent = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? +// MethaneAlarmEnum.OVER_THRESH1.getName() : +// (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? +// MethaneAlarmEnum.OVER_THRESH2.getName() : alarmContent); + alarmLevel = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? + 1 : (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? + 2 : alarmLevel); if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), - gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 @@ -88,9 +98,9 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, + alarmContent, gas, device, + devCode, alarmJob.getWellCode(), upTime,alarmContent); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -132,10 +142,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 8d4efa6..b71550f 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -6,6 +6,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -68,17 +69,37 @@ //3.存数据 saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 if (i < jsonArray.size() - 1) continue; - String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 if ( StringUtils.isNotBlank(thresh) && Double.valueOf(val) > Double.valueOf(thresh) * constant) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + + //获取报警等级 + String alarmContent= NoiseDigAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; + if(busWell!=null){ + List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); + for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh) * constant)) { +// NoiseDigAlarmEnum noiseDigAlarmEnum=NoiseDigAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 4)); +// alarmContent = noiseDigAlarmEnum!=null?noiseDigAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + + break; + } + } + } + } + if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), - val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 @@ -87,9 +108,9 @@ busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), NoiseDigAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, + alarmContent, val, device, + devCode, alarmJob.getWellCode(), upTime,alarmContent); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -131,10 +152,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException 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 f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java index b8a1d01..bfdfff4 100644 --- a/src/main/java/org/well/well/domain/WasteGas.java +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -134,7 +134,7 @@ public WasteGas(String devCode, String wellCode, Date upTime, String CO, String O2,String H2S, String CH4,Boolean isOpen) { this.devId = devCode; - this.devId = wellCode; + this.wellCode = wellCode; this.upTime = upTime; this.co = CO; this.o2 = O2; diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 8b9114a..10df679 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -92,7 +92,7 @@ criteria.add(Restrictions.eq("devcode", devCode)); // criteria.add(Restrictions.ne("jobStatus", "3")); criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); - criteria.add(Restrictions.eq("jogType", jobType)); +// criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 2316f03..4369eb2 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -23,16 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - public Map saveData(Long jobId, String alarmType, + public Map saveData(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String devCode, - String wellCode, String alarmTime) throws IOException { + String wellCode, String alarmTime,String alarmMsg) throws IOException { Map resultMap = new HashMap(); try { - AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType,alarmLevel, alarmContent, alarmValue, + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime)),alarmMsg); save(alarmRecord); @@ -93,7 +93,7 @@ Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); - criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); +// criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); criteria.add(Restrictions.eq("status", alarmStatusArr[1])); List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index 7f62c9b..db931d2 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -3,11 +3,13 @@ import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRule; import org.well.well.domain.SensorType; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Service; +import org.well.well.domain.SysDept; import javax.annotation.Resource; import java.util.HashMap; @@ -21,6 +23,9 @@ @Resource private SensorTypeManager sensorTypeManager; + @Resource + private DeptManager deptManager; + public Criteria getCriteria() { return getSession().createCriteria(AlarmRule.class); } @@ -55,6 +60,12 @@ if (null != alarmRule) { ruleStr = String.valueOf(alarmRule.getHighValue()); } + } else if (DeviceTypeEnum.Dig.toString().equals(devTypeName)) { +// SensorType sensorType = sensorTypeManager.get("000064"); + alarmRule = findRuleByDevAndSensor(devCode, null); + if (null != alarmRule) { + ruleStr = String.valueOf(alarmRule.getHighValue()); + } } else if (DeviceTypeEnum.MultiLeak.toString().equals(devTypeName)) { SensorType sensorType = sensorTypeManager.get("000031"); SensorType sensorType2 = sensorTypeManager.get("000032"); @@ -70,7 +81,19 @@ ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { ruleStr += "50,10,2,18:23";//CO,H2S,CH4,O2(18~23) - }/* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { + } else if (DeviceTypeEnum.TempHumi.toString().equals(devTypeName)) { + SensorType sensorType = sensorTypeManager.get("000050"); + SensorType sensorType2 = sensorTypeManager.get("000055"); + SensorType sensorType3 = sensorTypeManager.get("000033"); + alarmRule = findRuleByDevAndSensor(devCode, sensorType); + alarmRule2 = findRuleByDevAndSensor(devCode, sensorType2); + alarmRule3 = findRuleByDevAndSensor(devCode, sensorType3); + ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + + "^" + String.valueOf(alarmRule.getLowValue())) : ""); + } + /* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { ruleStr += "突变范围:5℃以上"; } else if (devTypeName.indexOf("形变光纤") > -1) { ruleStr = "200(Mpa)"; @@ -82,27 +105,35 @@ return ruleStr; } - public Long getTenantIdBydep(String depId) { - try { - String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; - List tenantList = getSession().createSQLQuery(sql).list(); - if (tenantList.size() > 0) - return Long.valueOf(tenantList.get(0).toString()); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } +// public Long getTenantIdBydep(String depId) { +// try { +// String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; +// List tenantList = getSession().createSQLQuery(sql).list(); +// if (tenantList.size() > 0) +// return Long.valueOf(tenantList.get(0).toString()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } public List getRuleRank(String devCode, String depId) { - Long tenantId = getTenantIdBydep(depId); + Long tenantId = null; + if (StringUtils.isNotBlank(depId)) { + SysDept sysDept = deptManager.get(Long.valueOf(depId)); + if (null != sysDept) { + String tenantStr = sysDept.getTenantId(); + tenantId = StringUtils.isBlank(tenantStr) ? tenantId : Long.valueOf(tenantStr); + } + } + if (null == tenantId) return null; try { Map paraMap = new HashMap(); - String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + - "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ - " ORDER BY level"; + String sql = "SELECT level,low_value,high_value,name FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId" + + " ORDER BY name,level"; paraMap.put("devcode", devCode); paraMap.put("tenantId", tenantId); List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index bd4f3ee..146a46d 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -80,15 +80,17 @@ AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; if(busWell!=null){ List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { - LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( - String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); - alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; +// LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); +// alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); break; } } @@ -99,18 +101,19 @@ //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), + LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, alarmContent, level, device, - devCode, alarmJob.getWellCode(), upTime); + devCode, alarmJob.getWellCode(), upTime,alarmContent); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -152,10 +155,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index a9204b2..ecbd415 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -68,18 +68,28 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + //获取报警等级 + String alarmContent = MethaneAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel = 0; +// alarmContent = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? +// MethaneAlarmEnum.OVER_THRESH1.getName() : +// (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? +// MethaneAlarmEnum.OVER_THRESH2.getName() : alarmContent); + alarmLevel = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? + 1 : (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? + 2 : alarmLevel); if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), - gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 @@ -88,9 +98,9 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, + alarmContent, gas, device, + devCode, alarmJob.getWellCode(), upTime,alarmContent); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -132,10 +142,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 8d4efa6..b71550f 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -6,6 +6,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -68,17 +69,37 @@ //3.存数据 saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 if (i < jsonArray.size() - 1) continue; - String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 if ( StringUtils.isNotBlank(thresh) && Double.valueOf(val) > Double.valueOf(thresh) * constant) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + + //获取报警等级 + String alarmContent= NoiseDigAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; + if(busWell!=null){ + List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); + for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh) * constant)) { +// NoiseDigAlarmEnum noiseDigAlarmEnum=NoiseDigAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 4)); +// alarmContent = noiseDigAlarmEnum!=null?noiseDigAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + + break; + } + } + } + } + if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), - val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 @@ -87,9 +108,9 @@ busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), NoiseDigAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, + alarmContent, val, device, + devCode, alarmJob.getWellCode(), upTime,alarmContent); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -131,10 +152,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index a2a402f..a3ff149 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -16,6 +16,7 @@ import javax.annotation.Resource; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -37,14 +38,16 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static String[] nameArr = {"温度", "湿度"}; - public Map saveData(String devCode, String upTime, String wellCode, + public Map saveData(String devCode, String wellCode,String upTime, String temperature, String humidity, String cell) { Map resultMap = new HashMap(); try { - TempHumi tempHumi = new TempHumi(devCode, wellCode, + TempHumi tempHumi = new TempHumi(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); save(tempHumi); } catch (Exception e) { @@ -73,45 +76,89 @@ temperature, humidity, cell); //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; - String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; - String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; - String alarmValue = alarmTemp + "," + alarmHumidity; - if (!("*,*".equals(alarmValue))) { - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - String alarmContent = ""; - if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmHumidity))) - alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), upTime); - } else {//不存在上一条报警时 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 - //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), - alarmContent.substring(0, alarmContent.length() - 1)); - //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, device, - devCode, alarmJob.getWellCode(), upTime); + if (busWell != null) {//获取不到相关联的井,就无法获取告警规则,故不存库 + String alarmContent = "", alarmValue = ""; + Integer alarmLevel = 10; + List ruleRankList = alarmRuleManager.getRuleRank(devCode, busWell.getDeptid()); + //获取温度告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankLowValue = ((Object[]) ruleRankList.get(j))[1]; + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[0].equals(gasName.toString())) { + if ((StringUtils.isNotBlank(temperature) && null != rankHighValue && + Float.parseFloat(temperature) > Float.parseFloat(rankHighValue.toString())) || + (StringUtils.isNotBlank(temperature) && null != rankLowValue && + Float.parseFloat(temperature) < Float.parseFloat(rankLowValue.toString()))) { +// TempHumiAlarmEnum tempHumiAlarmEnum = TempHumiAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 8)); +// alarmContent += (tempHumiAlarmEnum == null ? TempHumiAlarmEnum.Temp_OVER_THRESH.getName() : +// tempHumiAlarmEnum.getName()) + ","; + alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + alarmValue += "temp:" + temperature + "℃,"; + alarmLevel = Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + break; + } + } + } + //获取湿度告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankLowValue = ((Object[]) ruleRankList.get(j))[1]; + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[1].equals(gasName.toString())) { + if ((StringUtils.isNotBlank(humidity) && null != rankHighValue && + Float.parseFloat(humidity) > Float.parseFloat(rankHighValue.toString())) || + (StringUtils.isNotBlank(humidity) && null != rankLowValue && + Float.parseFloat(humidity) < Float.parseFloat(rankLowValue.toString()))) { +// TempHumiAlarmEnum tempHumiAlarmEnum = TempHumiAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 11)); +// alarmContent += (tempHumiAlarmEnum == null ? TempHumiAlarmEnum.Humi_OVER_THRESH.getName() : +// tempHumiAlarmEnum.getName()) + ","; + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + alarmValue += "humi:" + humidity + "%RH,"; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + break; + } + } + } + + if (StringUtils.isNotBlank(alarmContent)) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmLevel, + TempHumiAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime, + 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.TempHumi.toString(), + TempHumiAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", alarmLevel, + TempHumiAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), upTime, + alarmContent.substring(0, alarmContent.length() - 1)); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } - } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 - alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); @@ -143,10 +190,11 @@ TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } //4.写入新的报警 - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2", null, TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException 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 f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java index b8a1d01..bfdfff4 100644 --- a/src/main/java/org/well/well/domain/WasteGas.java +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -134,7 +134,7 @@ public WasteGas(String devCode, String wellCode, Date upTime, String CO, String O2,String H2S, String CH4,Boolean isOpen) { this.devId = devCode; - this.devId = wellCode; + this.wellCode = wellCode; this.upTime = upTime; this.co = CO; this.o2 = O2; diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 8b9114a..10df679 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -92,7 +92,7 @@ criteria.add(Restrictions.eq("devcode", devCode)); // criteria.add(Restrictions.ne("jobStatus", "3")); criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); - criteria.add(Restrictions.eq("jogType", jobType)); +// criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 2316f03..4369eb2 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -23,16 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - public Map saveData(Long jobId, String alarmType, + public Map saveData(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String devCode, - String wellCode, String alarmTime) throws IOException { + String wellCode, String alarmTime,String alarmMsg) throws IOException { Map resultMap = new HashMap(); try { - AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType,alarmLevel, alarmContent, alarmValue, + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime)),alarmMsg); save(alarmRecord); @@ -93,7 +93,7 @@ Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); - criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); +// criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); criteria.add(Restrictions.eq("status", alarmStatusArr[1])); List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index 7f62c9b..db931d2 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -3,11 +3,13 @@ import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRule; import org.well.well.domain.SensorType; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Service; +import org.well.well.domain.SysDept; import javax.annotation.Resource; import java.util.HashMap; @@ -21,6 +23,9 @@ @Resource private SensorTypeManager sensorTypeManager; + @Resource + private DeptManager deptManager; + public Criteria getCriteria() { return getSession().createCriteria(AlarmRule.class); } @@ -55,6 +60,12 @@ if (null != alarmRule) { ruleStr = String.valueOf(alarmRule.getHighValue()); } + } else if (DeviceTypeEnum.Dig.toString().equals(devTypeName)) { +// SensorType sensorType = sensorTypeManager.get("000064"); + alarmRule = findRuleByDevAndSensor(devCode, null); + if (null != alarmRule) { + ruleStr = String.valueOf(alarmRule.getHighValue()); + } } else if (DeviceTypeEnum.MultiLeak.toString().equals(devTypeName)) { SensorType sensorType = sensorTypeManager.get("000031"); SensorType sensorType2 = sensorTypeManager.get("000032"); @@ -70,7 +81,19 @@ ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { ruleStr += "50,10,2,18:23";//CO,H2S,CH4,O2(18~23) - }/* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { + } else if (DeviceTypeEnum.TempHumi.toString().equals(devTypeName)) { + SensorType sensorType = sensorTypeManager.get("000050"); + SensorType sensorType2 = sensorTypeManager.get("000055"); + SensorType sensorType3 = sensorTypeManager.get("000033"); + alarmRule = findRuleByDevAndSensor(devCode, sensorType); + alarmRule2 = findRuleByDevAndSensor(devCode, sensorType2); + alarmRule3 = findRuleByDevAndSensor(devCode, sensorType3); + ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + + "^" + String.valueOf(alarmRule.getLowValue())) : ""); + } + /* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { ruleStr += "突变范围:5℃以上"; } else if (devTypeName.indexOf("形变光纤") > -1) { ruleStr = "200(Mpa)"; @@ -82,27 +105,35 @@ return ruleStr; } - public Long getTenantIdBydep(String depId) { - try { - String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; - List tenantList = getSession().createSQLQuery(sql).list(); - if (tenantList.size() > 0) - return Long.valueOf(tenantList.get(0).toString()); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } +// public Long getTenantIdBydep(String depId) { +// try { +// String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; +// List tenantList = getSession().createSQLQuery(sql).list(); +// if (tenantList.size() > 0) +// return Long.valueOf(tenantList.get(0).toString()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } public List getRuleRank(String devCode, String depId) { - Long tenantId = getTenantIdBydep(depId); + Long tenantId = null; + if (StringUtils.isNotBlank(depId)) { + SysDept sysDept = deptManager.get(Long.valueOf(depId)); + if (null != sysDept) { + String tenantStr = sysDept.getTenantId(); + tenantId = StringUtils.isBlank(tenantStr) ? tenantId : Long.valueOf(tenantStr); + } + } + if (null == tenantId) return null; try { Map paraMap = new HashMap(); - String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + - "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ - " ORDER BY level"; + String sql = "SELECT level,low_value,high_value,name FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId" + + " ORDER BY name,level"; paraMap.put("devcode", devCode); paraMap.put("tenantId", tenantId); List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index bd4f3ee..146a46d 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -80,15 +80,17 @@ AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; if(busWell!=null){ List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { - LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( - String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); - alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; +// LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); +// alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); break; } } @@ -99,18 +101,19 @@ //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), + LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, alarmContent, level, device, - devCode, alarmJob.getWellCode(), upTime); + devCode, alarmJob.getWellCode(), upTime,alarmContent); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -152,10 +155,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index a9204b2..ecbd415 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -68,18 +68,28 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + //获取报警等级 + String alarmContent = MethaneAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel = 0; +// alarmContent = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? +// MethaneAlarmEnum.OVER_THRESH1.getName() : +// (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? +// MethaneAlarmEnum.OVER_THRESH2.getName() : alarmContent); + alarmLevel = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? + 1 : (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? + 2 : alarmLevel); if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), - gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 @@ -88,9 +98,9 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, + alarmContent, gas, device, + devCode, alarmJob.getWellCode(), upTime,alarmContent); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -132,10 +142,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 8d4efa6..b71550f 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -6,6 +6,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -68,17 +69,37 @@ //3.存数据 saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 if (i < jsonArray.size() - 1) continue; - String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 if ( StringUtils.isNotBlank(thresh) && Double.valueOf(val) > Double.valueOf(thresh) * constant) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + + //获取报警等级 + String alarmContent= NoiseDigAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; + if(busWell!=null){ + List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); + for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh) * constant)) { +// NoiseDigAlarmEnum noiseDigAlarmEnum=NoiseDigAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 4)); +// alarmContent = noiseDigAlarmEnum!=null?noiseDigAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + + break; + } + } + } + } + if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), - val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 @@ -87,9 +108,9 @@ busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), NoiseDigAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, + alarmContent, val, device, + devCode, alarmJob.getWellCode(), upTime,alarmContent); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -131,10 +152,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index a2a402f..a3ff149 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -16,6 +16,7 @@ import javax.annotation.Resource; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -37,14 +38,16 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static String[] nameArr = {"温度", "湿度"}; - public Map saveData(String devCode, String upTime, String wellCode, + public Map saveData(String devCode, String wellCode,String upTime, String temperature, String humidity, String cell) { Map resultMap = new HashMap(); try { - TempHumi tempHumi = new TempHumi(devCode, wellCode, + TempHumi tempHumi = new TempHumi(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); save(tempHumi); } catch (Exception e) { @@ -73,45 +76,89 @@ temperature, humidity, cell); //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; - String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; - String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; - String alarmValue = alarmTemp + "," + alarmHumidity; - if (!("*,*".equals(alarmValue))) { - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - String alarmContent = ""; - if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmHumidity))) - alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), upTime); - } else {//不存在上一条报警时 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 - //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), - alarmContent.substring(0, alarmContent.length() - 1)); - //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, device, - devCode, alarmJob.getWellCode(), upTime); + if (busWell != null) {//获取不到相关联的井,就无法获取告警规则,故不存库 + String alarmContent = "", alarmValue = ""; + Integer alarmLevel = 10; + List ruleRankList = alarmRuleManager.getRuleRank(devCode, busWell.getDeptid()); + //获取温度告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankLowValue = ((Object[]) ruleRankList.get(j))[1]; + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[0].equals(gasName.toString())) { + if ((StringUtils.isNotBlank(temperature) && null != rankHighValue && + Float.parseFloat(temperature) > Float.parseFloat(rankHighValue.toString())) || + (StringUtils.isNotBlank(temperature) && null != rankLowValue && + Float.parseFloat(temperature) < Float.parseFloat(rankLowValue.toString()))) { +// TempHumiAlarmEnum tempHumiAlarmEnum = TempHumiAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 8)); +// alarmContent += (tempHumiAlarmEnum == null ? TempHumiAlarmEnum.Temp_OVER_THRESH.getName() : +// tempHumiAlarmEnum.getName()) + ","; + alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + alarmValue += "temp:" + temperature + "℃,"; + alarmLevel = Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + break; + } + } + } + //获取湿度告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankLowValue = ((Object[]) ruleRankList.get(j))[1]; + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[1].equals(gasName.toString())) { + if ((StringUtils.isNotBlank(humidity) && null != rankHighValue && + Float.parseFloat(humidity) > Float.parseFloat(rankHighValue.toString())) || + (StringUtils.isNotBlank(humidity) && null != rankLowValue && + Float.parseFloat(humidity) < Float.parseFloat(rankLowValue.toString()))) { +// TempHumiAlarmEnum tempHumiAlarmEnum = TempHumiAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 11)); +// alarmContent += (tempHumiAlarmEnum == null ? TempHumiAlarmEnum.Humi_OVER_THRESH.getName() : +// tempHumiAlarmEnum.getName()) + ","; + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + alarmValue += "humi:" + humidity + "%RH,"; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + break; + } + } + } + + if (StringUtils.isNotBlank(alarmContent)) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmLevel, + TempHumiAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime, + 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.TempHumi.toString(), + TempHumiAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", alarmLevel, + TempHumiAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), upTime, + alarmContent.substring(0, alarmContent.length() - 1)); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } - } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 - alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); @@ -143,10 +190,11 @@ TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } //4.写入新的报警 - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2", null, TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index b9b0c56..236ac5f 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -10,11 +10,13 @@ import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; import org.well.well.domain.*; import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,12 +38,15 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static String[] nameArr = {"一氧化碳", "氧气", "甲烷", "硫化氢"}; + public Map saveData(String devCode, String wellCode, String upTime, String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { Map resultMap = new HashMap(); try { - WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils. + sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); save(wasteGas); } catch (Exception e) { e.printStackTrace(); @@ -49,6 +54,100 @@ return resultMap; } + + //获取告警等级 + public Map getAlarmContent(BusWell busWell, String devCode, + String CO, String O2, String H2S, String CH4) { + Map alarmMap = new HashMap(); + Integer alarmLevel = 10; + String alarmContent = ""; + String alarmValue = ""; + if (busWell == null) return alarmMap; + List ruleRankList = alarmRuleManager.getRuleRank(devCode, busWell.getDeptid()); + //获取一氧化碳告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[0].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(CO) > Float.valueOf(rankHighValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 8)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.CO_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + alarmLevel = Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + alarmValue += "CO:" + CO + "ppm,"; + break; + } + } + } + + //获取氧气告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankLowValue = ((Object[]) ruleRankList.get(j))[1]; + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[1].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(O2) > Float.valueOf(rankHighValue.toString()) || + rankLowValue != null && Float.parseFloat(O2) < Float.valueOf(rankLowValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 14)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.O2_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + alarmValue += "O2:" + O2 + "%VOL,"; + break; + } + } + } + + //获取甲烷告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[2].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(CH4) > Float.valueOf(rankHighValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 17)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.CH4_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + alarmValue += "CH4:" + CH4 + "%VOL,"; + break; + } + } + } + + //获取硫化氢告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[3].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(H2S) > Float.valueOf(rankHighValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 11)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.H2S_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + alarmValue += "H2S:" + H2S + "ppm,"; + break; + } + } + } + if (StringUtils.isNotBlank(alarmContent)) { + alarmMap.put("alarmContent", alarmContent); + alarmMap.put("alarmLevel", alarmLevel); + alarmMap.put("alarmValue", alarmValue); + } + return alarmMap; + } + public void processNormalData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); @@ -69,38 +168,35 @@ upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; - String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; - String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; - String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; - String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; - String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; - if (!("*,*,*,*".equals(alarmValue))) { + //获取告警等级 + Map alarmMap = getAlarmContent(busWell, devCode, CO, O2, H2S, CH4); + if (alarmMap.size()>0) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - String alarmContent = ""; - if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + String alarmContent = alarmMap.get("alarmContent").toString(); + Integer alarmLevel = Integer.valueOf(alarmMap.get("alarmLevel").toString()); + String alarmValue = alarmMap.get("alarmValue").toString(); if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmLevel, + WasteGasAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), + devCode, alarmRecord.getWellCode(), upTime, + 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.WasteGas.toString(), - alarmContent.substring(0, alarmContent.length() - 1)); + WasteGasAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1", alarmLevel, + WasteGasAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), upTime, + alarmContent.substring(0, alarmContent.length() - 1)); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java index b8a1d01..bfdfff4 100644 --- a/src/main/java/org/well/well/domain/WasteGas.java +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -134,7 +134,7 @@ public WasteGas(String devCode, String wellCode, Date upTime, String CO, String O2,String H2S, String CH4,Boolean isOpen) { this.devId = devCode; - this.devId = wellCode; + this.wellCode = wellCode; this.upTime = upTime; this.co = CO; this.o2 = O2; diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 8b9114a..10df679 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -92,7 +92,7 @@ criteria.add(Restrictions.eq("devcode", devCode)); // criteria.add(Restrictions.ne("jobStatus", "3")); criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); - criteria.add(Restrictions.eq("jogType", jobType)); +// criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 2316f03..4369eb2 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -23,16 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - public Map saveData(Long jobId, String alarmType, + public Map saveData(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String devCode, - String wellCode, String alarmTime) throws IOException { + String wellCode, String alarmTime,String alarmMsg) throws IOException { Map resultMap = new HashMap(); try { - AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType,alarmLevel, alarmContent, alarmValue, + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime)),alarmMsg); save(alarmRecord); @@ -93,7 +93,7 @@ Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); - criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); +// criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); criteria.add(Restrictions.eq("status", alarmStatusArr[1])); List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index 7f62c9b..db931d2 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -3,11 +3,13 @@ import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRule; import org.well.well.domain.SensorType; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Service; +import org.well.well.domain.SysDept; import javax.annotation.Resource; import java.util.HashMap; @@ -21,6 +23,9 @@ @Resource private SensorTypeManager sensorTypeManager; + @Resource + private DeptManager deptManager; + public Criteria getCriteria() { return getSession().createCriteria(AlarmRule.class); } @@ -55,6 +60,12 @@ if (null != alarmRule) { ruleStr = String.valueOf(alarmRule.getHighValue()); } + } else if (DeviceTypeEnum.Dig.toString().equals(devTypeName)) { +// SensorType sensorType = sensorTypeManager.get("000064"); + alarmRule = findRuleByDevAndSensor(devCode, null); + if (null != alarmRule) { + ruleStr = String.valueOf(alarmRule.getHighValue()); + } } else if (DeviceTypeEnum.MultiLeak.toString().equals(devTypeName)) { SensorType sensorType = sensorTypeManager.get("000031"); SensorType sensorType2 = sensorTypeManager.get("000032"); @@ -70,7 +81,19 @@ ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { ruleStr += "50,10,2,18:23";//CO,H2S,CH4,O2(18~23) - }/* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { + } else if (DeviceTypeEnum.TempHumi.toString().equals(devTypeName)) { + SensorType sensorType = sensorTypeManager.get("000050"); + SensorType sensorType2 = sensorTypeManager.get("000055"); + SensorType sensorType3 = sensorTypeManager.get("000033"); + alarmRule = findRuleByDevAndSensor(devCode, sensorType); + alarmRule2 = findRuleByDevAndSensor(devCode, sensorType2); + alarmRule3 = findRuleByDevAndSensor(devCode, sensorType3); + ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + + "^" + String.valueOf(alarmRule.getLowValue())) : ""); + } + /* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { ruleStr += "突变范围:5℃以上"; } else if (devTypeName.indexOf("形变光纤") > -1) { ruleStr = "200(Mpa)"; @@ -82,27 +105,35 @@ return ruleStr; } - public Long getTenantIdBydep(String depId) { - try { - String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; - List tenantList = getSession().createSQLQuery(sql).list(); - if (tenantList.size() > 0) - return Long.valueOf(tenantList.get(0).toString()); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } +// public Long getTenantIdBydep(String depId) { +// try { +// String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; +// List tenantList = getSession().createSQLQuery(sql).list(); +// if (tenantList.size() > 0) +// return Long.valueOf(tenantList.get(0).toString()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } public List getRuleRank(String devCode, String depId) { - Long tenantId = getTenantIdBydep(depId); + Long tenantId = null; + if (StringUtils.isNotBlank(depId)) { + SysDept sysDept = deptManager.get(Long.valueOf(depId)); + if (null != sysDept) { + String tenantStr = sysDept.getTenantId(); + tenantId = StringUtils.isBlank(tenantStr) ? tenantId : Long.valueOf(tenantStr); + } + } + if (null == tenantId) return null; try { Map paraMap = new HashMap(); - String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + - "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ - " ORDER BY level"; + String sql = "SELECT level,low_value,high_value,name FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId" + + " ORDER BY name,level"; paraMap.put("devcode", devCode); paraMap.put("tenantId", tenantId); List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index bd4f3ee..146a46d 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -80,15 +80,17 @@ AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; if(busWell!=null){ List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { - LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( - String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); - alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; +// LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); +// alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); break; } } @@ -99,18 +101,19 @@ //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), + LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, alarmContent, level, device, - devCode, alarmJob.getWellCode(), upTime); + devCode, alarmJob.getWellCode(), upTime,alarmContent); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -152,10 +155,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index a9204b2..ecbd415 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -68,18 +68,28 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + //获取报警等级 + String alarmContent = MethaneAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel = 0; +// alarmContent = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? +// MethaneAlarmEnum.OVER_THRESH1.getName() : +// (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? +// MethaneAlarmEnum.OVER_THRESH2.getName() : alarmContent); + alarmLevel = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? + 1 : (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? + 2 : alarmLevel); if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), - gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 @@ -88,9 +98,9 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, + alarmContent, gas, device, + devCode, alarmJob.getWellCode(), upTime,alarmContent); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -132,10 +142,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 8d4efa6..b71550f 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -6,6 +6,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -68,17 +69,37 @@ //3.存数据 saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 if (i < jsonArray.size() - 1) continue; - String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 if ( StringUtils.isNotBlank(thresh) && Double.valueOf(val) > Double.valueOf(thresh) * constant) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + + //获取报警等级 + String alarmContent= NoiseDigAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; + if(busWell!=null){ + List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); + for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh) * constant)) { +// NoiseDigAlarmEnum noiseDigAlarmEnum=NoiseDigAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 4)); +// alarmContent = noiseDigAlarmEnum!=null?noiseDigAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + + break; + } + } + } + } + if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), - val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 @@ -87,9 +108,9 @@ busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), NoiseDigAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, + alarmContent, val, device, + devCode, alarmJob.getWellCode(), upTime,alarmContent); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -131,10 +152,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index a2a402f..a3ff149 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -16,6 +16,7 @@ import javax.annotation.Resource; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -37,14 +38,16 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static String[] nameArr = {"温度", "湿度"}; - public Map saveData(String devCode, String upTime, String wellCode, + public Map saveData(String devCode, String wellCode,String upTime, String temperature, String humidity, String cell) { Map resultMap = new HashMap(); try { - TempHumi tempHumi = new TempHumi(devCode, wellCode, + TempHumi tempHumi = new TempHumi(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); save(tempHumi); } catch (Exception e) { @@ -73,45 +76,89 @@ temperature, humidity, cell); //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; - String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; - String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; - String alarmValue = alarmTemp + "," + alarmHumidity; - if (!("*,*".equals(alarmValue))) { - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - String alarmContent = ""; - if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmHumidity))) - alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), upTime); - } else {//不存在上一条报警时 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 - //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), - alarmContent.substring(0, alarmContent.length() - 1)); - //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, device, - devCode, alarmJob.getWellCode(), upTime); + if (busWell != null) {//获取不到相关联的井,就无法获取告警规则,故不存库 + String alarmContent = "", alarmValue = ""; + Integer alarmLevel = 10; + List ruleRankList = alarmRuleManager.getRuleRank(devCode, busWell.getDeptid()); + //获取温度告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankLowValue = ((Object[]) ruleRankList.get(j))[1]; + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[0].equals(gasName.toString())) { + if ((StringUtils.isNotBlank(temperature) && null != rankHighValue && + Float.parseFloat(temperature) > Float.parseFloat(rankHighValue.toString())) || + (StringUtils.isNotBlank(temperature) && null != rankLowValue && + Float.parseFloat(temperature) < Float.parseFloat(rankLowValue.toString()))) { +// TempHumiAlarmEnum tempHumiAlarmEnum = TempHumiAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 8)); +// alarmContent += (tempHumiAlarmEnum == null ? TempHumiAlarmEnum.Temp_OVER_THRESH.getName() : +// tempHumiAlarmEnum.getName()) + ","; + alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + alarmValue += "temp:" + temperature + "℃,"; + alarmLevel = Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + break; + } + } + } + //获取湿度告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankLowValue = ((Object[]) ruleRankList.get(j))[1]; + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[1].equals(gasName.toString())) { + if ((StringUtils.isNotBlank(humidity) && null != rankHighValue && + Float.parseFloat(humidity) > Float.parseFloat(rankHighValue.toString())) || + (StringUtils.isNotBlank(humidity) && null != rankLowValue && + Float.parseFloat(humidity) < Float.parseFloat(rankLowValue.toString()))) { +// TempHumiAlarmEnum tempHumiAlarmEnum = TempHumiAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 11)); +// alarmContent += (tempHumiAlarmEnum == null ? TempHumiAlarmEnum.Humi_OVER_THRESH.getName() : +// tempHumiAlarmEnum.getName()) + ","; + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + alarmValue += "humi:" + humidity + "%RH,"; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + break; + } + } + } + + if (StringUtils.isNotBlank(alarmContent)) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmLevel, + TempHumiAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime, + 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.TempHumi.toString(), + TempHumiAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", alarmLevel, + TempHumiAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), upTime, + alarmContent.substring(0, alarmContent.length() - 1)); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } - } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 - alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); @@ -143,10 +190,11 @@ TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } //4.写入新的报警 - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2", null, TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index b9b0c56..236ac5f 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -10,11 +10,13 @@ import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; import org.well.well.domain.*; import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,12 +38,15 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static String[] nameArr = {"一氧化碳", "氧气", "甲烷", "硫化氢"}; + public Map saveData(String devCode, String wellCode, String upTime, String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { Map resultMap = new HashMap(); try { - WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils. + sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); save(wasteGas); } catch (Exception e) { e.printStackTrace(); @@ -49,6 +54,100 @@ return resultMap; } + + //获取告警等级 + public Map getAlarmContent(BusWell busWell, String devCode, + String CO, String O2, String H2S, String CH4) { + Map alarmMap = new HashMap(); + Integer alarmLevel = 10; + String alarmContent = ""; + String alarmValue = ""; + if (busWell == null) return alarmMap; + List ruleRankList = alarmRuleManager.getRuleRank(devCode, busWell.getDeptid()); + //获取一氧化碳告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[0].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(CO) > Float.valueOf(rankHighValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 8)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.CO_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + alarmLevel = Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + alarmValue += "CO:" + CO + "ppm,"; + break; + } + } + } + + //获取氧气告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankLowValue = ((Object[]) ruleRankList.get(j))[1]; + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[1].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(O2) > Float.valueOf(rankHighValue.toString()) || + rankLowValue != null && Float.parseFloat(O2) < Float.valueOf(rankLowValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 14)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.O2_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + alarmValue += "O2:" + O2 + "%VOL,"; + break; + } + } + } + + //获取甲烷告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[2].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(CH4) > Float.valueOf(rankHighValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 17)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.CH4_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + alarmValue += "CH4:" + CH4 + "%VOL,"; + break; + } + } + } + + //获取硫化氢告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[3].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(H2S) > Float.valueOf(rankHighValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 11)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.H2S_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + alarmValue += "H2S:" + H2S + "ppm,"; + break; + } + } + } + if (StringUtils.isNotBlank(alarmContent)) { + alarmMap.put("alarmContent", alarmContent); + alarmMap.put("alarmLevel", alarmLevel); + alarmMap.put("alarmValue", alarmValue); + } + return alarmMap; + } + public void processNormalData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); @@ -69,38 +168,35 @@ upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; - String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; - String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; - String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; - String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; - String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; - if (!("*,*,*,*".equals(alarmValue))) { + //获取告警等级 + Map alarmMap = getAlarmContent(busWell, devCode, CO, O2, H2S, CH4); + if (alarmMap.size()>0) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - String alarmContent = ""; - if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + String alarmContent = alarmMap.get("alarmContent").toString(); + Integer alarmLevel = Integer.valueOf(alarmMap.get("alarmLevel").toString()); + String alarmValue = alarmMap.get("alarmValue").toString(); if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmLevel, + WasteGasAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), + devCode, alarmRecord.getWellCode(), upTime, + 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.WasteGas.toString(), - alarmContent.substring(0, alarmContent.length() - 1)); + WasteGasAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1", alarmLevel, + WasteGasAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), upTime, + alarmContent.substring(0, alarmContent.length() - 1)); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index b4d48d8..c0e1416 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -92,10 +92,11 @@ alarmRecordManager.clearAlarm(devCode, "1", String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex())); //写入新的报警 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",null, WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), - alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime); + alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime, + WellAlarmEnum.WellOpenAlarm.getName()); } else { Device device = deviceManager.getDeviceByDevCode(devCode); if(device==null) return; //没注册舍弃 @@ -103,10 +104,11 @@ AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.WellOpenAlarm.getName()); - alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmRecordManager.saveData(alarmJob.getId(), "1",null, WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), device, - devCode, alarmJob.getWellCode(), logTime); + devCode, alarmJob.getWellCode(), logTime, + WellAlarmEnum.WellOpenAlarm.getName()); //toDo:向app推送报警消息 List cids= userManager.getClients(busWell); if(cids.size()>0) @@ -129,10 +131,11 @@ alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } } catch (IOException e) { diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index f0fc6af..f095cdf 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -124,12 +124,19 @@ // temp="{\"mType\":\"Event\",\"devType\":\"Concentrator\",\"devCode\":\"00003\",\"mBody\":{\"logTime\":\"20190605002024\",\"bType\":\"ConcentratorOnline\"},\"ts\":1559665224343}"; - temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; - temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":2.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; + temp="{\"mType\":\"Data\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"datas\":[{\"value\":\"00\",\"uptime\":\"20190605000000\"}],\"logTime\":\"201906010003002\",\"bType\":\"WellData\"},\"ts\":1559665802828}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"level\":0.12,\"uptime\":\"20190502000000\"}],\"logTime\":\"20190502000125\",\"bType\":\"LiquidData\"},\"ts\":1556726485336}"; // temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"1120180002\",\"mBody\":{\"eventType\":[\"LiquidPressureError\"],\"logTime\":\"20190510134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; -// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellLowBatteryAlarm\"],\"logTime\":\"20190624114710\",\"bType\":\"WellEvent\"},\"ts\":1560484030810}"; // temp="{\"mType\":\"Data\",\"devType\":\"Locator\",\"devCode\":\"71201900001\",\"mBody\":{\"datas\":[{\"longitude\":126.243324343,\"latitude\":39.2546546546,\"uptime\":\"20190809140900\"}],\"logTime\":\"20190809141012\",\"bType\":\"LocatorData\"},\"ts\":1565331012453}"; +// temp="{\"mType\":\"Data\",\"devType\":\"Dig\",\"devCode\":\"61201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":31.533299999999997,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":2.99591,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseDigData\"},\"ts\":1566454417130}"; +// temp="{\"mType\":\"Data\",\"devType\":\"WasteGas\",\"devCode\":\"21201900001\",\"mBody\":{\"datas\":[{\"CO\":20,\"O2\":25,\"H2S\":15,\"CH4\":1,\"liquidSwitch\":true,\"uptime\":\"20191018163319\"}],\"logTime\":\"20191018151844\",\"bType\":\"WasteGasData\"},\"ts\":1571296724288}"; +// temp="{\"mType\":\"Data\",\"devType\":\"TempHumi\",\"devCode\":\"51201900001\",\"mBody\":{\"cell\":99,\"datas\":[{\"temperature\":15.1,\"humidity\":16.7,\"uptime\":\"20191017150000\"}],\"logTime\":\"20191017150225\",\"bType\":\"TempHumiData\"},\"ts\":1571295745881}"; +// temp="{\"mType\":\"Event\",\"devType\":\"Liquid\",\"devCode\":\"11201900001\",\"mBody\":{\"eventType\":[\"LiquidUltrasonicError\"],\"logTime\":\"20190710134635\",\"bType\":\"LiquidEvent\"},\"ts\":1557467195358}"; + temp="{\"mType\":\"Data\",\"devType\":\"Methane\",\"devCode\":\"31201900001\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":25,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":8.8701172,\"uptime\":\"20191017135400\"}],\"logTime\":\"20191017140124\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412019010212\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20191017140118\",\"bType\":\"WellEvent\"},\"ts\":1571292078959}"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); resp.process(temp); diff --git a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java index a947402..0f2b981 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/MethaneAlarmEnum.java @@ -10,7 +10,9 @@ OVER_THRESH("浓度超限", 1), MethaneFail("燃气探头采集失败", 2), MethaneError("燃气探头数据异常", 3), - MethaneUnknown("燃气未知异常", 4); + MethaneUnknown("燃气未知异常", 4), + OVER_THRESH1("一级浓度超限", 5), + OVER_THRESH2("二级浓度超限", 6); // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java index 2c59704..616d7fe 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/NoiseDigAlarmEnum.java @@ -10,7 +10,10 @@ NoiseDigFail("噪声开挖探头采集失败", 1), NoiseDigError("噪声开挖探头数据异常", 2), NoiseDigUnknown("噪声开挖未知异常", 3), - OVER_THRESH("噪声开挖超限", 4); + OVER_THRESH("疑似开挖", 4), + OVER_THRESH1("一级疑似开挖", 5), + OVER_THRESH2("二级疑似开挖", 6), + OVER_THRESH3("三级疑似开挖", 7); // 成员变量 diff --git a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java index acb1d06..d62896b 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/TempHumiAlarmEnum.java @@ -15,7 +15,16 @@ HumidityError("湿度探头数据异常", 5), TempHumiUnknown("温湿度未知异常", 6), Temp_OVER_THRESH("温度超限", 7), - Humi_OVER_THRESH("湿度超限", 8); + Humi_OVER_THRESH("湿度超限", 8), + Temp_OVER_THRESH1("一级温度超限", 9), + Temp_OVER_THRESH2("二级温度超限", 10), + Temp_OVER_THRESH3("三级温度超限", 11), + Humi_OVER_THRESH1("一级湿度超限", 12), + Humi_OVER_THRESH2("二级湿度超限", 13), + Humi_OVER_THRESH3("三级湿度超限", 14), + OVER_THRESH("温湿度超限", 15); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java index c18faad..6e4318d 100644 --- a/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java +++ b/src/main/java/org/well/well/AlarmEnumDTO/WasteGasAlarmEnum.java @@ -12,7 +12,21 @@ CO_OVER_THRESH("一氧化碳超标",5), H2S_OVER_THRESH("硫化氢超标",6), O2_OVER_THRESH("氧气超标",7), - CH4_OVER_THRESH("甲烷超标",8); + CH4_OVER_THRESH("甲烷超标",8), + CO_OVER_THRESH1("一级一氧化碳超标",9), + CO_OVER_THRESH2("二级一氧化碳超标",10), + CO_OVER_THRESH3("三级一氧化碳超标",11), + H2S_OVER_THRESH1("一级硫化氢超标",12), + H2S_OVER_THRESH2("二级硫化氢超标",13), + H2S_OVER_THRESH3("三级硫化氢超标",14), + O2_OVER_THRESH1("一级氧气超标",15), + O2_OVER_THRESH2("二级氧气超标",16), + O2_OVER_THRESH3("三级氧气超标",17), + CH4_OVER_THRESH1("一级甲烷超标",18), + CH4_OVER_THRESH2("二级甲烷超标",19), + CH4_OVER_THRESH3("三级甲烷超标",20); + + // 成员变量 private String name; diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 2436457..77c2cf1 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -25,11 +25,13 @@ private String alarmType; private String alarmContent; private String alarmValue; + private String alarmMsg; private Device device; private String deviceCode; private String wellCode; private Date alarmTime; private String status; + private Integer alarmLevel;//告警等级 public AlarmRecord() { @@ -40,10 +42,11 @@ - public AlarmRecord(Long jobId, String alarmType, String alarmContent, String alarmValue, - Device device, String deviceCode, String wellCode, Date alarmTime) { + public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, + Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { this.jobId = jobId; this.alarmType = alarmType; + this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.device = device; @@ -51,6 +54,7 @@ this.wellCode = wellCode; this.alarmTime = alarmTime; this.status = "1"; + this.alarmMsg = alarmMsg; } @Id @@ -149,4 +153,22 @@ public void setStatus(String status) { this.status = status; } + + @Column(name = "ALARM_LEVEL") + public Integer getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(Integer alarmLevel) { + this.alarmLevel = alarmLevel; + } + + @Column(name = "ALARM_MSG") + public String getAlarmMsg() { + return alarmMsg; + } + + public void setAlarmMsg(String alarmMsg) { + this.alarmMsg = alarmMsg; + } } diff --git a/src/main/java/org/well/well/domain/NoiseDig.java b/src/main/java/org/well/well/domain/NoiseDig.java index 00f9d68..467ca8b 100644 --- a/src/main/java/org/well/well/domain/NoiseDig.java +++ b/src/main/java/org/well/well/domain/NoiseDig.java @@ -111,6 +111,7 @@ this.wellCode = wellCode; this.cell = cell; this.uptime = uptime; + this.logtime = new Date(); this.frequency = frequency; this.dData = dData; } diff --git a/src/main/java/org/well/well/domain/SysDept.java b/src/main/java/org/well/well/domain/SysDept.java index 9c571fd..2b590f1 100644 --- a/src/main/java/org/well/well/domain/SysDept.java +++ b/src/main/java/org/well/well/domain/SysDept.java @@ -59,6 +59,9 @@ private Integer version; + @Column(name ="TENANT_ID") + private String tenantId; + public Long getId() { return id; } @@ -123,5 +126,11 @@ this.version = version; } + public String getTenantId() { + return tenantId; + } + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } diff --git a/src/main/java/org/well/well/domain/TempHumi.java b/src/main/java/org/well/well/domain/TempHumi.java index d6cabec..9d9eff4 100644 --- a/src/main/java/org/well/well/domain/TempHumi.java +++ b/src/main/java/org/well/well/domain/TempHumi.java @@ -113,5 +113,6 @@ this.temperature = temperature; this.humidity = humidity; this.cell = cell; + this.logTime = new Date(); } } diff --git a/src/main/java/org/well/well/domain/WasteGas.java b/src/main/java/org/well/well/domain/WasteGas.java index b8a1d01..bfdfff4 100644 --- a/src/main/java/org/well/well/domain/WasteGas.java +++ b/src/main/java/org/well/well/domain/WasteGas.java @@ -134,7 +134,7 @@ public WasteGas(String devCode, String wellCode, Date upTime, String CO, String O2,String H2S, String CH4,Boolean isOpen) { this.devId = devCode; - this.devId = wellCode; + this.wellCode = wellCode; this.upTime = upTime; this.co = CO; this.o2 = O2; diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 8b9114a..10df679 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -92,7 +92,7 @@ criteria.add(Restrictions.eq("devcode", devCode)); // criteria.add(Restrictions.ne("jobStatus", "3")); criteria.add(Restrictions.in("jobStatus", new String[]{"0", "1", "2"})); - criteria.add(Restrictions.eq("jogType", jobType)); +// criteria.add(Restrictions.eq("jogType", jobType)); criteria.addOrder(Order.desc("createTime")); return (AlarmJob) criteria.setMaxResults(1).uniqueResult(); } diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index 2316f03..4369eb2 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -23,16 +23,16 @@ private static final String[] alarmTypeArr = {"1", "2"};//1:阈值报警;2:设备本身报警; private static final String[] alarmStatusArr = {"0", "1", "2", "3"};//告警状态( 0:因新报警而自动取消,1:正在报警,2:因工单结束而消警,3:因数据正常而消警) - public Map saveData(Long jobId, String alarmType, + public Map saveData(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String devCode, - String wellCode, String alarmTime) throws IOException { + String wellCode, String alarmTime,String alarmMsg) throws IOException { Map resultMap = new HashMap(); try { - AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType, alarmContent, alarmValue, - device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime))); + AlarmRecord alarmRecord = new AlarmRecord(jobId, alarmType,alarmLevel, alarmContent, alarmValue, + device, devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(alarmTime)),alarmMsg); save(alarmRecord); @@ -93,7 +93,7 @@ Criteria criteria = getSession().createCriteria(AlarmRecord.class); criteria.add(Restrictions.eq("deviceCode", devCode)); - criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); +// criteria.add(Restrictions.eq("alarmType", alarmTypeArr[0])); criteria.add(Restrictions.eq("status", alarmStatusArr[1])); List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? diff --git a/src/main/java/org/well/well/manager/AlarmRuleManager.java b/src/main/java/org/well/well/manager/AlarmRuleManager.java index 7f62c9b..db931d2 100644 --- a/src/main/java/org/well/well/manager/AlarmRuleManager.java +++ b/src/main/java/org/well/well/manager/AlarmRuleManager.java @@ -3,11 +3,13 @@ import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; +import org.well.well.core.util.StringUtils; import org.well.well.domain.AlarmRule; import org.well.well.domain.SensorType; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Service; +import org.well.well.domain.SysDept; import javax.annotation.Resource; import java.util.HashMap; @@ -21,6 +23,9 @@ @Resource private SensorTypeManager sensorTypeManager; + @Resource + private DeptManager deptManager; + public Criteria getCriteria() { return getSession().createCriteria(AlarmRule.class); } @@ -55,6 +60,12 @@ if (null != alarmRule) { ruleStr = String.valueOf(alarmRule.getHighValue()); } + } else if (DeviceTypeEnum.Dig.toString().equals(devTypeName)) { +// SensorType sensorType = sensorTypeManager.get("000064"); + alarmRule = findRuleByDevAndSensor(devCode, null); + if (null != alarmRule) { + ruleStr = String.valueOf(alarmRule.getHighValue()); + } } else if (DeviceTypeEnum.MultiLeak.toString().equals(devTypeName)) { SensorType sensorType = sensorTypeManager.get("000031"); SensorType sensorType2 = sensorTypeManager.get("000032"); @@ -70,7 +81,19 @@ ruleStr += "50,25"; } else if (DeviceTypeEnum.WasteGas.toString().equals(devTypeName)) { ruleStr += "50,10,2,18:23";//CO,H2S,CH4,O2(18~23) - }/* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { + } else if (DeviceTypeEnum.TempHumi.toString().equals(devTypeName)) { + SensorType sensorType = sensorTypeManager.get("000050"); + SensorType sensorType2 = sensorTypeManager.get("000055"); + SensorType sensorType3 = sensorTypeManager.get("000033"); + alarmRule = findRuleByDevAndSensor(devCode, sensorType); + alarmRule2 = findRuleByDevAndSensor(devCode, sensorType2); + alarmRule3 = findRuleByDevAndSensor(devCode, sensorType3); + ruleStr += (null != alarmRule ? (String.valueOf(alarmRule.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule2 ? (String.valueOf(alarmRule2.getHighValue()) + ",") : ","); + ruleStr += (null != alarmRule3 ? (String.valueOf(alarmRule3.getHighValue()) + + "^" + String.valueOf(alarmRule.getLowValue())) : ""); + } + /* else if (devTypeName.indexOf("燃气泄漏形变光纤") > -1) { ruleStr += "突变范围:5℃以上"; } else if (devTypeName.indexOf("形变光纤") > -1) { ruleStr = "200(Mpa)"; @@ -82,27 +105,35 @@ return ruleStr; } - public Long getTenantIdBydep(String depId) { - try { - String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; - List tenantList = getSession().createSQLQuery(sql).list(); - if (tenantList.size() > 0) - return Long.valueOf(tenantList.get(0).toString()); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } +// public Long getTenantIdBydep(String depId) { +// try { +// String sql = "SELECT TENANT_ID FROM sys_dept_detail s WHERE s.id=" + depId; +// List tenantList = getSession().createSQLQuery(sql).list(); +// if (tenantList.size() > 0) +// return Long.valueOf(tenantList.get(0).toString()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } public List getRuleRank(String devCode, String depId) { - Long tenantId = getTenantIdBydep(depId); + Long tenantId = null; + if (StringUtils.isNotBlank(depId)) { + SysDept sysDept = deptManager.get(Long.valueOf(depId)); + if (null != sysDept) { + String tenantStr = sysDept.getTenantId(); + tenantId = StringUtils.isBlank(tenantStr) ? tenantId : Long.valueOf(tenantStr); + } + } + if (null == tenantId) return null; try { Map paraMap = new HashMap(); - String sql = "SELECT level,low_value,high_value FROM alarm_level_device_veiw a " + - "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId"+ - " ORDER BY level"; + String sql = "SELECT level,low_value,high_value,name FROM alarm_level_device_veiw a " + + "WHERE a.devcode=:devcode AND a.tenant_id=:tenantId" + + " ORDER BY name,level"; paraMap.put("devcode", devCode); paraMap.put("tenantId", tenantId); List ruleRankList = getSession().createSQLQuery(sql).setProperties(paraMap).list(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index bd4f3ee..146a46d 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -80,15 +80,17 @@ AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent=LiquidAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; if(busWell!=null){ List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh))) { - LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( - String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); - alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; +// LiquidAlarmEnum liquidAlarmEnum=LiquidAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 6)); +// alarmContent = liquidAlarmEnum!=null?liquidAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); break; } } @@ -99,18 +101,19 @@ //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(),alarmContent); + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), + LiquidAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, alarmContent, level, device, - devCode, alarmJob.getWellCode(), upTime); + devCode, alarmJob.getWellCode(), upTime,alarmContent); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -152,10 +155,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + LiquidAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index a9204b2..ecbd415 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -68,18 +68,28 @@ //2.清除设备告警 alarmRecordManager.clearAlarmByNormalData(devCode, "2"); //3.存数据 - saveData(devCode,busWell==null?"":busWell.getWellCode(), gas, cell, upTime);//存储采集数据 + saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Methane.toString());//获取报警阈值 if (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1])) {//浓度超限 AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + //获取报警等级 + String alarmContent = MethaneAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel = 0; +// alarmContent = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? +// MethaneAlarmEnum.OVER_THRESH1.getName() : +// (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? +// MethaneAlarmEnum.OVER_THRESH2.getName() : alarmContent); + alarmLevel = Float.valueOf(gas) > Float.valueOf(thresh.split(",")[0]) ? + 1 : (Float.valueOf(gas) > Float.valueOf(thresh.split(",")[1]) ? + 2 : alarmLevel); if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), - gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + gas, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 @@ -88,9 +98,9 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - MethaneAlarmEnum.OVER_THRESH.getName(), gas, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, + alarmContent, gas, device, + devCode, alarmJob.getWellCode(), upTime,alarmContent); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -132,10 +142,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + MethaneAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index 8d4efa6..b71550f 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -6,6 +6,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.well.well.AlarmEnumDTO.LiquidAlarmEnum; import org.well.well.AlarmEnumDTO.NoiseDigAlarmEnum; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; @@ -68,17 +69,37 @@ //3.存数据 saveData(devCode,busWell==null?"":busWell.getWellCode(), cell, upTime, freq, val); //4.有无超限处理流程(判断最后一条数据) saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 if (i < jsonArray.size() - 1) continue; - String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Dig.toString());//获取报警阈值 if ( StringUtils.isNotBlank(thresh) && Double.valueOf(val) > Double.valueOf(thresh) * constant) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + + //获取报警等级 + String alarmContent= NoiseDigAlarmEnum.OVER_THRESH.getName(); + Integer alarmLevel=0; + if(busWell!=null){ + List ruleRankList= alarmRuleManager.getRuleRank(devCode,busWell.getDeptid()); + for(int j=0;j=(Float.valueOf(rankValue.toString())/100*Float.valueOf(thresh) * constant)) { +// NoiseDigAlarmEnum noiseDigAlarmEnum=NoiseDigAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 4)); +// alarmContent = noiseDigAlarmEnum!=null?noiseDigAlarmEnum.getName():alarmContent; + alarmLevel=Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + + break; + } + } + } + } + if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmRecord.getAlarmContent(), - val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",alarmLevel, alarmContent, + val, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime,alarmContent); } else {//不存在上一条报警时 Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 @@ -87,9 +108,9 @@ busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), NoiseDigAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - NoiseDigAlarmEnum.OVER_THRESH.getName(), val, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1",alarmLevel, + alarmContent, val, device, + devCode, alarmJob.getWellCode(), upTime,alarmContent); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) @@ -131,10 +152,11 @@ busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + NoiseDigAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index a2a402f..a3ff149 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -16,6 +16,7 @@ import javax.annotation.Resource; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -37,14 +38,16 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static String[] nameArr = {"温度", "湿度"}; - public Map saveData(String devCode, String upTime, String wellCode, + public Map saveData(String devCode, String wellCode,String upTime, String temperature, String humidity, String cell) { Map resultMap = new HashMap(); try { - TempHumi tempHumi = new TempHumi(devCode, wellCode, + TempHumi tempHumi = new TempHumi(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), + temperature, humidity, cell); save(tempHumi); } catch (Exception e) { @@ -73,45 +76,89 @@ temperature, humidity, cell); //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; - String alarmTemp = StringUtils.isNotBlank(temperature) && Float.parseFloat(temperature) > 50 ? temperature : "*"; - String alarmHumidity = StringUtils.isNotBlank(humidity) && Float.parseFloat(humidity) > 60 ? humidity : "*"; - String alarmValue = alarmTemp + "," + alarmHumidity; - if (!("*,*".equals(alarmValue))) { - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - String alarmContent = ""; - if (!("*".equals(alarmTemp))) alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmHumidity))) - alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), upTime); - } else {//不存在上一条报警时 - Device device = deviceManager.getDeviceByDevCode(devCode); - if (device == null) return;//未注册设备舍弃 - //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? - busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(), - alarmContent.substring(0, alarmContent.length() - 1)); - //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, device, - devCode, alarmJob.getWellCode(), upTime); + if (busWell != null) {//获取不到相关联的井,就无法获取告警规则,故不存库 + String alarmContent = "", alarmValue = ""; + Integer alarmLevel = 10; + List ruleRankList = alarmRuleManager.getRuleRank(devCode, busWell.getDeptid()); + //获取温度告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankLowValue = ((Object[]) ruleRankList.get(j))[1]; + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[0].equals(gasName.toString())) { + if ((StringUtils.isNotBlank(temperature) && null != rankHighValue && + Float.parseFloat(temperature) > Float.parseFloat(rankHighValue.toString())) || + (StringUtils.isNotBlank(temperature) && null != rankLowValue && + Float.parseFloat(temperature) < Float.parseFloat(rankLowValue.toString()))) { +// TempHumiAlarmEnum tempHumiAlarmEnum = TempHumiAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 8)); +// alarmContent += (tempHumiAlarmEnum == null ? TempHumiAlarmEnum.Temp_OVER_THRESH.getName() : +// tempHumiAlarmEnum.getName()) + ","; + alarmContent += TempHumiAlarmEnum.Temp_OVER_THRESH.getName() + ","; + alarmValue += "temp:" + temperature + "℃,"; + alarmLevel = Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + break; + } + } + } + //获取湿度告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankLowValue = ((Object[]) ruleRankList.get(j))[1]; + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[1].equals(gasName.toString())) { + if ((StringUtils.isNotBlank(humidity) && null != rankHighValue && + Float.parseFloat(humidity) > Float.parseFloat(rankHighValue.toString())) || + (StringUtils.isNotBlank(humidity) && null != rankLowValue && + Float.parseFloat(humidity) < Float.parseFloat(rankLowValue.toString()))) { +// TempHumiAlarmEnum tempHumiAlarmEnum = TempHumiAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 11)); +// alarmContent += (tempHumiAlarmEnum == null ? TempHumiAlarmEnum.Humi_OVER_THRESH.getName() : +// tempHumiAlarmEnum.getName()) + ","; + alarmContent += TempHumiAlarmEnum.Humi_OVER_THRESH.getName() + ","; + alarmValue += "humi:" + humidity + "%RH,"; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + break; + } + } + } + + if (StringUtils.isNotBlank(alarmContent)) { + AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); + if (null != alarmRecord) {//已存在报警 + //1.清除上一条告警记录 + alarmRecordManager.clearAlarm(devCode, "1", ""); + //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmLevel, + TempHumiAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), devCode, + alarmRecord.getWellCode(), upTime, + 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.TempHumi.toString(), + TempHumiAlarmEnum.OVER_THRESH.getName()); + //2.写入新的告警 + alarmRecordManager.saveData(alarmJob.getId(), "1", alarmLevel, + TempHumiAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), upTime, + alarmContent.substring(0, alarmContent.length() - 1)); // //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) // PushList.pushToUser(cids, "液位超限", "报警啦,快来处理"); + } + } else {//未超限 + //1.清除之前的报警 + alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + //2.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } - } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 - alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); @@ -143,10 +190,11 @@ TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } //4.写入新的报警 - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2", null, TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + TempHumiAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index b9b0c56..236ac5f 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -10,11 +10,13 @@ import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; +import org.well.well.core.util.StringUtils; import org.well.well.domain.*; import org.well.well.util.PushList; import javax.annotation.Resource; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,12 +38,15 @@ private UserManager userManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static String[] nameArr = {"一氧化碳", "氧气", "甲烷", "硫化氢"}; + public Map saveData(String devCode, String wellCode, String upTime, String CO, String O2, String H2S, String CH4, Boolean isOpen) throws IOException { Map resultMap = new HashMap(); try { - WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils.sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); + WasteGas wasteGas = new WasteGas(devCode, wellCode, DateUtils. + sdf4.parse(DateUtils.DateFormat(upTime)), CO, O2, H2S, CH4, isOpen); save(wasteGas); } catch (Exception e) { e.printStackTrace(); @@ -49,6 +54,100 @@ return resultMap; } + + //获取告警等级 + public Map getAlarmContent(BusWell busWell, String devCode, + String CO, String O2, String H2S, String CH4) { + Map alarmMap = new HashMap(); + Integer alarmLevel = 10; + String alarmContent = ""; + String alarmValue = ""; + if (busWell == null) return alarmMap; + List ruleRankList = alarmRuleManager.getRuleRank(devCode, busWell.getDeptid()); + //获取一氧化碳告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[0].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(CO) > Float.valueOf(rankHighValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 8)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.CO_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; + alarmLevel = Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()); + alarmValue += "CO:" + CO + "ppm,"; + break; + } + } + } + + //获取氧气告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankLowValue = ((Object[]) ruleRankList.get(j))[1]; + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[1].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(O2) > Float.valueOf(rankHighValue.toString()) || + rankLowValue != null && Float.parseFloat(O2) < Float.valueOf(rankLowValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 14)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.O2_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + alarmValue += "O2:" + O2 + "%VOL,"; + break; + } + } + } + + //获取甲烷告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[2].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(CH4) > Float.valueOf(rankHighValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 17)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.CH4_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + alarmValue += "CH4:" + CH4 + "%VOL,"; + break; + } + } + } + + //获取硫化氢告警等级 + for (int j = 0; j < ruleRankList.size(); j++) { + Object rankHighValue = ((Object[]) ruleRankList.get(j))[2]; + Object gasName = ((Object[]) ruleRankList.get(j))[3]; + if (gasName != null && nameArr[3].equals(gasName.toString())) { + if (rankHighValue != null && Float.parseFloat(H2S) > Float.valueOf(rankHighValue.toString())) { +// WasteGasAlarmEnum wasteGasAlarmEnum = WasteGasAlarmEnum.getByIndex( +// String.valueOf(Long.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) + 11)); +// alarmContent += (wasteGasAlarmEnum == null ? WasteGasAlarmEnum.H2S_OVER_THRESH.getName() : +// wasteGasAlarmEnum.getName()) + ","; + alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; + alarmLevel = alarmLevel > Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) ? + Integer.valueOf(((Object[]) ruleRankList.get(j))[0].toString()) : alarmLevel; + alarmValue += "H2S:" + H2S + "ppm,"; + break; + } + } + } + if (StringUtils.isNotBlank(alarmContent)) { + alarmMap.put("alarmContent", alarmContent); + alarmMap.put("alarmLevel", alarmLevel); + alarmMap.put("alarmValue", alarmValue); + } + return alarmMap; + } + public void processNormalData(JSONObject jsonObject, String devCode) { JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); @@ -69,38 +168,35 @@ upTime, CO, O2, H2S, CH4, isOpen);//存采集数据 //4.有无超限处理流程(判断最后一条数据) if (i < jsonArray.size() - 1) continue; - String alarmCO = Float.parseFloat(CO) > 50 ? CO : "*"; - String alarmO2 = Float.parseFloat(O2) > 18 && Float.parseFloat(O2) < 23 ? "*" : O2; - String alarmH2S = Float.parseFloat(H2S) > 10 ? H2S : "*"; - String alarmCH4 = Float.parseFloat(CH4) > 2 ? CH4 : "*"; - String alarmValue = alarmCO + "," + alarmH2S + "," + alarmO2 + "," + alarmCH4; - if (!("*,*,*,*".equals(alarmValue))) { + //获取告警等级 + Map alarmMap = getAlarmContent(busWell, devCode, CO, O2, H2S, CH4); + if (alarmMap.size()>0) { AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); - String alarmContent = ""; - if (!("*".equals(alarmCO))) alarmContent += WasteGasAlarmEnum.CO_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmO2))) alarmContent += WasteGasAlarmEnum.O2_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmH2S))) alarmContent += WasteGasAlarmEnum.H2S_OVER_THRESH.getName() + ","; - if (!("*".equals(alarmCH4))) alarmContent += WasteGasAlarmEnum.CH4_OVER_THRESH.getName() + ","; + String alarmContent = alarmMap.get("alarmContent").toString(); + Integer alarmLevel = Integer.valueOf(alarmMap.get("alarmLevel").toString()); + String alarmValue = alarmMap.get("alarmValue").toString(); if (null != alarmRecord) {//已存在报警 //1.清除上一条告警记录 alarmRecordManager.clearAlarm(devCode, "1", ""); //2.写入新的告警记录,更新工单号为上一条告警记录的工单号 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, alarmRecord.getDevice(), devCode, - alarmRecord.getWellCode(), upTime); + alarmRecordManager.saveData(alarmRecord.getJobId(), "1", alarmLevel, + WasteGasAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), alarmRecord.getDevice(), + devCode, alarmRecord.getWellCode(), upTime, + 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.WasteGas.toString(), - alarmContent.substring(0, alarmContent.length() - 1)); + WasteGasAlarmEnum.OVER_THRESH.getName()); //2.写入新的告警 - alarmRecordManager.saveData(alarmJob.getId(), "1", - alarmContent.substring(0, alarmContent.length() - 1), - alarmValue, device, - devCode, alarmJob.getWellCode(), upTime); + alarmRecordManager.saveData(alarmJob.getId(), "1", alarmLevel, + WasteGasAlarmEnum.OVER_THRESH.getName(), + alarmValue.substring(0, alarmValue.length() - 1), device, + devCode, alarmJob.getWellCode(), upTime, + alarmContent.substring(0, alarmContent.length() - 1)); //3.toDo:向app推送报警消息 // List cids = userManager.getClients(busWell); // if (cids.size() > 0) diff --git a/src/main/java/org/well/well/manager/WellManager.java b/src/main/java/org/well/well/manager/WellManager.java index b4d48d8..c0e1416 100644 --- a/src/main/java/org/well/well/manager/WellManager.java +++ b/src/main/java/org/well/well/manager/WellManager.java @@ -92,10 +92,11 @@ alarmRecordManager.clearAlarm(devCode, "1", String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex())); //写入新的报警 - alarmRecordManager.saveData(alarmRecord.getJobId(), "1", + alarmRecordManager.saveData(alarmRecord.getJobId(), "1",null, WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), - alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime); + alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), logTime, + WellAlarmEnum.WellOpenAlarm.getName()); } else { Device device = deviceManager.getDeviceByDevCode(devCode); if(device==null) return; //没注册舍弃 @@ -103,10 +104,11 @@ AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.WellOpenAlarm.getName()); - alarmRecordManager.saveData(alarmJob.getId(), "1", + alarmRecordManager.saveData(alarmJob.getId(), "1",null, WellAlarmEnum.WellOpenAlarm.getName(), String.valueOf(WellAlarmEnum.WellOpenAlarm.getIndex()), device, - devCode, alarmJob.getWellCode(), logTime); + devCode, alarmJob.getWellCode(), logTime, + WellAlarmEnum.WellOpenAlarm.getName()); //toDo:向app推送报警消息 List cids= userManager.getClients(busWell); if(cids.size()>0) @@ -129,10 +131,11 @@ alarmJob = alarmJobManager.saveData(devCode, busWell.getWellCode(), DeviceTypeEnum.Well.toString(),WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } - alarmRecordManager.saveData(alarmJob.getId(), "2", + alarmRecordManager.saveData(alarmJob.getId(), "2",null, WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName(), String.valueOf(WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()), - device, devCode, null != busWell ? busWell.getWellCode() : "", logTime); + device, devCode, null != busWell ? busWell.getWellCode() : "", logTime, + WellAlarmEnum.valueOf(jsonArray.get(i).toString()).getName()); } } catch (IOException e) { diff --git a/src/main/java/org/well/well/util/ResponseResolver.java b/src/main/java/org/well/well/util/ResponseResolver.java index 60f416f..b2863d0 100644 --- a/src/main/java/org/well/well/util/ResponseResolver.java +++ b/src/main/java/org/well/well/util/ResponseResolver.java @@ -24,7 +24,7 @@ abstractResponseHashMap.put(DeviceTypeEnum.Methane.name(), new MethaneResponse()); abstractResponseHashMap.put(DeviceTypeEnum.WasteGas.name(), new WasteGasResponse()); abstractResponseHashMap.put(DeviceTypeEnum.TempHumi.name(), new TempHumiResponse()); - abstractResponseHashMap.put(DeviceTypeEnum.Dig.name(), new NoiseDigResponse()); +// abstractResponseHashMap.put(DeviceTypeEnum.Dig.name(), new NoiseDigResponse()); abstractResponseHashMap.put(DeviceTypeEnum.Dig.name(), new NoiseDigResponse()); abstractResponseHashMap.put(DeviceTypeEnum.Locator.name(), new LocatorResponse()); }