1、发送钉钉的报警消息中去除漏损报警;
2、漏损报警消息产生与发送放于定时报中,漏损量大于配置值时才报警,并把漏损量一并发送出去。
11个文件已修改
85 ■■■■ 已修改文件
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global(test测试系统).yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global(ym元谋系统).yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOnHourReport.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(test测试).xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(ym元谋).xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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");
pipIrr-platform/pipIrr-global/src/main/resources/application-global(test²âÊÔϵͳ).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
pipIrr-platform/pipIrr-global/src/main/resources/application-global(ymԪıϵͳ).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
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
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -204,6 +204,9 @@
            //工作报太频繁,N次上报处理1次,取值范围是1-100
            ServerProperties.workReportDealOneByTimes =  conf.getSetAttrPlusInt(doc, "config.base", "workReportDealOneByTimes", null, 1, 100, null) ;
            //触发发送钉钉报警消息的取水口日漏损量的最小值(包括但除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) ;
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
@@ -46,6 +46,9 @@
    //工作报太频繁,N次上报处理1次
    public static Integer workReportDealOneByTimes = 5 ;
    //触发发送钉钉报警消息的取水口日漏损量的最小值(包括但除0.0外)
    public static Double intakeAlarmLossMinValue = 1.0 ;
    //有报警发生时,向钉钉发送消息的间隔时长(分钟)
    public static Integer sendDingDingAlarmMsInterval = 60 ;
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 = "取水口“" + controller.getIntakeName() + "”产生报警:" + alarmVo.alarmContent() ;
        String ms = "取水口“" + controller.getIntakeName() + "”产生报警:" + alarmVo.alarmContentExcludeLoss() ;
        try{
            SendMsCache.cacheMs(ms);
        }catch (Exception e){
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 = "取水口“" + controller.getIntakeName() + "”漏水报警,今日漏损量" + lossAmount + "立方米";
        try{
            SendMsCache.cacheMs(ms);
        }catch (Exception e){
            log.error("缓存钉钉消息异常:", e);
        }
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(test²âÊÔ).xml
@@ -20,6 +20,7 @@
    cacheUpDownDataMaxCount:上下行数据缓存队列中缓存数据个数的最大值,这个与现实项目所接水表数相关
    disconnectedByNoUpDataMinutes:没有上行数据的分钟数,达到这个分钟数,认为RTU断网了,取值范围是2-100
    workReportDealOneByTimes: å·¥ä½œæŠ¥å¤ªé¢‘繁,N次上报处理1次,取值范围是1-100
    intakeAlarmLossMinValue: è§¦å‘发送钉钉报警消息的取水口日漏损量的最小值(包括)
    sendDingDingAlarmMsInterval: æœ‰æŠ¥è­¦å‘生时,向钉钉发送消息的间隔时长(分钟)
     -->
    <base
@@ -37,6 +38,7 @@
        cacheUpDownDataMaxCount="110000"
        disconnectedByNoUpDataMinutes="3"
        workReportDealOneByTimes="5"
        intakeAlarmLossMinValue="1"
        sendDingDingAlarmMsInterval="60"
    />
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(ymԪı).xml
@@ -20,6 +20,7 @@
        cacheUpDownDataMaxCount:上下行数据缓存队列中缓存数据个数的最大值,这个与现实项目所接水表数相关
        disconnectedByNoUpDataMinutes:没有上行数据的分钟数,达到这个分钟数,认为RTU断网了,取值范围是2-100
        workReportDealOneByTimes: å·¥ä½œæŠ¥å¤ªé¢‘繁,N次上报处理1次,取值范围是1-100
        intakeAlarmLossMinValue: è§¦å‘发送钉钉报警消息的取水口日漏损量的最小值(包括)
        sendDingDingAlarmMsInterval: æœ‰æŠ¥è­¦å‘生时,向钉钉发送消息的间隔时长(分钟)
         -->
        <base
@@ -37,6 +38,7 @@
            cacheUpDownDataMaxCount="110000"
            disconnectedByNoUpDataMinutes="3"
            workReportDealOneByTimes="5"
            intakeAlarmLossMinValue="1"
            sendDingDingAlarmMsInterval="60"
        />
        
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -20,6 +20,7 @@
    cacheUpDownDataMaxCount:上下行数据缓存队列中缓存数据个数的最大值,这个与现实项目所接水表数相关
    disconnectedByNoUpDataMinutes:没有上行数据的分钟数,达到这个分钟数,认为RTU断网了,取值范围是2-100
    workReportDealOneByTimes: å·¥ä½œæŠ¥å¤ªé¢‘繁,N次上报处理1次,取值范围是1-100
    intakeAlarmLossMinValue: è§¦å‘发送钉钉报警消息的取水口日漏损量的最小值(包括但除0.0外)(小数)
    sendDingDingAlarmMsInterval: æœ‰æŠ¥è­¦å‘生时,向钉钉发送消息的间隔时长(分钟)
     -->
    <base
@@ -37,6 +38,7 @@
        cacheUpDownDataMaxCount="110000"
        disconnectedByNoUpDataMinutes="3"
        workReportDealOneByTimes="5"
        intakeAlarmLossMinValue="1.0"
        sendDingDingAlarmMsInterval="60"
    />