Administrator
2024-07-22 030af2dc0eed880fe4c75708b92a4b0d7c1cb135
Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
10个文件已修改
2个文件已添加
204 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/Server.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/ServerProperties.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/p206V1_0_0/RtuP206V1_0_0Ctrl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/TcpClUnit.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd38.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Close.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Open.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd84.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/resources/Config.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsMonthListener.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -149,3 +149,10 @@
        - /sso/sso
        - /remote/comRes/receive
        - /wx/comRes/receive
#自动统计配置
auto-statistics:
    #月统计
    month:
        startDay: 1
        startHour: 0
        startMinute: 5
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java
@@ -58,69 +58,91 @@
        if(obj instanceof DataCd97Vo){
            DataCd97Vo vo = (DataCd97Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd98Vo){
            DataCd98Vo vo = (DataCd98Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd92Vo){
            DataCd92Vo vo = (DataCd92Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd93Vo){
            DataCd93Vo vo = (DataCd93Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd3AAnd6AVo){
            DataCd3AAnd6AVo vo = (DataCd3AAnd6AVo)obj ;
            po.setResultText(vo.comLog(code));
            log.info("----------------------------------\n" + vo.comLog(code));
        }else if(obj instanceof DataCd3BAnd6BVo){
            DataCd3BAnd6BVo vo = (DataCd3BAnd6BVo)obj ;
            po.setResultText(vo.comLog(code));
            log.info("----------------------------------\n" + vo.comLog(code));
        }else if(obj instanceof DataCd3BAnd6BVo){
            DataCd3CAnd65Vo vo = (DataCd3CAnd65Vo)obj ;
            po.setResultText(vo.comLog(code));
            log.info("----------------------------------\n" + vo.comLog(code));
        }else if(obj instanceof DataCd3DVo){
            DataCd3DVo vo = (DataCd3DVo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd3EVo){
            DataCd3EVo vo = (DataCd3EVo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd5EVo){
            DataCd5EVo vo = (DataCd5EVo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd6CVo){
            DataCd6CVo vo = (DataCd6CVo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd10Vo){
            DataCd10Vo vo = (DataCd10Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd21Vo){
            DataCd21Vo vo = (DataCd21Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd36Vo){
            DataCd36Vo vo = (DataCd36Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd37And67Vo){
            DataCd37And67Vo vo = (DataCd37And67Vo)obj ;
            po.setResultText(vo.comLog(code));
            log.info("----------------------------------\n" + vo.comLog(code));
        }else if(obj instanceof DataCd38And68Vo){
            DataCd38And68Vo vo = (DataCd38And68Vo)obj ;
            po.setResultText(vo.comLog(code));
            log.info("----------------------------------\n" + vo.comLog(code));
        }else if(obj instanceof DataCd39And69Vo){
            DataCd39And69Vo vo = (DataCd39And69Vo)obj ;
            po.setResultText(vo.comLog(code));
            log.info("----------------------------------\n" + vo.comLog(code));
        }else if(obj instanceof DataCd51Vo){
            DataCd51Vo vo = (DataCd51Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd66Vo){
            DataCd66Vo vo = (DataCd66Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd71Vo){
            DataCd71Vo vo = (DataCd71Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCd99Vo){
            DataCd99Vo vo = (DataCd99Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }else if(obj instanceof DataCdA0Vo){
            DataCdA0Vo vo = (DataCdA0Vo)obj ;
            po.setResultText(vo.comLog());
            log.info("----------------------------------\n" + vo.comLog());
        }
        return po ;
    }
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/Server.java
@@ -92,6 +92,7 @@
            // ///////////////
            // 基础配置
            ServerProperties.rtuAddr = conf.getSetAttrTxt(doc, "config.base", "rtuAddr", null, false, null);
            ServerProperties.onlyOneHeartBeat = conf.getSetAttrBoolean(doc, "config.base", "onlyOneHeartBeat",  null, null);
            ServerProperties.icCardAddr = conf.getSetAttrTxt(doc, "config.base", "icCardAddr", null, false, null);
            ServerProperties.icCardNo = conf.getSetAttrTxt(doc, "config.base", "icCardNo", null, false, null);
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/ServerProperties.java
@@ -7,6 +7,7 @@
 */
public class ServerProperties {
    public static String rtuAddr ;
    public static Boolean onlyOneHeartBeat ;
    public static String icCardAddr ;
    public static String icCardNo ;
}
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/p206V1_0_0/RtuP206V1_0_0Ctrl.java
@@ -1,6 +1,7 @@
package com.dy.pipIrrMwTestRtu.p206V1_0_0;
import com.dy.common.webUtil.BaseResponse;
import com.dy.pipIrrMwTestRtu.tcpClient.upData.UpCd38;
import com.dy.pipIrrMwTestRtu.tcpClient.upData.UpCd83Close;
import com.dy.pipIrrMwTestRtu.tcpClient.upData.UpCd83Open;
import com.dy.pipIrrMwTestRtu.tcpClient.upData.UpCd84;
@@ -23,11 +24,13 @@
    @GetMapping(path = "test")
    public BaseResponse<String> test(String com) {
        if(com.equals("83Open")){
            UpCd83Open.upCd83Data();
            UpCd83Open.upData();
        }else if(com.equals("83Close")){
            UpCd83Close.upCd83Data();
            UpCd83Close.upData();
        }else if(com.equals("84")){
            UpCd84.upCd84Data();
            UpCd84.upData();
        }else if(com.equals("38")){
            UpCd38.upData();
        }
        BaseResponse<String> rt = new BaseResponse<String>() ;
        rt.setCode("001") ;
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/TcpClUnit.java
@@ -108,13 +108,22 @@
        new Thread(new Runnable(){
            @Override
            public void run() {
                while(true){
                if(ServerProperties.onlyOneHeartBeat){
                    try {
                        UpHeartBeat.upCd02Data(ServerProperties.rtuAddr);
                        Thread.sleep(30000L);
                        //Thread.sleep(30000000L);
                    }catch (Exception e){
                        continue;
                    }
                }else{
                    while(true){
                        try {
                            UpHeartBeat.upCd02Data(ServerProperties.rtuAddr);
                            Thread.sleep(30000L);
                            //Thread.sleep(30000000L);
                        }catch (Exception e){
                            continue;
                        }
                    }
                }
            }
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd38.java
New file
@@ -0,0 +1,80 @@
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.common.util.DateTime;
import com.dy.pipIrrMwTestRtu.ServerProperties;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
 * @Author: liurunyu
 * @Date: 2024/7/22 15:01
 * @Description
 */
public class UpCd38 extends UpData {
    private static final Logger log = LogManager.getLogger(UpCd38.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, "38", (byte)0xB0);
        byte[] bs = new byte[1] ;
        bs[0] = (byte)0x00 ;//报警金额高位
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[1] ;
        ByteUtil.int2BCD_LE(40, bs, 0);
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[1] ;//秒钟
        ByteUtil.int2BCD_LE(Integer.parseInt(DateTime.ss()), bs, 0);
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[1] ;//分钟
        ByteUtil.int2BCD_LE(Integer.parseInt(DateTime.mm()), bs, 0);
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[1] ;//时钟
        ByteUtil.int2BCD_LE(Integer.parseInt(DateTime.HH()), bs, 0);
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[1] ;//日
        ByteUtil.int2BCD_LE(Integer.parseInt(DateTime.dd()), bs, 0);
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[]{(byte)0x0A} ;//
        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-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Close.java
@@ -15,7 +15,7 @@
    private static final Logger log = LogManager.getLogger(UpCd83Close.class);
    public static void upCd83Data() {
    public static void upData() {
        try {
            if (UpData.session != null && UpData.session.isConnected()) {
                byte[] bs = createData(ServerProperties.rtuAddr);
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Open.java
@@ -16,7 +16,7 @@
    private static final Logger log = LogManager.getLogger(UpCd83Open.class);
    public static void upCd83Data() {
    public static void upData() {
        try {
            if (UpData.session != null && UpData.session.isConnected()) {
                byte[] bs = createData(ServerProperties.rtuAddr);
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd84.java
@@ -15,7 +15,7 @@
    private static final Logger log = LogManager.getLogger(UpCd84.class);
    public static void upCd84Data() {
    public static void upData() {
        try {
            if (UpData.session != null && UpData.session.isConnected()) {
                byte[] bs = createData(ServerProperties.rtuAddr);
@@ -30,7 +30,7 @@
    /**
     * 构造心跳数据
     * 构造数据
     *
     * @return 字节数组
     * @throws Exception 异常
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/resources/Config.xml
@@ -2,7 +2,7 @@
<config>
    <server name="RTU模拟器" showStartInfo="true" company="http://www.dyjs.com"/>
    <base rtuAddr="532328059995" icCardAddr="3B7D1E1A" icCardNo="61181622830147821"></base>
    <base rtuAddr="532328059995" onlyOneHeartBeat="true" icCardAddr="3B7D1E1A" icCardNo="61181622830147821"></base>
    <!-- -->
    <tcpCl mwServerIp="127.0.0.1" mwServerPort="60000" connectTimeout="3000" />
    <tcpCl mwServerIp="192.168.40.182" mwServerPort="60000" connectTimeout="3000" />
</config>        
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsMonthListener.java
New file
@@ -0,0 +1,59 @@
package com.dy.pipIrrStatistics.listeners;
/**
 * @Author: liurunyu
 * @Date: 2024/7/22 14:39
 * @Description
 */
import com.dy.common.util.ConfigXml;
import com.dy.common.webListener.ConfigListener;
import org.jdom2.Document;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
import java.net.URL;
/**
 * 监听器,实现功能:在系统启动时初始化,向数据库中插入数据
 * 本监听器不能采用ServletContextListener方式,因为Servlet上下文Context创建后
 * Spring容器并没有创建完,而本类中用了Spring容器中的Bean,即*Dao 。
 * 所以采用了Spring事件监听器来实现
 */
@Component
public class StatisticsMonthListener implements ApplicationListener<ApplicationReadyEvent> {
    @Value("${auto-statistics.month.startDay: 1}")
    private Integer startDay ;//月统计开始日期
    @Value("${auto-statistics.month.startHour: 0}")
    private Integer startHour ;//月统计开始小时
    @Value("${auto-statistics.month.startMinute: 5}")
    private Integer startMinute ;//月统计开始分钟
    /**
     * SpringBoot容器已经准备好了
     * @param event 事件
     */
    @Override
    public void onApplicationEvent(@NonNull ApplicationReadyEvent event) {
        try {
            //等1秒,等待com.alibaba.druid.pool.DruidDataSource实始化完成
            Thread.sleep(1000L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }finally {
            this.start(event);
        }
    }
    /**
     * 实始化
     */
    private void start(ApplicationReadyEvent event){
    }
}