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