Jelajahi Sumber

江津版本切换 , 数据采集优化

1037015548@qq.com 5 hari lalu
induk
melakukan
6d9f27ce20

+ 2 - 2
dc3-gateway/src/main/java/io/github/pnoker/gateway/bizmgr/KprJiangjinWaterBizfun.java

@@ -295,7 +295,6 @@ public class KprJiangjinWaterBizfun {
     //TODO 历史数据,根据调用传递的开始时间作为历史数据接入的起始时间
     //TODO 历史数据,根据调用传递的开始时间作为历史数据接入的起始时间
     public static void initHistoryDb(LocalDateTime startDateTime){
     public static void initHistoryDb(LocalDateTime startDateTime){
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        System.out.println("历史数据执行:"+startDateTime.format(formatter));
         if(startDateTime==null){
         if(startDateTime==null){
             return;
             return;
         }
         }
@@ -308,6 +307,7 @@ public class KprJiangjinWaterBizfun {
             while(currentDateTime.isBefore(todayMidnight)) {
             while(currentDateTime.isBefore(todayMidnight)) {
                 String startStr = currentDateTime.format(formatter);
                 String startStr = currentDateTime.format(formatter);
                 String endStr = currentDateTime.plusHours(3).format(formatter);
                 String endStr = currentDateTime.plusHours(3).format(formatter);
+                log.info("历史数据执行:"+startStr+"~~~"+endStr);
                 String extend = " QCQUISITION_TIME >= TO_DATE('" + startStr + "', 'YYYY-MM-DD HH24:MI:SS') " +
                 String extend = " QCQUISITION_TIME >= TO_DATE('" + startStr + "', 'YYYY-MM-DD HH24:MI:SS') " +
                         " AND QCQUISITION_TIME <= TO_DATE('" + endStr + "', 'YYYY-MM-DD HH24:MI:SS')";
                         " AND QCQUISITION_TIME <= TO_DATE('" + endStr + "', 'YYYY-MM-DD HH24:MI:SS')";
 //                String extend = " QCQUISITION_TIME >= TO_DATE('" + startStr + "', 'YYYY-MM-DD HH24:MI:SS') " +
 //                String extend = " QCQUISITION_TIME >= TO_DATE('" + startStr + "', 'YYYY-MM-DD HH24:MI:SS') " +
@@ -356,7 +356,7 @@ public class KprJiangjinWaterBizfun {
                                     +"initHistoryDbNullError");
                                     +"initHistoryDbNullError");
                         }
                         }
                     }
                     }
-                    System.out.println(startStr+"到"+endStr+"数据整理完成:"+count);
+                   log.info(startStr+"到"+endStr+"数据整理完成:"+count);
                 }
                 }
                 currentDateTime = currentDateTime.plusHours(3); // 增加 3 小时
                 currentDateTime = currentDateTime.plusHours(3); // 增加 3 小时
             }
             }

+ 40 - 40
dc3-gateway/src/main/java/io/github/pnoker/gateway/comtool/ScheduleTaskMgr.java

@@ -221,7 +221,7 @@ public class ScheduleTaskMgr {
 
 
     //TODO 江津相关
     //TODO 江津相关
 
 
-    /*@Resource(name = "infulxJiangjinDbUtil")
+    @Resource(name = "infulxJiangjinDbUtil")
     private InfulxJiangjinDbUtil infulxJiangjinDbUtil;
     private InfulxJiangjinDbUtil infulxJiangjinDbUtil;
 
 
     //TODO 启动后5秒初始化所有配置参数
     //TODO 启动后5秒初始化所有配置参数
@@ -258,7 +258,7 @@ public class ScheduleTaskMgr {
             @Override
             @Override
             public void run() {
             public void run() {
                 try {
                 try {
-                    KprJiangjinWaterBizfun.initHistoryDb(LocalDate.now().withDayOfMonth(1).atStartOfDay());
+                    KprJiangjinWaterBizfun.initHistoryDb(LocalDateTime.now().minusDays(33));
 //                    KprJiangjinWaterBizfun.initHistoryDb(LocalDateTime.now().withDayOfMonth(10).withHour(12)
 //                    KprJiangjinWaterBizfun.initHistoryDb(LocalDateTime.now().withDayOfMonth(10).withHour(12)
 //                    .withMinute(0).withSecond(0));
 //                    .withMinute(0).withSecond(0));
                 }catch(Exception ex){
                 }catch(Exception ex){
@@ -281,7 +281,7 @@ public class ScheduleTaskMgr {
         KprJiangjinWaterBizfun.initHistoryDb(LocalDate.now().minusDays(1).atStartOfDay());
         KprJiangjinWaterBizfun.initHistoryDb(LocalDate.now().minusDays(1).atStartOfDay());
     }
     }
 
 
-    //TODO 江津水量预测相关
+    /*//TODO 江津水量预测相关
     //每天每个整点的5分
     //每天每个整点的5分
     @Scheduled(cron = "0 5 * * * *")
     @Scheduled(cron = "0 5 * * * *")
     public void executeRecord() {
     public void executeRecord() {
@@ -511,42 +511,42 @@ public class ScheduleTaskMgr {
     /**
     /**
      * TODO 汤阴业务相关
      * TODO 汤阴业务相关
      */
      */
-    @Resource(name = "infulxTyDbUtil")
-    private InfulxTyDbUtil infulxTyDbUtil;
-
-    //TODO 启动后5秒初始化所有配置参数
-    @PostConstruct
-    public void initTangyinApplication(){
-        new Timer().schedule(new TimerTask() {
-            @Override
-            public void run() {
-                try {
-                    infulxTyDbUtil.initInfluxDataBase();
-                    KprTangyinWaterBizFun.infulxTyDbUtil = infulxTyDbUtil;
-                }catch(Exception ex){
-                    log.error("汤阴启动时初始化配置参数失败:"+ex.getLocalizedMessage());
-                }
-            }
-        },5000);
-    }
-    @PostConstruct
-    public void oneYearInit(){
-        new Timer().schedule(new TimerTask() {
-            @Override
-            public void run() {
-                KprTangyinWaterBizFun.selectOneYear();
-            }
-        },7000);
-    }
-    //TODO 任务逻辑 每五分钟往前同步一个小时数据,取LocalDateTime的UTC时间
-    @Scheduled(cron = "0 */5 * * * ?")
-    public void performTask() {
-        LocalDateTime startTime = LocalDateTime.now().minusHours(1).atZone(ZoneId.systemDefault()).withZoneSameInstant(ZoneId.of("UTC")).toLocalDateTime();
-        long startLong = KprTangyinWaterBizFun.formaterUTCnano(startTime);
-        long endLong = KprTangyinWaterBizFun.formaterUTCnano(startTime.minusHours(-1));
-        String queryInfluxdbSql = "SELECT time,dev_id,press_cur FROM WaterMeter WHERE " +
-                " time >= " + startLong + " and time<=" + endLong + " ORDER BY time desc tz('Asia/Shanghai')";
-        KprTangyinWaterBizFun.selectPressCollecation(queryInfluxdbSql);
-    }
+//    @Resource(name = "infulxTyDbUtil")
+//    private InfulxTyDbUtil infulxTyDbUtil;
+//
+//    //TODO 启动后5秒初始化所有配置参数
+//    @PostConstruct
+//    public void initTangyinApplication(){
+//        new Timer().schedule(new TimerTask() {
+//            @Override
+//            public void run() {
+//                try {
+//                    infulxTyDbUtil.initInfluxDataBase();
+//                    KprTangyinWaterBizFun.infulxTyDbUtil = infulxTyDbUtil;
+//                }catch(Exception ex){
+//                    log.error("汤阴启动时初始化配置参数失败:"+ex.getLocalizedMessage());
+//                }
+//            }
+//        },5000);
+//    }
+//    @PostConstruct
+//    public void oneYearInit(){
+//        new Timer().schedule(new TimerTask() {
+//            @Override
+//            public void run() {
+//                KprTangyinWaterBizFun.selectOneYear();
+//            }
+//        },7000);
+//    }
+//    //TODO 任务逻辑 每五分钟往前同步一个小时数据,取LocalDateTime的UTC时间
+//    @Scheduled(cron = "0 */5 * * * ?")
+//    public void performTask() {
+//        LocalDateTime startTime = LocalDateTime.now().minusHours(1).atZone(ZoneId.systemDefault()).withZoneSameInstant(ZoneId.of("UTC")).toLocalDateTime();
+//        long startLong = KprTangyinWaterBizFun.formaterUTCnano(startTime);
+//        long endLong = KprTangyinWaterBizFun.formaterUTCnano(startTime.minusHours(-1));
+//        String queryInfluxdbSql = "SELECT time,dev_id,press_cur FROM WaterMeter WHERE " +
+//                " time >= " + startLong + " and time<=" + endLong + " ORDER BY time desc tz('Asia/Shanghai')";
+//        KprTangyinWaterBizFun.selectPressCollecation(queryInfluxdbSql);
+//    }
 
 
 }
 }

+ 112 - 112
dc3-gateway/src/main/java/io/github/pnoker/gateway/config/Child2SourceConfiguration.java

@@ -1,113 +1,113 @@
-//package io.github.pnoker.gateway.config;
-//
-//import com.zaxxer.hikari.HikariConfig;
-//import com.zaxxer.hikari.HikariDataSource;
-//import io.github.pnoker.gateway.dbdao.DBMgrProxy;
-//import org.apache.ibatis.session.SqlSessionFactory;
-//import org.mybatis.spring.SqlSessionFactoryBean;
-//import org.mybatis.spring.SqlSessionTemplate;
-//import org.mybatis.spring.annotation.MapperScan;
-//import org.springframework.beans.factory.annotation.Qualifier;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-//
-//import javax.annotation.PostConstruct;
-//import javax.sql.DataSource;
-//
-//@Configuration
-//@MapperScan(basePackages = "io.github.pnoker.gateway.dbdao.mapper", sqlSessionTemplateRef = "child2SqlSessionTemplate")
-//public class Child2SourceConfiguration {
-//    @Value("${spring.datasource.child2pg.driver-class-name:}")
-//    private String driveClass = "org.postgresql.Driver";
-//
-//    @Value("${spring.datasource.child2pg.jdbc-url:}")
-//    private String url = "";
-//
-//    @Value("${spring.datasource.child2pg.username:}")
-//    private String username = "";
-//
-//    @Value("${spring.datasource.child2pg.password:}")
-//    private String password = "";
-//
-//    @Value("${spring.datasource.data.maximum-pool-size:200}")
-//    private Integer maxPoolSize;
-//
-//    @Value("${spring.datasource.data.minimum-idle:1}")
-//    private Integer minIdle;
-//
-//    @Value("${spring.datasource.data.connection-test-query:}")
-//    private String connectionTestQuery;
-//
-//    @Value("${spring.datasource.data.max-lifetime:120000}")
-//    private Long maxLifetime;
-//
-//    @Value("${spring.datasource.data.idle-timeout:30000}")
-//    private Long idleTimeout;
-//
-//    @Value("${spring.datasource.data.connection-timeout:30000}")
-//    private Long connectionTimeout;
-//
-//    @Value("${spring.datasource.data.validation-timeout:30000}")
-//    private Long validTimeout;
-//
-//    @Bean(name = "child2Datasource")
-//    //@ConfigurationProperties(prefix = "spring.datasource.data")
-//    public DataSource mainDataSource() {
-//        return new HikariDataSource(getConfig());
-//        //return DataSourceBuilder.create().build();
-//        //Spring Boot 2.x默认使用HikariCP
+package io.github.pnoker.gateway.config;
+
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+import io.github.pnoker.gateway.dbdao.DBMgrProxy;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.annotation.PostConstruct;
+import javax.sql.DataSource;
+
+@Configuration
+@MapperScan(basePackages = "io.github.pnoker.gateway.dbdao.mapper", sqlSessionTemplateRef = "child2SqlSessionTemplate")
+public class Child2SourceConfiguration {
+    @Value("${spring.datasource.child2pg.driver-class-name:}")
+    private String driveClass = "org.postgresql.Driver";
+
+    @Value("${spring.datasource.child2pg.jdbc-url:}")
+    private String url = "";
+
+    @Value("${spring.datasource.child2pg.username:}")
+    private String username = "";
+
+    @Value("${spring.datasource.child2pg.password:}")
+    private String password = "";
+
+    @Value("${spring.datasource.data.maximum-pool-size:200}")
+    private Integer maxPoolSize;
+
+    @Value("${spring.datasource.data.minimum-idle:1}")
+    private Integer minIdle;
+
+    @Value("${spring.datasource.data.connection-test-query:}")
+    private String connectionTestQuery;
+
+    @Value("${spring.datasource.data.max-lifetime:120000}")
+    private Long maxLifetime;
+
+    @Value("${spring.datasource.data.idle-timeout:30000}")
+    private Long idleTimeout;
+
+    @Value("${spring.datasource.data.connection-timeout:30000}")
+    private Long connectionTimeout;
+
+    @Value("${spring.datasource.data.validation-timeout:30000}")
+    private Long validTimeout;
+
+    @Bean(name = "child2Datasource")
+    //@ConfigurationProperties(prefix = "spring.datasource.data")
+    public DataSource mainDataSource() {
+        return new HikariDataSource(getConfig());
+        //return DataSourceBuilder.create().build();
+        //Spring Boot 2.x默认使用HikariCP
+    }
+
+    private HikariConfig getConfig() {
+        HikariConfig hikariConfig = new HikariConfig();
+        hikariConfig.setDriverClassName(driveClass);
+        hikariConfig.setJdbcUrl(url);
+        hikariConfig.setUsername(username);
+        hikariConfig.setPassword(password);
+
+        hikariConfig.setMaximumPoolSize(maxPoolSize);
+        hikariConfig.setMinimumIdle(minIdle);
+        hikariConfig.setConnectionTestQuery(connectionTestQuery);
+        hikariConfig.setMaxLifetime(maxLifetime);
+        hikariConfig.setIdleTimeout(idleTimeout);
+        hikariConfig.setConnectionTimeout(connectionTimeout);
+        hikariConfig.setValidationTimeout(validTimeout);
+        return hikariConfig;
+    }
+
+    @Bean("child2SqlSessionFactory")
+    public SqlSessionFactory child2SqlSessionFactoryBean(@Qualifier("child2Datasource") DataSource dataSource) throws Exception {
+        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
+        sessionFactoryBean.setDataSource(dataSource);
+
+        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
+        configuration.setCallSettersOnNulls(true);       //数据库中字段值为null时也要求返回
+        configuration.setMapUnderscoreToCamelCase(true); //开启驼峰映射
+        configuration.setCacheEnabled(false);
+        sessionFactoryBean.setConfiguration(configuration);
+        return sessionFactoryBean.getObject();
+    }
+
+    @Bean("child2SqlSessionTemplate")
+    public SqlSessionTemplate child2SqlSessionTemplate(@Qualifier("child2SqlSessionFactory") SqlSessionFactory sessionFactory) {
+        return new SqlSessionTemplate(sessionFactory);
+    }
+
+    @Bean(name = "child2DbTransactionManager")
+    public DataSourceTransactionManager child2DbTransactionManager(@Qualifier("child2Datasource") DataSource dataSource){
+        return new DataSourceTransactionManager(dataSource);
+    }
+
+    @PostConstruct
+    public void init(){
+        GlobalData.getInstance().setPostGisValid("org.postgis.DriverWrapper".equals(driveClass));
+    }
+//    @Bean
+//    public DBMgrProxy startDBMgrProxy(){
+//        DBMgrProxy.getInstance().init();
+//        return DBMgrProxy.getInstance();
 //    }
 //    }
-//
-//    private HikariConfig getConfig() {
-//        HikariConfig hikariConfig = new HikariConfig();
-//        hikariConfig.setDriverClassName(driveClass);
-//        hikariConfig.setJdbcUrl(url);
-//        hikariConfig.setUsername(username);
-//        hikariConfig.setPassword(password);
-//
-//        hikariConfig.setMaximumPoolSize(maxPoolSize);
-//        hikariConfig.setMinimumIdle(minIdle);
-//        hikariConfig.setConnectionTestQuery(connectionTestQuery);
-//        hikariConfig.setMaxLifetime(maxLifetime);
-//        hikariConfig.setIdleTimeout(idleTimeout);
-//        hikariConfig.setConnectionTimeout(connectionTimeout);
-//        hikariConfig.setValidationTimeout(validTimeout);
-//        return hikariConfig;
-//    }
-//
-//    @Bean("child2SqlSessionFactory")
-//    public SqlSessionFactory child2SqlSessionFactoryBean(@Qualifier("child2Datasource") DataSource dataSource) throws Exception {
-//        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
-//        sessionFactoryBean.setDataSource(dataSource);
-//
-//        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
-//        configuration.setCallSettersOnNulls(true);       //数据库中字段值为null时也要求返回
-//        configuration.setMapUnderscoreToCamelCase(true); //开启驼峰映射
-//        configuration.setCacheEnabled(false);
-//        sessionFactoryBean.setConfiguration(configuration);
-//        return sessionFactoryBean.getObject();
-//    }
-//
-//    @Bean("child2SqlSessionTemplate")
-//    public SqlSessionTemplate child2SqlSessionTemplate(@Qualifier("child2SqlSessionFactory") SqlSessionFactory sessionFactory) {
-//        return new SqlSessionTemplate(sessionFactory);
-//    }
-//
-//    @Bean(name = "child2DbTransactionManager")
-//    public DataSourceTransactionManager child2DbTransactionManager(@Qualifier("child2Datasource") DataSource dataSource){
-//        return new DataSourceTransactionManager(dataSource);
-//    }
-//
-//    @PostConstruct
-//    public void init(){
-//        GlobalData.getInstance().setPostGisValid("org.postgis.DriverWrapper".equals(driveClass));
-//    }
-////    @Bean
-////    public DBMgrProxy startDBMgrProxy(){
-////        DBMgrProxy.getInstance().init();
-////        return DBMgrProxy.getInstance();
-////    }
-//}
+}

+ 112 - 112
dc3-gateway/src/main/java/io/github/pnoker/gateway/config/Child3SourceConfiguration.java

@@ -1,113 +1,113 @@
-//package io.github.pnoker.gateway.config;
-//
-//import com.zaxxer.hikari.HikariConfig;
-//import com.zaxxer.hikari.HikariDataSource;
-//import io.github.pnoker.gateway.dbdao.DBMgrProxy;
-//import org.apache.ibatis.session.SqlSessionFactory;
-//import org.mybatis.spring.SqlSessionFactoryBean;
-//import org.mybatis.spring.SqlSessionTemplate;
-//import org.mybatis.spring.annotation.MapperScan;
-//import org.springframework.beans.factory.annotation.Qualifier;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-//
-//import javax.annotation.PostConstruct;
-//import javax.sql.DataSource;
-//
-//@Configuration
-//@MapperScan(basePackages = "io.github.pnoker.gateway.dbdao.mapper", sqlSessionTemplateRef = "child3SqlSessionTemplate")
-//public class Child3SourceConfiguration {
-//    @Value("${spring.datasource.child3pg.driver-class-name:}")
-//    private String driveClass = "org.postgresql.Driver";
-//
-//    @Value("${spring.datasource.child3pg.jdbc-url:}")
-//    private String url = "";
-//
-//    @Value("${spring.datasource.child3pg.username:}")
-//    private String username = "";
-//
-//    @Value("${spring.datasource.child3pg.password:}")
-//    private String password = "";
-//
-//    @Value("${spring.datasource.data.maximum-pool-size:200}")
-//    private Integer maxPoolSize;
-//
-//    @Value("${spring.datasource.data.minimum-idle:1}")
-//    private Integer minIdle;
-//
-//    @Value("${spring.datasource.data.connection-test-query:}")
-//    private String connectionTestQuery;
-//
-//    @Value("${spring.datasource.data.max-lifetime:120000}")
-//    private Long maxLifetime;
-//
-//    @Value("${spring.datasource.data.idle-timeout:30000}")
-//    private Long idleTimeout;
-//
-//    @Value("${spring.datasource.data.connection-timeout:30000}")
-//    private Long connectionTimeout;
-//
-//    @Value("${spring.datasource.data.validation-timeout:30000}")
-//    private Long validTimeout;
-//
-//    @Bean(name = "child3Datasource")
-//    //@ConfigurationProperties(prefix = "spring.datasource.data")
-//    public DataSource mainDataSource() {
-//        return new HikariDataSource(getConfig());
-//        //return DataSourceBuilder.create().build();
-//        //Spring Boot 2.x默认使用HikariCP
+package io.github.pnoker.gateway.config;
+
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+import io.github.pnoker.gateway.dbdao.DBMgrProxy;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.annotation.PostConstruct;
+import javax.sql.DataSource;
+
+@Configuration
+@MapperScan(basePackages = "io.github.pnoker.gateway.dbdao.mapper", sqlSessionTemplateRef = "child3SqlSessionTemplate")
+public class Child3SourceConfiguration {
+    @Value("${spring.datasource.child3pg.driver-class-name:}")
+    private String driveClass = "org.postgresql.Driver";
+
+    @Value("${spring.datasource.child3pg.jdbc-url:}")
+    private String url = "";
+
+    @Value("${spring.datasource.child3pg.username:}")
+    private String username = "";
+
+    @Value("${spring.datasource.child3pg.password:}")
+    private String password = "";
+
+    @Value("${spring.datasource.data.maximum-pool-size:200}")
+    private Integer maxPoolSize;
+
+    @Value("${spring.datasource.data.minimum-idle:1}")
+    private Integer minIdle;
+
+    @Value("${spring.datasource.data.connection-test-query:}")
+    private String connectionTestQuery;
+
+    @Value("${spring.datasource.data.max-lifetime:120000}")
+    private Long maxLifetime;
+
+    @Value("${spring.datasource.data.idle-timeout:30000}")
+    private Long idleTimeout;
+
+    @Value("${spring.datasource.data.connection-timeout:30000}")
+    private Long connectionTimeout;
+
+    @Value("${spring.datasource.data.validation-timeout:30000}")
+    private Long validTimeout;
+
+    @Bean(name = "child3Datasource")
+    //@ConfigurationProperties(prefix = "spring.datasource.data")
+    public DataSource mainDataSource() {
+        return new HikariDataSource(getConfig());
+        //return DataSourceBuilder.create().build();
+        //Spring Boot 2.x默认使用HikariCP
+    }
+
+    private HikariConfig getConfig() {
+        HikariConfig hikariConfig = new HikariConfig();
+        hikariConfig.setDriverClassName(driveClass);
+        hikariConfig.setJdbcUrl(url);
+        hikariConfig.setUsername(username);
+        hikariConfig.setPassword(password);
+
+        hikariConfig.setMaximumPoolSize(maxPoolSize);
+        hikariConfig.setMinimumIdle(minIdle);
+        hikariConfig.setConnectionTestQuery(connectionTestQuery);
+        hikariConfig.setMaxLifetime(maxLifetime);
+        hikariConfig.setIdleTimeout(idleTimeout);
+        hikariConfig.setConnectionTimeout(connectionTimeout);
+        hikariConfig.setValidationTimeout(validTimeout);
+        return hikariConfig;
+    }
+
+    @Bean("child3SqlSessionFactory")
+    public SqlSessionFactory child3SqlSessionFactoryBean(@Qualifier("child3Datasource") DataSource dataSource) throws Exception {
+        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
+        sessionFactoryBean.setDataSource(dataSource);
+
+        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
+        configuration.setCallSettersOnNulls(true);       //数据库中字段值为null时也要求返回
+        configuration.setMapUnderscoreToCamelCase(true); //开启驼峰映射
+        configuration.setCacheEnabled(false);
+        sessionFactoryBean.setConfiguration(configuration);
+        return sessionFactoryBean.getObject();
+    }
+
+    @Bean("child3SqlSessionTemplate")
+    public SqlSessionTemplate child3SqlSessionTemplate(@Qualifier("child3SqlSessionFactory") SqlSessionFactory sessionFactory) {
+        return new SqlSessionTemplate(sessionFactory);
+    }
+
+    @Bean(name = "child3DbTransactionManager")
+    public DataSourceTransactionManager child3DbTransactionManager(@Qualifier("child3Datasource") DataSource dataSource){
+        return new DataSourceTransactionManager(dataSource);
+    }
+
+    @PostConstruct
+    public void init(){
+        GlobalData.getInstance().setPostGisValid("org.postgis.DriverWrapper".equals(driveClass));
+    }
+//    @Bean
+//    public DBMgrProxy startDBMgrProxy(){
+//        DBMgrProxy.getInstance().init();
+//        return DBMgrProxy.getInstance();
 //    }
 //    }
-//
-//    private HikariConfig getConfig() {
-//        HikariConfig hikariConfig = new HikariConfig();
-//        hikariConfig.setDriverClassName(driveClass);
-//        hikariConfig.setJdbcUrl(url);
-//        hikariConfig.setUsername(username);
-//        hikariConfig.setPassword(password);
-//
-//        hikariConfig.setMaximumPoolSize(maxPoolSize);
-//        hikariConfig.setMinimumIdle(minIdle);
-//        hikariConfig.setConnectionTestQuery(connectionTestQuery);
-//        hikariConfig.setMaxLifetime(maxLifetime);
-//        hikariConfig.setIdleTimeout(idleTimeout);
-//        hikariConfig.setConnectionTimeout(connectionTimeout);
-//        hikariConfig.setValidationTimeout(validTimeout);
-//        return hikariConfig;
-//    }
-//
-//    @Bean("child3SqlSessionFactory")
-//    public SqlSessionFactory child3SqlSessionFactoryBean(@Qualifier("child3Datasource") DataSource dataSource) throws Exception {
-//        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
-//        sessionFactoryBean.setDataSource(dataSource);
-//
-//        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
-//        configuration.setCallSettersOnNulls(true);       //数据库中字段值为null时也要求返回
-//        configuration.setMapUnderscoreToCamelCase(true); //开启驼峰映射
-//        configuration.setCacheEnabled(false);
-//        sessionFactoryBean.setConfiguration(configuration);
-//        return sessionFactoryBean.getObject();
-//    }
-//
-//    @Bean("child3SqlSessionTemplate")
-//    public SqlSessionTemplate child3SqlSessionTemplate(@Qualifier("child3SqlSessionFactory") SqlSessionFactory sessionFactory) {
-//        return new SqlSessionTemplate(sessionFactory);
-//    }
-//
-//    @Bean(name = "child3DbTransactionManager")
-//    public DataSourceTransactionManager child3DbTransactionManager(@Qualifier("child3Datasource") DataSource dataSource){
-//        return new DataSourceTransactionManager(dataSource);
-//    }
-//
-//    @PostConstruct
-//    public void init(){
-//        GlobalData.getInstance().setPostGisValid("org.postgis.DriverWrapper".equals(driveClass));
-//    }
-////    @Bean
-////    public DBMgrProxy startDBMgrProxy(){
-////        DBMgrProxy.getInstance().init();
-////        return DBMgrProxy.getInstance();
-////    }
-//}
+}

+ 115 - 115
dc3-gateway/src/main/java/io/github/pnoker/gateway/config/Child4SourceConfiguration.java

@@ -1,115 +1,115 @@
-package io.github.pnoker.gateway.config;
-
-import com.zaxxer.hikari.HikariConfig;
-import com.zaxxer.hikari.HikariDataSource;
-import io.github.pnoker.gateway.dbdao.DBMgrProxy;
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionFactoryBean;
-import org.mybatis.spring.SqlSessionTemplate;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-
-import javax.annotation.PostConstruct;
-import javax.sql.DataSource;
-
-@Configuration
-@MapperScan(basePackages = {"io.github.pnoker.gateway.dbdao.mapper",
-        "io.github.pnoker.gateway.dbdao.tangyinSource.mapper"}, sqlSessionTemplateRef = "child4SqlSessionTemplate")
-public class Child4SourceConfiguration {
-    @Value("${spring.datasource.child4pg.driver-class-name:}")
-    private String driveClass = "org.postgresql.Driver";
-
-    @Value("${spring.datasource.child4pg.jdbc-url:}")
-    private String url = "";
-
-    @Value("${spring.datasource.child4pg.username:}")
-    private String username = "";
-
-    @Value("${spring.datasource.child4pg.password:}")
-    private String password = "";
-
-    @Value("${spring.datasource.data.maximum-pool-size:200}")
-    private Integer maxPoolSize;
-
-    @Value("${spring.datasource.data.minimum-idle:1}")
-    private Integer minIdle;
-
-    @Value("${spring.datasource.data.connection-test-query:}")
-    private String connectionTestQuery;
-
-    @Value("${spring.datasource.data.max-lifetime:120000}")
-    private Long maxLifetime;
-
-    @Value("${spring.datasource.data.idle-timeout:30000}")
-    private Long idleTimeout;
-
-    @Value("${spring.datasource.data.connection-timeout:30000}")
-    private Long connectionTimeout;
-
-    @Value("${spring.datasource.data.validation-timeout:30000}")
-    private Long validTimeout;
-
-    @Bean(name = "child4Datasource")
-    //@ConfigurationProperties(prefix = "spring.datasource.data")
-    public DataSource mainDataSource() {
-        return new HikariDataSource(getConfig());
-        //return DataSourceBuilder.create().build();
-        //Spring Boot 2.x默认使用HikariCP
-    }
-
-    private HikariConfig getConfig() {
-        HikariConfig hikariConfig = new HikariConfig();
-        hikariConfig.setDriverClassName(driveClass);
-        hikariConfig.setJdbcUrl(url);
-        hikariConfig.setUsername(username);
-        hikariConfig.setPassword(password);
-
-        hikariConfig.setMaximumPoolSize(maxPoolSize);
-        hikariConfig.setMinimumIdle(minIdle);
-        hikariConfig.setConnectionTestQuery(connectionTestQuery);
-        hikariConfig.setMaxLifetime(maxLifetime);
-        hikariConfig.setIdleTimeout(idleTimeout);
-        hikariConfig.setConnectionTimeout(connectionTimeout);
-        hikariConfig.setValidationTimeout(validTimeout);
-        return hikariConfig;
-    }
-
-    @Bean("child4SqlSessionFactory")
-    public SqlSessionFactory child4SqlSessionFactoryBean(@Qualifier("child4Datasource") DataSource dataSource) throws Exception {
-        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
-        sessionFactoryBean.setDataSource(dataSource);
-
-        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
-        configuration.setCallSettersOnNulls(true);       //数据库中字段值为null时也要求返回
-        configuration.setMapUnderscoreToCamelCase(true); //开启驼峰映射
-        configuration.setCacheEnabled(false);
-        sessionFactoryBean.setConfiguration(configuration);
-        return sessionFactoryBean.getObject();
-    }
-
-    @Bean("child4SqlSessionTemplate")
-    public SqlSessionTemplate child4SqlSessionTemplate(@Qualifier("child4SqlSessionFactory") SqlSessionFactory sessionFactory) {
-        return new SqlSessionTemplate(sessionFactory);
-    }
-
-    @Bean(name = "child4DbTransactionManager")
-    public DataSourceTransactionManager child4DbTransactionManager(@Qualifier("child4Datasource") DataSource dataSource){
-        return new DataSourceTransactionManager(dataSource);
-    }
-
-    @PostConstruct
-    public void init(){
-        GlobalData.getInstance().setPostGisValid("org.postgis.DriverWrapper".equals(driveClass));
-    }
-
-    @Bean
-    public DBMgrProxy startDBMgrProxy(){
-        DBMgrProxy.getInstance().init();
-        return DBMgrProxy.getInstance();
-    }
-}
+//package io.github.pnoker.gateway.config;
+//
+//import com.zaxxer.hikari.HikariConfig;
+//import com.zaxxer.hikari.HikariDataSource;
+//import io.github.pnoker.gateway.dbdao.DBMgrProxy;
+//import org.apache.ibatis.session.SqlSessionFactory;
+//import org.mybatis.spring.SqlSessionFactoryBean;
+//import org.mybatis.spring.SqlSessionTemplate;
+//import org.mybatis.spring.annotation.MapperScan;
+//import org.springframework.beans.factory.annotation.Qualifier;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+//
+//import javax.annotation.PostConstruct;
+//import javax.sql.DataSource;
+//
+//@Configuration
+//@MapperScan(basePackages = {"io.github.pnoker.gateway.dbdao.mapper",
+//        "io.github.pnoker.gateway.dbdao.tangyinSource.mapper"}, sqlSessionTemplateRef = "child4SqlSessionTemplate")
+//public class Child4SourceConfiguration {
+//    @Value("${spring.datasource.child4pg.driver-class-name:}")
+//    private String driveClass = "org.postgresql.Driver";
+//
+//    @Value("${spring.datasource.child4pg.jdbc-url:}")
+//    private String url = "";
+//
+//    @Value("${spring.datasource.child4pg.username:}")
+//    private String username = "";
+//
+//    @Value("${spring.datasource.child4pg.password:}")
+//    private String password = "";
+//
+//    @Value("${spring.datasource.data.maximum-pool-size:200}")
+//    private Integer maxPoolSize;
+//
+//    @Value("${spring.datasource.data.minimum-idle:1}")
+//    private Integer minIdle;
+//
+//    @Value("${spring.datasource.data.connection-test-query:}")
+//    private String connectionTestQuery;
+//
+//    @Value("${spring.datasource.data.max-lifetime:120000}")
+//    private Long maxLifetime;
+//
+//    @Value("${spring.datasource.data.idle-timeout:30000}")
+//    private Long idleTimeout;
+//
+//    @Value("${spring.datasource.data.connection-timeout:30000}")
+//    private Long connectionTimeout;
+//
+//    @Value("${spring.datasource.data.validation-timeout:30000}")
+//    private Long validTimeout;
+//
+//    @Bean(name = "child4Datasource")
+//    //@ConfigurationProperties(prefix = "spring.datasource.data")
+//    public DataSource mainDataSource() {
+//        return new HikariDataSource(getConfig());
+//        //return DataSourceBuilder.create().build();
+//        //Spring Boot 2.x默认使用HikariCP
+//    }
+//
+//    private HikariConfig getConfig() {
+//        HikariConfig hikariConfig = new HikariConfig();
+//        hikariConfig.setDriverClassName(driveClass);
+//        hikariConfig.setJdbcUrl(url);
+//        hikariConfig.setUsername(username);
+//        hikariConfig.setPassword(password);
+//
+//        hikariConfig.setMaximumPoolSize(maxPoolSize);
+//        hikariConfig.setMinimumIdle(minIdle);
+//        hikariConfig.setConnectionTestQuery(connectionTestQuery);
+//        hikariConfig.setMaxLifetime(maxLifetime);
+//        hikariConfig.setIdleTimeout(idleTimeout);
+//        hikariConfig.setConnectionTimeout(connectionTimeout);
+//        hikariConfig.setValidationTimeout(validTimeout);
+//        return hikariConfig;
+//    }
+//
+//    @Bean("child4SqlSessionFactory")
+//    public SqlSessionFactory child4SqlSessionFactoryBean(@Qualifier("child4Datasource") DataSource dataSource) throws Exception {
+//        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
+//        sessionFactoryBean.setDataSource(dataSource);
+//
+//        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
+//        configuration.setCallSettersOnNulls(true);       //数据库中字段值为null时也要求返回
+//        configuration.setMapUnderscoreToCamelCase(true); //开启驼峰映射
+//        configuration.setCacheEnabled(false);
+//        sessionFactoryBean.setConfiguration(configuration);
+//        return sessionFactoryBean.getObject();
+//    }
+//
+//    @Bean("child4SqlSessionTemplate")
+//    public SqlSessionTemplate child4SqlSessionTemplate(@Qualifier("child4SqlSessionFactory") SqlSessionFactory sessionFactory) {
+//        return new SqlSessionTemplate(sessionFactory);
+//    }
+//
+//    @Bean(name = "child4DbTransactionManager")
+//    public DataSourceTransactionManager child4DbTransactionManager(@Qualifier("child4Datasource") DataSource dataSource){
+//        return new DataSourceTransactionManager(dataSource);
+//    }
+//
+//    @PostConstruct
+//    public void init(){
+//        GlobalData.getInstance().setPostGisValid("org.postgis.DriverWrapper".equals(driveClass));
+//    }
+//
+//    @Bean
+//    public DBMgrProxy startDBMgrProxy(){
+//        DBMgrProxy.getInstance().init();
+//        return DBMgrProxy.getInstance();
+//    }
+//}

+ 112 - 112
dc3-gateway/src/main/java/io/github/pnoker/gateway/config/ChildSourceConfiguration.java

@@ -1,113 +1,113 @@
-//package io.github.pnoker.gateway.config;
-//
-//import com.zaxxer.hikari.HikariConfig;
-//import com.zaxxer.hikari.HikariDataSource;
-//import io.github.pnoker.gateway.dbdao.DBMgrProxy;
-//import org.apache.ibatis.session.SqlSessionFactory;
-//import org.mybatis.spring.SqlSessionFactoryBean;
-//import org.mybatis.spring.SqlSessionTemplate;
-//import org.mybatis.spring.annotation.MapperScan;
-//import org.springframework.beans.factory.annotation.Qualifier;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-//
-//import javax.annotation.PostConstruct;
-//import javax.sql.DataSource;
-//
-//@Configuration
-//@MapperScan(basePackages = "io.github.pnoker.gateway.dbdao.mapper", sqlSessionTemplateRef = "childSqlSessionTemplate")
-//public class ChildSourceConfiguration {
-//    @Value("${spring.datasource.childpg.driver-class-name:}")
-//    private String driveClass = "org.postgresql.Driver";
-//
-//    @Value("${spring.datasource.childpg.jdbc-url:}")
-//    private String url = "";
-//
-//    @Value("${spring.datasource.childpg.username:}")
-//    private String username = "";
-//
-//    @Value("${spring.datasource.childpg.password:}")
-//    private String password = "";
-//
-//    @Value("${spring.datasource.data.maximum-pool-size:200}")
-//    private Integer maxPoolSize;
-//
-//    @Value("${spring.datasource.data.minimum-idle:1}")
-//    private Integer minIdle;
-//
-//    @Value("${spring.datasource.data.connection-test-query:}")
-//    private String connectionTestQuery;
-//
-//    @Value("${spring.datasource.data.max-lifetime:120000}")
-//    private Long maxLifetime;
-//
-//    @Value("${spring.datasource.data.idle-timeout:30000}")
-//    private Long idleTimeout;
-//
-//    @Value("${spring.datasource.data.connection-timeout:30000}")
-//    private Long connectionTimeout;
-//
-//    @Value("${spring.datasource.data.validation-timeout:30000}")
-//    private Long validTimeout;
-//
-//    @Bean(name = "childDatasource")
-//    //@ConfigurationProperties(prefix = "spring.datasource.data")
-//    public DataSource mainDataSource() {
-//        return new HikariDataSource(getConfig());
-//        //return DataSourceBuilder.create().build();
-//        //Spring Boot 2.x默认使用HikariCP
+package io.github.pnoker.gateway.config;
+
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+import io.github.pnoker.gateway.dbdao.DBMgrProxy;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.annotation.PostConstruct;
+import javax.sql.DataSource;
+
+@Configuration
+@MapperScan(basePackages = "io.github.pnoker.gateway.dbdao.mapper", sqlSessionTemplateRef = "childSqlSessionTemplate")
+public class ChildSourceConfiguration {
+    @Value("${spring.datasource.childpg.driver-class-name:}")
+    private String driveClass = "org.postgresql.Driver";
+
+    @Value("${spring.datasource.childpg.jdbc-url:}")
+    private String url = "";
+
+    @Value("${spring.datasource.childpg.username:}")
+    private String username = "";
+
+    @Value("${spring.datasource.childpg.password:}")
+    private String password = "";
+
+    @Value("${spring.datasource.data.maximum-pool-size:200}")
+    private Integer maxPoolSize;
+
+    @Value("${spring.datasource.data.minimum-idle:1}")
+    private Integer minIdle;
+
+    @Value("${spring.datasource.data.connection-test-query:}")
+    private String connectionTestQuery;
+
+    @Value("${spring.datasource.data.max-lifetime:120000}")
+    private Long maxLifetime;
+
+    @Value("${spring.datasource.data.idle-timeout:30000}")
+    private Long idleTimeout;
+
+    @Value("${spring.datasource.data.connection-timeout:30000}")
+    private Long connectionTimeout;
+
+    @Value("${spring.datasource.data.validation-timeout:30000}")
+    private Long validTimeout;
+
+    @Bean(name = "childDatasource")
+    //@ConfigurationProperties(prefix = "spring.datasource.data")
+    public DataSource mainDataSource() {
+        return new HikariDataSource(getConfig());
+        //return DataSourceBuilder.create().build();
+        //Spring Boot 2.x默认使用HikariCP
+    }
+
+    private HikariConfig getConfig() {
+        HikariConfig hikariConfig = new HikariConfig();
+        hikariConfig.setDriverClassName(driveClass);
+        hikariConfig.setJdbcUrl(url);
+        hikariConfig.setUsername(username);
+        hikariConfig.setPassword(password);
+
+        hikariConfig.setMaximumPoolSize(maxPoolSize);
+        hikariConfig.setMinimumIdle(minIdle);
+        hikariConfig.setConnectionTestQuery(connectionTestQuery);
+        hikariConfig.setMaxLifetime(maxLifetime);
+        hikariConfig.setIdleTimeout(idleTimeout);
+        hikariConfig.setConnectionTimeout(connectionTimeout);
+        hikariConfig.setValidationTimeout(validTimeout);
+        return hikariConfig;
+    }
+
+    @Bean("childSqlSessionFactory")
+    public SqlSessionFactory childSqlSessionFactoryBean(@Qualifier("mainDatasource") DataSource dataSource) throws Exception {
+        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
+        sessionFactoryBean.setDataSource(dataSource);
+
+        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
+        configuration.setCallSettersOnNulls(true);       //数据库中字段值为null时也要求返回
+        configuration.setMapUnderscoreToCamelCase(true); //开启驼峰映射
+        configuration.setCacheEnabled(false);
+        sessionFactoryBean.setConfiguration(configuration);
+        return sessionFactoryBean.getObject();
+    }
+
+    @Bean("childSqlSessionTemplate")
+    public SqlSessionTemplate childSqlSessionTemplate(@Qualifier("childSqlSessionFactory") SqlSessionFactory sessionFactory) {
+        return new SqlSessionTemplate(sessionFactory);
+    }
+
+    @Bean(name = "childDbTransactionManager")
+    public DataSourceTransactionManager childDbTransactionManager(@Qualifier("childDatasource") DataSource dataSource){
+        return new DataSourceTransactionManager(dataSource);
+    }
+
+    @PostConstruct
+    public void init(){
+        GlobalData.getInstance().setPostGisValid("org.postgis.DriverWrapper".equals(driveClass));
+    }
+//    @Bean
+//    public DBMgrProxy startDBMgrProxy(){
+//        DBMgrProxy.getInstance().init();
+//        return DBMgrProxy.getInstance();
 //    }
 //    }
-//
-//    private HikariConfig getConfig() {
-//        HikariConfig hikariConfig = new HikariConfig();
-//        hikariConfig.setDriverClassName(driveClass);
-//        hikariConfig.setJdbcUrl(url);
-//        hikariConfig.setUsername(username);
-//        hikariConfig.setPassword(password);
-//
-//        hikariConfig.setMaximumPoolSize(maxPoolSize);
-//        hikariConfig.setMinimumIdle(minIdle);
-//        hikariConfig.setConnectionTestQuery(connectionTestQuery);
-//        hikariConfig.setMaxLifetime(maxLifetime);
-//        hikariConfig.setIdleTimeout(idleTimeout);
-//        hikariConfig.setConnectionTimeout(connectionTimeout);
-//        hikariConfig.setValidationTimeout(validTimeout);
-//        return hikariConfig;
-//    }
-//
-//    @Bean("childSqlSessionFactory")
-//    public SqlSessionFactory childSqlSessionFactoryBean(@Qualifier("mainDatasource") DataSource dataSource) throws Exception {
-//        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
-//        sessionFactoryBean.setDataSource(dataSource);
-//
-//        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
-//        configuration.setCallSettersOnNulls(true);       //数据库中字段值为null时也要求返回
-//        configuration.setMapUnderscoreToCamelCase(true); //开启驼峰映射
-//        configuration.setCacheEnabled(false);
-//        sessionFactoryBean.setConfiguration(configuration);
-//        return sessionFactoryBean.getObject();
-//    }
-//
-//    @Bean("childSqlSessionTemplate")
-//    public SqlSessionTemplate childSqlSessionTemplate(@Qualifier("childSqlSessionFactory") SqlSessionFactory sessionFactory) {
-//        return new SqlSessionTemplate(sessionFactory);
-//    }
-//
-//    @Bean(name = "childDbTransactionManager")
-//    public DataSourceTransactionManager childDbTransactionManager(@Qualifier("childDatasource") DataSource dataSource){
-//        return new DataSourceTransactionManager(dataSource);
-//    }
-//
-//    @PostConstruct
-//    public void init(){
-//        GlobalData.getInstance().setPostGisValid("org.postgis.DriverWrapper".equals(driveClass));
-//    }
-////    @Bean
-////    public DBMgrProxy startDBMgrProxy(){
-////        DBMgrProxy.getInstance().init();
-////        return DBMgrProxy.getInstance();
-////    }
-//}
+}

+ 115 - 115
dc3-gateway/src/main/java/io/github/pnoker/gateway/config/MainSourceConfiguration.java

@@ -1,115 +1,115 @@
-//package io.github.pnoker.gateway.config;
-//
-//import com.zaxxer.hikari.HikariConfig;
-//import com.zaxxer.hikari.HikariDataSource;
-//import io.github.pnoker.gateway.dbdao.DBMgrProxy;
-//import org.apache.ibatis.session.SqlSessionFactory;
-//import org.mybatis.spring.SqlSessionFactoryBean;
-//import org.mybatis.spring.SqlSessionTemplate;
-//import org.mybatis.spring.annotation.MapperScan;
-//import org.springframework.beans.factory.annotation.Qualifier;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.context.annotation.PropertySource;
-//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-//
-//import javax.annotation.PostConstruct;
-//import javax.sql.DataSource;
-//
-//@Configuration
-//@MapperScan(basePackages = "io.github.pnoker.gateway.dbdao.mapper", sqlSessionTemplateRef = "mainSqlSessionTemplate")
-//public class MainSourceConfiguration {
-//    @Value("${spring.datasource.driver-class-name:}")
-//    private String driveClass = "org.postgresql.Driver";
-//
-//    @Value("${spring.datasource.jdbc-url:}")
-//    private String url = "";
-//
-//    @Value("${spring.datasource.username:}")
-//    private String username = "";
-//
-//    @Value("${spring.datasource.password:}")
-//    private String password = "";
-//
-//    @Value("${spring.datasource.data.maximum-pool-size:200}")
-//    private Integer maxPoolSize;
-//
-//    @Value("${spring.datasource.data.minimum-idle:1}")
-//    private Integer minIdle;
-//
-//    @Value("${spring.datasource.data.connection-test-query:}")
-//    private String connectionTestQuery;
-//
-//    @Value("${spring.datasource.data.max-lifetime:120000}")
-//    private Long maxLifetime;
-//
-//    @Value("${spring.datasource.data.idle-timeout:30000}")
-//    private Long idleTimeout;
-//
-//    @Value("${spring.datasource.data.connection-timeout:30000}")
-//    private Long connectionTimeout;
-//
-//    @Value("${spring.datasource.data.validation-timeout:30000}")
-//    private Long validTimeout;
-//
-//    @Bean(name = "mainDatasource")
-//    //@ConfigurationProperties(prefix = "spring.datasource.data")
-//    public DataSource mainDataSource() {
-//        return new HikariDataSource(getConfig());
-//        //return DataSourceBuilder.create().build();
-//        //Spring Boot 2.x默认使用HikariCP
-//    }
-//
-//    private HikariConfig getConfig() {
-//        HikariConfig hikariConfig = new HikariConfig();
-//        hikariConfig.setDriverClassName(driveClass);
-//        hikariConfig.setJdbcUrl(url);
-//        hikariConfig.setUsername(username);
-//        hikariConfig.setPassword(password);
-//
-//        hikariConfig.setMaximumPoolSize(maxPoolSize);
-//        hikariConfig.setMinimumIdle(minIdle);
-//        hikariConfig.setConnectionTestQuery(connectionTestQuery);
-//        hikariConfig.setMaxLifetime(maxLifetime);
-//        hikariConfig.setIdleTimeout(idleTimeout);
-//        hikariConfig.setConnectionTimeout(connectionTimeout);
-//        hikariConfig.setValidationTimeout(validTimeout);
-//        return hikariConfig;
-//    }
-//
-//    @Bean("mainSqlSessionFactory")
-//    public SqlSessionFactory mainSqlSessionFactoryBean(@Qualifier("mainDatasource") DataSource dataSource) throws Exception {
-//        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
-//        sessionFactoryBean.setDataSource(dataSource);
-//
-//        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
-//        configuration.setCallSettersOnNulls(true);       //数据库中字段值为null时也要求返回
-//        configuration.setMapUnderscoreToCamelCase(true); //开启驼峰映射
-//        configuration.setCacheEnabled(false);
-//        sessionFactoryBean.setConfiguration(configuration);
-//        return sessionFactoryBean.getObject();
-//    }
-//
-//    @Bean("mainSqlSessionTemplate")
-//    public SqlSessionTemplate mainSqlSessionTemplate(@Qualifier("mainSqlSessionFactory") SqlSessionFactory sessionFactory) {
-//        return new SqlSessionTemplate(sessionFactory);
-//    }
-//
-//    @Bean(name = "mainDbTransactionManager")
-//    public DataSourceTransactionManager mainDbTransactionManager(@Qualifier("mainDatasource") DataSource dataSource){
-//        return new DataSourceTransactionManager(dataSource);
-//    }
-//
-//    @PostConstruct
-//    public void init(){
-//        GlobalData.getInstance().setPostGisValid("org.postgis.DriverWrapper".equals(driveClass));
-//    }
-//
-//    @Bean
-//    public DBMgrProxy startDBMgrProxy(){
-//        DBMgrProxy.getInstance().init();
-//        return DBMgrProxy.getInstance();
-//    }
-//}
+package io.github.pnoker.gateway.config;
+
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+import io.github.pnoker.gateway.dbdao.DBMgrProxy;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.annotation.PostConstruct;
+import javax.sql.DataSource;
+
+@Configuration
+@MapperScan(basePackages = "io.github.pnoker.gateway.dbdao.mapper", sqlSessionTemplateRef = "mainSqlSessionTemplate")
+public class MainSourceConfiguration {
+    @Value("${spring.datasource.driver-class-name:}")
+    private String driveClass = "org.postgresql.Driver";
+
+    @Value("${spring.datasource.jdbc-url:}")
+    private String url = "";
+
+    @Value("${spring.datasource.username:}")
+    private String username = "";
+
+    @Value("${spring.datasource.password:}")
+    private String password = "";
+
+    @Value("${spring.datasource.data.maximum-pool-size:200}")
+    private Integer maxPoolSize;
+
+    @Value("${spring.datasource.data.minimum-idle:1}")
+    private Integer minIdle;
+
+    @Value("${spring.datasource.data.connection-test-query:}")
+    private String connectionTestQuery;
+
+    @Value("${spring.datasource.data.max-lifetime:120000}")
+    private Long maxLifetime;
+
+    @Value("${spring.datasource.data.idle-timeout:30000}")
+    private Long idleTimeout;
+
+    @Value("${spring.datasource.data.connection-timeout:30000}")
+    private Long connectionTimeout;
+
+    @Value("${spring.datasource.data.validation-timeout:30000}")
+    private Long validTimeout;
+
+    @Bean(name = "mainDatasource")
+    //@ConfigurationProperties(prefix = "spring.datasource.data")
+    public DataSource mainDataSource() {
+        return new HikariDataSource(getConfig());
+        //return DataSourceBuilder.create().build();
+        //Spring Boot 2.x默认使用HikariCP
+    }
+
+    private HikariConfig getConfig() {
+        HikariConfig hikariConfig = new HikariConfig();
+        hikariConfig.setDriverClassName(driveClass);
+        hikariConfig.setJdbcUrl(url);
+        hikariConfig.setUsername(username);
+        hikariConfig.setPassword(password);
+
+        hikariConfig.setMaximumPoolSize(maxPoolSize);
+        hikariConfig.setMinimumIdle(minIdle);
+        hikariConfig.setConnectionTestQuery(connectionTestQuery);
+        hikariConfig.setMaxLifetime(maxLifetime);
+        hikariConfig.setIdleTimeout(idleTimeout);
+        hikariConfig.setConnectionTimeout(connectionTimeout);
+        hikariConfig.setValidationTimeout(validTimeout);
+        return hikariConfig;
+    }
+
+    @Bean("mainSqlSessionFactory")
+    public SqlSessionFactory mainSqlSessionFactoryBean(@Qualifier("mainDatasource") DataSource dataSource) throws Exception {
+        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
+        sessionFactoryBean.setDataSource(dataSource);
+
+        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
+        configuration.setCallSettersOnNulls(true);       //数据库中字段值为null时也要求返回
+        configuration.setMapUnderscoreToCamelCase(true); //开启驼峰映射
+        configuration.setCacheEnabled(false);
+        sessionFactoryBean.setConfiguration(configuration);
+        return sessionFactoryBean.getObject();
+    }
+
+    @Bean("mainSqlSessionTemplate")
+    public SqlSessionTemplate mainSqlSessionTemplate(@Qualifier("mainSqlSessionFactory") SqlSessionFactory sessionFactory) {
+        return new SqlSessionTemplate(sessionFactory);
+    }
+
+    @Bean(name = "mainDbTransactionManager")
+    public DataSourceTransactionManager mainDbTransactionManager(@Qualifier("mainDatasource") DataSource dataSource){
+        return new DataSourceTransactionManager(dataSource);
+    }
+
+    @PostConstruct
+    public void init(){
+        GlobalData.getInstance().setPostGisValid("org.postgis.DriverWrapper".equals(driveClass));
+    }
+
+    @Bean
+    public DBMgrProxy startDBMgrProxy(){
+        DBMgrProxy.getInstance().init();
+        return DBMgrProxy.getInstance();
+    }
+}

+ 64 - 64
dc3-gateway/src/main/java/io/github/pnoker/gateway/config/OrcaleDataSourceConfig.java

@@ -1,65 +1,65 @@
-//package io.github.pnoker.gateway.config;
-//
-//import com.zaxxer.hikari.HikariConfig;
-//import com.zaxxer.hikari.HikariDataSource;
-//import io.github.pnoker.gateway.dbdao.DBMgrProxy;
-//import org.springframework.beans.factory.annotation.Qualifier;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.jdbc.core.JdbcTemplate;
-//
-//import javax.sql.DataSource;
-//
-///**
-// * @ClassName OrcaleDataSourceConfig
-// * @Description: TODO
-// * @Author LX
-// * @Date 2024/5/21
-// * @Version V1.0
-// **/
-//@Configuration
-//public class OrcaleDataSourceConfig {
-//    @Bean(name = "primaryDataSource")
-//    public DataSource primaryDataSource(@Value("${spring.datasource.primary.url}") String url,
-//                                        @Value("${spring.datasource.primary.username}") String username,
-//                                        @Value("${spring.datasource.primary.password}") String password,
-//                                        @Value("${spring.datasource.primary.driver-class-name}") String driverClassName) {
-//        HikariConfig config = new HikariConfig();
-//        config.setJdbcUrl(url);
-//        config.setUsername(username);
-//        config.setPassword(password);
-//        config.setDriverClassName(driverClassName);
-//        config.setInitializationFailTimeout(-1);
-//        return new HikariDataSource(config);
+package io.github.pnoker.gateway.config;
+
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+import io.github.pnoker.gateway.dbdao.DBMgrProxy;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import javax.sql.DataSource;
+
+/**
+ * @ClassName OrcaleDataSourceConfig
+ * @Description: TODO
+ * @Author LX
+ * @Date 2024/5/21
+ * @Version V1.0
+ **/
+@Configuration
+public class OrcaleDataSourceConfig {
+    @Bean(name = "primaryDataSource")
+    public DataSource primaryDataSource(@Value("${spring.datasource.primary.url}") String url,
+                                        @Value("${spring.datasource.primary.username}") String username,
+                                        @Value("${spring.datasource.primary.password}") String password,
+                                        @Value("${spring.datasource.primary.driver-class-name}") String driverClassName) {
+        HikariConfig config = new HikariConfig();
+        config.setJdbcUrl(url);
+        config.setUsername(username);
+        config.setPassword(password);
+        config.setDriverClassName(driverClassName);
+        config.setInitializationFailTimeout(-1);
+        return new HikariDataSource(config);
+    }
+
+    @Bean(name = "zilaishuiDataSource")
+    public DataSource secondaryDataSource(@Value("${spring.datasource.zilaishui.url}") String url,
+                                          @Value("${spring.datasource.zilaishui.username}") String username,
+                                          @Value("${spring.datasource.zilaishui.password}") String password,
+                                          @Value("${spring.datasource.zilaishui.driver-class-name}") String driverClassName) {
+        HikariConfig config = new HikariConfig();
+        config.setJdbcUrl(url);
+        config.setUsername(username);
+        config.setPassword(password);
+        config.setDriverClassName(driverClassName);
+        return new HikariDataSource(config);
+    }
+
+    @Bean(name = "oneTemplate")
+    public JdbcTemplate primaryJdbcTemplate(@Qualifier("primaryDataSource") DataSource dataSource) {
+        return new JdbcTemplate(dataSource);
+    }
+
+    @Bean(name = "twoTemplate")
+    public JdbcTemplate zilaishuiJdbcTemplate(@Qualifier("zilaishuiDataSource") DataSource dataSource) {
+        return new JdbcTemplate(dataSource);
+    }
+//    @Bean
+//    public DBMgrProxy startDBMgrProxy(){
+//        DBMgrProxy.getInstance().init();
+//        return DBMgrProxy.getInstance();
 //    }
 //    }
-//
-//    @Bean(name = "zilaishuiDataSource")
-//    public DataSource secondaryDataSource(@Value("${spring.datasource.zilaishui.url}") String url,
-//                                          @Value("${spring.datasource.zilaishui.username}") String username,
-//                                          @Value("${spring.datasource.zilaishui.password}") String password,
-//                                          @Value("${spring.datasource.zilaishui.driver-class-name}") String driverClassName) {
-//        HikariConfig config = new HikariConfig();
-//        config.setJdbcUrl(url);
-//        config.setUsername(username);
-//        config.setPassword(password);
-//        config.setDriverClassName(driverClassName);
-//        return new HikariDataSource(config);
-//    }
-//
-//    @Bean(name = "oneTemplate")
-//    public JdbcTemplate primaryJdbcTemplate(@Qualifier("primaryDataSource") DataSource dataSource) {
-//        return new JdbcTemplate(dataSource);
-//    }
-//
-//    @Bean(name = "twoTemplate")
-//    public JdbcTemplate zilaishuiJdbcTemplate(@Qualifier("zilaishuiDataSource") DataSource dataSource) {
-//        return new JdbcTemplate(dataSource);
-//    }
-////    @Bean
-////    public DBMgrProxy startDBMgrProxy(){
-////        DBMgrProxy.getInstance().init();
-////        return DBMgrProxy.getInstance();
-////    }
-//}
+}

+ 121 - 53
dc3-gateway/src/main/java/io/github/pnoker/gateway/dbdao/jiangjinSource/JiangjinRealListDao.java

@@ -29,74 +29,142 @@ public class JiangjinRealListDao {
 
 
     //TODO orcale相关
     //TODO orcale相关
     //TODO 获取满足条件的实时水量数据总数
     //TODO 获取满足条件的实时水量数据总数
-    public Integer getTabWaterRealCount(String extend){
-        try {
-            String sql = "select count(1)  from cqda.v_jiangjin_real_list ";
-            if(!StringUtils.isEmpty(extend)){
-                sql += extend;
+    public Integer getTabWaterRealCount(String extend) {
+        String sql = "select count(1) from cqda.v_jiangjin_real_list ";
+        if (!StringUtils.isEmpty(extend)) {
+            sql += extend;
+        }
+
+        final int maxRetries = 3;
+        final long retryIntervalMillis = 500; // 重试间隔,单位:毫秒
+
+        int attempt = 0;
+        while (attempt < maxRetries) {
+            try {
+                return oneTemplate.queryForObject(sql, Integer.class);
+            } catch (Exception ex) {
+                attempt++;
+                // 判断是否为超时异常,可根据你实际的异常类型调整
+                if (attempt >= maxRetries) {
+                    // 最后一次重试仍然失败,记录日志或处理异常
+                    // log.error("Query timeout after " + maxRetries + " attempts", ex);
+                    return null;
+                }
+                try {
+                    Thread.sleep(retryIntervalMillis);
+                } catch (InterruptedException ie) {
+                    Thread.currentThread().interrupt();
+                    return null;
+                }
             }
             }
-            int count = oneTemplate.queryForObject(sql, Integer.class);
-            return count;
-        }catch(Exception ex){
-            return null;
         }
         }
+        return null;
     }
     }
 
 
     //TODO 获取实时水量数据
     //TODO 获取实时水量数据
-    public List<Map<String,Object>> getListWaterReal(String extend){
-        try {
-            String sql = "SELECT * "+
-                    " FROM cqda.v_jiangjin_real_list " +
-                            " ORDER BY QCQUISITION_TIME DESC ";
-            if(!StringUtils.isEmpty(extend)){
-                sql = "SELECT * "+
-                        " FROM cqda.v_jiangjin_real_list " +
-                        " WHERE 1=1 AND "+extend+
-                        " ORDER BY QCQUISITION_TIME DESC ";
+    public List<Map<String, Object>> getListWaterReal(String extend) {
+        String baseSql = "SELECT * FROM cqda.v_jiangjin_real_list ORDER BY QCQUISITION_TIME DESC";
+        String sql;
+        if (!StringUtils.isEmpty(extend)) {
+            sql = "SELECT * FROM cqda.v_jiangjin_real_list WHERE 1=1 AND " + extend + " ORDER BY QCQUISITION_TIME DESC";
+        } else {
+            sql = baseSql;
+        }
+
+        final int maxRetries = 3;
+        final long retryIntervalMillis = 500; // 重试间隔,单位:毫秒
+
+        int attempt = 0;
+        while (attempt < maxRetries) {
+            try {
+                return oneTemplate.queryForList(sql);
+            } catch (Exception ex) {
+                attempt++;
+                if (attempt >= maxRetries) {
+                    // 日志记录(根据实际需要引入日志框架)
+                    // log.error("Query timeout after " + maxRetries + " attempts", ex);
+                    return null;
+                }
+                try {
+                    Thread.sleep(retryIntervalMillis);
+                } catch (InterruptedException ie) {
+                    Thread.currentThread().interrupt();
+                    return null;
+                }
             }
             }
-            List<Map<String, Object>> tableData = oneTemplate.queryForList(sql);
-            return tableData;
-        }catch(Exception ex){
-            return null;
         }
         }
+        return null;
     }
     }
 
 
     //TODO 获取满足条件的历史水量数据总数
     //TODO 获取满足条件的历史水量数据总数
-    public Integer getTabWaterHistoryCount(String extend){
-        try {
-            String sql = "select count(1)  from cqda.V_JIANGJIN_HISTORY ";
-            if(!StringUtils.isEmpty(extend)){
-                sql += " WHERE "+extend;
+    public Integer getTabWaterHistoryCount(String extend) {
+        String sql = "select count(1) from cqda.V_JIANGJIN_HISTORY";
+        if (!StringUtils.isEmpty(extend)) {
+            sql += " WHERE " + extend;
+        }
+
+        final int maxRetries = 3;
+        final long retryIntervalMillis = 500;
+
+        int attempt = 0;
+        while (attempt < maxRetries) {
+            try {
+                return oneTemplate.queryForObject(sql, Integer.class);
+            } catch (Exception ex) {
+                attempt++;
+                if (attempt >= maxRetries) {
+                    // log.error("Query timeout after " + maxRetries + " attempts", ex);
+                    return null;
+                }
+                try {
+                    Thread.sleep(retryIntervalMillis);
+                } catch (InterruptedException ie) {
+                    Thread.currentThread().interrupt();
+                    return null;
+                }
             }
             }
-            int count = oneTemplate.queryForObject(sql, Integer.class);
-            return count;
-        }catch(Exception ex){
-            return null;
         }
         }
+        return null;
     }
     }
 
 
     //TODO 获取满足条件的历史水量数据
     //TODO 获取满足条件的历史水量数据
-    public List<Map<String,Object>> getPageListWaterHistory(int limit,int offset,String extend){
-        try {
-            String sql = "SELECT TAG_CODE, DEVICE_TYPE_CODE, TAG_STANDARD_CODE, DEVICE_CODE, QCQUISITION_TIME, VAL " +
-                    "FROM ( " +
-                    "    SELECT t.TAG_CODE, t.DEVICE_TYPE_CODE, t.TAG_STANDARD_CODE, t.DEVICE_CODE, t.QCQUISITION_TIME, t.VAL, " +
-                    "           ROW_NUMBER() OVER (ORDER BY t.QCQUISITION_TIME) AS rn " +
-                    "    FROM cqda.V_JIANGJIN_HISTORY t " +
-                    "    WHERE "+extend+
-                    ") subquery_alias " +
-                    "WHERE rn BETWEEN :offset AND :limit";
-
-            Map<String, Object> params = new HashMap<>();
-            params.put("offset", Integer.valueOf(offset));  // 确保是整数
-            params.put("limit", Integer.valueOf(limit));    // 确保是整数
-
-            NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(oneTemplate.getDataSource());
-            List<Map<String, Object>> tableData = namedParameterJdbcTemplate.queryForList(sql, params);
-            return tableData;
-        }catch(Exception ex){
-            ex.printStackTrace();
-            return null;
+    public List<Map<String, Object>> getPageListWaterHistory(int limit, int offset, String extend) {
+        String sql = "SELECT TAG_CODE, DEVICE_TYPE_CODE, TAG_STANDARD_CODE, DEVICE_CODE, QCQUISITION_TIME, VAL " +
+                "FROM ( " +
+                "    SELECT t.TAG_CODE, t.DEVICE_TYPE_CODE, t.TAG_STANDARD_CODE, t.DEVICE_CODE, t.QCQUISITION_TIME, t.VAL, " +
+                "           ROW_NUMBER() OVER (ORDER BY t.QCQUISITION_TIME) AS rn " +
+                "    FROM cqda.V_JIANGJIN_HISTORY t " +
+                "    WHERE " + extend +
+                ") subquery_alias " +
+                "WHERE rn BETWEEN :offset AND :limit";
+
+        Map<String, Object> params = new HashMap<>();
+        params.put("offset", offset);
+        params.put("limit", limit);
+
+        NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(oneTemplate.getDataSource());
+
+        final int maxRetries = 3;
+        final long retryIntervalMillis = 500;
+
+        int attempt = 0;
+        while (attempt < maxRetries) {
+            try {
+                return namedParameterJdbcTemplate.queryForList(sql, params);
+            } catch (Exception ex) {
+                attempt++;
+                if (attempt >= maxRetries) {
+                    // log.error("Query timeout after " + maxRetries + " attempts", ex);
+                    return null;
+                }
+                try {
+                    Thread.sleep(retryIntervalMillis);
+                } catch (InterruptedException ie) {
+                    Thread.currentThread().interrupt();
+                    return null;
+                }
+            }
         }
         }
+        return null;
     }
     }
 }
 }

+ 1 - 1
dc3-gateway/src/main/java/io/github/pnoker/gateway/dbdao/mapper/WaterYuceDao.java

@@ -22,7 +22,7 @@ import java.util.Map;
 @Repository
 @Repository
 public class WaterYuceDao {
 public class WaterYuceDao {
     @Autowired
     @Autowired
-//    @Qualifier("childDatasource")
+    @Qualifier("childDatasource")
     private DataSource childDataSource;
     private DataSource childDataSource;
 
 
     //TODO 查询配置项8
     //TODO 查询配置项8

+ 1 - 1
dc3-gateway/src/main/java/io/github/pnoker/gateway/dbdao/mapper/WaterZILAISHUIDao.java

@@ -27,7 +27,7 @@ public class WaterZILAISHUIDao {
     private JdbcTemplate oneTemplate;
     private JdbcTemplate oneTemplate;
 
 
     @Autowired
     @Autowired
-//    @Qualifier("childDatasource")
+    @Qualifier("childDatasource")
     private DataSource childDataSource;
     private DataSource childDataSource;
 
 
     //TODO orcale相关
     //TODO orcale相关

+ 7 - 6
dc3-gateway/src/main/java/io/github/pnoker/gateway/dbdao/tangyinSource/mapper/TangyinPressDataDao.java

@@ -23,9 +23,9 @@ import java.util.Map;
 @Slf4j
 @Slf4j
 @Repository
 @Repository
 public class TangyinPressDataDao {
 public class TangyinPressDataDao {
-    @Autowired
-    @Qualifier("child4Datasource")
-    private DataSource child4Datasource;
+//    @Autowired
+//    @Qualifier("child4Datasource")
+//    private DataSource child4Datasource;
 
 
     private static final Logger log = LoggerFactory.getLogger(TangyinPressDataDao.class);
     private static final Logger log = LoggerFactory.getLogger(TangyinPressDataDao.class);
 
 
@@ -52,9 +52,10 @@ public class TangyinPressDataDao {
             if(!ObjectUtils.isEmpty(value.get("press_cur"))){
             if(!ObjectUtils.isEmpty(value.get("press_cur"))){
                 sql +=  " , press_cur =  '"+value.get("press_cur")+"' ";
                 sql +=  " , press_cur =  '"+value.get("press_cur")+"' ";
             }
             }
-            JdbcTemplate pgJdbc = new JdbcTemplate(child4Datasource);
-            Integer resCode = pgJdbc.update(sql);
-            return resCode;
+//            JdbcTemplate pgJdbc = new JdbcTemplate(child4Datasource);
+//            Integer resCode = pgJdbc.update(sql);
+//            return resCode;
+            return -1;
         }catch(Exception ex){
         }catch(Exception ex){
             log.error("TangyinPressDataDao insertOrUpdateTbmHourLevel error:"+ex.getLocalizedMessage());
             log.error("TangyinPressDataDao insertOrUpdateTbmHourLevel error:"+ex.getLocalizedMessage());
             return -1;
             return -1;

+ 2 - 2
dc3-gateway/src/main/java/io/github/pnoker/gateway/dbdao/zilaishuiSource/ZilaishuiRealListDao.java

@@ -30,11 +30,11 @@ public class ZilaishuiRealListDao {
     private JdbcTemplate twoTemplate;
     private JdbcTemplate twoTemplate;
 
 
     @Autowired
     @Autowired
-//    @Qualifier("child2Datasource")
+    @Qualifier("child2Datasource")
     private DataSource child2DataSource;
     private DataSource child2DataSource;
 
 
     @Autowired
     @Autowired
-//    @Qualifier("child3Datasource")
+    @Qualifier("child3Datasource")
     private DataSource child3DataSource;
     private DataSource child3DataSource;
 
 
     //TODO orcale相关
     //TODO orcale相关

+ 2 - 2
dc3-gateway/src/main/resources/application.yml

@@ -255,8 +255,8 @@ LIQUID_LEVEL_METER: LiquidLevel
 jiangjin:
 jiangjin:
 #influxdb相关配置
 #influxdb相关配置
   inluxdb:
   inluxdb:
-    database: iot_test
-#    database: iot
+#    database: iot_test
+    database: iot
     serverUrl: http://10.101.16.13:8086
     serverUrl: http://10.101.16.13:8086
 #    username: kpr
 #    username: kpr
 #    password: kpr.2024dy.influxdb
 #    password: kpr.2024dy.influxdb