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.pojo.bo.CalculatedParam;
|
||||||
import com.njcn.algorithm.service.line.IDataVCvtService;
|
import com.njcn.algorithm.service.line.IDataVCvtService;
|
||||||
import com.njcn.dataProcess.api.DataVCvtFeignClient;
|
import com.njcn.dataProcess.api.DataHarmRateVCvtFeignClient;
|
||||||
import com.njcn.dataProcess.api.DataVFeignClient;
|
import com.njcn.dataProcess.api.DataHarmRateVFeignClient;
|
||||||
import com.njcn.dataProcess.constant.InfluxDBTableConstant;
|
import com.njcn.dataProcess.constant.InfluxDBTableConstant;
|
||||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||||
import com.njcn.dataProcess.po.influx.DataVCvt;
|
import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto;
|
||||||
import com.njcn.dataProcess.pojo.dto.DataVCvtDto;
|
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
|
||||||
import com.njcn.dataProcess.util.TimeUtils;
|
import com.njcn.dataProcess.util.TimeUtils;
|
||||||
import com.njcn.device.pq.api.CvtRelationFeignClient;
|
import com.njcn.device.pq.api.CvtRelationFeignClient;
|
||||||
import com.njcn.device.pq.pojo.dto.CvtHarmonicCorrectionFactorsDTO;
|
import com.njcn.device.pq.pojo.dto.CvtHarmonicCorrectionFactorsDTO;
|
||||||
@@ -38,9 +38,10 @@ public class DataVCvtServiceImpl implements IDataVCvtService {
|
|||||||
@Resource
|
@Resource
|
||||||
private CvtRelationFeignClient cvtRelationFeignClient;
|
private CvtRelationFeignClient cvtRelationFeignClient;
|
||||||
@Resource
|
@Resource
|
||||||
private DataVCvtFeignClient dataVCvtFeignClient;
|
private DataHarmRateVCvtFeignClient dataHarmRateVCvtFeignClient;
|
||||||
@Resource
|
@Resource
|
||||||
private DataVFeignClient dataVFeignClient;
|
private DataHarmRateVFeignClient dataHarmRateVFeignClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dataVCvtHandler(CalculatedParam calculatedParam) {
|
public void dataVCvtHandler(CalculatedParam calculatedParam) {
|
||||||
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
|
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
|
||||||
@@ -51,23 +52,30 @@ public class DataVCvtServiceImpl implements IDataVCvtService {
|
|||||||
lineCountEvaluateParam.setLineId(calculatedParam.getIdList());
|
lineCountEvaluateParam.setLineId(calculatedParam.getIdList());
|
||||||
lineCountEvaluateParam.setEndTime(calculatedParam.getDataDate()+ InfluxDBTableConstant.END_TIME);
|
lineCountEvaluateParam.setEndTime(calculatedParam.getDataDate()+ InfluxDBTableConstant.END_TIME);
|
||||||
lineCountEvaluateParam.setStartTime(calculatedParam.getDataDate()+ InfluxDBTableConstant.START_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<DataHarmRateVCvtDto> data = dataHarmRateVCvtFeignClient.getRawData(lineCountEvaluateParam).getData();
|
||||||
List<DataVCvtDto> result = new ArrayList<>();
|
|
||||||
|
Map<String, List<DataHarmRateVCvtDto>> collect = data.stream().collect(Collectors.groupingBy(DataHarmRateVCvtDto::getLineId));
|
||||||
|
List<DataHarmRateVDto> result = new ArrayList<>();
|
||||||
collect.forEach((k,v)->{
|
collect.forEach((k,v)->{
|
||||||
CvtHarmonicCorrectionFactorsDTO cvtHarmonicCorrectionFactorsDTO = cvtRelationFeignClient.queryByLineId(k).getData();
|
CvtHarmonicCorrectionFactorsDTO cvtHarmonicCorrectionFactorsDTO = cvtRelationFeignClient.queryByLineId(k).getData();
|
||||||
if(Objects.nonNull(cvtHarmonicCorrectionFactorsDTO)&&
|
if(Objects.nonNull(cvtHarmonicCorrectionFactorsDTO)&&
|
||||||
StringUtils.isNotEmpty(cvtHarmonicCorrectionFactorsDTO.getId())){
|
StringUtils.isNotEmpty(cvtHarmonicCorrectionFactorsDTO.getId())){
|
||||||
v = cvtChange(v,cvtHarmonicCorrectionFactorsDTO);
|
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->{
|
v.stream().forEach(temp->{
|
||||||
//目前知道的只有v2到v50乘以系数
|
//目前知道的只有v2到v50乘以系数
|
||||||
// temp.setLineId();
|
// 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.dto.DataHarmrateVDTO;
|
||||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||||
import com.njcn.dataProcess.po.influx.DataHarmrateV;
|
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.CommonMinuteDto;
|
||||||
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
|
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
|
||||||
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
|
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.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -170,7 +172,14 @@ public class InfluxdbDataHarmRateVImpl extends MppServiceImpl<RStatDataHarmRateV
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addList(List<DataHarmRateVDto> list) {
|
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 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);
|
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