1.oracle同步mysql代码

This commit is contained in:
wr
2024-06-01 18:41:01 +08:00
parent ef902c11c3
commit 3880d431cd
18 changed files with 691 additions and 64 deletions

View File

@@ -74,5 +74,33 @@ public class OracleToMysqlController {
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
@GetMapping("/dayComAssesSync")
@ApiOperation("PQS_ComAsses转成r_stat_comasses_data")
public Boolean dayComAssesSync(@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.insertComAsses(startDateTime,endDateTime);
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
@GetMapping("/dayAssesSync")
@ApiOperation("PQS_ASSES转成r_stat_asses_d")
public Boolean dayAssesSync(@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.insertAsses(startDateTime,endDateTime);
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
@GetMapping("/dayISync")
@ApiOperation("day_v转成r_stat_data_i_d")
public Boolean dayISync(@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.insertDataI(startDateTime,endDateTime);
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
}

View File

@@ -0,0 +1,19 @@
package com.njcn.mysql.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.mysql.bo.po.RStatAssesD;
import java.util.List;
/**
* <p>
* 电能质量综合评估 服务类
* </p>
*
* @author wr
* @since 2024-06-01
*/
public interface IRStatAssesDService extends IMppService<RStatAssesD> {
void insert(List<RStatAssesD> list);
}

View File

@@ -0,0 +1,19 @@
package com.njcn.mysql.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.mysql.bo.po.RStatComassesD;
import java.util.List;
/**
* <p>
* 电能质量综合评估 服务类
* </p>
*
* @author wr
* @since 2024-06-01
*/
public interface IRStatComassesDService extends IMppService<RStatComassesD> {
void insert(List<RStatComassesD> list);
}

View File

@@ -36,4 +36,45 @@ public interface OracleToMysqlService {
* @param endTime
*/
void insertLimitTarget(String startTime, String endTime);
/**
* r_stat_comasses_data数据插入
* @param startTime
* @param endTime
*/
void insertComAsses(String startTime, String endTime);
/**
* r_stat_asses_d数据插入
* @param startTime
* @param endTime
*/
void insertAsses(String startTime, String endTime);
/**
* r_stat_data_i_d数据插入
* @param startTime
* @param endTime
*/
void insertDataI(String startTime, String endTime);
/**
* r_stat_data_plt_d数据插入
* @param startTime
* @param endTime
*/
void insertPlt(String startTime, String endTime);
/**
* r_stat_data_flicker_d数据插入
* @param startTime
* @param endTime
*/
void insertFlicker(String startTime, String endTime);
/**
* r_stat_data_inharm_v_d数据插入
* @param startTime
* @param endTime
*/
void insertInHarmV(String startTime, String endTime);
}

View File

@@ -7,6 +7,11 @@ import com.njcn.mysql.bo.po.*;
import com.njcn.mysql.service.*;
import com.njcn.mysql.util.PubUtils;
import com.njcn.oracle.bo.po.*;
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 com.njcn.oracle.bo.po.*;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -24,15 +29,13 @@ import java.util.stream.Collectors;
public class OracleToMysqlServiceImpl implements OracleToMysqlService {
private final OracleDataService oracleDataService;
private final IPqLineBakService pqLineBakService;
private final IRStatDataHarmRateVDService rStatDataHarmRateVDService;
private final IntegrityService integrityService;
private final IRStatDataVDService rStatDataVDService;
private final IRStatComassesDService statComassesDService;
private final IRStatAssesDService statAssesDService;
private final IRStatDataIDService statDataIDService;
private final IRStatLimitRateDService rLimitRateDService;
private final IRStatLimitTargetDService rStatLimitTargetDService;
@@ -264,6 +267,178 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
});
}
@Override
public void insertComAsses(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<RStatComassesD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<PqsComAsses> pqsComAsses = oracleDataService.getPqsComAsses(item);
if(CollUtil.isNotEmpty(pqsComAsses)){
pqsComAsses.forEach(data->{
if (ObjUtil.isNotNull(oracleRelationMysql.get(data.getLineid()))) {
RStatComassesD comAsses = new RStatComassesD();
comAsses.setTime(data.getTimeid());
comAsses.setLineId(oracleRelationMysql.get(data.getLineid()));
comAsses.setFreqDev1(data.getFreqDev1());
comAsses.setFreqDev2(data.getFreqDev2());
comAsses.setFreqDev3(data.getFreqDev3());
comAsses.setFreqDev4(data.getFreqDev4());
comAsses.setFreqDev5(data.getFreqDev5());
comAsses.setVuDev1(data.getVuDev1());
comAsses.setVuDev2(data.getVuDev2());
comAsses.setVuDev3(data.getVuDev3());
comAsses.setVuDev4(data.getVuDev4());
comAsses.setVuDev5(data.getVuDev5());
comAsses.setDataPst1(data.getDataPlt1());
comAsses.setDataPst2(data.getDataPlt2());
comAsses.setDataPst3(data.getDataPlt3());
comAsses.setDataPst4(data.getDataPlt4());
comAsses.setDataPst5(data.getDataPlt5());
comAsses.setVUnbalance1(data.getVUnbalance1());
comAsses.setVUnbalance2(data.getVUnbalance2());
comAsses.setVUnbalance3(data.getVUnbalance3());
comAsses.setVUnbalance4(data.getVUnbalance4());
comAsses.setVUnbalance5(data.getVUnbalance5());
comAsses.setVThd1(data.getVThd1());
comAsses.setVThd2(data.getVThd2());
comAsses.setVThd3(data.getVThd3());
comAsses.setVThd4(data.getVThd4());
comAsses.setVThd5(data.getVThd5());
comAsses.setEvent1(data.getEvent1());
comAsses.setEvent2(data.getEvent2());
comAsses.setEvent3(data.getEvent3());
comAsses.setEvent4(data.getEvent4());
comAsses.setEvent5(data.getEvent5());
result.add(comAsses);
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
}
if(CollUtil.isNotEmpty(result)){
statComassesDService.insert(result);
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:"+(CollUtil.isNotEmpty(pqsComAsses)?pqsComAsses.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@Override
public void insertAsses(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<RStatAssesD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<PqsAsses> pqsComAsses = oracleDataService.getPqsAsses(item);
if(CollUtil.isNotEmpty(pqsComAsses)){
pqsComAsses.forEach(data->{
if (ObjUtil.isNotNull(oracleRelationMysql.get(data.getLineid()))) {
RStatAssesD assesD = new RStatAssesD();
assesD.setTime(data.getTimeid());
assesD.setLineId(oracleRelationMysql.get(data.getLineid()));
assesD.setVuDev(data.getVuDev());
assesD.setFreqDev(data.getFreqDev());
assesD.setDataPlt(data.getDataPlt());
assesD.setVUnbalanceCp95(data.getVUnbalanceCP95());
assesD.setVThdCp95(data.getVThdCP95());
result.add(assesD);
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
}
if(CollUtil.isNotEmpty(result)){
statAssesDService.insert(result);
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:"+(CollUtil.isNotEmpty(pqsComAsses)?pqsComAsses.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@Override
public void insertDataI(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<RStatDataID> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<DayI> list = oracleDataService.getDayI(item);
if(CollUtil.isNotEmpty(list)){
list.forEach(data->{
if (ObjUtil.isNotNull(oracleRelationMysql.get(data.getLineid()))) {
RStatDataID po1 = getDataI(data,oracleRelationMysql,"AVG");
PubUtils.setValuesUsingReflection(po1,data,false,"getI","setI",null);
RStatDataID po2 = getDataI(data,oracleRelationMysql,"MAX");
PubUtils.setValuesUsingReflection(po2,data,true,"getI","setI","Max");
RStatDataID po3 = getDataI(data,oracleRelationMysql,"MIN");
PubUtils.setValuesUsingReflection(po3,data,true,"getI","setI","Min");
RStatDataID po4 = getDataI(data,oracleRelationMysql,"CP95");
PubUtils.setValuesUsingReflection(po4,data,true,"getI","setI","Cp95");
result.addAll(Arrays.asList(po1,po2,po3,po4));
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
}
if(CollUtil.isNotEmpty(result)){
statDataIDService.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 insertPlt(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-> {
});
}
@Override
public void insertFlicker(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-> {
});
}
@Override
public void insertInHarmV(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-> {
});
}
public RStatDataHarmrateVD getData1(DayHarmrateV data, Map<String, String> oracleRelationMysql, String valueType) {
ZoneId zoneId = ZoneId.systemDefault();
RStatDataHarmrateVD po1 = new RStatDataHarmrateVD();
@@ -339,4 +514,63 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
return po1;
}
public RStatDataID getDataI(DayI data, Map<String, String> oracleRelationMysql, String valueType) {
ZoneId zoneId = ZoneId.systemDefault();
RStatDataID po1 = new RStatDataID();
po1.setTime(data.getTimeid().atZone(zoneId).toLocalDate());
po1.setLineId(oracleRelationMysql.get(data.getLineid()));
po1.setPhaseType(data.getPhasicType());
po1.setValueType(valueType);
if (Objects.equals(valueType,"AVG")) {
po1.setRms(data.getRms());
po1.setINeg(data.getINeg());
po1.setIPos(data.getIPos());
po1.setIThd(data.getIThd());
po1.setIUnbalance(data.getIUnbalance());
po1.setIZero(data.getIZero());
} else if (Objects.equals(valueType,"MAX")) {
po1.setRms(data.getRmsMax());
po1.setINeg(data.getINegMax());
po1.setIPos(data.getIPosMax());
po1.setIThd(data.getIThdMax());
po1.setIUnbalance(data.getIUnbalanceMax());
po1.setIZero(data.getIZeroMax());
//异常数据判断
} else if (Objects.equals(valueType,"MIN")) {
po1.setRms(data.getRmsMin());
po1.setINeg(data.getINegMin());
po1.setIPos(data.getIPosMin());
po1.setIThd(data.getIThdMin());
po1.setIUnbalance(data.getIUnbalanceMin());
po1.setIZero(data.getIZeroMin());
} else if (Objects.equals(valueType,"CP95")) {
po1.setRms(data.getRmsCp95());
po1.setINeg(data.getINegCp95());
po1.setIPos(data.getIPosCp95());
po1.setIThd(data.getIThdCp95());
po1.setIUnbalance(data.getIUnbalanceCp95());
po1.setIZero(data.getIZeroCp95());
}
return po1;
}
public void getRmsLvrData(List<DayV> list) {
Map<String,List<Float>> map = new HashMap<>();
Map<String, List<DayV>> dayMap = list.stream().collect(Collectors.groupingBy(DayV::getLineid));
List<DayV> tList = list.stream().filter(type ->Objects.equals(type.getPhasicType(),"T")).collect(Collectors.toList());
tList.forEach(item->{
if (CollUtil.isNotEmpty(dayMap.get(item.getLineid()))){
DayV dayV = dayMap.get(item.getLineid()).stream().filter(type ->Objects.equals(type.getPhasicType(),"T")).collect(Collectors.toList()).get(0);
dayMap.get(item.getLineid()).forEach(day->{
if (Objects.equals(day.getPhasicType(),"A")) {
} else if (Objects.equals(day.getPhasicType(),"B")) {
} else if (Objects.equals(day.getPhasicType(),"C")) {
}
});
}
});
}
}

View File

@@ -0,0 +1,29 @@
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.RStatAssesD;
import com.njcn.mysql.mapper.RStatAssesDMapper;
import com.njcn.mysql.service.IRStatAssesDService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 电能质量综合评估 服务实现类
* </p>
*
* @author wr
* @since 2024-06-01
*/
@Service
@DS("target")
public class RStatAssesDServiceImpl extends MppServiceImpl<RStatAssesDMapper, RStatAssesD> implements IRStatAssesDService {
@Override
public void insert(List<RStatAssesD> list) {
this.saveOrUpdateBatchByMultiId(list,50);
}
}

View File

@@ -0,0 +1,28 @@
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.RStatComassesD;
import com.njcn.mysql.mapper.RStatComassesDMapper;
import com.njcn.mysql.service.IRStatComassesDService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 电能质量综合评估 服务实现类
* </p>
*
* @author wr
* @since 2024-06-01
*/
@Service
@DS("target")
public class RStatComassesDServiceImpl extends MppServiceImpl<RStatComassesDMapper, RStatComassesD> implements IRStatComassesDService {
@Override
public void insert(List<RStatComassesD> list) {
this.saveOrUpdateBatchByMultiId(list,50);
}
}

View File

@@ -1,5 +1,6 @@
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.RStatDataID;
import com.njcn.mysql.mapper.RStatDataIDMapper;
@@ -16,6 +17,7 @@ import java.util.List;
* @createTime 2023/3/24 9:53
*/
@Service
@DS("target")
public class RStatDataIDServiceImpl extends MppServiceImpl<RStatDataIDMapper, RStatDataID> implements IRStatDataIDService {
@Override