From 880273d6b3687ea601ddb6d46acb9b660a9f76de Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 10 十月 2024 16:50:41 +0800 Subject: [PATCH] 1、发送钉钉的报警消息中去除漏损报警; 2、漏损报警消息产生与发送放于定时报中,漏损量大于配置值时才报警,并把漏损量一并发送出去。 --- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java | 3 + pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml | 2 + pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOnHourReport.java | 25 ++++++++++++ pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(test测试).xml | 2 + pipIrr-platform/pipIrr-global/src/main/resources/application-global(ym元谋系统).yml | 4 +- pipIrr-platform/pipIrr-global/src/main/resources/application-global(test测试系统).yml | 4 +- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java | 3 + pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(ym元谋).xml | 2 + pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml | 4 +- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java | 8 ++-- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java | 28 ++++++++++++++ 11 files changed, 75 insertions(+), 10 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java index 9dbf290..6c92e71 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java @@ -20,6 +20,17 @@ return flag ; } + + public boolean hasAlarmExcludeLoss(){ + boolean flag = false ; + if((batteryVolt != null && batteryVolt == 1) || + (meter != null && meter == 1) || + (valve != null && valve == 1)){ + flag = true ; + } + return flag ; + } + public String alarmContent(){ String txt = "" ; boolean hasTxt = false ; @@ -42,6 +53,23 @@ return txt ; } + public String alarmContentExcludeLoss(){ + String txt = "" ; + boolean hasTxt = false ; + if(batteryVolt != null && batteryVolt == 1){ + txt += (hasTxt?"銆�":"") + "钃勭數姹犵數鍘嬫姤璀�" ; + hasTxt = true ; + } + if(meter != null && meter == 1){ + txt += (hasTxt?"銆�":"") + "娴侀噺璁℃晠闅滄姤璀�" ; + hasTxt = true ; + } + if(valve != null && valve == 1){ + txt += (hasTxt?"銆�":"") + "闃�闂ㄦ晠闅滄姤璀�" ; + hasTxt = true ; + } + return txt ; + } public String toString(){ StringBuilder str = new StringBuilder() ; str.append(" 鎶ヨ:\n"); diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml" index fa2694e..372823b 100644 --- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml" +++ "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml" @@ -187,7 +187,7 @@ at-all: true mobile: 18602657034 pj: - enable: false #鏄惁鍚敤 + enable: true #鏄惁鍚敤 robot: url: https://oapi.dingtalk.com/robot/send access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f @@ -195,7 +195,7 @@ at-all: true mobile: 18602657034 test: - enable: false #鏄惁鍚敤 + enable: true #鏄惁鍚敤 robot: url: https://oapi.dingtalk.com/robot/send access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml" index 962df65..2c4c521 100644 --- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml" +++ "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml" @@ -187,7 +187,7 @@ at-all: true mobile: 18602657034 pj: - enable: false #鏄惁鍚敤 + enable: true #鏄惁鍚敤 robot: url: https://oapi.dingtalk.com/robot/send access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f @@ -195,7 +195,7 @@ at-all: true mobile: 18602657034 test: - enable: false #鏄惁鍚敤 + enable: true #鏄惁鍚敤 robot: url: https://oapi.dingtalk.com/robot/send access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml index 962df65..2c4c521 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml @@ -187,7 +187,7 @@ at-all: true mobile: 18602657034 pj: - enable: false #鏄惁鍚敤 + enable: true #鏄惁鍚敤 robot: url: https://oapi.dingtalk.com/robot/send access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f @@ -195,7 +195,7 @@ at-all: true mobile: 18602657034 test: - enable: false #鏄惁鍚敤 + enable: true #鏄惁鍚敤 robot: url: https://oapi.dingtalk.com/robot/send access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java index 82a3037..43d9acd 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java @@ -204,6 +204,9 @@ //宸ヤ綔鎶ュお棰戠箒锛孨娆′笂鎶ュ鐞�1娆★紝鍙栧�艰寖鍥存槸1-100 ServerProperties.workReportDealOneByTimes = conf.getSetAttrPlusInt(doc, "config.base", "workReportDealOneByTimes", null, 1, 100, null) ; + //瑙﹀彂鍙戦�侀拤閽夋姤璀︽秷鎭殑鍙栨按鍙f棩婕忔崯閲忕殑鏈�灏忓�硷紙鍖呮嫭浣嗛櫎0.0澶栵級 + ServerProperties.intakeAlarmLossMinValue = conf.getSetAttrPlusDouble(doc, "config.base", "intakeAlarmLossMinValue", null, 0.0, 1000000.0, null) ; + //鏈夋姤璀﹀彂鐢熸椂锛屽悜閽夐拤鍙戦�佹秷鎭殑闂撮殧鏃堕暱锛堝垎閽燂級 ServerProperties.sendDingDingAlarmMsInterval = conf.getSetAttrPlusInt(doc, "config.base", "sendDingDingAlarmMsInterval", null, 1, 600, null) ; diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java index 46f9287..d8feb7b 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java @@ -46,6 +46,9 @@ //宸ヤ綔鎶ュお棰戠箒锛孨娆′笂鎶ュ鐞�1娆� public static Integer workReportDealOneByTimes = 5 ; + //瑙﹀彂鍙戦�侀拤閽夋姤璀︽秷鎭殑鍙栨按鍙f棩婕忔崯閲忕殑鏈�灏忓�硷紙鍖呮嫭浣嗛櫎0.0澶栵級 + public static Double intakeAlarmLossMinValue = 1.0 ; + //鏈夋姤璀﹀彂鐢熸椂锛屽悜閽夐拤鍙戦�佹秷鎭殑闂撮殧鏃堕暱锛堝垎閽燂級 public static Integer sendDingDingAlarmMsInterval = 60 ; diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java index b782f60..49a8faa 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java @@ -109,19 +109,19 @@ po.intakeId = controller==null?null:controller.getIntakeId() ; po.rtuAddr = rtuAddr ; po.valueFrom(dV1_0_1, rtuDt, alarmVo, stateVo); - if(alarmVo.hasAlarm()){ + if(alarmVo.hasAlarmExcludeLoss()){ po.sendMsTime = System.currentTimeMillis() ; this.sendMessage(controller, alarmVo); } sv.saveRmAlarmStateLast(po) ; }else{ if(po.sendMsTime == null){ - if(alarmVo.hasAlarm()) { + if(alarmVo.hasAlarmExcludeLoss()) { po.sendMsTime = System.currentTimeMillis(); this.sendMessage(controller, alarmVo); } }else{ - if(alarmVo.hasAlarm()){ + if(alarmVo.hasAlarmExcludeLoss()){ Long now = System.currentTimeMillis() ; if(((now - po.sendMsTime) / (1000 * 60)) > ServerProperties.sendDingDingAlarmMsInterval){ //澶т簬瑙勫畾鐨勯棿闅旀椂闂� @@ -171,7 +171,7 @@ * @param alarmVo */ private void sendMessage(PrController controller, DataAlarmVo alarmVo){ - String ms = "鍙栨按鍙b��" + controller.getIntakeName() + "鈥濅骇鐢熸姤璀︼細" + alarmVo.alarmContent() ; + String ms = "鍙栨按鍙b��" + controller.getIntakeName() + "鈥濅骇鐢熸姤璀︼細" + alarmVo.alarmContentExcludeLoss() ; try{ SendMsCache.cacheMs(ms); }catch (Exception e){ diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOnHourReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOnHourReport.java index c04f4a0..5e8dc51 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOnHourReport.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOnHourReport.java @@ -2,6 +2,7 @@ import com.dy.common.mw.protocol.Data; import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataAlarmVo; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdC0Vo; import com.dy.common.mw.protocol.p206V202404.DataV202404; import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo; @@ -10,6 +11,8 @@ import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast; import com.dy.pipIrrGlobal.pojoRm.RmTimingReportHistory; import com.dy.pipIrrGlobal.pojoRm.RmTimingReportLast; +import com.dy.rtuMw.server.ServerProperties; +import com.dy.rtuMw.server.forMs.SendMsCache; import com.dy.rtuMw.server.rtuData.TaskSurpport; import com.dy.rtuMw.server.rtuData.dbSv.DbSv; import org.apache.logging.log4j.LogManager; @@ -76,11 +79,17 @@ po.rtuAddr = rtuAddr; po.valueFrom(dV1_0_1, cdData); sv.saveRmOnHourReportLast(po) ; + if(po.lossAmount >= ServerProperties.intakeAlarmLossMinValue){ + this.sendMessage(controller, po.lossAmount); + } }else{ po.controllerId = controller==null?null:controller.getId(); po.intakeId = controller==null?null:controller.getIntakeId(); po.valueFrom(dV1_0_1, cdData); sv.updateRmOnHourReportLast(po); + if(po.lossAmount >= ServerProperties.intakeAlarmLossMinValue){ + this.sendMessage(controller, po.lossAmount); + } } } @@ -101,5 +110,21 @@ po.valueFrom(dV1_0_1, cdData); sv.saveRmOnHourReportHistory(po); ; } + + + + /** + * 鍚戦拤閽夊彂閫佹秷鎭� + * @param controller + */ + private void sendMessage(PrController controller, Double lossAmount){ + String ms = "鍙栨按鍙b��" + controller.getIntakeName() + "鈥濇紡姘存姤璀︼紝浠婃棩婕忔崯閲�" + lossAmount + "绔嬫柟绫�"; + try{ + SendMsCache.cacheMs(ms); + }catch (Exception e){ + log.error("缂撳瓨閽夐拤娑堟伅寮傚父锛�", e); + } + } + } diff --git "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml" "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml" index 96876da..957c7ba 100644 --- "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml" +++ "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml" @@ -20,6 +20,7 @@ cacheUpDownDataMaxCount锛氫笂涓嬭鏁版嵁缂撳瓨闃熷垪涓紦瀛樻暟鎹釜鏁扮殑鏈�澶у�硷紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧 disconnectedByNoUpDataMinutes锛氭病鏈変笂琛屾暟鎹殑鍒嗛挓鏁帮紝杈惧埌杩欎釜鍒嗛挓鏁帮紝璁や负RTU鏂綉浜嗭紝鍙栧�艰寖鍥存槸2-100 workReportDealOneByTimes: 宸ヤ綔鎶ュお棰戠箒锛孨娆′笂鎶ュ鐞�1娆★紝鍙栧�艰寖鍥存槸1-100 + intakeAlarmLossMinValue: 瑙﹀彂鍙戦�侀拤閽夋姤璀︽秷鎭殑鍙栨按鍙f棩婕忔崯閲忕殑鏈�灏忓�硷紙鍖呮嫭锛� sendDingDingAlarmMsInterval: 鏈夋姤璀﹀彂鐢熸椂锛屽悜閽夐拤鍙戦�佹秷鎭殑闂撮殧鏃堕暱锛堝垎閽燂級 --> <base @@ -37,6 +38,7 @@ cacheUpDownDataMaxCount="110000" disconnectedByNoUpDataMinutes="3" workReportDealOneByTimes="5" + intakeAlarmLossMinValue="1" sendDingDingAlarmMsInterval="60" /> diff --git "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml" "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml" index 8f609b3..bfb298d 100644 --- "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml" +++ "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml" @@ -20,6 +20,7 @@ cacheUpDownDataMaxCount锛氫笂涓嬭鏁版嵁缂撳瓨闃熷垪涓紦瀛樻暟鎹釜鏁扮殑鏈�澶у�硷紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧 disconnectedByNoUpDataMinutes锛氭病鏈変笂琛屾暟鎹殑鍒嗛挓鏁帮紝杈惧埌杩欎釜鍒嗛挓鏁帮紝璁や负RTU鏂綉浜嗭紝鍙栧�艰寖鍥存槸2-100 workReportDealOneByTimes: 宸ヤ綔鎶ュお棰戠箒锛孨娆′笂鎶ュ鐞�1娆★紝鍙栧�艰寖鍥存槸1-100 + intakeAlarmLossMinValue: 瑙﹀彂鍙戦�侀拤閽夋姤璀︽秷鎭殑鍙栨按鍙f棩婕忔崯閲忕殑鏈�灏忓�硷紙鍖呮嫭锛� sendDingDingAlarmMsInterval: 鏈夋姤璀﹀彂鐢熸椂锛屽悜閽夐拤鍙戦�佹秷鎭殑闂撮殧鏃堕暱锛堝垎閽燂級 --> <base @@ -37,6 +38,7 @@ cacheUpDownDataMaxCount="110000" disconnectedByNoUpDataMinutes="3" workReportDealOneByTimes="5" + intakeAlarmLossMinValue="1" sendDingDingAlarmMsInterval="60" /> diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml index b441dce..6181178 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml @@ -20,6 +20,7 @@ cacheUpDownDataMaxCount锛氫笂涓嬭鏁版嵁缂撳瓨闃熷垪涓紦瀛樻暟鎹釜鏁扮殑鏈�澶у�硷紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧 disconnectedByNoUpDataMinutes锛氭病鏈変笂琛屾暟鎹殑鍒嗛挓鏁帮紝杈惧埌杩欎釜鍒嗛挓鏁帮紝璁や负RTU鏂綉浜嗭紝鍙栧�艰寖鍥存槸2-100 workReportDealOneByTimes: 宸ヤ綔鎶ュお棰戠箒锛孨娆′笂鎶ュ鐞�1娆★紝鍙栧�艰寖鍥存槸1-100 + intakeAlarmLossMinValue: 瑙﹀彂鍙戦�侀拤閽夋姤璀︽秷鎭殑鍙栨按鍙f棩婕忔崯閲忕殑鏈�灏忓�硷紙鍖呮嫭浣嗛櫎0.0澶栵級锛堝皬鏁帮級 sendDingDingAlarmMsInterval: 鏈夋姤璀﹀彂鐢熸椂锛屽悜閽夐拤鍙戦�佹秷鎭殑闂撮殧鏃堕暱锛堝垎閽燂級 --> <base @@ -37,6 +38,7 @@ cacheUpDownDataMaxCount="110000" disconnectedByNoUpDataMinutes="3" workReportDealOneByTimes="5" + intakeAlarmLossMinValue="1.0" sendDingDingAlarmMsInterval="60" /> -- Gitblit v1.8.0