cvt算法

This commit is contained in:
hzj
2025-03-03 20:06:11 +08:00
parent 6321c68282
commit 5f18dd4fb6
8 changed files with 235 additions and 14 deletions

View File

@@ -2,12 +2,12 @@ package com.njcn.algorithm.serviceimpl.line;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.algorithm.service.line.IDataVCvtService;
import com.njcn.dataProcess.api.DataVCvtFeignClient;
import com.njcn.dataProcess.api.DataVFeignClient;
import com.njcn.dataProcess.api.DataHarmRateVCvtFeignClient;
import com.njcn.dataProcess.api.DataHarmRateVFeignClient;
import com.njcn.dataProcess.constant.InfluxDBTableConstant;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataVCvt;
import com.njcn.dataProcess.pojo.dto.DataVCvtDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.device.pq.api.CvtRelationFeignClient;
import com.njcn.device.pq.pojo.dto.CvtHarmonicCorrectionFactorsDTO;
@@ -38,9 +38,10 @@ public class DataVCvtServiceImpl implements IDataVCvtService {
@Resource
private CvtRelationFeignClient cvtRelationFeignClient;
@Resource
private DataVCvtFeignClient dataVCvtFeignClient;
private DataHarmRateVCvtFeignClient dataHarmRateVCvtFeignClient;
@Resource
private DataVFeignClient dataVFeignClient;
private DataHarmRateVFeignClient dataHarmRateVFeignClient;
@Override
public void dataVCvtHandler(CalculatedParam calculatedParam) {
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
@@ -51,23 +52,30 @@ public class DataVCvtServiceImpl implements IDataVCvtService {
lineCountEvaluateParam.setLineId(calculatedParam.getIdList());
lineCountEvaluateParam.setEndTime(calculatedParam.getDataDate()+ InfluxDBTableConstant.END_TIME);
lineCountEvaluateParam.setStartTime(calculatedParam.getDataDate()+ InfluxDBTableConstant.START_TIME);
List<DataVCvtDto> data = dataVCvtFeignClient.getRawData(lineCountEvaluateParam).getData();
Map<String, List<DataVCvtDto>> collect = data.stream().collect(Collectors.groupingBy(DataVCvtDto::getLineId));
List<DataVCvtDto> result = new ArrayList<>();
List<DataHarmRateVCvtDto> data = dataHarmRateVCvtFeignClient.getRawData(lineCountEvaluateParam).getData();
Map<String, List<DataHarmRateVCvtDto>> collect = data.stream().collect(Collectors.groupingBy(DataHarmRateVCvtDto::getLineId));
List<DataHarmRateVDto> result = new ArrayList<>();
collect.forEach((k,v)->{
CvtHarmonicCorrectionFactorsDTO cvtHarmonicCorrectionFactorsDTO = cvtRelationFeignClient.queryByLineId(k).getData();
if(Objects.nonNull(cvtHarmonicCorrectionFactorsDTO)&&
StringUtils.isNotEmpty(cvtHarmonicCorrectionFactorsDTO.getId())){
v = cvtChange(v,cvtHarmonicCorrectionFactorsDTO);
}
List<DataHarmRateVDto> dataVCvtDtoList = v.stream().map(temp -> {
DataHarmRateVDto dataHarmRateVDto = new DataHarmRateVDto();
BeanUtils.copyProperties(temp, dataHarmRateVDto);
return dataHarmRateVDto;
}).collect(Collectors.toList());
result.addAll(v);
result.addAll(dataVCvtDtoList);
});
dataVFeignClient.batchInsertionCvtDTO(result);
dataHarmRateVFeignClient.addList(result);
}
private List<DataVCvtDto> cvtChange(List<DataVCvtDto> v, CvtHarmonicCorrectionFactorsDTO cvtHarmonicCorrectionFactorsDTO) {
private List<DataHarmRateVCvtDto> cvtChange(List<DataHarmRateVCvtDto> v, CvtHarmonicCorrectionFactorsDTO cvtHarmonicCorrectionFactorsDTO) {
v.stream().forEach(temp->{
//目前知道的只有v2到v50乘以系数
// temp.setLineId();