高级算法和暂态文件同步合并jar包

This commit is contained in:
hzj
2026-04-27 16:17:22 +08:00
parent f33b657bae
commit b607189bd3
65 changed files with 6781 additions and 492 deletions

View File

@@ -50,6 +50,37 @@
<build>
<finalName>influx-target</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>*.yml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>*.dll</include>
<include>*.xlsx</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>*.so</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<filtering>false</filtering>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>

View File

@@ -3,10 +3,7 @@ package com.njcn.influx.controller;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.StrUtil;
import com.njcn.influx.service.OracleEventDetailToMysqlService;
import com.njcn.influx.service.OracleMonitorStatusToMysqlService;
import com.njcn.influx.service.OracleToInfluxDBService;
import com.njcn.influx.service.PqsOnlineratePOService;
import com.njcn.influx.service.*;
import com.njcn.oracle.bo.param.DataAsynParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -44,6 +41,7 @@ public class OracleToInfluxDBController {
private final OracleEventDetailToMysqlService oracleEventDetailToMysqlService;
private final OracleMonitorStatusToMysqlService oracleMonitorStatusToMysqlService;
private final OracleToMysqlService oracleToMysqlService;
@PostMapping("/dataSync")
@ApiOperation("数据同步")
@@ -119,6 +117,20 @@ public class OracleToInfluxDBController {
}
return true;
}
@GetMapping("/eventRecall")
@ApiOperation("eventDetail表数据同步补招接口")
public Boolean eventRecall(@RequestParam("startDateTime") String startDateTime,@RequestParam("endDateTime") String endDateTime) {
try {
LocalDateTime startDate = LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(startDateTime, DatePattern.NORM_DATETIME_PATTERN));
LocalDateTime endDate = LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(endDateTime, DatePattern.NORM_DATETIME_PATTERN));
oracleToMysqlService.OracleToMySqlJob(startDate, endDate );
} catch (Exception exception) {
exception.printStackTrace();
}
return true;
}
@GetMapping("/mSync")
@ApiOperation("监测点信息同步")
public Boolean monitorTimeSync() {

View File

@@ -1,123 +1,125 @@
package com.njcn.influx.job;
import com.njcn.influx.bo.param.TableEnum;
import com.njcn.influx.service.OracleEventDetailToMysqlService;
import com.njcn.influx.service.OracleMonitorStatusToMysqlService;
import com.njcn.influx.service.OracleToInfluxDBService;
import com.njcn.influx.service.PqsOnlineratePOService;
import com.njcn.oracle.bo.param.DataAsynParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
/**
* Description:
* Date: 2024/1/18 10:15【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Component
@EnableScheduling
@RequiredArgsConstructor
@Slf4j
public class OracleToInfluxDBJob {
private final OracleToInfluxDBService oracleToInfluxDBService;
private final OracleEventDetailToMysqlService oracleEventDetailToMysqlService;
private final OracleMonitorStatusToMysqlService oracleMonitorStatusToMysqlService;
private final PqsOnlineratePOService pqsOnlineratePOService;
/*@Scheduled(cron="0 5 0 * * ?")
public void execute() {
DataAsynParam dataAsynParam = new DataAsynParam();
dataAsynParam.setStartTime(LocalDate.now().plusDays(-1));
dataAsynParam.setEndTime(LocalDate.now().plusDays(-1));
dataAsynParam.setTableNames(TableEnum.getExecutableTypes());
dataAsynParam.setExcuteType(2);
oracleToInfluxDBService.dataBacthSysc(dataAsynParam);
}*/
//每小时03分钟时执行上一个小时的数据同步
//河北这边比较特殊,
@Scheduled(cron="0 15 * * * ?")
public void executeHours() {
DataAsynParam dataAsynParam = new DataAsynParam();
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 减去一个小时
LocalDateTime oneHourAgo = now.minusHours(2);
// 将分钟和秒设置为0
LocalDateTime result = oneHourAgo.truncatedTo(ChronoUnit.HOURS);
// 加上59分钟59秒
LocalDateTime modifiedResult = result.plusMinutes(59).plusSeconds(59);
dataAsynParam.setStartDateTime(result);
dataAsynParam.setEndDateTime(modifiedResult);
dataAsynParam.setTableNames(TableEnum.getExecutableTypes());
dataAsynParam.setExcuteType(2);
oracleToInfluxDBService.hourseDataBacthSysc(dataAsynParam);
}
//每10分钟执行一次pqOnlinerate表同步
@Scheduled(cron="0 0/10 * * * ?")
public void pqOnlinerate() {
DataAsynParam dataAsynParam = new DataAsynParam();
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
dataAsynParam.setStartDateTime(now);
pqsOnlineratePOService.minutesDataBacthSysc(dataAsynParam);
}
/**
* 每小时同步oracle数据库暂态事件
* @date 2024/3/5
*/
@Scheduled(cron="0 0/10 * * * ?")
public void executeEvent() {
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 减去一个小时
LocalDateTime oneHourAgo = now.minusHours(1);
// 将分钟和秒设置为0
LocalDateTime result = oneHourAgo.truncatedTo(ChronoUnit.HOURS);
// 加上59分钟59秒
LocalDateTime modifiedResult = result.plusMinutes(59).plusSeconds(59);
oracleEventDetailToMysqlService.eventBatch(result,modifiedResult);
}
/**
* 每天同步台账装置的运行状态,监测点的运行状态
* @date 2024/3/5
*/
@Scheduled(cron="0 0/10 * * * ?")
public void synLedgerRunFlag() {
oracleMonitorStatusToMysqlService.monitorStatusSync();
}
/**
* 每天同步台账装置的最后更新时间
* @date 2024/3/5
*/
@Scheduled(cron="0 45 0 * * ?")
public void synLedgerUpdateTime() {
oracleMonitorStatusToMysqlService.devUpdateTimeSync();
}
/**
* 每天同步台账监测点部分信息 仅数据中心使用
* @date 2024/3/5
*/
/* @Scheduled(cron="0 30 0 * * ?")
public void synLedgerMonitor() {
oracleMonitorStatusToMysqlService.monitorTimeSync();
}*/
}
//package com.njcn.influx.job;
//
//import com.njcn.influx.bo.param.TableEnum;
//import com.njcn.influx.service.OracleEventDetailToMysqlService;
//import com.njcn.influx.service.OracleMonitorStatusToMysqlService;
//import com.njcn.influx.service.OracleToInfluxDBService;
//import com.njcn.influx.service.PqsOnlineratePOService;
//import com.njcn.oracle.bo.param.DataAsynParam;
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.scheduling.annotation.EnableScheduling;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//
//import java.time.LocalDate;
//import java.time.LocalDateTime;
//import java.time.temporal.ChronoUnit;
//
///**
// * Description:
// * Date: 2024/1/18 10:15【需求编号】
// *
// * @author clam
// * @version V1.0.0
// */
//@Component
//@EnableScheduling
//@RequiredArgsConstructor
//@Slf4j
//public class OracleToInfluxDBJob {
//
//
// private final OracleToInfluxDBService oracleToInfluxDBService;
//
// private final OracleEventDetailToMysqlService oracleEventDetailToMysqlService;
// private final OracleMonitorStatusToMysqlService oracleMonitorStatusToMysqlService;
//
// private final PqsOnlineratePOService pqsOnlineratePOService;
// /*@Scheduled(cron="0 5 0 * * ?")
// public void execute() {
// DataAsynParam dataAsynParam = new DataAsynParam();
// dataAsynParam.setStartTime(LocalDate.now().plusDays(-1));
// dataAsynParam.setEndTime(LocalDate.now().plusDays(-1));
// dataAsynParam.setTableNames(TableEnum.getExecutableTypes());
// dataAsynParam.setExcuteType(2);
// oracleToInfluxDBService.dataBacthSysc(dataAsynParam);
// }*/
//
// //每小时03分钟时执行上一个小时的数据同步
// //河北这边比较特殊,
// @Scheduled(cron="0 15 * * * ?")
// public void executeHours() {
// DataAsynParam dataAsynParam = new DataAsynParam();
// // 获取当前时间
// LocalDateTime now = LocalDateTime.now();
//
// // 减去一个小时
// LocalDateTime oneHourAgo = now.minusHours(2);
//
// // 将分钟和秒设置为0
// LocalDateTime result = oneHourAgo.truncatedTo(ChronoUnit.HOURS);
// // 加上59分钟59秒
// LocalDateTime modifiedResult = result.plusMinutes(59).plusSeconds(59);
// dataAsynParam.setStartDateTime(result);
// dataAsynParam.setEndDateTime(modifiedResult);
// dataAsynParam.setTableNames(TableEnum.getExecutableTypes());
// dataAsynParam.setExcuteType(2);
// oracleToInfluxDBService.hourseDataBacthSysc(dataAsynParam);
// }
// //每10分钟执行一次pqOnlinerate表同步
//// @Scheduled(cron="0 0/10 * * * ?")
//// public void pqOnlinerate() {
//// DataAsynParam dataAsynParam = new DataAsynParam();
//// // 获取当前时间
//// LocalDateTime now = LocalDateTime.now();
//// dataAsynParam.setStartDateTime(now);
//// pqsOnlineratePOService.minutesDataBacthSysc(dataAsynParam);
//// }
//
// /**
// * 每小时同步oracle数据库暂态事件
// * @date 2024/3/5
// */
// @Scheduled(cron="0 0/10 * * * ?")
// public void executeEvent() {
// // 获取当前时间
// LocalDateTime now = LocalDateTime.now();
// // 减去一个小时
// LocalDateTime oneHourAgo = now.minusHours(1);
// // 将分钟和秒设置为0
// LocalDateTime result = oneHourAgo.truncatedTo(ChronoUnit.HOURS);
// // 加上59分钟59秒
// LocalDateTime modifiedResult = result.plusMinutes(59).plusSeconds(59);
// oracleEventDetailToMysqlService.eventBatch(result,modifiedResult);
// }
//
// /**
// * 每天同步台账装置的运行状态,监测点的运行状态
// * @date 2024/3/5
// */
// @Scheduled(cron="0 0/10 * * * ?")
// public void synLedgerRunFlag() {
// oracleMonitorStatusToMysqlService.monitorStatusSync();
// }
//
// /**
// * 每天同步台账装置的最后更新时间
// * @date 2024/3/5
// */
// @Scheduled(cron="0 45 0 * * ?")
// public void synLedgerUpdateTime() {
// oracleMonitorStatusToMysqlService.devUpdateTimeSync();
// }
//
// /**
// * 每天同步台账监测点部分信息 仅数据中心使用
// * @date 2024/3/5
// */
// /* @Scheduled(cron="0 30 0 * * ?")
// public void synLedgerMonitor() {
// oracleMonitorStatusToMysqlService.monitorTimeSync();
// }*/
//}
//
//

View File

@@ -0,0 +1,50 @@
package com.njcn.influx.job;
import com.njcn.influx.service.OracleToMysqlService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
/**
* Description:
* Date: 2026/04/20 上午 9:44【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Component
@EnableScheduling
@RequiredArgsConstructor
@Slf4j
public class OracleToMySqlJob {
private final OracleToMysqlService oracleToMysqlService;
@Scheduled(cron = "${business.executeEventExpression}")
public void executeEvent() {
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 减去一个小时
LocalDateTime oneHourAgo = now.minusHours(3);
oracleToMysqlService.OracleToMySqlJob(oneHourAgo,now);
}
// ==============================
// 每10分钟重试 + 2天过期处理
// ==============================
@Scheduled(cron = "${business.retryAndCleanEvery10Min}")
public void retryAndCleanEvery10Min() {
oracleToMysqlService.retryAndCleanEvery10Min();;
}
}

View File

@@ -0,0 +1,130 @@
business:
#分片次数一定为24的约数1 2 3 4 6 8 12 24
slice: 4
# 0.pq 1.pms
type: 0
#处理波形数据位置
wavePath: D:\Comtrade
retryAndCleanEvery10Min: 0 */10 * * * ?
executeEventExpression: 0 */3 * * * ?
server:
port: 8093
#springsecurity默认过期时间30m
servlet:
session:
timeout: 1440m
target:
host: 192.168.1.67
port: 22
username: root
password: 'dnzl@#001'
basePath: /home/hndnzl
privateKeyPath:
spring:
security:
user:
name: data_njcn
password: dnzl@#002
#influxDB内容配置
influx:
url: http://192.168.1.103:18086
user: admin
password: 123456
database: pqsbase_wx
mapper-location: com.njcn.influx.imapper
application:
name: oracle-influx
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
druid:
initial-size: 10
# 初始化大小,最小,最大
min-idle: 20
maxActive: 500
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
testWhileIdle: true
testOnBorrow: true
validation-query: SELECT 1 from dual
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,wall
filter:
wall:
config:
multi-statement-allow: true
none-base-statement-allow: true
enabled: true
# 配置DruidStatFilter
web-stat-filter:
enabled: true
url-pattern: "/*"
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
# 配置DruidStatViewServlet
stat-view-servlet:
enabled: true
url-pattern: "/druid/*"
# IP白名单(没有配置或者为空,则允许所有访问)
allow: #127.0.0.1,192.168.163.1
# IP黑名单 (存在共同时deny优先于allow)
deny: #192.168.1.73
# 禁用HTML页面上的“Reset All”功能
reset-enable: false
# 登录名
login-username: admin
# 登录密码
login-password: njcnpqs
query-timeout: 36000
primary: master
strict: false
datasource:
master:
url: jdbc:oracle:thin:@127.0.0.1:1521:pqsbase
username: pqsadmin
password: '@#001njcnpqs'
driver-class-name: oracle.jdbc.driver.OracleDriver
target:
url: jdbc:mysql://192.168.1.103:13307/pqsinfo_hn?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=CTT
username: root
password: njcnpqs
driver-class-name: com.mysql.cj.jdbc.Driver
redis:
database: 15
host: 192.168.1.103
port: 16379
password: njcnpqs
timeout: 5000
lettuce:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
#不做限制的参数配置
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.oracle.bo
mapper-locations: classpath*:com/njcn/**/mapping/*.xml
configuration:
#驼峰命名
map-underscore-to-camel-case: true
#配置sql日志输出
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#关闭日志输出
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
global-config:
db-config:
#指定主键生成策略
id-type: assign_uuid

View File

@@ -0,0 +1,130 @@
business:
#分片次数一定为24的约数1 2 3 4 6 8 12 24
slice: 4
# 0.pq 1.pms
type: 0
#处理波形数据位置
wavePath: F:\Comtrade
retryAndCleanEvery10Min: 0 */10 * * * ?
executeEventExpression: 0 */3 * * * ?
server:
port: 8093
#springsecurity默认过期时间30m
servlet:
session:
timeout: 1440m
target:
host: 10.95.53.49
port: 9389
username: hndnzl
password: '@#001njcnPQS'
basePath: /home/hndnzl
privateKeyPath:
spring:
security:
user:
name: data_njcn
password: dnzl@#002
#influxDB内容配置
influx:
url: http://10.95.53.49:8086
user: pqsdata
password: njcn@#001
database: pqsbase
mapper-location: com.njcn.influx.imapper
application:
name: oracle-influx
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
druid:
initial-size: 10
# 初始化大小,最小,最大
min-idle: 20
maxActive: 500
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
testWhileIdle: true
testOnBorrow: true
validation-query: SELECT 1 from dual
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,wall
filter:
wall:
config:
multi-statement-allow: true
none-base-statement-allow: true
enabled: true
# 配置DruidStatFilter
web-stat-filter:
enabled: true
url-pattern: "/*"
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
# 配置DruidStatViewServlet
stat-view-servlet:
enabled: true
url-pattern: "/druid/*"
# IP白名单(没有配置或者为空,则允许所有访问)
allow: #127.0.0.1,192.168.163.1
# IP黑名单 (存在共同时deny优先于allow)
deny: #192.168.1.73
# 禁用HTML页面上的“Reset All”功能
reset-enable: false
# 登录名
login-username: admin
# 登录密码
login-password: njcnpqs
query-timeout: 36000
primary: master
strict: false
datasource:
master:
url: jdbc:oracle:thin:@10.95.53.40:11521:pqsbase
username: pqsadmin
password: "@#001njcnpqs"
driver-class-name: oracle.jdbc.driver.OracleDriver
target:
url: jdbc:mysql://10.95.53.49:13306/pqsinfo_hn?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=CTT
username: root
password: njcnpqs
driver-class-name: com.mysql.cj.jdbc.Driver
redis:
database: 15
host: 10.95.53.49
port: 16379
password: njcnpqs
timeout: 5000
lettuce:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
#不做限制的参数配置
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.oracle.bo
mapper-locations: classpath*:com/njcn/**/mapping/*.xml
configuration:
#驼峰命名
map-underscore-to-camel-case: true
#配置sql日志输出
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#关闭日志输出
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
global-config:
db-config:
#指定主键生成策略
id-type: assign_uuid

View File

@@ -1,119 +1,3 @@
business:
#分片次数一定为24的约数1 2 3 4 6 8 12 24
slice: 4
# 0.pq 1.pms
type: 0
server:
port: 8090
#springsecurity默认过期时间30m
servlet:
session:
timeout: 1440m
spring:
security:
user:
name: data_njcn
password: dnzl@#002
#influxDB内容配置
influx:
url: http://192.168.1.102:8086
user: admin
password: 123456
database: pqsbase_sjzx
mapper-location: com.njcn.influx.imapper
application:
name: oracle-influx
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
druid:
initial-size: 10
# 初始化大小,最小,最大
min-idle: 20
maxActive: 500
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
testWhileIdle: true
testOnBorrow: true
validation-query: SELECT 1 from dual
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,wall
filter:
wall:
config:
multi-statement-allow: true
none-base-statement-allow: true
enabled: true
# 配置DruidStatFilter
web-stat-filter:
enabled: true
url-pattern: "/*"
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
# 配置DruidStatViewServlet
stat-view-servlet:
enabled: true
url-pattern: "/druid/*"
# IP白名单(没有配置或者为空,则允许所有访问)
allow: #127.0.0.1,192.168.163.1
# IP黑名单 (存在共同时deny优先于allow)
deny: #192.168.1.73
# 禁用HTML页面上的“Reset All”功能
reset-enable: false
# 登录名
login-username: admin
# 登录密码
login-password: njcnpqs
query-timeout: 36000
primary: master
strict: false
datasource:
master:
url: jdbc:oracle:thin:@192.168.1.101:1521:pqsbase
username: pqsadmin
password: Pqsadmin123
driver-class-name: oracle.jdbc.driver.OracleDriver
target:
url: jdbc:mysql://192.168.1.102:13306/pqsinfo?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=CTT
username: root
password: njcnpqs
driver-class-name: com.mysql.cj.jdbc.Driver
redis:
database: 15
host: 192.168.1.22
port: 16379
password: njcnpqs
timeout: 5000
lettuce:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
#不做限制的参数配置
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.oracle.bo
mapper-locations: classpath*:com/njcn/**/mapping/*.xml
configuration:
#驼峰命名
map-underscore-to-camel-case: true
#配置sql日志输出
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#关闭日志输出
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
global-config:
db-config:
#指定主键生成策略
id-type: assign_uuid
profiles:
active: bd

View File

@@ -1,102 +1,102 @@
#文件位置配置
business:
#分片次数一定为24的约数1 2 3 4 6 8 12 24
slice: 4
# 0.pq 1.pms
type: 1
server:
port: 8090
spring:
security:
user:
name: data_njcn
password: dnzl@#002
#influxDB内容配置
influx:
url: http://25.36.232.36:8086
user: admin
password: admin
database: pqsbase_hbcs
mapper-location: com.njcn.influx.imapper
application:
name: oracle-influx
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
druid:
initial-size: 10
# 初始化大小,最小,最大
min-idle: 20
maxActive: 500
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
testWhileIdle: true
testOnBorrow: true
validation-query: SELECT 1 from dual
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,wall
filter:
wall:
config:
multi-statement-allow: true
none-base-statement-allow: true
enabled: true
# 配置DruidStatFilter
web-stat-filter:
enabled: true
url-pattern: "/*"
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
# 配置DruidStatViewServlet
stat-view-servlet:
enabled: true
url-pattern: "/druid/*"
# IP白名单(没有配置或者为空,则允许所有访问)
allow: #127.0.0.1,192.168.163.1
# IP黑名单 (存在共同时deny优先于allow)
deny: #192.168.1.73
# 禁用HTML页面上的“Reset All”功能
reset-enable: false
# 登录名
login-username: admin
# 登录密码
login-password: njcnpqs
query-timeout: 36000
primary: master
strict: false
datasource:
master:
url: jdbc:oracle:thin:@10.122.32.73:11521/dwxb
username: pqsadmin
password: pqsadmin_123
driver-class-name: oracle.jdbc.driver.OracleDriver
target:
url: jdbc:mysql://25.36.232.37:13306/pmsinfo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
username: root
password: Huawei12#
driver-class-name: com.mysql.cj.jdbc.Driver
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.oracle.bo
mapper-locations: classpath*:com/njcn/**/mapping/*.xml
configuration:
#驼峰命名
map-underscore-to-camel-case: true
#配置sql日志输出
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#关闭日志输出
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
global-config:
db-config:
#指定主键生成策略
id-type: assign_uuid
##文件位置配置
#business:
# #分片次数一定为24的约数1 2 3 4 6 8 12 24
# slice: 4
# # 0.pq 1.pms
# type: 1
#
#server:
# port: 8090
#spring:
# security:
# user:
# name: data_njcn
# password: dnzl@#002
# #influxDB内容配置
# influx:
# url: http://25.36.232.36:8086
# user: admin
# password: admin
# database: pqsbase_hbcs
# mapper-location: com.njcn.influx.imapper
# application:
# name: oracle-influx
# autoconfigure:
# exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
# datasource:
# dynamic:
# druid:
# initial-size: 10
# # 初始化大小,最小,最大
# min-idle: 20
# maxActive: 500
# # 配置获取连接等待超时的时间
# maxWait: 60000
# # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
# timeBetweenEvictionRunsMillis: 60000
# # 配置一个连接在池中最小生存的时间,单位是毫秒
# minEvictableIdleTimeMillis: 300000
# testWhileIdle: true
# testOnBorrow: true
# validation-query: SELECT 1 from dual
# testOnReturn: false
# # 打开PSCache并且指定每个连接上PSCache的大小
# poolPreparedStatements: true
# maxPoolPreparedStatementPerConnectionSize: 20
# filters: stat,wall
# filter:
# wall:
# config:
# multi-statement-allow: true
# none-base-statement-allow: true
# enabled: true
# # 配置DruidStatFilter
# web-stat-filter:
# enabled: true
# url-pattern: "/*"
# exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
# # 配置DruidStatViewServlet
# stat-view-servlet:
# enabled: true
# url-pattern: "/druid/*"
# # IP白名单(没有配置或者为空,则允许所有访问)
# allow: #127.0.0.1,192.168.163.1
# # IP黑名单 (存在共同时deny优先于allow)
# deny: #192.168.1.73
# # 禁用HTML页面上的“Reset All”功能
# reset-enable: false
# # 登录名
# login-username: admin
# # 登录密码
# login-password: njcnpqs
# query-timeout: 36000
# primary: master
# strict: false
# datasource:
# master:
# url: jdbc:oracle:thin:@10.122.32.73:11521/dwxb
# username: pqsadmin
# password: pqsadmin_123
# driver-class-name: oracle.jdbc.driver.OracleDriver
# target:
# url: jdbc:mysql://25.36.232.37:13306/pmsinfo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
# username: root
# password: Huawei12#
# driver-class-name: com.mysql.cj.jdbc.Driver
##mybatis配置信息
#mybatis-plus:
# #别名扫描
# type-aliases-package: com.njcn.oracle.bo
# mapper-locations: classpath*:com/njcn/**/mapping/*.xml
# configuration:
# #驼峰命名
# map-underscore-to-camel-case: true
# #配置sql日志输出
# # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# #关闭日志输出
# log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
# global-config:
# db-config:
# #指定主键生成策略
# id-type: assign_uuid
#

View File

@@ -1,101 +1,101 @@
#文件位置配置
business:
#分片次数一定为24的约数1 2 3 4 6 8 12 24
slice: 4
# 0.pq 1.pms
type: 0
server:
port: 8090
spring:
security:
user:
name: data_njcn
password: dnzl@#002
#influxDB内容配置
influx:
url: http://192.168.1.102:8086
user: admin
password: 123456
database: pqsbase_sjzx
mapper-location: com.njcn.influx.imapper
application:
name: oracle-influx
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
druid:
initial-size: 10
# 初始化大小,最小,最大
min-idle: 20
maxActive: 500
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
testWhileIdle: true
testOnBorrow: true
validation-query: SELECT 1 from dual
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,wall
filter:
wall:
config:
multi-statement-allow: true
none-base-statement-allow: true
enabled: true
# 配置DruidStatFilter
web-stat-filter:
enabled: true
url-pattern: "/*"
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
# 配置DruidStatViewServlet
stat-view-servlet:
enabled: true
url-pattern: "/druid/*"
# IP白名单(没有配置或者为空,则允许所有访问)
allow: #127.0.0.1,192.168.163.1
# IP黑名单 (存在共同时deny优先于allow)
deny: #192.168.1.73
# 禁用HTML页面上的“Reset All”功能
reset-enable: false
# 登录名
login-username: admin
# 登录密码
login-password: njcnpqs
query-timeout: 36000
primary: master
strict: false
datasource:
master:
url: jdbc:oracle:thin:@192.168.1.101:1521:pqsbase
username: pqsadmin
password: Pqsadmin123
driver-class-name: oracle.jdbc.driver.OracleDriver
target:
url: jdbc:mysql://192.168.1.102:13306/pqsinfo?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=CTT
username: root
password: njcnpqs
driver-class-name: com.mysql.cj.jdbc.Driver
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.oracle.bo
mapper-locations: classpath*:com/njcn/**/mapping/*.xml
configuration:
#驼峰命名
map-underscore-to-camel-case: true
#配置sql日志输出
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#关闭日志输出
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
global-config:
db-config:
#指定主键生成策略
id-type: assign_uuid
##文件位置配置
#business:
##分片次数一定为24的约数1 2 3 4 6 8 12 24
# slice: 4
# # 0.pq 1.pms
# type: 0
#server:
# port: 8090
#spring:
# security:
# user:
# name: data_njcn
# password: dnzl@#002
# #influxDB内容配置
# influx:
# url: http://192.168.1.102:8086
# user: admin
# password: 123456
# database: pqsbase_sjzx
# mapper-location: com.njcn.influx.imapper
# application:
# name: oracle-influx
# autoconfigure:
# exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
# datasource:
# dynamic:
# druid:
# initial-size: 10
# # 初始化大小,最小,最大
# min-idle: 20
# maxActive: 500
# # 配置获取连接等待超时的时间
# maxWait: 60000
# # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
# timeBetweenEvictionRunsMillis: 60000
# # 配置一个连接在池中最小生存的时间,单位是毫秒
# minEvictableIdleTimeMillis: 300000
# testWhileIdle: true
# testOnBorrow: true
# validation-query: SELECT 1 from dual
# testOnReturn: false
# # 打开PSCache并且指定每个连接上PSCache的大小
# poolPreparedStatements: true
# maxPoolPreparedStatementPerConnectionSize: 20
# filters: stat,wall
# filter:
# wall:
# config:
# multi-statement-allow: true
# none-base-statement-allow: true
# enabled: true
# # 配置DruidStatFilter
# web-stat-filter:
# enabled: true
# url-pattern: "/*"
# exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
# # 配置DruidStatViewServlet
# stat-view-servlet:
# enabled: true
# url-pattern: "/druid/*"
# # IP白名单(没有配置或者为空,则允许所有访问)
# allow: #127.0.0.1,192.168.163.1
# # IP黑名单 (存在共同时deny优先于allow)
# deny: #192.168.1.73
# # 禁用HTML页面上的“Reset All”功能
# reset-enable: false
# # 登录名
# login-username: admin
# # 登录密码
# login-password: njcnpqs
# query-timeout: 36000
# primary: master
# strict: false
# datasource:
# master:
# url: jdbc:oracle:thin:@192.168.1.101:1521:pqsbase
# username: pqsadmin
# password: Pqsadmin123
# driver-class-name: oracle.jdbc.driver.OracleDriver
# target:
# url: jdbc:mysql://192.168.1.102:13306/pqsinfo?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=CTT
# username: root
# password: njcnpqs
# driver-class-name: com.mysql.cj.jdbc.Driver
##mybatis配置信息
#mybatis-plus:
# #别名扫描
# type-aliases-package: com.njcn.oracle.bo
# mapper-locations: classpath*:com/njcn/**/mapping/*.xml
# configuration:
# #驼峰命名
# map-underscore-to-camel-case: true
# #配置sql日志输出
## log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# #关闭日志输出
# log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
# global-config:
# db-config:
# #指定主键生成策略
# id-type: assign_uuid
#

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="20 seconds" debug="false">
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<!-- 直接使用固定配置避免Spring配置解析时机问题 -->
<property name="log.projectName" value="influx-target"/>
<property name="logCommonLevel" value="info"/>
<property name="logHomeDir" value="D:\logs"/>
<!-- <property name="logHomeDir" value="usr/local/logs"/>-->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="ec"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<!--日志输出格式-->
<property name="log.pattern"
value="|-%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%level} ${log.projectName} -- %t %logger{100}.%M ==> %m%n${Log_EXCEPTION_CONVERSION_WORD:-%ec}}}"/>
<property name="log.maxHistory" value="30"/>
<!--客户端输出日志-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 自动高亮日志级别ERROR=红色, WARN=黄色, INFO=绿色等) -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %logger{36} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--系统中常规的debug日志-->
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender -->
<appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>
${logHomeDir}/${log.projectName}/debug/debug.log
</file>
<!-- 如果日志级别等于配置级别过滤器会根据onMath 和 onMismatch接收或拒绝日志。 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 设置过滤级别 -->
<level>DEBUG</level>
<!-- 用于配置符合过滤条件的操作 -->
<onMatch>ACCEPT</onMatch>
<!-- 用于配置不符合过滤条件的操作 -->
<onMismatch>DENY</onMismatch>
</filter>
<!-- 最常用的滚动策略,它根据时间来制定滚动策略.既负责滚动也负责触发滚动 SizeAndTimeBasedRollingPolicy-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志输出位置 可相对、和绝对路径 -->
<fileNamePattern>
${logHomeDir}/${log.projectName}/debug/debug.log.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件,假设设置每个月滚动,且<maxHistory>是6
则只保存最近6个月的文件删除之前的旧文件。注意删除旧文件是那些为了归档而创建的目录也会被删除 -->
<maxHistory>${log.maxHistory:-30}</maxHistory>
<!--重启清理日志文件-->
<!-- <cleanHistoryOnStart>true</cleanHistoryOnStart>-->
<!--每个文件最多100MB保留N天的历史记录但最多20GB-->
<!--<totalSizeCap>20GB</totalSizeCap>-->
<!--日志文件最大的大小-->
<!--<MaxFileSize>${log.maxSize}</MaxFileSize>-->
</rollingPolicy>
<encoder>
<pattern>
${log.pattern}
</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--系统中常规的info日志-->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>
${logHomeDir}/${log.projectName}/info/info.log
</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${logHomeDir}/${log.projectName}/info/info.log.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>${log.maxHistory:-30}</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>
${log.pattern}
</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--系统中常规的error日志-->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>
${logHomeDir}/${log.projectName}/error/error.log
</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${logHomeDir}/${log.projectName}/error/error.log.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>${log.maxHistory:-30}</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>
${log.pattern}
</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
<logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
<logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
<logger name="com.njcn" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG"/>
<appender-ref ref="INFO"/>
<appender-ref ref="ERROR"/>
</logger>
<root level="${logCommonLevel}">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG"/>
<appender-ref ref="INFO"/>
<appender-ref ref="ERROR"/>
</root>
</configuration>

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>迁移</title>
<title>数据迁移</title>
<link rel="stylesheet" href="./element.css" />
<script src="./vue.js"></script>
<script src="./element.js"></script>
@@ -35,15 +35,15 @@
style="width: 360px"
>
<el-option label="电压闪变数据表-DataFlicker" value="DataFlicker"></el-option>
<!-- <el-option label="电压波动数据表-DataFluc" value="DataFluc"></el-option>-->
<!-- <el-option label="谐波电流角度数据表-DataHarmphasicI" value="DataHarmphasicI"></el-option>-->
<!-- <el-option label="谐波电压角度数据表-DataHarmphasicV" value="DataHarmphasicV"></el-option>-->
<!-- <el-option label="有功功率数据表-DataHarmpowerP" value="DataHarmpowerP"></el-option>-->
<!-- <el-option label="无功功率数据表-DataHarmpowerQ" value="DataHarmpowerQ"></el-option>-->
<!-- <el-option label="视在功率数据表-DataHarmpowerS" value="DataHarmpowerS"></el-option>-->
<!-- <el-option label="谐波电流含有率数据表-DataHarmrateI" value="DataHarmrateI"></el-option>-->
<el-option label="电压波动数据表-DataFluc" value="DataFluc"></el-option>
<el-option label="谐波电流角度数据表-DataHarmphasicI" value="DataHarmphasicI"></el-option>
<el-option label="谐波电压角度数据表-DataHarmphasicV" value="DataHarmphasicV"></el-option>
<el-option label="有功功率数据表-DataHarmpowerP" value="DataHarmpowerP"></el-option>
<el-option label="无功功率数据表-DataHarmpowerQ" value="DataHarmpowerQ"></el-option>
<el-option label="视在功率数据表-DataHarmpowerS" value="DataHarmpowerS"></el-option>
<el-option label="谐波电流含有率数据表-DataHarmrateI" value="DataHarmrateI"></el-option>
<el-option label="谐波电压含有率数据表-DataHarmrateV" value="DataHarmrateV"></el-option>
<!-- <el-option label="电流简谐波幅值数据表-DataInharmI" value="DataInharmI"></el-option>-->
<el-option label="电流简谐波幅值数据表-DataInharmI" value="DataInharmI"></el-option>
<el-option label="电压间谐波幅值数据表-DataInharmV" value="DataInharmV"></el-option>
<el-option label="谐波电流幅值数据表-DataI" value="DataI"></el-option>
<el-option label="长时闪变数据表-DataPlt" value="DataPlt"></el-option>
@@ -149,15 +149,15 @@
checkAll: true,
tableNames: [
'DataFlicker',
<!-- 'DataFluc',-->
<!-- 'DataHarmphasicI',-->
<!-- 'DataHarmphasicV',-->
<!-- 'DataHarmpowerP',-->
<!-- 'DataHarmpowerQ',-->
<!-- 'DataHarmpowerS',-->
<!-- 'DataHarmrateI',-->
'DataFluc',
'DataHarmphasicI',
'DataHarmphasicV',
'DataHarmpowerP',
'DataHarmpowerQ',
'DataHarmpowerS',
'DataHarmrateI',
'DataHarmrateV',
<!-- 'DataInharmI',-->
'DataInharmI',
'DataInharmV',
'DataI',
'DataPlt',
@@ -166,15 +166,15 @@
],
tableNames2: [
'DataFlicker',
<!-- 'DataFluc',-->
<!-- 'DataHarmphasicI',-->
<!-- 'DataHarmphasicV',-->
<!-- 'DataHarmpowerP',-->
<!-- 'DataHarmpowerQ',-->
<!-- 'DataHarmpowerS',-->
<!-- 'DataHarmrateI',-->
'DataFluc',
'DataHarmphasicI',
'DataHarmphasicV',
'DataHarmpowerP',
'DataHarmpowerQ',
'DataHarmpowerS',
'DataHarmrateI',
'DataHarmrateV',
<!-- 'DataInharmI',-->
'DataInharmI',
'DataInharmV',
'DataI',
'DataPlt',

View File

@@ -6,6 +6,7 @@ import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.njcn.influx.bo.po.InfluxDBDataFlicker;
import com.njcn.influx.core.InfluxExecutor;
import com.njcn.influx.imapper.InfluxDBDataFlickerMapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.po.DataFlicker;
import com.njcn.oracle.mybatis.service.IReplenishMybatisService;
@@ -18,6 +19,7 @@ import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -27,7 +29,7 @@ import java.util.stream.Collectors;
* @date 2021年12月14日 12:55
*/
public class DataTest extends BaseJunitTest {
private @Autowired InfluxExecutor interpreter;
private @Autowired InfluxDBDataFlickerMapper influxDBDataFlickerMapper;
@@ -39,23 +41,42 @@ public class DataTest extends BaseJunitTest {
// LocalDateTime endTime = LocalDateTimeUtil.parse("1970-01-02 00:00:10", DatePattern.NORM_DATETIME_PATTERN);
// LocalDateTime startTime = LocalDateTimeUtil.offset(endTime, -2, ChronoUnit.HOURS);
MigrationParam migrationParam = new MigrationParam();
migrationParam.setStartTime(startTime);
migrationParam.setEndTime(endTime);
IReplenishMybatisService executor = (IReplenishMybatisService) SpringUtil.getBean(Class.forName("com.njcn.oracle.service.impl.DataFlickerServiceImpl"));
//查询数据
List<DataFlicker> temp1 = executor.queryData(migrationParam);
List<InfluxDBDataFlicker> collect = temp1.stream().map(temp -> {
InfluxDBDataFlicker dataFlicker = new InfluxDBDataFlicker();
dataFlicker = InfluxDBDataFlicker.oralceToInfluxDB(temp);
return dataFlicker;
}).collect(Collectors.toList());
Object args[] ={collect};
interpreter.insert(args);
System.out.println(1111111);
List<InfluxDBDataFlicker> dataFlickers = new ArrayList<>();
InfluxDBDataFlicker flicker1 = new InfluxDBDataFlicker();
flicker1.setTime(Instant.now().minusSeconds(60*60*24*50));
flicker1.setLineId("12345");
flicker1.setPhaseType("A");
flicker1.setFluc(1.0f);
flicker1.setPlt(1.0f);
flicker1.setPst(1.0f);
flicker1.setQualityFlag("1");
InfluxDBDataFlicker flicker2 = new InfluxDBDataFlicker();
flicker2.setTime(Instant.now().minusSeconds(60*60*24*24));
flicker2.setLineId("12345");
flicker2.setPhaseType("A");
flicker2.setFluc(1.0f);
flicker2.setPlt(1.0f);
flicker2.setPst(1.0f);
flicker2.setQualityFlag("1");
dataFlickers.add(flicker1);
dataFlickers.add(flicker2);
influxDBDataFlickerMapper.insertBatch(dataFlickers);
// MigrationParam migrationParam = new MigrationParam();
// migrationParam.setStartTime(startTime);
// migrationParam.setEndTime(endTime);
// IReplenishMybatisService executor = (IReplenishMybatisService) SpringUtil.getBean(Class.forName("com.njcn.oracle.service.impl.DataFlickerServiceImpl"));
// //查询数据
// List<DataFlicker> temp1 = executor.queryData(migrationParam);
// List<InfluxDBDataFlicker> collect = temp1.stream().map(temp -> {
// InfluxDBDataFlicker dataFlicker = new InfluxDBDataFlicker();
// dataFlicker = InfluxDBDataFlicker.oralceToInfluxDB(temp);
//
// return dataFlicker;
// }).collect(Collectors.toList());
//
// Object args[] ={collect};
// interpreter.insert(args);
// System.out.println(1111111);
}