cvt算法
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
package com.njcn.dataProcess.controller;
|
||||
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.constant.OperateType;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.dataProcess.annotation.InsertBean;
|
||||
import com.njcn.dataProcess.annotation.QueryBean;
|
||||
import com.njcn.dataProcess.dao.imapper.DataHarmRateVCvtMapper;
|
||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||
import com.njcn.dataProcess.po.influx.DataHarmRateVCvt;
|
||||
import com.njcn.dataProcess.po.influx.DataV;
|
||||
import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto;
|
||||
import com.njcn.dataProcess.pojo.dto.DataVCvtDto;
|
||||
import com.njcn.dataProcess.service.IDataHarmRateVCvt;
|
||||
import com.njcn.dataProcess.service.IDataVCvt;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0
|
||||
* @data 2024/11/6 19:48
|
||||
*/
|
||||
@Validated
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RestController
|
||||
@RequestMapping("/dataHarmRateVCvt")
|
||||
@Api(tags = "电压好含有率数(cvt表)据获取")
|
||||
public class DataHarmRateVCvtController extends BaseController {
|
||||
|
||||
@QueryBean
|
||||
private IDataHarmRateVCvt dataHarmRateVCvtQuery;
|
||||
|
||||
@InsertBean
|
||||
private IDataHarmRateVCvt dataHarmRateVCvtInsert;
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
|
||||
@QueryBean
|
||||
private IDataVCvt dataVCvtQuery;
|
||||
@Resource
|
||||
private DataHarmRateVCvtMapper dataHarmRateVCvtMapper;
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
|
||||
@PostMapping("/getRawData")
|
||||
@ApiOperation("获取原始数据")
|
||||
public HttpResult<List<DataHarmRateVCvtDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam) {
|
||||
String methodDescribe = getMethodDescribe("getRawData");
|
||||
List<DataHarmRateVCvtDto> data = dataHarmRateVCvtInsert.getRawData(lineParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
|
||||
@PostMapping("/createData")
|
||||
@ApiOperation("获取原始数据")
|
||||
public HttpResult<String> createData(@RequestBody LineCountEvaluateParam lineParam) {
|
||||
String methodDescribe = getMethodDescribe("createData");
|
||||
List<DataVCvtDto> rawData = dataVCvtQuery.getRawData(lineParam);
|
||||
|
||||
List<DataHarmRateVCvt> collect = rawData.stream().map(temp ->
|
||||
{
|
||||
DataHarmRateVCvt dataV = new DataHarmRateVCvt();
|
||||
BeanUtils.copyProperties(temp, dataV);
|
||||
dataV.setTime(LocalDateTime.parse(temp.getMinTime(), DATE_TIME_FORMATTER).atZone(ZoneId.systemDefault()).toInstant());
|
||||
|
||||
return dataV;
|
||||
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
dataHarmRateVCvtMapper.insertBatch(collect);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.njcn.dataProcess.dao.imapper;
|
||||
|
||||
import com.njcn.dataProcess.po.influx.DataHarmRateVCvt;
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
*/
|
||||
public interface DataHarmRateVCvtMapper extends InfluxDbBaseMapper<DataHarmRateVCvt> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.njcn.dataProcess.service;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.dataProcess.dto.DataHarmrateVDTO;
|
||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
|
||||
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
|
||||
import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto;
|
||||
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
|
||||
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateVD;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
*/
|
||||
public interface IDataHarmRateVCvt {
|
||||
|
||||
/**
|
||||
* 获取原始数据
|
||||
* @param lineParam
|
||||
* @return
|
||||
*/
|
||||
List<DataHarmRateVCvtDto> getRawData(LineCountEvaluateParam lineParam);
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.njcn.dataProcess.service.impl.influxdb;
|
||||
|
||||
import com.njcn.dataProcess.dao.imapper.DataHarmRateVCvtMapper;
|
||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||
import com.njcn.dataProcess.po.influx.DataHarmRateVCvt;
|
||||
import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto;
|
||||
import com.njcn.dataProcess.service.IDataHarmRateVCvt;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2025/03/03 下午 6:27【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service("InfluxdbDataHarmRateVCvtImpl")
|
||||
@RequiredArgsConstructor
|
||||
public class InfluxdbDataHarmRateVCvtImpl implements IDataHarmRateVCvt {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
|
||||
private final DataHarmRateVCvtMapper dataHarmRateVCvtMapper;
|
||||
@Override
|
||||
public List<DataHarmRateVCvtDto> getRawData(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmRateVCvt.class);
|
||||
|
||||
influxQueryWrapper.regular(DataHarmRateVCvt::getLineId,lineParam.getLineId()).between(DataHarmRateVCvt::getTime, lineParam.getStartTime(), lineParam.getEndTime());
|
||||
|
||||
List<DataHarmRateVCvt> dataVCvts = dataHarmRateVCvtMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
|
||||
List<DataHarmRateVCvtDto> result = new ArrayList<>();
|
||||
|
||||
dataVCvts.forEach(item->{
|
||||
DataHarmRateVCvtDto dto = new DataHarmRateVCvtDto();
|
||||
BeanUtils.copyProperties(item,dto);
|
||||
dto.setMinTime(DATE_TIME_FORMATTER.format(item.getTime()));
|
||||
result.add(dto);
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmRateVRelationMapper
|
||||
import com.njcn.dataProcess.dto.DataHarmrateVDTO;
|
||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||
import com.njcn.dataProcess.po.influx.DataHarmrateV;
|
||||
import com.njcn.dataProcess.po.influx.DataV;
|
||||
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
|
||||
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
|
||||
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
|
||||
@@ -21,6 +22,7 @@ import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
@@ -170,7 +172,14 @@ public class InfluxdbDataHarmRateVImpl extends MppServiceImpl<RStatDataHarmRateV
|
||||
|
||||
@Override
|
||||
public void addList(List<DataHarmRateVDto> list) {
|
||||
|
||||
List<DataHarmrateV> result = new ArrayList<>();
|
||||
list.forEach(item->{
|
||||
DataHarmrateV dataV = new DataHarmrateV();
|
||||
BeanUtils.copyProperties(item, dataV);
|
||||
dataV.setTime(LocalDateTime.parse(item.getMinTime(), DATE_TIME_FORMATTER).atZone(ZoneId.systemDefault()).toInstant());
|
||||
result.add(dataV);
|
||||
});
|
||||
dataHarmRateVMapper.insertBatch(result);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -49,7 +49,7 @@ public class InfluxdbDataVCvtImpl implements IDataVCvt {
|
||||
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataVCvt.class);
|
||||
|
||||
influxQueryWrapper.regular(DataV::getLineId,lineParam.getLineId()).between(DataV::getTime, lineParam.getStartTime(), lineParam.getEndTime());
|
||||
influxQueryWrapper.regular(DataV::getLineId,lineParam.getLineId()).between(DataVCvt::getTime, lineParam.getStartTime(), lineParam.getEndTime());
|
||||
|
||||
List<DataVCvt> dataVCvts = dataVCvtMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.njcn.dataProcess.service.impl.relation;
|
||||
|
||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
|
||||
import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto;
|
||||
import com.njcn.dataProcess.service.IDataHarmRateVCvt;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2025/03/03 下午 6:27【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class RelationDataHarmRateVCvtImpl implements IDataHarmRateVCvt {
|
||||
@Override
|
||||
public List<DataHarmRateVCvtDto> getRawData(LineCountEvaluateParam lineParam) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user