添加电压含有率
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.njcn.algorithm.executor;
|
||||
|
||||
import com.njcn.algorithm.service.line.IDataCleanService;
|
||||
import com.njcn.algorithm.service.line.IDataVCvtService;
|
||||
import com.njcn.algorithm.service.line.IDayDataService;
|
||||
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
||||
import com.yomahub.liteflow.annotation.LiteflowMethod;
|
||||
@@ -28,6 +29,9 @@ public class MeasurementExecutor extends BaseExecutor {
|
||||
@Resource
|
||||
private IDataCleanService dataCleanService;
|
||||
|
||||
@Resource
|
||||
private IDataVCvtService dataVCvtService;
|
||||
|
||||
/**
|
||||
* 数据清洗 电压表
|
||||
* dataV表
|
||||
@@ -231,4 +235,17 @@ public class MeasurementExecutor extends BaseExecutor {
|
||||
dayDataService.dataHarmPowerQHandler(bindCmp.getRequestData());
|
||||
}
|
||||
|
||||
/**
|
||||
* 监测点cvt转换算法()
|
||||
* @author hzj
|
||||
*/
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataVCvt", nodeType = NodeTypeEnum.COMMON)
|
||||
public boolean dataVCvtAccess(NodeComponent bindCmp) {
|
||||
return isAccess(bindCmp);
|
||||
}
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataVCvt", nodeType = NodeTypeEnum.COMMON)
|
||||
public void dataVCvtProcess(NodeComponent bindCmp) {
|
||||
dataVCvtService.dataVCvtHandler(bindCmp.getRequestData());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.njcn.algorithm.service.line;
|
||||
|
||||
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2025/02/24 上午 9:10【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataVCvtService {
|
||||
void dataVCvtHandler(CalculatedParam requestData);
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
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.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.util.TimeUtils;
|
||||
import com.njcn.device.pq.api.CvtRelationFeignClient;
|
||||
import com.njcn.device.pq.pojo.dto.CvtHarmonicCorrectionFactorsDTO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2025/02/24 上午 9:11【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class DataVCvtServiceImpl implements IDataVCvtService {
|
||||
@Resource
|
||||
private CvtRelationFeignClient cvtRelationFeignClient;
|
||||
@Resource
|
||||
private DataVCvtFeignClient dataVCvtFeignClient;
|
||||
@Resource
|
||||
private DataVFeignClient dataVFeignClient;
|
||||
@Override
|
||||
public void dataVCvtHandler(CalculatedParam calculatedParam) {
|
||||
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
|
||||
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
|
||||
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
|
||||
List idList = calculatedParam.getIdList();
|
||||
LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam();
|
||||
lineCountEvaluateParam.setLineId(calculatedParam.getIdList());
|
||||
lineCountEvaluateParam.setEndTime(calculatedParam.getDataDate()+ InfluxDBTableConstant.END_TIME);
|
||||
lineCountEvaluateParam.setStartTime(calculatedParam.getDataDate()+ InfluxDBTableConstant.START_TIME);
|
||||
List<DataVCvt> data = dataVCvtFeignClient.getRawData(lineCountEvaluateParam).getData();
|
||||
Map<String, List<DataVCvt>> collect = data.stream().collect(Collectors.groupingBy(DataVCvt::getLineId));
|
||||
List<DataVCvtDTO> 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<DataVCvtDTO> dataVCvtDTOList = v.stream().map(temp -> {
|
||||
DataVCvtDTO dataVCvtDTO = new DataVCvtDTO();
|
||||
BeanUtils.copyProperties(temp, dataVCvtDTO);
|
||||
return dataVCvtDTO;
|
||||
}).collect(Collectors.toList());
|
||||
result.addAll(dataVCvtDTOList);
|
||||
});
|
||||
dataVFeignClient.batchInsertionCvtDTO(result);
|
||||
|
||||
}
|
||||
|
||||
private List<DataVCvt> cvtChange(List<DataVCvt> v, CvtHarmonicCorrectionFactorsDTO cvtHarmonicCorrectionFactorsDTO) {
|
||||
v.stream().forEach(temp->{
|
||||
//目前知道的只有v2到v50乘以系数
|
||||
// temp.setLineId();
|
||||
// temp.setPhasicType();
|
||||
// temp.setValueType();
|
||||
// temp.setQualityFlag();
|
||||
// temp.setAbnormalFlag();
|
||||
// temp.setFreq();
|
||||
// temp.setFreqDev();
|
||||
// temp.setRms();
|
||||
// temp.setRmsLvr();
|
||||
// temp.setVlDev();
|
||||
// temp.setVuDev();
|
||||
// temp.setVNeg();
|
||||
// temp.setVPos();
|
||||
// temp.setVThd();
|
||||
// temp.setVUnbalance();
|
||||
// temp.setVZero();
|
||||
// temp.setV1();
|
||||
temp.setV2(cvtHarmonicCorrectionFactorsDTO.getH2().doubleValue()*temp.getV2());
|
||||
temp.setV3(cvtHarmonicCorrectionFactorsDTO.getH3().doubleValue()*temp.getV3());
|
||||
temp.setV4(cvtHarmonicCorrectionFactorsDTO.getH4().doubleValue()*temp.getV4());
|
||||
temp.setV5(cvtHarmonicCorrectionFactorsDTO.getH5().doubleValue()*temp.getV5());
|
||||
temp.setV6(cvtHarmonicCorrectionFactorsDTO.getH6().doubleValue()*temp.getV6());
|
||||
temp.setV7(cvtHarmonicCorrectionFactorsDTO.getH7().doubleValue()*temp.getV7());
|
||||
temp.setV8(cvtHarmonicCorrectionFactorsDTO.getH8().doubleValue()*temp.getV8());
|
||||
temp.setV9(cvtHarmonicCorrectionFactorsDTO.getH9().doubleValue()*temp.getV9());
|
||||
temp.setV10(cvtHarmonicCorrectionFactorsDTO.getH10().doubleValue()*temp.getV10());
|
||||
temp.setV11(cvtHarmonicCorrectionFactorsDTO.getH11().doubleValue()*temp.getV11());
|
||||
temp.setV12(cvtHarmonicCorrectionFactorsDTO.getH12().doubleValue()*temp.getV12());
|
||||
temp.setV13(cvtHarmonicCorrectionFactorsDTO.getH13().doubleValue()*temp.getV13());
|
||||
temp.setV14(cvtHarmonicCorrectionFactorsDTO.getH14().doubleValue()*temp.getV14());
|
||||
temp.setV15(cvtHarmonicCorrectionFactorsDTO.getH15().doubleValue()*temp.getV15());
|
||||
temp.setV16(cvtHarmonicCorrectionFactorsDTO.getH16().doubleValue()*temp.getV16());
|
||||
temp.setV17(cvtHarmonicCorrectionFactorsDTO.getH17().doubleValue()*temp.getV17());
|
||||
temp.setV18(cvtHarmonicCorrectionFactorsDTO.getH18().doubleValue()*temp.getV18());
|
||||
temp.setV19(cvtHarmonicCorrectionFactorsDTO.getH19().doubleValue()*temp.getV19());
|
||||
temp.setV20(cvtHarmonicCorrectionFactorsDTO.getH20().doubleValue()*temp.getV20());
|
||||
temp.setV21(cvtHarmonicCorrectionFactorsDTO.getH21().doubleValue()*temp.getV21());
|
||||
temp.setV22(cvtHarmonicCorrectionFactorsDTO.getH22().doubleValue()*temp.getV22());
|
||||
temp.setV23(cvtHarmonicCorrectionFactorsDTO.getH23().doubleValue()*temp.getV23());
|
||||
temp.setV24(cvtHarmonicCorrectionFactorsDTO.getH24().doubleValue()*temp.getV24());
|
||||
temp.setV25(cvtHarmonicCorrectionFactorsDTO.getH25().doubleValue()*temp.getV25());
|
||||
temp.setV26(cvtHarmonicCorrectionFactorsDTO.getH26().doubleValue()*temp.getV26());
|
||||
temp.setV27(cvtHarmonicCorrectionFactorsDTO.getH27().doubleValue()*temp.getV27());
|
||||
temp.setV28(cvtHarmonicCorrectionFactorsDTO.getH28().doubleValue()*temp.getV28());
|
||||
temp.setV29(cvtHarmonicCorrectionFactorsDTO.getH29().doubleValue()*temp.getV29());
|
||||
temp.setV30(cvtHarmonicCorrectionFactorsDTO.getH30().doubleValue()*temp.getV30());
|
||||
temp.setV31(cvtHarmonicCorrectionFactorsDTO.getH31().doubleValue()*temp.getV31());
|
||||
temp.setV32(cvtHarmonicCorrectionFactorsDTO.getH32().doubleValue()*temp.getV32());
|
||||
temp.setV33(cvtHarmonicCorrectionFactorsDTO.getH33().doubleValue()*temp.getV33());
|
||||
temp.setV34(cvtHarmonicCorrectionFactorsDTO.getH34().doubleValue()*temp.getV34());
|
||||
temp.setV35(cvtHarmonicCorrectionFactorsDTO.getH35().doubleValue()*temp.getV35());
|
||||
temp.setV36(cvtHarmonicCorrectionFactorsDTO.getH36().doubleValue()*temp.getV36());
|
||||
temp.setV37(cvtHarmonicCorrectionFactorsDTO.getH37().doubleValue()*temp.getV37());
|
||||
temp.setV38(cvtHarmonicCorrectionFactorsDTO.getH38().doubleValue()*temp.getV38());
|
||||
temp.setV39(cvtHarmonicCorrectionFactorsDTO.getH39().doubleValue()*temp.getV39());
|
||||
temp.setV40(cvtHarmonicCorrectionFactorsDTO.getH40().doubleValue()*temp.getV40());
|
||||
temp.setV41(cvtHarmonicCorrectionFactorsDTO.getH41().doubleValue()*temp.getV41());
|
||||
temp.setV42(cvtHarmonicCorrectionFactorsDTO.getH42().doubleValue()*temp.getV42());
|
||||
temp.setV43(cvtHarmonicCorrectionFactorsDTO.getH43().doubleValue()*temp.getV43());
|
||||
temp.setV44(cvtHarmonicCorrectionFactorsDTO.getH44().doubleValue()*temp.getV44());
|
||||
temp.setV45(cvtHarmonicCorrectionFactorsDTO.getH45().doubleValue()*temp.getV45());
|
||||
temp.setV46(cvtHarmonicCorrectionFactorsDTO.getH46().doubleValue()*temp.getV46());
|
||||
temp.setV47(cvtHarmonicCorrectionFactorsDTO.getH47().doubleValue()*temp.getV47());
|
||||
temp.setV48(cvtHarmonicCorrectionFactorsDTO.getH48().doubleValue()*temp.getV48());
|
||||
temp.setV49(cvtHarmonicCorrectionFactorsDTO.getH49().doubleValue()*temp.getV49());
|
||||
temp.setV50(cvtHarmonicCorrectionFactorsDTO.getH50().doubleValue()*temp.getV50());
|
||||
|
||||
});
|
||||
return v;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user