From c9768346fc8bc1cc6326e06125deaf57ff423eaf Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Tue, 19 Sep 2023 16:17:07 +0800
Subject: [PATCH] 修改三厂数字化使用原生jdbc连接

---
 src/main/java/com/ard/alarm/digitization/mapper/DataBridgeMapper.java            |    2 
 src/main/java/com/ard/alarm/stealelec/service/StealElecAlarmService.java         |   18 +
 src/main/resources/logback-spring.xml                                            |  105 +++++++----
 src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java          |    2 
 src/main/java/com/ard/utils/jdbc/Query.java                                      |   72 ++++++++
 src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java |   33 ++-
 src/main/resources/application-prod.yml                                          |    7 
 pom.xml                                                                          |    6 
 /dev/null                                                                        |   49 -----
 src/main/java/com/ard/utils/jdbc/Conn.java                                       |  103 +++++++++++
 src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java                  |    2 
 src/main/resources/application-dev.yml                                           |  114 +++---------
 src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java                |    2 
 13 files changed, 308 insertions(+), 207 deletions(-)

diff --git a/pom.xml b/pom.xml
index 88f7b55..fd515f5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -99,12 +99,6 @@
             <artifactId>druid-spring-boot-starter</artifactId>
             <version>1.2.14</version>
         </dependency>
-        <!-- 动态数据源 -->
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
-            <version>3.5.0</version>
-        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-jdbc</artifactId>
diff --git a/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java b/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java
index 76908d2..c75f1df 100644
--- a/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java
+++ b/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java
@@ -2,7 +2,6 @@
 
 import java.util.List;
 import com.ard.alarm.camera.domain.ArdCameras;
-import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -12,7 +11,6 @@
  * @date 2023-02-11
  */
 @Mapper
-@DS("master")
 public interface ArdCamerasMapper 
 {
     /**
diff --git a/src/main/java/com/ard/alarm/digitization/mapper/DataBridgeMapper.java b/src/main/java/com/ard/alarm/digitization/mapper/DataBridgeMapper.java
index f21b1cb..498665e 100644
--- a/src/main/java/com/ard/alarm/digitization/mapper/DataBridgeMapper.java
+++ b/src/main/java/com/ard/alarm/digitization/mapper/DataBridgeMapper.java
@@ -1,11 +1,9 @@
 package com.ard.alarm.digitization.mapper;
 
 import com.ard.alarm.digitization.model.DataBridge;
-import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
-@DS("oracle")
 @Mapper
 public interface DataBridgeMapper {
 
diff --git a/src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java b/src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java
index 76f1482..fb31a67 100644
--- a/src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java
+++ b/src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java
@@ -1,20 +1,19 @@
 package com.ard.alarm.digitization.service.impl;
 
 import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
 import com.ard.alarm.digitization.mapper.DataBridgeMapper;
 import com.ard.alarm.digitization.model.DataBridge;
 import com.ard.alarm.digitization.service.DataBridgeService;
-import com.ard.alarm.stealelec.domain.ArdAlarmStealelec;
+import com.ard.utils.jdbc.Query;
 import com.ard.utils.mqtt.MqttConsumer;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
-
 import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
+
 
 /**
  * @Description:
@@ -23,29 +22,45 @@
  * @Date: 2023年09月18日16:41:50
  **/
 @Service
-@Slf4j(topic = "alarm")
+@Slf4j(topic = "digitization3")
 public class DataBridgeServiceImpl implements DataBridgeService {
+
+
     @Resource
     DataBridgeMapper databridgeMapper;
     public static Date lastTime;
+    @Value("${spring.digitization3.enabled}")
+    private Boolean enabled;
 
     @Scheduled(cron = "0/5 * * * * ?")
     public void alarmHandler() {
+        List<DataBridge> dataBridgeList;
         try {
-            List<DataBridge> dataBridgeList = selectDatabridgeList(new DataBridge());
+            if(!enabled)
+            {
+                return;
+            }
+            if (lastTime == null) {
+                //初次查询,只获取10条最近数据。
+                dataBridgeList = Query.getAlarmData(null, 10);
+                if (dataBridgeList.size() > 0) {
+                    lastTime = dataBridgeList.get(0).getDateTime();
+                }
+            } else {
+                //查询大于上次查询最后一条数据的时间
+                dataBridgeList = Query.getAlarmData(lastTime, null);
+            }
             if (dataBridgeList.size() > 0) {
                 for (DataBridge data : dataBridgeList) {
                     String[] elem = data.getValue().split(";");
                     data.setWellNo(elem[0]);
                     data.setAlarmType(elem[1]);
                     data.setAlarmTime(elem[2]);
-
                     MqttConsumer.publish(2, false, "digitization3", JSON.toJSONString(data));
-
                 }
             }
         } catch (Exception ex) {
-            log.error("3厂数字化报警数据推送异常:" + ex.getMessage());
+            log.error("3厂数字化报警数据处理异常:" + ex.getMessage());
         }
     }
 
diff --git a/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java b/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java
index f523f5d..e5b3a23 100644
--- a/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java
+++ b/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java
@@ -2,7 +2,6 @@
 
 import java.util.List;
 import com.ard.alarm.external.domain.ArdEquipExternal;
-import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Mapper;
 
 
@@ -13,7 +12,6 @@
  * @date 2023-03-13
  */
 @Mapper
-@DS("master")
 public interface ArdEquipExternalMapper 
 {
     /**
diff --git a/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java b/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java
index dcfec83..2d5755c 100644
--- a/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java
+++ b/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java
@@ -2,7 +2,6 @@
 
 import java.util.List;
 import com.ard.alarm.radar.domain.ArdEquipRadar;
-import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -12,7 +11,6 @@
  * @date 2023-03-11
  */
 @Mapper
-@DS("master")
 public interface ArdEquipRadarMapper 
 {
     /**
diff --git a/src/main/java/com/ard/alarm/stealelec/service/StealElecAlarmService.java b/src/main/java/com/ard/alarm/stealelec/service/StealElecAlarmService.java
index 1cc832e..84bf9d4 100644
--- a/src/main/java/com/ard/alarm/stealelec/service/StealElecAlarmService.java
+++ b/src/main/java/com/ard/alarm/stealelec/service/StealElecAlarmService.java
@@ -10,6 +10,7 @@
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
+
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
@@ -24,12 +25,15 @@
  */
 @Slf4j(topic = "stealAlarm")
 @Service
-public class StealElecAlarmService{
+public class StealElecAlarmService {
     @Resource
     RestTemplate restTemplate;
     @Value("${spring.stealelec.url}")
     private String stealElecUrl;
-    List<String> tempList=new ArrayList<>();
+    @Value("${spring.stealelec.enabled}")
+    private Boolean enabled;
+    List<String> tempList = new ArrayList<>();
+
     /**
      * @描述 获取api数据推送mqtt
      * @参数 []
@@ -39,9 +43,12 @@
      * @修改人和其它信息
      */
     @Async("alarm")
-   // @Scheduled(cron="0/5 * * * * ?")
+    @Scheduled(cron = "0/5 * * * * ?")
     public void alarmHandler() {
         try {
+            if (!enabled) {
+                return;
+            }
             String allAlarmData = restTemplate.getForObject(stealElecUrl, String.class);
             //剔除所有\符号
             String message = allAlarmData.replaceAll("\\\\", "");
@@ -60,11 +67,10 @@
                     String JSONStr = JSON.toJSONString(object);
                     //转成实体对象
                     ArdAlarmStealelec wd = JSON.parseObject(JSONStr, ArdAlarmStealelec.class);
-                    if(tempList.contains(wd.getId()))
-                    {
+                    if (tempList.contains(wd.getId())) {
                         continue;
                     }
-                    MqttConsumer.publish(2,false,"stealelec", JSON.toJSONString(wd));
+                    MqttConsumer.publish(2, false, "stealelec", JSON.toJSONString(wd));
                     tempList.add(wd.getId());
                 }
             }
diff --git a/src/main/java/com/ard/config/DruidConfig.java b/src/main/java/com/ard/config/DruidConfig.java
deleted file mode 100644
index 70619ee..0000000
--- a/src/main/java/com/ard/config/DruidConfig.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.ard.config;
-import com.alibaba.druid.filter.Filter;
-import com.alibaba.druid.filter.stat.StatFilter;
-import com.alibaba.druid.pool.DruidDataSource;
-import com.alibaba.druid.support.http.StatViewServlet;
-import com.google.common.collect.Lists;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.boot.web.servlet.ServletRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-/**
- * @Description: druid连接池的配置,配置如何处理慢sql,
- * @ClassName: DruidConfig
- * @Author: 刘苏义
- * @Date: 2023年07月04日15:29
- * @Version: 1.0
- **/
-
-public class DruidConfig {
-    //这个注解读取配置文件前缀为prefix的配置,将外部的配置文件与这里绑定
-    @ConfigurationProperties(prefix = "spring.datasource.druid")
-    //容器的开启与关闭
-//    @Bean(initMethod = "init",destroyMethod = "close")
-//    public DruidDataSource dataSource(){
-//        DruidDataSource dataSource=new DruidDataSource();
-//        dataSource.setProxyFilters(Lists.newArrayList(statFilter()));
-//        return  dataSource;
-//    }
-    //bean注解,成为spring的bean,利用filter将慢sql的日志打印出来
-    @Bean
-    public Filter statFilter(){
-        StatFilter statFilter=new StatFilter();
-        //多长时间定义为慢sql,这里定义为5s
-        statFilter.setSlowSqlMillis(5000);
-        //是否打印出慢日志
-        statFilter.setLogSlowSql(true);
-        //是否将日志合并起来
-        statFilter.setMergeSql(true);
-        return  statFilter;
-    }
-    //这是配置druid的监控
-    //这是配置druid的监控与配置文件中功能一样
-    //#stat-view-servlet:
-    //   #enabled:true
-//    @Bean
-//    public ServletRegistrationBean servletRegistrationBean(){
-//        return new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
-//    }
-}
\ No newline at end of file
diff --git a/src/main/java/com/ard/utils/jdbc/Conn.java b/src/main/java/com/ard/utils/jdbc/Conn.java
new file mode 100644
index 0000000..d1d4dd5
--- /dev/null
+++ b/src/main/java/com/ard/utils/jdbc/Conn.java
@@ -0,0 +1,103 @@
+package com.ard.utils.jdbc;
+
+/**
+ * @Description:
+ * @ClassName: GetConn
+ * @Author: 刘苏义
+ * @Date: 2023年09月19日13:12:38
+ **/
+
+import org.springframework.core.io.ClassPathResource;
+
+import javax.annotation.Resource;
+import java.sql.*;
+import java.util.Properties;
+
+public class Conn {
+    //jdbc连接需要用到的三个参数
+    private String url="jdbc:oracle:thin:@//112.98.126.2:21521/orcl";
+    private String user="c##ard_user";
+    private String pwd="123456";
+
+    //创建一个对象 设置为静态私有  (单例模式)
+    private static Conn gc=null;
+
+    //将构造函数设为private型 防止外部实例化对象  (通过反射或反序列化可以破解单例)
+    private Conn(){};
+
+    //静态代码块,在类加载进内存时就完成对对象的特殊的初始化(这个动作发生在类的构造器执行之前,也就是在没有对象存在的情况下,静态代码就已经完成了对对象的特殊的处理 ),此处的作用是,当jdbc的驱动器加载时,就自动创建一个自己。
+    static{
+        try {
+            //注册驱动
+            Class.forName("oracle.jdbc.driver.OracleDriver");
+        } catch (ClassNotFoundException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    //判断GetConn实例化的对象是否存在  不存在就实例化一个
+    //synchronized  线程锁  防止多个线程抢占资源   防止死锁
+    public static Conn getGc(){
+        if(gc==null){
+            synchronized (Conn.class) {
+                if(gc==null){
+                    gc=new Conn();
+                }
+            }
+        }
+        return gc;
+    }
+
+    //返回一个Connection连接
+    public Connection getCon() throws SQLException{
+        return DriverManager.getConnection(url, user, pwd);
+    }
+    //释放资源
+    public void closeAll(ResultSet rs, Statement st, Connection con){
+        if(rs!=null){
+            try {
+                rs.close();
+            } catch (SQLException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }finally{
+                if(st!=null){
+                    try {
+                        st.close();
+                    } catch (SQLException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    }finally{
+                        if(con!=null){
+                            try {
+                                con.close();
+                            } catch (SQLException e) {
+                                // TODO Auto-generated catch block
+                                e.printStackTrace();
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        if(st!=null){
+            try {
+                st.close();
+            } catch (SQLException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }finally{
+                if(con!=null){
+                    try {
+                        con.close();
+                    } catch (SQLException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/ard/utils/jdbc/Query.java b/src/main/java/com/ard/utils/jdbc/Query.java
new file mode 100644
index 0000000..9134a2f
--- /dev/null
+++ b/src/main/java/com/ard/utils/jdbc/Query.java
@@ -0,0 +1,72 @@
+package com.ard.utils.jdbc;
+
+/**
+ * @Description:
+ * @ClassName: Query
+ * @Author: 刘苏义
+ * @Date: 2023年09月19日13:01:28
+ **/
+
+import com.ard.alarm.digitization.model.DataBridge;
+import lombok.extern.slf4j.Slf4j;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Slf4j(topic = "digitization3")
+public class Query {
+    static Connection conn = null;
+    static Statement st = null;
+    static ResultSet rs = null;
+
+    public static List<DataBridge> getAlarmData(Date alarmTime, Integer rowNum) {
+        List<DataBridge> dataBridgeList = new ArrayList<>();
+        try {
+            //1、获取连接对象
+            conn = Conn.getGc().getCon();
+            //2、创建statement类对象,用来执行SQL语句
+            st = conn.createStatement();
+            //3、创建sql查询语句
+            StringBuilder sbd = new StringBuilder();
+            String sql = "select * from (select * from DATABRIDGE  order by DB_DATETIME desc ) where 1=1 ";
+            sbd.append(sql);
+            if (rowNum != null) {
+                sbd.append(" and rownum <" + rowNum);
+            }
+            if (alarmTime != null) {
+                SimpleDateFormat fmt = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+                String Time = fmt.format(alarmTime);
+                sbd.append(" and DB_DATETIME > to_date('" + Time + "','yyyy/mm/dd hh24:mi:ss')");
+            }
+            //4、执行sql语句并且换回一个查询的结果集
+            rs = st.executeQuery(sbd.toString());
+            while (rs.next()) {  //循环遍历结果集
+                DataBridge dataBridge = new DataBridge();
+                dataBridge.setId(rs.getString("DB_GUID"));
+                dataBridge.setXmmc(rs.getString("DB_XMMC"));
+                dataBridge.setFKey(rs.getString("DB_FKEY"));
+                dataBridge.setFName(rs.getString("DB_FNAME"));
+                dataBridge.setValue(rs.getString("DB_VALUE"));
+                dataBridge.setDateTime(rs.getTimestamp("DB_DATETIME"));
+                dataBridgeList.add(dataBridge);
+            }
+            return dataBridgeList;
+        } catch (Exception e) {
+            log.error("三厂数字化报警查询异常:" + e.getMessage());
+            return dataBridgeList;
+        } finally {
+            try {
+                conn.close();
+            } catch (SQLException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+}
+
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index a77be36..ed3593e 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -9,90 +9,26 @@
       max-file-size: 30MB
       max-request-size: 30MB
   datasource:
-    dynamic:
-      primary: postgres #设置默认的数据源或者数据源组
-      strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
-      druid: # 全局druid参数,单独数据源配置为空时取全局配置
-        # 连接池的配置信息
-        # 初始化大小,最小,最大
-        initial-size: 1
-        min-idle: 2
-        maxActive: 8
-        # 配置获取连接等待超时的时间
-        maxWait: 60000
-        # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-        timeBetweenEvictionRunsMillis: 60000
-        # 配置一个连接在池中最小生存的时间,单位是毫秒
-        minEvictableIdleTimeMillis: 300000
-        validationQuery: SELECT 1 FROM DUAL
-        testWhileIdle: true
-        testOnBorrow: false
-        testOnReturn: false
-        # 打开PSCache,并且指定每个连接上PSCache的大小
-        poolPreparedStatements: true
-        maxPoolPreparedStatementPerConnectionSize: 20
-        # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
-        filters: stat,wall,slf4j
-        # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
-        connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
-      datasource:
-        master:
-          url: jdbc:postgresql://192.168.2.15:5432/ry-vue
-          username: postgres
-          password: postgres
-          driver-class-name: org.postgresql.Driver
-          druid: # 配置multi-datasource1 数据源连接池参数
-            # 连接池的配置信息
-            # 初始化大小,最小,最大
-            initial-size: 2
-            min-idle: 2
-            maxActive: 2
-            # 配置获取连接等待超时的时间
-            maxWait: 600000
-            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-            timeBetweenEvictionRunsMillis: 60000
-            # 配置一个连接在池中最小生存的时间,单位是毫秒
-            minEvictableIdleTimeMillis: 300000
-            validationQuery: SELECT 1
-            testWhileIdle: true
-            testOnBorrow: false
-            testOnReturn: false
-            # 打开PSCache,并且指定每个连接上PSCache的大小
-            poolPreparedStatements: true
-            maxPoolPreparedStatementPerConnectionSize: 20
-            # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
-            filters: stat,wall,slf4j
-            # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
-            connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
-        oracle:
-          url: jdbc:oracle:thin:@//112.98.126.2:21521/orcl
-          username: c##ard_user
-          password: 123456
-          driver-class-name: oracle.jdbc.driver.OracleDriver
-          druid: #配置mysql 默认连接池参数
-            # 连接池的配置信息
-            # 初始化大小,最小,最大
-            initial-size: 3
-            min-idle: 3
-            maxActive: 8
-            # 配置获取连接等待超时的时间
-            maxWait: 600000
-            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-            timeBetweenEvictionRunsMillis: 60000
-            # 配置一个连接在池中最小生存的时间,单位是毫秒
-            minEvictableIdleTimeMillis: 300000
-            validationQuery: SELECT 1 FROM DUAL
-            testWhileIdle: true
-            testOnBorrow: false
-            testOnReturn: false
-            # 打开PSCache,并且指定每个连接上PSCache的大小
-            poolPreparedStatements: true
-            maxPoolPreparedStatementPerConnectionSize: 20
-            # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
-            filters: stat,wall,slf4j
-            # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
-            connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
-
+    druid:
+      #开启druid监控web
+      stat-view-servlet:
+        enabled: true
+      driver-class-name: org.postgresql.Driver
+      url: jdbc:postgresql://192.168.2.15:5432/ry-vue
+      username: postgres
+      password: postgres
+      #最大连接数
+      maxActive: 30
+      #最小连接数
+      minIdle: 5
+      #获取连接的最大等待时间
+      maxWait: 10000
+      #解决mysql8小时的问题
+      validation-query: SELECT 'X'
+      #空闲连接的检查时间间隔
+      timeBetweenEvictionRunsMillis: 60000
+      #空闲连接最小空闲时间
+      minEvictableIdleTimeMillis: 300000
   # netty配置
   netty:
     udp:
@@ -112,7 +48,11 @@
     enabled: true
   # 盗电接口地址
   stealelec:
+    enabled: false
     url: http://iot.zhdk.net:8090/Warning/GetWarning?userName=cy4oil
+  # 三厂数字化地址
+  digitization3:
+    enabled: true
   # minio配置
   minio:
     endpoint: http://192.168.2.15:9001
@@ -126,8 +66,10 @@
 logging:
   level:
     hikSdk: info
-    mqtt: debug
-    netty: debug
+    mqtt: info
+    netty: info
     external: info
     camera: info
     tube: info
+    digitization3: debug
+    stealAlarm: info
\ No newline at end of file
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index c74b5f0..0a5e94c 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -49,8 +49,13 @@
     timeout: 100
     keepalive: 60
     enabled: true
+  # 盗电接口地址
   stealelec:
+    enabled: false
     url: http://iot.zhdk.net:8090/Warning/GetWarning?userName=cy4oil
+  # 三厂数字化地址
+  digitization3:
+    enabled: false
 mybatis:
   typeAliasesPackage: com.ard.alarm.**.domain
   mapperLocations: classpath:/mapper/*.xml
@@ -60,7 +65,7 @@
 logging:
   level:
     hikSdk: debug
-    mqtt: info
+    mqtt: debug
     netty: info
     external: info
     camera: info
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
index 1278df6..1df85d7 100644
--- a/src/main/resources/logback-spring.xml
+++ b/src/main/resources/logback-spring.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <!--日志存放路径-->
-    <property name="log.path" value="./alarmLogs"/>
+    <property name="log.path" value="./logs"/>
     <!--日志输出格式-->
     <property name="log.pattern" value="%d{HH:mm:ss.SSS}[%thread]%-5level%logger{20}-[%method,%line]-%msg%n"/>
     <!--控制台输出-->
@@ -45,14 +45,6 @@
         <encoder>
             <pattern>${log.pattern}</pattern>
         </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!--过滤的级别-->
-            <level>INFO</level>
-            <!--匹配时的操作:接收(记录)-->
-            <onMatch>ACCEPT</onMatch>
-            <!--不匹配时的操作:拒绝(不记录)-->
-            <onMismatch>DENY</onMismatch>
-        </filter>
     </appender>
     <!--通用光电报警日志输出-->
     <appender name="camera" class="ch.qos.logback.core.rolling.RollingFileAppender">
@@ -67,14 +59,6 @@
         <encoder>
             <pattern>${log.pattern}</pattern>
         </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!--过滤的级别-->
-            <level>INFO</level>
-            <!--匹配时的操作:接收(记录)-->
-            <onMatch>ACCEPT</onMatch>
-            <!--不匹配时的操作:拒绝(不记录)-->
-            <onMismatch>DENY</onMismatch>
-        </filter>
     </appender>
     <!--外联设备报警日志输出-->
     <appender name="external" class="ch.qos.logback.core.rolling.RollingFileAppender">
@@ -89,14 +73,6 @@
         <encoder>
             <pattern>${log.pattern}</pattern>
         </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!--过滤的级别-->
-            <level>INFO</level>
-            <!--匹配时的操作:接收(记录)-->
-            <onMatch>ACCEPT</onMatch>
-            <!--不匹配时的操作:拒绝(不记录)-->
-            <onMismatch>DENY</onMismatch>
-        </filter>
     </appender>
     <!--Netty日志输出-->
     <appender name="netty" class="ch.qos.logback.core.rolling.RollingFileAppender">
@@ -111,16 +87,8 @@
         <encoder>
             <pattern>${log.pattern}</pattern>
         </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!--过滤的级别-->
-            <level>INFO</level>
-            <!--匹配时的操作:接收(记录)-->
-            <onMatch>ACCEPT</onMatch>
-            <!--不匹配时的操作:拒绝(不记录)-->
-            <onMismatch>DENY</onMismatch>
-        </filter>
     </appender>
-    <!--Mqtt日志输出-->
+    <!--mqtt日志输出-->
     <appender name="mqtt" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <file>${log.path}/mqtt.log</file>
         <!--循环政策:基于时间创建日志文件-->
@@ -133,14 +101,6 @@
         <encoder>
             <pattern>${log.pattern}</pattern>
         </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!--过滤的级别-->
-            <level>INFO</level>
-            <!--匹配时的操作:接收(记录)-->
-            <onMatch>ACCEPT</onMatch>
-            <!--不匹配时的操作:拒绝(不记录)-->
-            <onMismatch>DENY</onMismatch>
-        </filter>
     </appender>
     <!--hikSdk日志输出-->
     <appender name="hikSdk" class="ch.qos.logback.core.rolling.RollingFileAppender">
@@ -155,6 +115,33 @@
             <pattern>${log.pattern}</pattern>
         </encoder>
     </appender>
+    <!--stealAlarm日志输出-->
+    <appender name="stealAlarm" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/stealAlarm.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--按天回滚daily-->
+            <fileNamePattern>${log.path}/stealAlarm.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!--日志最大的历史60天-->
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
+    <!--digitization3日志输出-->
+    <appender name="digitization3" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/digitization3.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--按天回滚daily-->
+            <fileNamePattern>${log.path}/digitization3.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!--日志最大的历史60天-->
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
+
     <root level="DEBUG">
         <appender-ref ref="console"/>
     </root>
@@ -162,5 +149,39 @@
     <root level="INFO">
         <appender-ref ref="sys-info"/>
     </root>
+
+    <!--tube操作日志-->
+    <logger name="tube" level="INFO">
+        <appender-ref ref="tube"/>
+    </logger>
+    <!--camera操作日志-->
+    <logger name="camera" level="INFO">
+        <appender-ref ref="camera"/>
+    </logger>
+    <!--external操作日志-->
+    <logger name="external" level="INFO">
+        <appender-ref ref="external"/>
+    </logger>
+    <!--netty操作日志-->
+    <logger name="netty" level="INFO">
+        <appender-ref ref="netty"/>
+    </logger>
+    <!--mqtt操作日志-->
+    <logger name="mqtt" level="DEBUG">
+        <appender-ref ref="mqtt"/>
+    </logger>
+    <!--hikSdk操作日志-->
+    <logger name="hikSdk" level="INFO">
+        <appender-ref ref="hikSdk"/>
+    </logger>
+    <!--digitization3操作日志-->
+    <logger name="digitization3" level="INFO">
+        <appender-ref ref="digitization3"/>
+    </logger>
+    <!--stealAlarm操作日志-->
+    <logger name="stealAlarm" level="INFO">
+        <appender-ref ref="stealAlarm"/>
+    </logger>
+
 </configuration>
 

--
Gitblit v1.9.3