From 31b539f44eba24847c883972f0e355d8e9b10bd5 Mon Sep 17 00:00:00 2001
From: hzj <826100833@qq.com>
Date: Thu, 18 Jan 2024 14:24:48 +0800
Subject: [PATCH] =?UTF-8?q?oralce=E5=90=8C=E6=AD=A5=E5=88=B0influxDB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../njcn/influx/job/OracleToInfluxDBJob.java | 38 ++++++++++
.../com/njcn/oracle/bo/po/JobHistoryLog.java | 37 ++++++++++
.../mapper/mapping/JobHistoryLogMapper.xml | 14 ++++
.../mybatis/mapper/JobHistoryLogMapper.java | 15 ++++
.../oracle/service/JobHistoryLogService.java | 16 ++++
.../impl/JobHistoryLogServiceImpl.java | 21 ++++++
.../com/njcn/oracle/util/LocalDateUtil.java | 5 +-
.../njcn/oracle/job/OracleToOralceJob.java | 73 +++++++++++++++++++
.../src/main/resources/application.yml | 10 ++-
9 files changed, 226 insertions(+), 3 deletions(-)
create mode 100644 influx-data/influx-target/src/main/java/com/njcn/influx/job/OracleToInfluxDBJob.java
create mode 100644 oracle-data/oracle-source/src/main/java/com/njcn/oracle/bo/po/JobHistoryLog.java
create mode 100644 oracle-data/oracle-source/src/main/java/com/njcn/oracle/mapper/mapping/JobHistoryLogMapper.xml
create mode 100644 oracle-data/oracle-source/src/main/java/com/njcn/oracle/mybatis/mapper/JobHistoryLogMapper.java
create mode 100644 oracle-data/oracle-source/src/main/java/com/njcn/oracle/service/JobHistoryLogService.java
create mode 100644 oracle-data/oracle-source/src/main/java/com/njcn/oracle/service/impl/JobHistoryLogServiceImpl.java
create mode 100644 oracle-data/oracle-target/src/main/java/com/njcn/oracle/job/OracleToOralceJob.java
diff --git a/influx-data/influx-target/src/main/java/com/njcn/influx/job/OracleToInfluxDBJob.java b/influx-data/influx-target/src/main/java/com/njcn/influx/job/OracleToInfluxDBJob.java
new file mode 100644
index 0000000..5f0fa0e
--- /dev/null
+++ b/influx-data/influx-target/src/main/java/com/njcn/influx/job/OracleToInfluxDBJob.java
@@ -0,0 +1,38 @@
+package com.njcn.influx.job;
+
+import com.njcn.influx.bo.param.TableEnum;
+import com.njcn.influx.service.OracleToInfluxDBService;
+import com.njcn.oracle.bo.param.DataAsynParam;
+import com.njcn.oracle.bo.param.ServiceTypeEnum;
+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;
+
+/**
+ * Description:
+ * Date: 2024/1/18 10:15【需求编号】
+ *
+ * @author clam
+ * @version V1.0.0
+ */
+@Component
+@EnableScheduling
+@RequiredArgsConstructor
+@Slf4j
+public class OracleToInfluxDBJob {
+
+
+ private final OracleToInfluxDBService oracleToInfluxDBService;
+ @Scheduled(cron="0 0 1 * * ?")
+ public void execute() {
+ DataAsynParam dataAsynParam = new DataAsynParam();
+ dataAsynParam.setStartTime(LocalDate.now().plusDays(-1));
+ dataAsynParam.setEndTime(LocalDate.now().plusDays(-1));
+ dataAsynParam.setTableNames(TableEnum.getExecutableTypes());
+ oracleToInfluxDBService.dataBacthSysc(dataAsynParam);
+ }
+}
diff --git a/oracle-data/oracle-source/src/main/java/com/njcn/oracle/bo/po/JobHistoryLog.java b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/bo/po/JobHistoryLog.java
new file mode 100644
index 0000000..c7cba77
--- /dev/null
+++ b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/bo/po/JobHistoryLog.java
@@ -0,0 +1,37 @@
+package com.njcn.oracle.bo.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.RequiredArgsConstructor;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * Description:
+ * Date: 2024/1/18 11:11【需求编号】
+ *
+ * @author clam
+ * @version V1.0.0
+ */
+@TableName(value = "JOB_HISTORY_LOG")
+@Data
+@AllArgsConstructor
+@RequiredArgsConstructor
+public class JobHistoryLog {
+ /**
+ * 执行日期
+ */
+ @TableId(value = "LAST_DATE", type = IdType.INPUT)
+ private LocalDate lastDate;
+
+ @TableField(value = "UPDATE_TIME")
+ private LocalDateTime updateTime;
+
+
+}
\ No newline at end of file
diff --git a/oracle-data/oracle-source/src/main/java/com/njcn/oracle/mapper/mapping/JobHistoryLogMapper.xml b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/mapper/mapping/JobHistoryLogMapper.xml
new file mode 100644
index 0000000..3a7172f
--- /dev/null
+++ b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/mapper/mapping/JobHistoryLogMapper.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+ LAST_DATE, UPDATE_TIME
+
+
\ No newline at end of file
diff --git a/oracle-data/oracle-source/src/main/java/com/njcn/oracle/mybatis/mapper/JobHistoryLogMapper.java b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/mybatis/mapper/JobHistoryLogMapper.java
new file mode 100644
index 0000000..4e6f39e
--- /dev/null
+++ b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/mybatis/mapper/JobHistoryLogMapper.java
@@ -0,0 +1,15 @@
+package com.njcn.oracle.mybatis.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.njcn.oracle.bo.po.JobHistoryLog;
+
+/**
+ *
+ * Description:
+ * Date: 2024/1/18 11:11【需求编号】
+ *
+ * @author clam
+ * @version V1.0.0
+ */
+public interface JobHistoryLogMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/oracle-data/oracle-source/src/main/java/com/njcn/oracle/service/JobHistoryLogService.java b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/service/JobHistoryLogService.java
new file mode 100644
index 0000000..f3b0473
--- /dev/null
+++ b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/service/JobHistoryLogService.java
@@ -0,0 +1,16 @@
+package com.njcn.oracle.service;
+
+import com.njcn.oracle.bo.po.JobHistoryLog;
+import com.baomidou.mybatisplus.extension.service.IService;
+ /**
+ *
+ * Description:
+ * Date: 2024/1/18 11:11【需求编号】
+ *
+ * @author clam
+ * @version V1.0.0
+ */
+public interface JobHistoryLogService extends IService{
+
+
+}
diff --git a/oracle-data/oracle-source/src/main/java/com/njcn/oracle/service/impl/JobHistoryLogServiceImpl.java b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/service/impl/JobHistoryLogServiceImpl.java
new file mode 100644
index 0000000..9a9c393
--- /dev/null
+++ b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/service/impl/JobHistoryLogServiceImpl.java
@@ -0,0 +1,21 @@
+package com.njcn.oracle.service.impl;
+
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.njcn.oracle.bo.po.JobHistoryLog;
+import com.njcn.oracle.mybatis.mapper.JobHistoryLogMapper;
+import com.njcn.oracle.service.JobHistoryLogService;
+/**
+ *
+ * Description:
+ * Date: 2024/1/18 11:11【需求编号】
+ *
+ * @author clam
+ * @version V1.0.0
+ */
+@Service
+public class JobHistoryLogServiceImpl extends ServiceImpl implements JobHistoryLogService{
+
+}
diff --git a/oracle-data/oracle-source/src/main/java/com/njcn/oracle/util/LocalDateUtil.java b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/util/LocalDateUtil.java
index 1303388..5f3bc92 100644
--- a/oracle-data/oracle-source/src/main/java/com/njcn/oracle/util/LocalDateUtil.java
+++ b/oracle-data/oracle-source/src/main/java/com/njcn/oracle/util/LocalDateUtil.java
@@ -16,9 +16,12 @@ public class LocalDateUtil {
public static List getDateList(LocalDate startDate, LocalDate endDate) {
List dateList = new ArrayList<>();
long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);
- for (long i = 0; i <= daysBetween; i++) {
+ dateList.add(startDate);
+ for (long i = 1; i < daysBetween; i++) {
dateList.add(startDate.plusDays(i));
}
return dateList;
}
+
+
}
diff --git a/oracle-data/oracle-target/src/main/java/com/njcn/oracle/job/OracleToOralceJob.java b/oracle-data/oracle-target/src/main/java/com/njcn/oracle/job/OracleToOralceJob.java
new file mode 100644
index 0000000..f79c132
--- /dev/null
+++ b/oracle-data/oracle-target/src/main/java/com/njcn/oracle/job/OracleToOralceJob.java
@@ -0,0 +1,73 @@
+package com.njcn.oracle.job;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.njcn.oracle.bo.param.DataAsynParam;
+import com.njcn.oracle.bo.param.ServiceTypeEnum;
+import com.njcn.oracle.bo.po.JobHistoryLog;
+import com.njcn.oracle.service.IOracleService;
+import com.njcn.oracle.service.JobHistoryLogService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+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.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * Description:
+ * Date: 2024/1/18 10:08【需求编号】
+ *
+ * @author clam
+ * @version V1.0.0
+ */
+
+@Component
+@EnableScheduling
+@RequiredArgsConstructor
+@Slf4j
+public class OracleToOralceJob {
+ private final IOracleService oracleService;
+
+ private final JobHistoryLogService jobHistoryLogService;
+
+ @Value("${job.slice:3}")
+ private int slice;
+ @Value("${job.startime}")
+ private String startime;
+ @Value("${job.endtime}")
+ private String endtime;
+
+ @Scheduled(cron="0 5 0 * * ?")
+ public void execute() {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.select("max(LAST_DATE) as LAST_DATE");
+ LocalDate startDate ;
+ LocalDate endDate ;
+ JobHistoryLog one = jobHistoryLogService.getBaseMapper().selectOne(queryWrapper);
+ if (Objects.isNull(one)){
+ startDate =LocalDate.parse(startime);
+ }else {
+ startDate = one.getLastDate();
+ }
+ //获取配置的endtime。现在时间减1天,开始时间+时间间隔最小值当enddate
+ List dates = Arrays.asList(LocalDate.parse(endtime), LocalDate.now().plusDays(-1), startDate.plusDays(slice));
+
+ endDate = dates.stream().min(LocalDate::compareTo).get();
+
+
+ DataAsynParam dataAsynParam = new DataAsynParam();
+ dataAsynParam.setStartTime(startDate);
+ dataAsynParam.setEndTime(endDate);
+ dataAsynParam.setTableNames(ServiceTypeEnum.getExecutableTypes());
+ oracleService.dataBacthSysc(dataAsynParam);
+ jobHistoryLogService.save(new JobHistoryLog(endDate, LocalDateTime.now()));
+ }
+
+}
diff --git a/oracle-data/oracle-target/src/main/resources/application.yml b/oracle-data/oracle-target/src/main/resources/application.yml
index 2503542..cf1a9e8 100644
--- a/oracle-data/oracle-target/src/main/resources/application.yml
+++ b/oracle-data/oracle-target/src/main/resources/application.yml
@@ -62,8 +62,8 @@ spring:
driver-class-name: oracle.jdbc.driver.OracleDriver
target:
url: jdbc:oracle:thin:@192.168.1.51:1521:pqsbase
- username: pqsadmin_hn
- password: pqsadmin
+ username: pqsadmin
+ password: Pqsadmin123
driver-class-name: oracle.jdbc.driver.OracleDriver
#mybatis配置信息
mybatis-plus:
@@ -86,3 +86,9 @@ mybatis-plus:
business:
slice: 4
+#配置job相关参数
+job:
+ startime: 2023-01-01
+ endtime: 2023-04-01
+ #每天执行数据量(天数)
+ slice: 1