1.oracle同步mysql代码

2.编写最大最小限值,赋值注解
This commit is contained in:
wr
2024-06-02 14:58:25 +08:00
parent 653a2f4eeb
commit ad8fcd8d33
25 changed files with 1188 additions and 312 deletions

View File

@@ -2,11 +2,14 @@ package com.njcn.mysql.controller;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.njcn.mysql.bo.po.RStatDataPltD;
import com.njcn.mysql.service.OracleToMysqlService;
import com.njcn.mysql.util.MaxValueProcessor;
import com.njcn.oracle.bo.param.DataAsynParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
@@ -95,7 +98,7 @@ public class OracleToMysqlController {
}
@GetMapping("/dayISync")
@ApiOperation("day_v转成r_stat_data_i_d")
@ApiOperation("day_i转成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));
@@ -103,4 +106,49 @@ public class OracleToMysqlController {
oracleToMysqlService.insertDataI(startDateTime,endDateTime);
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
@GetMapping("/dayPltSync")
@ApiOperation("day_plt转成r_stat_data_plt_d")
public Boolean dayPltSync(@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.insertPlt(startDateTime,endDateTime);
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
@GetMapping("/dayFlickerSync")
@ApiOperation("day_flicker转成r_stat_data_flicker_d")
public Boolean dayFlickerSync(@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.insertFlicker(startDateTime,endDateTime);
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
@GetMapping("/dayInHarmVSync")
@ApiOperation("day_inharm_v转成r_stat_data_inharm_v_d")
public Boolean dayInHarmVSync(@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.insertInHarmV(startDateTime,endDateTime);
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}
public static void main(String[] args) {
RStatDataPltD user = new RStatDataPltD();
user.setPlt(1101111.0f);
try {
MaxValueProcessor.process(user);
System.out.println(user.getPlt());
} catch (Exception e) {
System.out.println("Validation failed: " + e.getMessage());
}
}
}

View File

@@ -0,0 +1,52 @@
package com.njcn.mysql.job;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.njcn.mysql.service.OracleToMysqlService;
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.LocalDateTime;
import java.time.temporal.ChronoUnit;
/**
* Description:
* Date: 2024/1/18 10:15【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Component
@EnableScheduling
@RequiredArgsConstructor
@Slf4j
public class OracleToMysqlDBJob {
private final OracleToMysqlService oracleToMysqlService;
@Scheduled(cron="0 0 7 * * ?")
public void executeEvent() {
// 获取当前时间
String date = DateUtil.format(LocalDateTime.now(), DatePattern.NORM_DATE_PATTERN);
System.out.println("-----------------------------------------------------------------------");
oracleToMysqlService.insertDayHarmRateV(date,date);
oracleToMysqlService.insertPqsIntegrity(date,date);
oracleToMysqlService.insertDayV(date,date);
oracleToMysqlService.insertLimitRate(date,date);
oracleToMysqlService.insertLimitTarget(date,date);
oracleToMysqlService.insertComAsses(date,date);
oracleToMysqlService.insertAsses(date,date);
oracleToMysqlService.insertDataI(date,date);
oracleToMysqlService.insertPlt(date,date);
oracleToMysqlService.insertFlicker(date,date);
oracleToMysqlService.insertInHarmV(date,date);
System.out.println("-----------------------------------------------------------------------\n");
}
}

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjUtil;
import com.njcn.mysql.bo.enums.TargetEnum;
import com.njcn.mysql.bo.po.*;
import com.njcn.mysql.service.*;
import com.njcn.mysql.util.MaxValueProcessor;
import com.njcn.mysql.util.PubUtils;
import com.njcn.oracle.bo.po.*;
import lombok.AllArgsConstructor;
@@ -32,8 +33,10 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
private final IRStatAssesDService statAssesDService;
private final IRStatDataIDService statDataIDService;
private final IRStatLimitRateDService rLimitRateDService;
private final IRStatLimitTargetDService rStatLimitTargetDService;
private final IRStatDataPltDService statDataPltDService;
private final IRStatDataFlickerDService statDataFlickerDService;
private final IRStatDataInharmVDService statDataInharmVDService;
@Override
@@ -43,7 +46,7 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
//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);
System.out.println("insertDayHarmRateV->当前执行日期:"+ item);
List<RStatDataHarmrateVD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<DayHarmrateV> list = oracleDataService.getDayHarmRate(item);
@@ -61,17 +64,21 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
RStatDataHarmrateVD po4 = getData1(data,oracleRelationMysql,"CP95");
PubUtils.setValuesUsingReflection(po4,data,true,"getV","setV","Cp95");
MaxValueProcessor.process(po1);
MaxValueProcessor.process(po2);
MaxValueProcessor.process(po3);
MaxValueProcessor.process(po4);
result.addAll(Arrays.asList(po1,po2,po3,po4));
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertDayHarmRateV->查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
}
if(CollUtil.isNotEmpty(result)){
rStatDataHarmRateVDService.insert(result);
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertDayHarmRateV->查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@@ -84,7 +91,7 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
Map<String, String> oracleRelationMysql = bakList.stream().collect(Collectors.toMap(PqLineBak::getLineId, PqLineBak::getId));
ZoneId zoneId = ZoneId.systemDefault();
timeList.forEach(item->{
System.out.println("当前执行日期:"+ item);
System.out.println("insertPqsIntegrity->当前执行日期:"+ item);
List<RStatIntegrityD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<PqsIntegrity> list = oracleDataService.getPqsIntegrity(item);
@@ -96,17 +103,18 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
po.setLineIndex(oracleRelationMysql.get(data.getLineIndex()));
po.setDueTime(data.getDue());
po.setRealTime(data.getReal());
MaxValueProcessor.process(po);
result.add(po);
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertPqsIntegrity->查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
}
if(CollUtil.isNotEmpty(result)){
integrityService.insert(result);
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertPqsIntegrity->查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@@ -118,7 +126,7 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
//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);
System.out.println("insertDayV->当前执行日期:"+ item);
List<RStatDataVD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<DayV> list = oracleDataService.getDayV(item);
@@ -175,17 +183,21 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
po4.setRmsLvr(0.0f);
}
PubUtils.setValuesUsingReflection(po4,data,true,"getV","setV","Cp95");
MaxValueProcessor.process(po1);
MaxValueProcessor.process(po2);
MaxValueProcessor.process(po3);
MaxValueProcessor.process(po4);
result.addAll(Arrays.asList(po1,po2,po3,po4));
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertDayV->查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
}
if(CollUtil.isNotEmpty(result)){
rStatDataVDService.insert(result);
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertDayV->查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@@ -198,7 +210,7 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
//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);
System.out.println("insertLimitRate->当前执行日期:"+ item);
List<RStatLimitRateD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<LimitRate> list = oracleDataService.getLimitRate(item);
@@ -211,17 +223,18 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
po.setAllTime(data.getAlltime());
po.setFlickerAllTime(data.getFlicketAlltime());
BeanUtils.copyProperties(data,po);
MaxValueProcessor.process(po);
result.add(po);
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertLimitRate->查询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");
System.out.println("insertLimitRate->查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@@ -234,7 +247,7 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
//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);
System.out.println("insertLimitTarget->当前执行日期:"+ item);
List<RStatLimitTargetD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<LimitTarget> list = oracleDataService.getLimitTarget(item);
@@ -247,17 +260,18 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
po.setAllTime(data.getAlltime());
po.setFlickerAllTime(data.getFlicketAlltime());
BeanUtils.copyProperties(data,po);
MaxValueProcessor.process(po);
result.add(po);
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertLimitTarget->查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
}
if(CollUtil.isNotEmpty(result)){
rStatLimitTargetDService.insert(result);
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertLimitTarget->查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@@ -269,7 +283,7 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
//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);
System.out.println("insertComAsses->当前执行日期:"+ item);
List<RStatComassesD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<PqsComAsses> pqsComAsses = oracleDataService.getPqsComAsses(item);
@@ -309,17 +323,18 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
comAsses.setEvent3(data.getEvent3());
comAsses.setEvent4(data.getEvent4());
comAsses.setEvent5(data.getEvent5());
MaxValueProcessor.process(comAsses);
result.add(comAsses);
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertComAsses->查询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");
System.out.println("insertComAsses->查询oracle数据:"+(CollUtil.isNotEmpty(pqsComAsses)?pqsComAsses.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@@ -331,7 +346,7 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
//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);
System.out.println("insertAsses->当前执行日期:"+ item);
List<RStatAssesD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<PqsAsses> pqsComAsses = oracleDataService.getPqsAsses(item);
@@ -346,17 +361,18 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
assesD.setDataPlt(data.getDataPlt());
assesD.setVUnbalanceCp95(data.getVUnbalanceCP95());
assesD.setVThdCp95(data.getVThdCP95());
MaxValueProcessor.process(assesD);
result.add(assesD);
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertAsses->查询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");
System.out.println("insertAsses->查询oracle数据:"+(CollUtil.isNotEmpty(pqsComAsses)?pqsComAsses.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@@ -368,7 +384,7 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
//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);
System.out.println("insertDataI->当前执行日期:"+ item);
List<RStatDataID> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<DayI> list = oracleDataService.getDayI(item);
@@ -386,17 +402,21 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
RStatDataID po4 = getDataI(data,oracleRelationMysql,"CP95");
PubUtils.setValuesUsingReflection(po4,data,true,"getI","setI","Cp95");
MaxValueProcessor.process(po1);
MaxValueProcessor.process(po2);
MaxValueProcessor.process(po3);
MaxValueProcessor.process(po4);
result.addAll(Arrays.asList(po1,po2,po3,po4));
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
System.out.println("insertDataI->查询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");
System.out.println("insertDataI->查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@@ -408,7 +428,29 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
//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("insertPlt->当前执行日期:"+ item);
List<RStatDataPltD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<DayPlt> list = oracleDataService.getDayPlt(item);
if(CollUtil.isNotEmpty(list)){
list.forEach(data->{
if (ObjUtil.isNotNull(oracleRelationMysql.get(data.getLineid()))) {
RStatDataPltD po1 = getDataPlt(data,oracleRelationMysql,"AVG");
RStatDataPltD po2 = getDataPlt(data,oracleRelationMysql,"MAX");
RStatDataPltD po3 = getDataPlt(data,oracleRelationMysql,"MIN");
RStatDataPltD po4 = getDataPlt(data,oracleRelationMysql,"CP95");
result.addAll(Arrays.asList(po1,po2,po3,po4));
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("insertPlt->查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
}
if(CollUtil.isNotEmpty(result)){
statDataPltDService.insert(result);
long system2 = System.currentTimeMillis();
System.out.println("insertPlt->查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@@ -419,7 +461,29 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
//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("insertFlicker->当前执行日期:"+ item);
List<RStatDataFlickerD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<DayFlicker> list = oracleDataService.getDayFlicker(item);
if(CollUtil.isNotEmpty(list)){
list.forEach(data->{
if (ObjUtil.isNotNull(oracleRelationMysql.get(data.getLineid()))) {
RStatDataFlickerD po1 = getDataFlicker(data,oracleRelationMysql,"AVG");
RStatDataFlickerD po2 = getDataFlicker(data,oracleRelationMysql,"MAX");
RStatDataFlickerD po3 = getDataFlicker(data,oracleRelationMysql,"MIN");
RStatDataFlickerD po4 = getDataFlicker(data,oracleRelationMysql,"CP95");
result.addAll(Arrays.asList(po1,po2,po3,po4));
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("insertFlicker->查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
}
if(CollUtil.isNotEmpty(result)){
statDataFlickerDService.insert(result);
long system2 = System.currentTimeMillis();
System.out.println("insertFlicker->查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@@ -430,6 +494,29 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
//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("insertInHarmV->当前执行日期:"+ item);
List<RStatDataInharmVD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<DayInharmV> list = oracleDataService.getDayInHarmV(item);
if(CollUtil.isNotEmpty(list)){
list.forEach(data->{
if (ObjUtil.isNotNull(oracleRelationMysql.get(data.getLineid()))) {
RStatDataInharmVD po1 = getDataInHarmV(data,oracleRelationMysql,"AVG");
RStatDataInharmVD po2 = getDataInHarmV(data,oracleRelationMysql,"MAX");
RStatDataInharmVD po3 = getDataInHarmV(data,oracleRelationMysql,"MIN");
RStatDataInharmVD po4 = getDataInHarmV(data,oracleRelationMysql,"CP95");
result.addAll(Arrays.asList(po1,po2,po3,po4));
}
});
} else {
long system2 = System.currentTimeMillis();
System.out.println("insertInHarmV->查询oracle数据:0,执行时间:" + (system2-system1)/1000.0 + "s");
}
if(CollUtil.isNotEmpty(result)){
statDataInharmVDService.insert(result);
long system2 = System.currentTimeMillis();
System.out.println("insertInHarmV->查询oracle数据:"+(CollUtil.isNotEmpty(list)?list.size():0)+",插入mysql数据:"+ result.size() + ",执行时间:" + (system2-system1)/1000.0 + "s");
}
});
}
@@ -443,6 +530,7 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
po1.setValueType(valueType);
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_HARM_RATE_V.getCode(),data,null));
MaxValueProcessor.process(po1);
return po1;
}
@@ -506,13 +594,14 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_V.getCode(),data,"Cp95"));
}
MaxValueProcessor.process(po1);
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.setTime(data.getTimeid().toInstant().atZone(zoneId).toLocalDate());
po1.setLineId(oracleRelationMysql.get(data.getLineid()));
po1.setPhaseType(data.getPhasicType());
po1.setValueType(valueType);
@@ -523,6 +612,8 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
po1.setIThd(data.getIThd());
po1.setIUnbalance(data.getIUnbalance());
po1.setIZero(data.getIZero());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_I.getCode(),data,null));
} else if (Objects.equals(valueType,"MAX")) {
po1.setRms(data.getRmsMax());
po1.setINeg(data.getINegMax());
@@ -531,6 +622,7 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
po1.setIUnbalance(data.getIUnbalanceMax());
po1.setIZero(data.getIZeroMax());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_I.getCode(),data,"Max"));
} else if (Objects.equals(valueType,"MIN")) {
po1.setRms(data.getRmsMin());
po1.setINeg(data.getINegMin());
@@ -538,6 +630,8 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
po1.setIThd(data.getIThdMin());
po1.setIUnbalance(data.getIUnbalanceMin());
po1.setIZero(data.getIZeroMin());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_I.getCode(),data,"Min"));
} else if (Objects.equals(valueType,"CP95")) {
po1.setRms(data.getRmsCp95());
po1.setINeg(data.getINegCp95());
@@ -545,27 +639,102 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
po1.setIThd(data.getIThdCp95());
po1.setIUnbalance(data.getIUnbalanceCp95());
po1.setIZero(data.getIZeroCp95());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_I.getCode(),data,"Cp95"));
}
MaxValueProcessor.process(po1);
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")) {
}
});
}
});
public RStatDataPltD getDataPlt(DayPlt data, Map<String, String> oracleRelationMysql, String valueType) {
ZoneId zoneId = ZoneId.systemDefault();
RStatDataPltD po1 = new RStatDataPltD();
po1.setTime(data.getTimeid().toInstant().atZone(zoneId).toLocalDate());
po1.setLineId(oracleRelationMysql.get(data.getLineid()));
po1.setPhaseType(data.getPhasicType());
po1.setValueType(valueType);
if (Objects.equals(valueType,"AVG")) {
po1.setPlt(data.getPlt());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_PLT.getCode(),data,null));
} else if (Objects.equals(valueType,"MAX")) {
po1.setPlt(data.getPltMax());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_PLT.getCode(),data,"Max"));
} else if (Objects.equals(valueType,"MIN")) {
po1.setPlt(data.getPltMin());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_PLT.getCode(),data,"Min"));
} else if (Objects.equals(valueType,"CP95")) {
po1.setPlt(data.getPltCp95());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_PLT.getCode(),data,"Cp95"));
}
MaxValueProcessor.process(po1);
return po1;
}
public RStatDataFlickerD getDataFlicker(DayFlicker data, Map<String, String> oracleRelationMysql, String valueType) {
ZoneId zoneId = ZoneId.systemDefault();
RStatDataFlickerD po1 = new RStatDataFlickerD();
po1.setTime(data.getTimeid().toInstant().atZone(zoneId).toLocalDate());
po1.setLineId(oracleRelationMysql.get(data.getLineid()));
po1.setPhaseType(data.getPhasicType());
po1.setValueType(valueType);
if (Objects.equals(valueType,"AVG")) {
po1.setFluc(data.getFluc());
po1.setPlt(data.getPlt());
po1.setPst(data.getPst());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_FLICKER.getCode(),data,null));
} else if (Objects.equals(valueType,"MAX")) {
po1.setFluc(data.getFlucMax());
po1.setPlt(data.getPltMax());
po1.setPst(data.getPstMax());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_FLICKER.getCode(),data,"Max"));
} else if (Objects.equals(valueType,"MIN")) {
po1.setFluc(data.getFlucMin());
po1.setPlt(data.getPltMin());
po1.setPst(data.getPstMin());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_FLICKER.getCode(),data,"Min"));
} else if (Objects.equals(valueType,"CP95")) {
po1.setFluc(data.getFlucCp95());
po1.setPlt(data.getPltCp95());
po1.setPst(data.getPstCp95());
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_FLICKER.getCode(),data,"Cp95"));
}
MaxValueProcessor.process(po1);
return po1;
}
public RStatDataInharmVD getDataInHarmV(DayInharmV data, Map<String, String> oracleRelationMysql, String valueType) {
ZoneId zoneId = ZoneId.systemDefault();
RStatDataInharmVD po1 = new RStatDataInharmVD();
po1.setTime(data.getTimeid().toInstant().atZone(zoneId).toLocalDate());
po1.setLineId(oracleRelationMysql.get(data.getLineid()));
po1.setPhaseType(data.getPhasicType());
po1.setValueType(valueType);
if (Objects.equals(valueType,"AVG")) {
PubUtils.setValuesUsingReflection(po1,data,false,"getV","setV",null);
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_IN_HARM_V.getCode(),data,null));
} else if (Objects.equals(valueType,"MAX")) {
PubUtils.setValuesUsingReflection(po1,data,true,"getV","setV","Max");
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_IN_HARM_V.getCode(),data,"Max"));
} else if (Objects.equals(valueType,"MIN")) {
PubUtils.setValuesUsingReflection(po1,data,true,"getV","setV","Min");
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_IN_HARM_V.getCode(),data,"Min"));
} else if (Objects.equals(valueType,"CP95")) {
PubUtils.setValuesUsingReflection(po1,data,true,"getV","setV","Cp95");
//异常数据判断
po1.setQualityFlag(PubUtils.judgeData(TargetEnum.DAY_IN_HARM_V.getCode(),data,"Cp95"));
}
MaxValueProcessor.process(po1);
return po1;
}
}

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.RStatDataFlickerD;
import com.njcn.mysql.mapper.RStatDataFlickerDMapper;
@@ -16,6 +17,7 @@ import java.util.List;
* @createTime 2023/3/24 9:53
*/
@Service
@DS("target")
public class RStatDataFlickerDServiceImpl extends MppServiceImpl<RStatDataFlickerDMapper, RStatDataFlickerD> implements IRStatDataFlickerDService {
@Override
public void insert(List<RStatDataFlickerD> list) {

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

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

View File

@@ -0,0 +1,64 @@
package com.njcn.mysql.util;
import cn.hutool.core.util.ObjectUtil;
import com.njcn.mysql.bo.util.CompareValue;
import java.lang.reflect.Field;
//防止数据过大
public class MaxValueProcessor {
public static void process(Object obj) {
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
if (field.isAnnotationPresent(CompareValue.class)) {
CompareValue compareValue = field.getAnnotation(CompareValue.class);
field.setAccessible(true);
Class<?> type = field.getType();
try {
if (type == Float.class) {
Float fieldValue = (Float) field.get(obj);
float minValue = compareValue.minValue();
float maxValue = compareValue.maxValue();
if(ObjectUtil.isNotNull(fieldValue)){
if (fieldValue > maxValue) {
field.set(obj, maxValue);
}
if (fieldValue < minValue) {
field.set(obj, minValue);
}
}
}
if (type == Double.class) {
Double fieldValue = (Double) field.get(obj);
double minValue = compareValue.minValue();
double maxValue = compareValue.maxValue();
if(ObjectUtil.isNotNull(fieldValue)){
if (fieldValue > maxValue) {
field.set(obj, maxValue);
}
if (fieldValue < minValue) {
field.set(obj, minValue);
}
}
}
if (type == Integer.class) {
Integer fieldValue = (Integer) field.get(obj);
int minValue = (int) compareValue.minValue();
int maxValue = (int) compareValue.maxValue();
if(ObjectUtil.isNotNull(fieldValue)){
if (fieldValue > maxValue) {
field.set(obj, maxValue);
}
if (fieldValue < minValue) {
field.set(obj, minValue);
}
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
}

View File

@@ -2,9 +2,9 @@ package com.njcn.mysql.util;
import cn.hutool.core.date.DatePattern;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.njcn.oracle.bo.po.DayHarmrateV;
import com.njcn.oracle.bo.po.DayV;
import com.njcn.oracle.bo.po.*;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
@@ -111,6 +111,53 @@ public class PubUtils {
e.getMessage();
}
return result;
case 2:
try {
DayFlicker data2 = new ObjectMapper().convertValue(object, DayFlicker.class);
String methodName1 = "getFluc" + (Objects.isNull(type)?"":type);
Method method1=data2.getClass().getMethod(methodName1);
float value = (Float) method1.invoke(data2);
String methodName2 = "getPlt" + (Objects.isNull(type)?"":type);
Method method2=data2.getClass().getMethod(methodName2);
float value2 = (Float) method2.invoke(data2);
String methodName3 = "getPst" + (Objects.isNull(type)?"":type);
Method method3=data2.getClass().getMethod(methodName3);
float value3 = (Float) method3.invoke(data2);
//电压波动值判断
if ( (value > 40.0|| value < 0)){
result = 1;
}
//短时闪变值判断
if ( (value2 > 20.0|| value2 < 0)){
result = 1;
}
//长时闪变值判断
if ( (value3 > 20.0|| value3 < 0)){
result = 1;
}
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
e.getMessage();
}
return result;
case 3:
//长时闪变
DayPlt data3 = new ObjectMapper().convertValue(object, DayPlt.class);
String methodName1 = "getPlt" + (Objects.isNull(type)?"":type);
Method method1 = null;
try {
method1 = data3.getClass().getMethod(methodName1);
float value = (Float) method1.invoke(data3);
//长时闪变值判断
if ( (value > 20.0|| value < 0)){
result = 1;
}
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
e.getMessage();
}
return result;
case 4:
DayHarmrateV data4 = new ObjectMapper().convertValue(object, DayHarmrateV.class);
List<Float> avgData4 = getData(data4);