liurunyu
2024-07-31 7f0fcee97eb8415fca76c12942cb641ef125a5f3
通信中间件对报警的取水口间隔发送消息实现
6个文件已修改
1个文件已添加
98 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd81.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pom.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/pom.xml
@@ -147,7 +147,6 @@
            <artifactId>alibaba-dingtalk-service-sdk</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -266,8 +266,8 @@
    tb.intakeId intakeId,
    itb.name intakeName
    FROM pr_controller tb
    INNER JOIN pr_intake itb on tb.intakeId=itb.id
    WHERE deleted = 0 AND intakeId is not null AND rtuAddr=#{rtuAddr,jdbcType=VARCHAR}
    INNER JOIN pr_intake itb on tb.intakeId = itb.id
    WHERE tb.deleted = 0 AND tb.intakeId is not null AND tb.rtuAddr=#{rtuAddr,jdbcType=VARCHAR}
  </select>
  <!--根据控制器编号逻辑删除控制-->
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
@@ -1,7 +1,9 @@
package com.dy.rtuMw.server.rtuData.p206V1_0_0;
import com.dy.common.mw.protocol.p206V1_0_0.upVos.*;
import com.dy.common.springUtil.SpringContextUtil;
import com.dy.common.util.DateTime;
import com.dy.pipIrrGlobal.config.DingTalk;
import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory;
import com.dy.rtuMw.server.ServerProperties;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
@@ -162,8 +164,15 @@
    }
    /**
     * 向钉钉发送消息
     * @param controller
     * @param alarmVo
     */
    private void sendMessage(PrController controller, DataAlarmVo alarmVo){
        String ms = "取水口" + controller.getIntakeName() + "产生报警:" + alarmVo.alarmContent() ;
        DingTalk dingTalk = SpringContextUtil.getBean(DingTalk.class) ;
        dingTalk.sendMessage(ms);
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
@@ -107,7 +107,8 @@
                    alarmVo==null?null:alarmVo.stateIcEnable,
                    (byte)0,//电池电压(1:报警,0:正常)
                    (byte)0,//阀门报警(1:报警,0:正常)
                    (byte)0//供电方式(0: 220V,1:蓄电池)
                    (byte)0,//供电方式(0: 220V,1:蓄电池)
                    System.currentTimeMillis()
            ) ;
            sv.saveRmAlarmStateLast(po) ;
        }else{
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd81.java
New file
@@ -0,0 +1,59 @@
package com.dy.pipIrrMwTestRtu.tcpClient.upData;
import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
import com.dy.common.util.ByteUtil;
import com.dy.pipIrrMwTestRtu.ServerProperties;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
 * @Author: liurunyu
 * @Date: 2024/7/31 16:29
 * @Description
 */
public class UpCd81 extends UpData {
    private static final Logger log = LogManager.getLogger(UpCd81.class);
    public static void upData() {
        try {
            if (UpData.session != null && UpData.session.isConnected()) {
                byte[] bs = createData(ServerProperties.rtuAddr);
                UpData.upSend(bs);
            } else {
                log.error("未连接通信中间件,不能发送数据");
            }
        } catch (Exception e) {
            log.error("向通信中间件发送数据产生异常", e);
        }
    }
    /**
     * 构造数据
     *
     * @return 字节数组
     * @throws Exception 异常
     */
    private static byte[] createData(String rtuAddr) throws Exception {
        byte[] bytes = creatHead(rtuAddr, "81", (byte)0xB0);
        byte[] bs = new byte[2] ;
        bs[0] = (byte)0xDF ;//报警
        bs[1] = (byte)0xF9 ;//报警
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[2] ;
        bs[0] = (byte)0x00 ;//状态
        bs[1] = (byte)0x00 ;//状态
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        GlCreate.createLen(bytes);//长度放字节数组中
        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC和尾叠加字节数组中
        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
        return bytes ;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
@@ -12,7 +12,9 @@
@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrMwTestWeb"},
        excludeFilters = {
                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
                        com.dy.common.apiDoc.SpringApiConfig.class //一种排除类的方式
                        //一种排除类的方式
                        com.dy.common.apiDoc.SpringApiConfig.class,
                        com.dy.pipIrrGlobal.config.DingTalk.class
                }),
                @ComponentScan.Filter(type = FilterType.REGEX, pattern = {
                        //二种排除类的方式,写正则表达式,需要对目标类的完全限定名完全匹配,否则不生效
pipIrr-platform/pom.xml
@@ -276,6 +276,24 @@
                <groupId>org.apache.rocketmq</groupId>
                <artifactId>rocketmq-client</artifactId>
                <version>4.9.7</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--钉钉消息推送-->
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>alibaba-dingtalk-service-sdk</artifactId>
                <version>2.0.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.15</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- 测试 -->