oralce数据转入mysql

This commit is contained in:
xy
2024-06-01 18:03:03 +08:00
parent 3a03a2e9af
commit 4cc4336521
10 changed files with 696 additions and 15 deletions

View File

@@ -54,5 +54,25 @@ public class OracleToMysqlController {
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
@GetMapping("/limitRateSync")
@ApiOperation("limit_rate转成r_stat_limit_rate_d")
public Boolean limitRateSync(@RequestParam("startDateTime")String startDateTime, @RequestParam("endDateTime")String endDateTime) {
DataAsynParam dataAsynParam = new DataAsynParam();
dataAsynParam.setStartDateTime(LocalDateTimeUtil.parse(startDateTime, DatePattern.NORM_DATE_PATTERN));
dataAsynParam.setEndDateTime(LocalDateTimeUtil.parse(endDateTime, DatePattern.NORM_DATE_PATTERN));
oracleToMysqlService.insertLimitRate(startDateTime,endDateTime);
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
@GetMapping("/limitTargetSync")
@ApiOperation("limit_target转成r_stat_limit_target_d")
public Boolean limitTargetSync(@RequestParam("startDateTime")String startDateTime, @RequestParam("endDateTime")String endDateTime) {
DataAsynParam dataAsynParam = new DataAsynParam();
dataAsynParam.setStartDateTime(LocalDateTimeUtil.parse(startDateTime, DatePattern.NORM_DATE_PATTERN));
dataAsynParam.setEndDateTime(LocalDateTimeUtil.parse(endDateTime, DatePattern.NORM_DATE_PATTERN));
oracleToMysqlService.insertLimitTarget(startDateTime,endDateTime);
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
}

View File

@@ -0,0 +1,7 @@
package com.njcn.mysql.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.mysql.bo.po.RStatLimitRateD;
public interface RStatLimitRateDMapper extends MppBaseMapper<RStatLimitRateD> {
}

View File

@@ -0,0 +1,11 @@
package com.njcn.mysql.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.mysql.bo.po.RStatLimitRateD;
import java.util.List;
public interface IRStatLimitRateDService extends IMppService<RStatLimitRateD> {
void insert(List<RStatLimitRateD> list);
}

View File

@@ -22,4 +22,18 @@ public interface OracleToMysqlService {
* @param endTime
*/
void insertDayV(String startTime, String endTime);
/**
* r_stat_limit_rate_d数据插入
* @param startTime
* @param endTime
*/
void insertLimitRate(String startTime, String endTime);
/**
* r_stat_limit_target_d数据插入
* @param startTime
* @param endTime
*/
void insertLimitTarget(String startTime, String endTime);
}

View File

@@ -3,16 +3,15 @@ package com.njcn.mysql.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjUtil;
import com.njcn.mysql.bo.enums.TargetEnum;
import com.njcn.mysql.bo.po.PqLineBak;
import com.njcn.mysql.bo.po.RStatDataHarmrateVD;
import com.njcn.mysql.bo.po.RStatDataVD;
import com.njcn.mysql.bo.po.RStatIntegrityD;
import com.njcn.mysql.bo.po.*;
import com.njcn.mysql.service.*;
import com.njcn.mysql.util.PubUtils;
import com.njcn.oracle.bo.po.DayHarmrateV;
import com.njcn.oracle.bo.po.DayV;
import com.njcn.oracle.bo.po.LimitRate;
import com.njcn.oracle.bo.po.PqsIntegrity;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.time.ZoneId;
@@ -37,6 +36,8 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
private final IRStatDataVDService rStatDataVDService;
private final IRStatLimitRateDService rLimitRateDService;
@Override
public void insertDayHarmRateV(String startTime, String endTime) {
List<String> timeList = PubUtils.getTimeList(startTime,endTime);
@@ -189,6 +190,47 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
System.out.println("查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@Override
public void insertLimitRate(String startTime, String endTime) {
List<String> timeList = PubUtils.getTimeList(startTime,endTime);
List<PqLineBak> bakList = pqLineBakService.list();
//lineId:Oracle监测点ID id:Mysql监测点ID
Map<String, String> oracleRelationMysql = bakList.stream().collect(Collectors.toMap(PqLineBak::getLineId, PqLineBak::getId));
timeList.forEach(item->{
System.out.println("当前执行日期:"+ item);
List<RStatLimitRateD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<LimitRate> list = oracleDataService.getLimitRate(item);
if(CollUtil.isNotEmpty(list)){
list.forEach(data->{
if (ObjUtil.isNotNull(oracleRelationMysql.get(data.getMyindex().toString()))) {
RStatLimitRateD po = new RStatLimitRateD();
po.setTime(data.getTimeid().toLocalDate());
po.setLineId(oracleRelationMysql.get(data.getMyindex().toString()));
BeanUtils.copyProperties(data,po);
result.add(po);
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
}
if(CollUtil.isNotEmpty(result)){
rLimitRateDService.insert(result);
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@Override
public void insertLimitTarget(String startTime, String endTime) {
}
public RStatDataHarmrateVD getData1(DayHarmrateV data, Map<String, String> oracleRelationMysql, String valueType) {

View File

@@ -0,0 +1,27 @@
package com.njcn.mysql.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.mysql.bo.po.RStatLimitRateD;
import com.njcn.mysql.mapper.RStatLimitRateDMapper;
import com.njcn.mysql.service.IRStatLimitRateDService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 9:53
*/
@DS("target")
@Service
public class RStatLimitRateDServiceImpl extends MppServiceImpl<RStatLimitRateDMapper, RStatLimitRateD> implements IRStatLimitRateDService {
@Override
public void insert(List<RStatLimitRateD> list) {
this.saveOrUpdateBatchByMultiId(list,50);
}
}

View File

@@ -69,8 +69,8 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver
# master:
# url: jdbc:oracle:thin:@10.118.135.139:1521:pqsbase
# username: pqsadmin
# password: Pqsadmin123
# username: pqsbase_xcs
# password: pqsadmin
# driver-class-name: oracle.jdbc.driver.OracleDriver
# target:
# url: jdbc:mysql://10.118.135.128:13306/pqsinfo?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=CTT