添加数据同步代码

This commit is contained in:
hzj
2024-01-09 10:25:59 +08:00
parent e4eb924267
commit a8059e4c3f
43 changed files with 365 additions and 100 deletions

View File

@@ -0,0 +1,25 @@
package com.njcn.oracle.bo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class DataAsynParam {
//起始时间
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
private LocalDate startTime;
//截止时间
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
private LocalDate endTime;
//指标名,对应表映射后的实体名
private List<String> tableNames;
}

View File

@@ -0,0 +1,18 @@
package com.njcn.oracle.bo.param;
import com.njcn.oracle.bo.po.JobDetail;
import lombok.Data;
/**
* Description:
* Date: 2024/1/9 9:21【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
public class JobQueryParam extends DataAsynParam{
private String state;
}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.oracle.mybatis.mapper.JobDetailMapper">
<resultMap id="BaseResultMap" type="com.njcn.oracle.bo.po.JobDetail">
<!--@mbg.generated-->
<!--@Table JOB_DETAIL-->
<id column="TABLE_NAME" jdbcType="VARCHAR" property="tableName" />
<id column="START_TIME" jdbcType="TIMESTAMP" property="startTime" />
<id column="END_TIME" jdbcType="TIMESTAMP" property="endTime" />
<id column="STATE" jdbcType="DECIMAL" property="state" />
<result column="ROW_COUNT" jdbcType="DECIMAL" property="rowCount" />
<result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
"TABLE_NAME", START_TIME, END_TIME, "STATE", "ROW_COUNT", UPDATE_TIME
</sql>
</mapper>

View File

@@ -0,0 +1,16 @@
package com.njcn.oracle.mybatis.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.oracle.bo.po.JobDetail;
/**
*
* Description:
* Date: 2024/1/8 12:27【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface JobDetailMapper extends MppBaseMapper<JobDetail> {
}

View File

@@ -2,10 +2,7 @@ package com.njcn.oracle.mybatis.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataFlicker;
import java.time.LocalDateTime;
import java.util.List;
/**

View File

@@ -0,0 +1,15 @@
package com.njcn.oracle.service;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.mybatis.service.IReplenishMybatisService;
/**
* Description:
* Date: 2024/1/8 16:16【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface DataSyncService {
void dataSync(IReplenishMybatisService executor, String temp, MigrationParam migration);
}

View File

@@ -0,0 +1,23 @@
package com.njcn.oracle.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.oracle.bo.param.JobQueryParam;
import com.njcn.oracle.bo.po.JobDetail;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
*
* Description:
* Date: 2024/1/8 12:27【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface JobDetailService extends IMppService<JobDetail> {
JobDetail select(JobDetail jobDetail);
List<JobDetail> selectByParam(JobQueryParam jobQueryParam);
}

View File

@@ -4,10 +4,8 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataFlicker;
import com.njcn.oracle.mapper.DataFlickerMapper;
import com.njcn.oracle.mybatis.service.IReplenishMybatisService;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataFlickerService;
import org.springframework.stereotype.Service;

View File

@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataFluc;
import com.njcn.oracle.mapper.DataFlucMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;

View File

@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataHarmphasicI;
import com.njcn.oracle.mapper.DataHarmphasicIMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataHarmphasicV;
import com.njcn.oracle.bo.po.DataHarmphasicV;
import com.njcn.oracle.mapper.DataHarmphasicVMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataHarmphasicVService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataHarmpowerP;
import com.njcn.oracle.bo.po.DataHarmpowerP;
import com.njcn.oracle.mapper.DataHarmpowerPMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataHarmpowerPService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataHarmpowerQ;
import com.njcn.oracle.bo.po.DataHarmpowerQ;
import com.njcn.oracle.mapper.DataHarmpowerQMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataHarmpowerQService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataHarmpowerS;
import com.njcn.oracle.bo.po.DataHarmpowerS;
import com.njcn.oracle.mapper.DataHarmpowerSMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataHarmpowerSService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataHarmrateI;
import com.njcn.oracle.bo.po.DataHarmrateI;
import com.njcn.oracle.mapper.DataHarmrateIMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataHarmrateIService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataHarmrateV;
import com.njcn.oracle.bo.po.DataHarmrateV;
import com.njcn.oracle.mapper.DataHarmrateVMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataHarmrateVService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataI;
import com.njcn.oracle.bo.po.DataI;
import com.njcn.oracle.mapper.DataIMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataIService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataInharmI;
import com.njcn.oracle.bo.po.DataInharmI;
import com.njcn.oracle.mapper.DataInharmIMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataInharmIService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataInharmV;
import com.njcn.oracle.bo.po.DataInharmV;
import com.njcn.oracle.mapper.DataInharmVMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataInharmVService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataPlt;
import com.njcn.oracle.bo.po.DataPlt;
import com.njcn.oracle.mapper.DataPltMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataPltService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -0,0 +1,77 @@
package com.njcn.oracle.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.po.JobDetail;
import com.njcn.oracle.mybatis.service.IReplenishMybatisService;
import com.njcn.oracle.service.DataSyncService;
import com.njcn.oracle.service.JobDetailService;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.Objects;
/**
* Description:
* Date: 2024/1/8 16:16【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
@RequiredArgsConstructor
public class DataSyncServiceImpl implements DataSyncService {
private final JobDetailService jobDetailService;
@Override
@Async
public void dataSync(IReplenishMybatisService executor, String temp, MigrationParam migration) {
List list = executor.queryData(migration);
JobDetail jobDetail = new JobDetail();
jobDetail.setTableName(temp);
jobDetail.setStartTime(migration.getStartTime());
jobDetail.setEndTime(migration.getEndTime());
JobDetail select = jobDetailService.select(jobDetail);
if (Objects.nonNull(select)){
if (select.getState()==2) {
jobDetail.setState(0);
jobDetail.setRowCount(list.size());
jobDetail.setUpdateTime(LocalDateTime.now());
jobDetailService.updateByMultiId(jobDetail);
}else {
return;
}
}else {
jobDetail.setState(0);
jobDetail.setRowCount(list.size());
jobDetail.setUpdateTime(LocalDateTime.now());
jobDetailService.save(jobDetail);
}
try {
if(CollectionUtil.isNotEmpty(list)){
executor.clearTargetData(migration);
executor.insertBatchByDB(list);
}
jobDetail.setState(1);
jobDetail.setUpdateTime(LocalDateTime.now());
jobDetailService.updateByMultiId(jobDetail);
}catch (
Exception e
){
jobDetail.setState(2);
jobDetail.setUpdateTime(LocalDateTime.now());
jobDetailService.updateByMultiId(jobDetail);
}
}
}

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DataV;
import com.njcn.oracle.bo.po.DataV;
import com.njcn.oracle.mapper.DataVMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDataVService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayFlicker;
import com.njcn.oracle.bo.po.DayFlicker;
import com.njcn.oracle.mapper.DayFlickerMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayFlickerService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayFluc;
import com.njcn.oracle.bo.po.DayFluc;
import com.njcn.oracle.mapper.DayFlucMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayFlucService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayHarmphasicI;
import com.njcn.oracle.bo.po.DayHarmphasicI;
import com.njcn.oracle.mapper.DayHarmphasicIMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayHarmphasicIService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayHarmphasicV;
import com.njcn.oracle.bo.po.DayHarmphasicV;
import com.njcn.oracle.mapper.DayHarmphasicVMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayHarmphasicVService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayHarmpowerP;
import com.njcn.oracle.bo.po.DayHarmpowerP;
import com.njcn.oracle.mapper.DayHarmpowerPMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayHarmpowerPService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayHarmpowerQ;
import com.njcn.oracle.bo.po.DayHarmpowerQ;
import com.njcn.oracle.mapper.DayHarmpowerQMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayHarmpowerQService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayHarmpowerS;
import com.njcn.oracle.bo.po.DayHarmpowerS;
import com.njcn.oracle.mapper.DayHarmpowerSMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayHarmpowerSService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayHarmrateI;
import com.njcn.oracle.bo.po.DayHarmrateI;
import com.njcn.oracle.mapper.DayHarmrateIMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayHarmrateIService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayHarmrateV;
import com.njcn.oracle.bo.po.DayHarmrateV;
import com.njcn.oracle.mapper.DayHarmrateVMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayHarmrateVService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayI;
import com.njcn.oracle.bo.po.DayI;
import com.njcn.oracle.mapper.DayIMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayIService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayInharmI;
import com.njcn.oracle.bo.po.DayInharmI;
import com.njcn.oracle.mapper.DayInharmIMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayInharmIService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayInharmV;
import com.njcn.oracle.bo.po.DayInharmV;
import com.njcn.oracle.mapper.DayInharmVMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayInharmVService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayPlt;
import com.njcn.oracle.bo.po.DayPlt;
import com.njcn.oracle.mapper.DayPltMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayPltService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.DayV;
import com.njcn.oracle.bo.po.DayV;
import com.njcn.oracle.mapper.DayVMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.IDayVService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -0,0 +1,49 @@
package com.njcn.oracle.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.oracle.bo.param.JobQueryParam;
import com.njcn.oracle.bo.param.ServiceTypeEnum;
import org.apache.commons.lang3.StringUtils;
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.mybatis.mapper.JobDetailMapper;
import com.njcn.oracle.bo.po.JobDetail;
import com.njcn.oracle.service.JobDetailService;
import org.springframework.util.CollectionUtils;
/**
*
* Description:
* Date: 2024/1/8 12:27【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
@DS(("target"))
public class JobDetailServiceImpl extends MppServiceImpl<JobDetailMapper, JobDetail> implements JobDetailService{
@Override
public JobDetail select(JobDetail jobDetail) {
JobDetail jobDetail1 = this.lambdaQuery().eq(JobDetail::getTableName,jobDetail.getTableName()).
eq(JobDetail::getStartTime,jobDetail.getStartTime()).
eq(JobDetail::getEndTime,jobDetail.getEndTime()).one();
return jobDetail1;
}
@Override
public List<JobDetail> selectByParam(JobQueryParam jobQueryParam) {
List<JobDetail> list = this.lambdaQuery().between(JobDetail::getStartTime, jobQueryParam.getStartTime(), jobQueryParam.getEndTime()).
eq(StringUtils.isNotBlank(jobQueryParam.getState()), JobDetail::getState, jobQueryParam.getState()).
in(!CollectionUtils.isEmpty(jobQueryParam.getTableNames()), JobDetail::getTableName, jobQueryParam.getTableNames()).
list();
list.stream().forEach(temp->temp.setTableName_CN(ServiceTypeEnum.getValueByCode(temp.getTableName())));
return list;
}
}

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.LimitRate;
import com.njcn.oracle.bo.po.LimitRate;
import com.njcn.oracle.mapper.LimitRateMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.ILimitRateService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -4,13 +4,10 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.param.ServiceType;
import com.njcn.oracle.bo.po.LimitTarget;
import com.njcn.oracle.bo.po.LimitTarget;
import com.njcn.oracle.mapper.LimitTargetMapper;
import com.njcn.oracle.mybatis.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.oracle.service.ILimitTargetService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -0,0 +1,26 @@
package com.njcn.oracle.util;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
/**
* Description:
* Date: 2024/1/8 16:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
public class LocalDateUtil {
public static List<LocalDate> getDateList(LocalDate startDate, LocalDate endDate) {
List<LocalDate> dateList = new ArrayList<>();
long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);
for (long i = 0; i <= daysBetween; i++) {
dateList.add(startDate.plusDays(i));
}
return dateList;
}
}

View File

@@ -4,6 +4,9 @@ import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
import org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration;
import org.springframework.scheduling.annotation.EnableAsync;
/**
* pqs
@@ -13,7 +16,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*/
@Slf4j
@MapperScan("com.njcn.**.mapper")
@SpringBootApplication(scanBasePackages = "com.njcn")
@EnableAsync
@SpringBootApplication(scanBasePackages = "com.njcn",exclude = {SecurityAutoConfiguration.class, SecurityFilterAutoConfiguration.class})
public class OracleDataApplication {
public static void main(String[] args) {

View File

@@ -1,9 +1,14 @@
package com.njcn.oracle.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.njcn.oracle.bo.param.DataAsynParam;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.mybatis.service.IReplenishMybatisService;
import com.njcn.oracle.service.DataSyncService;
import com.njcn.oracle.util.LocalDateUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
@@ -15,7 +20,12 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.Objects;
/**
* Description:
@@ -33,17 +43,21 @@ import java.util.List;
public class DataSyncController {
private final DataSyncService dataSyncService;
/**
* 将时间区间拆解为24小时分区小于24小时仅查询当前时间区间目前不支持指定时分秒
* 暂且不用多线程处理,因无法控制数据指标数和时间范围多大,担心
* @param migrationParam
* @param dataAsynParam
*/
@PostMapping("/dataSync")
@ApiOperation("数据同步")
@ApiImplicitParam(name = "componentParam", value = "组件数据", required = true)
public void dataSync(@RequestBody MigrationParam migrationParam){
@ApiImplicitParam(name = "dataAsynParam", value = "数据同步参数", required = true)
public Boolean dataSync(@RequestBody DataAsynParam dataAsynParam){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
List<String> tableNames = dataAsynParam.getTableNames();
List<String> tableNames = migrationParam.getTableNames();
tableNames.stream().forEach(temp->{
IReplenishMybatisService executor = null;
try {
@@ -51,15 +65,33 @@ public class DataSyncController {
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
List list = executor.queryData(migrationParam);
if(CollectionUtil.isNotEmpty(list)){
executor.clearTargetData(migrationParam);
executor.insertBatchByDB(list);
}
});
List<LocalDate> dateList = LocalDateUtil.getDateList(dataAsynParam.getStartTime(), dataAsynParam.getEndTime());
LocalDateTime startTime = LocalDateTimeUtil.beginOfDay(dataAsynParam.getStartTime().atStartOfDay());
LocalDateTime endTime = LocalDateTimeUtil.endOfDay(dataAsynParam.getEndTime().atStartOfDay());
IReplenishMybatisService finalExecutor = executor;
dateList.forEach(date->{
LocalDateTime localDateTime = date.atStartOfDay();
LocalDateTime tempStartTime = LocalDateTimeUtil.beginOfDay(localDateTime);
LocalDateTime tempEndTime = LocalDateTimeUtil.endOfDay(localDateTime);
tempStartTime =LocalDateTimeUtil.parse(tempStartTime.format(formatter),DatePattern.NORM_DATETIME_PATTERN);
tempEndTime =LocalDateTimeUtil.parse(tempEndTime.format(formatter),DatePattern.NORM_DATETIME_PATTERN);
MigrationParam migration = new MigrationParam();
migration.setStartTime(tempStartTime);
migration.setEndTime(tempEndTime);
dataSyncService.dataSync(finalExecutor,temp,migration);
});
});
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
}

View File

@@ -0,0 +1,50 @@
package com.njcn.oracle.controller;
import com.njcn.oracle.bo.param.JobQueryParam;
import com.njcn.oracle.bo.po.JobDetail;
import com.njcn.oracle.service.JobDetailService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Description:
* Date: 2024/1/9 9:13【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Validated
@Slf4j
@RestController
@RequestMapping("/jobDetail")
@Api(tags = "同步任务")
@AllArgsConstructor
public class JobDetailController {
private final JobDetailService jobDetailService;
@PostMapping("/jobQuery")
@ApiOperation("任务查询")
@ApiImplicitParam(name = "jobQueryParam", value = "任务查询参数", required = true)
public List<JobDetail> jobQuery(@RequestBody JobQueryParam jobQueryParam){
List<JobDetail> jobDetails = jobDetailService.selectByParam(jobQueryParam);
return jobDetails;//HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, jobDetails, "任务查询");
}
@PostMapping("/jobRemove")
@ApiOperation("任务移除")
@ApiImplicitParam(name = "jobQueryParam", value = "任务移除参数", required = true)
public boolean jobRemove(@RequestBody JobDetail jobDetail){
boolean b = jobDetailService.deleteByMultiId(jobDetail);
return b;
}
}