This commit is contained in:
xy
2024-06-01 18:28:51 +08:00
parent 4cc4336521
commit ef902c11c3
6 changed files with 91 additions and 11 deletions

View File

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

View File

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

View File

@@ -6,10 +6,7 @@ import com.njcn.mysql.bo.enums.TargetEnum;
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 com.njcn.oracle.bo.po.*;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -38,6 +35,9 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
private final IRStatLimitRateDService rLimitRateDService;
private final IRStatLimitTargetDService rStatLimitTargetDService;
@Override
public void insertDayHarmRateV(String startTime, String endTime) {
List<String> timeList = PubUtils.getTimeList(startTime,endTime);
@@ -194,6 +194,7 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
@Override
public void insertLimitRate(String startTime, String endTime) {
ZoneId zoneId = ZoneId.systemDefault();
List<String> timeList = PubUtils.getTimeList(startTime,endTime);
List<PqLineBak> bakList = pqLineBakService.list();
//lineId:Oracle监测点ID id:Mysql监测点ID
@@ -207,8 +208,10 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
list.forEach(data->{
if (ObjUtil.isNotNull(oracleRelationMysql.get(data.getMyindex().toString()))) {
RStatLimitRateD po = new RStatLimitRateD();
po.setTime(data.getTimeid().toLocalDate());
po.setTime(data.getTimeid().toInstant().atZone(zoneId).toLocalDate());
po.setLineId(oracleRelationMysql.get(data.getMyindex().toString()));
po.setAllTime(data.getAlltime());
po.setFlickerAllTime(data.getFlicketAlltime());
BeanUtils.copyProperties(data,po);
result.add(po);
}
@@ -227,10 +230,38 @@ public class OracleToMysqlServiceImpl implements OracleToMysqlService {
@Override
public void insertLimitTarget(String startTime, String endTime) {
ZoneId zoneId = ZoneId.systemDefault();
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<RStatLimitTargetD> result = new ArrayList<>();
long system1 = System.currentTimeMillis();
List<LimitTarget> list = oracleDataService.getLimitTarget(item);
if(CollUtil.isNotEmpty(list)){
list.forEach(data->{
if (ObjUtil.isNotNull(oracleRelationMysql.get(data.getMyindex().toString()))) {
RStatLimitTargetD po = new RStatLimitTargetD();
po.setTime(data.getTimeid().toInstant().atZone(zoneId).toLocalDate());
po.setLineId(oracleRelationMysql.get(data.getMyindex().toString()));
po.setAllTime(data.getAlltime());
po.setFlickerAllTime(data.getFlicketAlltime());
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)){
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");
}
});
}
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.RStatLimitTargetD;
import com.njcn.mysql.mapper.RStatLimitTargetDMapper;
import com.njcn.mysql.service.IRStatLimitTargetDService;
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 RStatLimitTargetDServiceImpl extends MppServiceImpl<RStatLimitTargetDMapper, RStatLimitTargetD> implements IRStatLimitTargetDService {
@Override
public void insert(List<RStatLimitTargetD> list) {
this.saveOrUpdateBatchByMultiId(list,50);
}
}

View File

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import lombok.Getter;
import lombok.Setter;
@@ -24,7 +26,7 @@ public class LimitRate implements Serializable {
private static final long serialVersionUID = 1L;
@TableField("TIMEID")
private LocalDateTime timeid;
private Date timeid;
@TableField("PHASIC_TYPE")
private String phasicType;

View File

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import lombok.Getter;
import lombok.Setter;
@@ -24,7 +26,7 @@ public class LimitTarget implements Serializable {
private static final long serialVersionUID = 1L;
@TableField("TIMEID")
private LocalDateTime timeid;
private Date timeid;
@TableField("PHASIC_TYPE")
private String phasicType;