添加数据同步代码
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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, "数据同步");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user