河北两级贯通接口调整
This commit is contained in:
@@ -7,11 +7,14 @@ import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.utils.ReflectCommonUtil;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetBusBarDTO;
|
||||
import com.njcn.device.pms.pojo.po.GeneratrixWire;
|
||||
import com.njcn.device.pms.pojo.po.Monitor;
|
||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||
import com.njcn.harmonic.pojo.po.dim.RDimVoltageD;
|
||||
import com.njcn.influx.utils.ReflectUitl;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.area.PmsMonitorPOMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.dim.GeneratrixWireMapper;
|
||||
@@ -24,13 +27,17 @@ import com.njcn.system.enums.DicDataTypeEnum;
|
||||
import com.njcn.system.pojo.po.DictData;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.checkerframework.checker.units.qual.C;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -57,36 +64,58 @@ public class RDimVoltageDServiceImpl extends MppServiceImpl<RDimVoltageDMapper,
|
||||
public void busbarVoltageD(CalculatedParam<DeptGetBusBarDTO> calculatedParam) {
|
||||
List<RDimVoltageD> result = new ArrayList<>();
|
||||
List<DeptGetBusBarDTO> deptList = calculatedParam.getIdList();
|
||||
String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN);
|
||||
String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN);
|
||||
String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN);
|
||||
String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN);
|
||||
Set<String> lineList = new HashSet<>();
|
||||
Set<String> busBarList = new HashSet<>();
|
||||
|
||||
//接线方式
|
||||
List<DictData> dictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_CONNECT.getCode()).getData();
|
||||
Map<String,DictData> dictDataMap = dictData.stream().collect(Collectors.toMap(DictData::getId,Function.identity()));
|
||||
Map<String, DictData> dictDataMap = dictData.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
|
||||
|
||||
//获取监测点集合
|
||||
deptList.forEach(item->{
|
||||
deptList.forEach(item -> {
|
||||
lineList.addAll(item.getBusBarAndMonitorIDs());
|
||||
busBarList.addAll(item.getBusBarIds());
|
||||
});
|
||||
if (CollectionUtil.isNotEmpty(lineList)){
|
||||
if (CollectionUtil.isNotEmpty(lineList)) {
|
||||
//获取监测点信息
|
||||
List<Monitor> list1 = getMonitorInfo(lineList);
|
||||
Map<String, Monitor> monitorMap = list1.stream().collect(Collectors.toMap(Monitor::getId, Function.identity()));
|
||||
|
||||
//获取监测点数据
|
||||
List<LineDataDto> list2 = getLineData(beginDay,endDay,lineList);
|
||||
List<LineDataDto> list2 = getLineData(beginDay, endDay, lineList);
|
||||
|
||||
for (LineDataDto lineDataDto : list2) {
|
||||
Monitor monitor = monitorMap.get(lineDataDto.getLineId());
|
||||
Double lv;
|
||||
//不同接线类型的线电压反推公式不同
|
||||
if (dictDataMap.get(monitor.getTerminalWiringMethod()).getCode().equals("star")) {
|
||||
lv = Math.sqrt(3);
|
||||
} else {
|
||||
lv = 1.00;
|
||||
}
|
||||
lineDataDto.setRms(lineDataDto.getRms() * lv);
|
||||
}
|
||||
|
||||
|
||||
//获取数据完整性
|
||||
QueryWrapper<RStatIntegrityD> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("time_id","line_index","real_time/due_time as integrityData","real_time","due_time").
|
||||
eq("time_id",beginDay);
|
||||
queryWrapper.select("time_id", "line_index", "real_time/due_time as integrityData", "real_time", "due_time").
|
||||
eq("time_id", beginDay);
|
||||
List<RStatIntegrityD> rStatIntegrityDList = rStatIntegrityDMapper.selectList(queryWrapper);
|
||||
|
||||
|
||||
//获取母线信息
|
||||
List<GeneratrixWire> list3 = getBusBarInfo(busBarList);
|
||||
//循环区域信息,筛选符合条件的数据,做统计
|
||||
deptList.forEach(item->{
|
||||
deptList.forEach(item -> {
|
||||
|
||||
if(item.getUnitId().equals("13B9B47F251C3324E05338297A0A0595")){
|
||||
|
||||
System.out.println(55);
|
||||
}
|
||||
|
||||
List<String> list = item.getBusBarIds();
|
||||
if (CollUtil.isNotEmpty(list)) {
|
||||
RDimVoltageD rDimVoltageD = new RDimVoltageD();
|
||||
@@ -98,142 +127,216 @@ public class RDimVoltageDServiceImpl extends MppServiceImpl<RDimVoltageDMapper,
|
||||
Map<String, List<GeneratrixWire>> map1 = list4.stream().collect(Collectors.groupingBy(GeneratrixWire::getScale));
|
||||
//循环分组数据,获取母线下监测点数据
|
||||
map1.forEach((k, v) -> {
|
||||
RDimVoltageD dto = assignment(k,rDimVoltageD,v,list1,list2,rStatIntegrityDList,dictDataMap);
|
||||
result.add(dto);
|
||||
assignment(k, rDimVoltageD, v, list1, list2, rStatIntegrityDList,result);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(result)){
|
||||
if (CollectionUtil.isNotEmpty(result)) {
|
||||
this.saveOrUpdateBatchByMultiId(result);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取监测点信息
|
||||
*
|
||||
* @param lineList 监测点集合
|
||||
* @return 监测点信息
|
||||
*/
|
||||
public List<Monitor> getMonitorInfo(Set<String> lineList) {
|
||||
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(Monitor::getId,lineList).eq(Monitor::getStatus,1);
|
||||
lambdaQueryWrapper.in(Monitor::getId, lineList).eq(Monitor::getStatus, 1);
|
||||
return pmsMonitorPOMapper.selectList(lambdaQueryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取母线信息
|
||||
*
|
||||
* @param busBarList 监测点集合
|
||||
* @return 母线信息
|
||||
*/
|
||||
public List<GeneratrixWire> getBusBarInfo(Set<String> busBarList){
|
||||
public List<GeneratrixWire> getBusBarInfo(Set<String> busBarList) {
|
||||
LambdaQueryWrapper<GeneratrixWire> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(GeneratrixWire::getId,busBarList).eq(GeneratrixWire::getStatus, 1);
|
||||
lambdaQueryWrapper.in(GeneratrixWire::getId, busBarList).eq(GeneratrixWire::getStatus, 1);
|
||||
return generatrixWireMapper.selectList(lambdaQueryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取监测点数据
|
||||
*
|
||||
* @param startTime 开始时间
|
||||
* @param endTime 结束时间
|
||||
* @param lineList 监测点集合
|
||||
* @return 母线信息
|
||||
*/
|
||||
public List<LineDataDto> getLineData(String startTime, String endTime, Set<String> lineList){
|
||||
return this.baseMapper.getLineData(startTime,endTime,lineList);
|
||||
public List<LineDataDto> getLineData(String startTime, String endTime, Set<String> lineList) {
|
||||
List<LineDataDto> list2 = this.baseMapper.getLineData(startTime, endTime, lineList);
|
||||
return list2.stream().filter(i -> i.getRms() > 0).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 给实体赋值
|
||||
* @param rDimVoltageD 对象
|
||||
*
|
||||
* @param rDimVoltageD 对象
|
||||
*/
|
||||
public RDimVoltageD assignment(String voltage, RDimVoltageD rDimVoltageD, List<GeneratrixWire> list1, List<Monitor> list2, List<LineDataDto> list3,List<RStatIntegrityD> rStatIntegrityDList,Map<String,DictData> dictDataMap) {
|
||||
public void assignment(String voltage, RDimVoltageD rDimVoltageD, List<GeneratrixWire> list1, List<Monitor> list2, List<LineDataDto> list3, List<RStatIntegrityD> rStatIntegrityDList,List<RDimVoltageD> resultList) {
|
||||
RDimVoltageD result = new RDimVoltageD();
|
||||
BeanUtils.copyProperties(rDimVoltageD,result);
|
||||
RDimVoltageD resultSd = new RDimVoltageD();
|
||||
BeanUtils.copyProperties(rDimVoltageD, result);
|
||||
result.setDataType("avg");
|
||||
BeanUtils.copyProperties(rDimVoltageD, resultSd);
|
||||
resultSd.setDataType("sd");
|
||||
result.setVoltageType(voltage);
|
||||
resultSd.setVoltageType(voltage);
|
||||
//不同电压等级下,母线的id
|
||||
List<String> l1 = list1.stream().map(GeneratrixWire::getId).collect(Collectors.toList());
|
||||
//获取这些母线下的监测点
|
||||
List<Monitor> l2 = list2.stream().filter(obj -> l1.contains(obj.getLineId())).collect(Collectors.toList());
|
||||
|
||||
List<RStatIntegrityD> rStatIntegrityDS = rStatIntegrityDList.stream().filter(it->l2.stream().map(Monitor::getId).collect(Collectors.toList()).contains(it.getLineIndex())).collect(Collectors.toList());
|
||||
List<RStatIntegrityD> rStatIntegrityDS = rStatIntegrityDList.stream().filter(it -> l2.stream().map(Monitor::getId).collect(Collectors.toList()).contains(it.getLineIndex())).collect(Collectors.toList());
|
||||
|
||||
Map<String,List<Monitor>> mapMonitor = l2.stream().collect(Collectors.groupingBy(Monitor::getLineId));
|
||||
mapMonitor.forEach((busId,list)->{
|
||||
RStatIntegrityD rStatIntegrityD = rStatIntegrityDS.stream().filter(i->list.stream().map(Monitor::getId).collect(Collectors.toList()).contains(i.getLineIndex())).max(Comparator.comparing(RStatIntegrityD::getIntegrityData)).orElse(null);
|
||||
if(Objects.nonNull(rStatIntegrityD)) {
|
||||
Map<String, List<Monitor>> mapMonitor = l2.stream().collect(Collectors.groupingBy(Monitor::getLineId));
|
||||
|
||||
List<LineDataDto> l3 = new ArrayList<>();
|
||||
mapMonitor.forEach((busId, list) -> {
|
||||
RStatIntegrityD rStatIntegrityD = rStatIntegrityDS.stream().filter(i -> list.stream().map(Monitor::getId).collect(Collectors.toList()).contains(i.getLineIndex())).max(Comparator.comparing(RStatIntegrityD::getIntegrityData)).orElse(null);
|
||||
if (Objects.nonNull(rStatIntegrityD)) {
|
||||
//获取监测点数据
|
||||
List<LineDataDto> l3 = list3.stream().filter(vo -> vo.getLineId().equals(rStatIntegrityD.getLineIndex())).collect(Collectors.toList());
|
||||
Monitor monitor = list.stream().filter(it->it.getId().equals(rStatIntegrityD.getLineIndex())).findFirst().orElse(null);
|
||||
String method = monitor.getTerminalWiringMethod();
|
||||
Double lv;
|
||||
if(dictDataMap.get(method).getCode().equals("star")){
|
||||
lv = Math.sqrt(3);
|
||||
}else {
|
||||
lv = 1.00;
|
||||
}
|
||||
|
||||
if (CollectionUtil.isNotEmpty(l3)) {
|
||||
result.setV(l3.stream().mapToDouble(it->it.getRms()*lv).average().orElse(0d));
|
||||
result.setVUnbalance(l3.stream().mapToDouble(LineDataDto::getVUnbalance).average().orElse(0d));
|
||||
result.setPst(l3.stream().mapToDouble(LineDataDto::getPst).average().orElse(0d));
|
||||
result.setVThd(l3.stream().mapToDouble(LineDataDto::getVThd).average().orElse(0d));
|
||||
result.setV1(l3.stream().mapToDouble(LineDataDto::getV1).average().orElse(0d));
|
||||
result.setV2(l3.stream().mapToDouble(LineDataDto::getV2).average().orElse(0d));
|
||||
result.setV3(l3.stream().mapToDouble(LineDataDto::getV3).average().orElse(0d));
|
||||
result.setV4(l3.stream().mapToDouble(LineDataDto::getV4).average().orElse(0d));
|
||||
result.setV5(l3.stream().mapToDouble(LineDataDto::getV5).average().orElse(0d));
|
||||
result.setV6(l3.stream().mapToDouble(LineDataDto::getV6).average().orElse(0d));
|
||||
result.setV7(l3.stream().mapToDouble(LineDataDto::getV7).average().orElse(0d));
|
||||
result.setV8(l3.stream().mapToDouble(LineDataDto::getV8).average().orElse(0d));
|
||||
result.setV9(l3.stream().mapToDouble(LineDataDto::getV9).average().orElse(0d));
|
||||
result.setV10(l3.stream().mapToDouble(LineDataDto::getV10).average().orElse(0d));
|
||||
result.setV11(l3.stream().mapToDouble(LineDataDto::getV11).average().orElse(0d));
|
||||
result.setV12(l3.stream().mapToDouble(LineDataDto::getV12).average().orElse(0d));
|
||||
result.setV13(l3.stream().mapToDouble(LineDataDto::getV13).average().orElse(0d));
|
||||
result.setV14(l3.stream().mapToDouble(LineDataDto::getV14).average().orElse(0d));
|
||||
result.setV15(l3.stream().mapToDouble(LineDataDto::getV15).average().orElse(0d));
|
||||
result.setV16(l3.stream().mapToDouble(LineDataDto::getV16).average().orElse(0d));
|
||||
result.setV17(l3.stream().mapToDouble(LineDataDto::getV17).average().orElse(0d));
|
||||
result.setV18(l3.stream().mapToDouble(LineDataDto::getV18).average().orElse(0d));
|
||||
result.setV19(l3.stream().mapToDouble(LineDataDto::getV19).average().orElse(0d));
|
||||
result.setV20(l3.stream().mapToDouble(LineDataDto::getV20).average().orElse(0d));
|
||||
result.setV21(l3.stream().mapToDouble(LineDataDto::getV21).average().orElse(0d));
|
||||
result.setV22(l3.stream().mapToDouble(LineDataDto::getV22).average().orElse(0d));
|
||||
result.setV23(l3.stream().mapToDouble(LineDataDto::getV23).average().orElse(0d));
|
||||
result.setV24(l3.stream().mapToDouble(LineDataDto::getV24).average().orElse(0d));
|
||||
result.setV25(l3.stream().mapToDouble(LineDataDto::getV25).average().orElse(0d));
|
||||
result.setV26(l3.stream().mapToDouble(LineDataDto::getV26).average().orElse(0d));
|
||||
result.setV27(l3.stream().mapToDouble(LineDataDto::getV27).average().orElse(0d));
|
||||
result.setV28(l3.stream().mapToDouble(LineDataDto::getV28).average().orElse(0d));
|
||||
result.setV29(l3.stream().mapToDouble(LineDataDto::getV29).average().orElse(0d));
|
||||
result.setV30(l3.stream().mapToDouble(LineDataDto::getV30).average().orElse(0d));
|
||||
result.setV31(l3.stream().mapToDouble(LineDataDto::getV31).average().orElse(0d));
|
||||
result.setV32(l3.stream().mapToDouble(LineDataDto::getV32).average().orElse(0d));
|
||||
result.setV33(l3.stream().mapToDouble(LineDataDto::getV33).average().orElse(0d));
|
||||
result.setV34(l3.stream().mapToDouble(LineDataDto::getV34).average().orElse(0d));
|
||||
result.setV35(l3.stream().mapToDouble(LineDataDto::getV35).average().orElse(0d));
|
||||
result.setV36(l3.stream().mapToDouble(LineDataDto::getV36).average().orElse(0d));
|
||||
result.setV37(l3.stream().mapToDouble(LineDataDto::getV37).average().orElse(0d));
|
||||
result.setV38(l3.stream().mapToDouble(LineDataDto::getV38).average().orElse(0d));
|
||||
result.setV39(l3.stream().mapToDouble(LineDataDto::getV39).average().orElse(0d));
|
||||
result.setV40(l3.stream().mapToDouble(LineDataDto::getV40).average().orElse(0d));
|
||||
result.setV41(l3.stream().mapToDouble(LineDataDto::getV41).average().orElse(0d));
|
||||
result.setV42(l3.stream().mapToDouble(LineDataDto::getV42).average().orElse(0d));
|
||||
result.setV43(l3.stream().mapToDouble(LineDataDto::getV43).average().orElse(0d));
|
||||
result.setV44(l3.stream().mapToDouble(LineDataDto::getV44).average().orElse(0d));
|
||||
result.setV45(l3.stream().mapToDouble(LineDataDto::getV45).average().orElse(0d));
|
||||
result.setV46(l3.stream().mapToDouble(LineDataDto::getV46).average().orElse(0d));
|
||||
result.setV47(l3.stream().mapToDouble(LineDataDto::getV47).average().orElse(0d));
|
||||
result.setV48(l3.stream().mapToDouble(LineDataDto::getV48).average().orElse(0d));
|
||||
result.setV49(l3.stream().mapToDouble(LineDataDto::getV49).average().orElse(0d));
|
||||
result.setV50(l3.stream().mapToDouble(LineDataDto::getV50).average().orElse(0d));
|
||||
result.setINeg(l3.stream().mapToDouble(LineDataDto::getINeg).average().orElse(0d));
|
||||
}
|
||||
List<LineDataDto> pointList = list3.stream().filter(vo -> vo.getLineId().equals(rStatIntegrityD.getLineIndex())).collect(Collectors.toList());
|
||||
l3.addAll(pointList);
|
||||
}
|
||||
});
|
||||
|
||||
if (CollectionUtil.isNotEmpty(l3)) {
|
||||
double v_avg = l3.stream().mapToDouble(LineDataDto::getRms).average().orElse(0d);
|
||||
result.setV(v_avg);
|
||||
double v_sdf = 0.0;
|
||||
for (LineDataDto lineDataDto : l3) {
|
||||
try {
|
||||
v_sdf += (lineDataDto.getRms() - v_avg) * (lineDataDto.getRms() - v_avg);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
resultSd.setV(Math.sqrt(v_sdf / l3.size()));
|
||||
|
||||
return result;
|
||||
|
||||
double v_unbalance = l3.stream().mapToDouble(LineDataDto::getVUnbalance).average().orElse(0d);
|
||||
result.setVUnbalance(v_unbalance);
|
||||
double v_unbalance_df = 0.0;
|
||||
for (LineDataDto lineDataDto : l3) {
|
||||
try {
|
||||
v_unbalance_df += (lineDataDto.getVUnbalance() - v_unbalance) * (lineDataDto.getVUnbalance() - v_unbalance);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
resultSd.setVUnbalance(Math.sqrt(v_unbalance_df / l3.size()));
|
||||
|
||||
|
||||
double v_pst = l3.stream().mapToDouble(LineDataDto::getPst).average().orElse(0d);
|
||||
result.setPst(v_pst);
|
||||
double v_pst_df = 0.0;
|
||||
for (LineDataDto lineDataDto : l3) {
|
||||
try {
|
||||
v_pst_df += (lineDataDto.getPst() - v_pst) * (lineDataDto.getPst() - v_pst);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
resultSd.setPst(Math.sqrt(v_pst_df / l3.size()));
|
||||
|
||||
|
||||
double v_thd = l3.stream().mapToDouble(LineDataDto::getVThd).average().orElse(0d);
|
||||
result.setVThd(v_thd);
|
||||
double v_thd_df = 0.0;
|
||||
for (LineDataDto lineDataDto : l3) {
|
||||
try {
|
||||
v_thd_df += (lineDataDto.getVThd() - v_thd) * (lineDataDto.getVThd() - v_thd);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
resultSd.setVThd(Math.sqrt(v_thd_df / l3.size()));
|
||||
|
||||
double v_ineg = l3.stream().mapToDouble(LineDataDto::getINeg).average().orElse(0d);
|
||||
result.setINeg(v_ineg);
|
||||
double v_ineg_df = 0.0;
|
||||
for (LineDataDto lineDataDto : l3) {
|
||||
try {
|
||||
v_ineg_df += (lineDataDto.getINeg() - v_ineg) * (lineDataDto.getINeg() - v_ineg);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
resultSd.setINeg(Math.sqrt(v_ineg_df / l3.size()));
|
||||
|
||||
result.setINeg(l3.stream().mapToDouble(LineDataDto::getINeg).average().orElse(0d));
|
||||
calculateAveragesAndSet(l3,result,resultSd);
|
||||
resultList.add(result);
|
||||
resultList.add(resultSd);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void calculateAveragesAndSet(List<LineDataDto> l3, RDimVoltageD result,RDimVoltageD resultSd) {
|
||||
|
||||
// 从V1到V50,可以使用IntStream来迭代这些索引
|
||||
IntStream.rangeClosed(1, 50)
|
||||
.forEach(i -> {
|
||||
// 构建getter和setter方法的名字
|
||||
String getterName = "getV" + i;
|
||||
String setterName = "setV" + i;
|
||||
|
||||
// 获取getter和setter的Method对象
|
||||
try {
|
||||
Method getter = LineDataDto.class.getMethod(getterName);
|
||||
Method setter = result.getClass().getMethod(setterName, Double.class);
|
||||
Method setterSd = resultSd.getClass().getMethod(setterName, Double.class);
|
||||
|
||||
// 计算平均值
|
||||
OptionalDouble average = l3.stream()
|
||||
.mapToDouble(lineDataDto -> {
|
||||
try {
|
||||
return (double) getter.invoke(lineDataDto);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
})
|
||||
.average();
|
||||
|
||||
// 设置结果
|
||||
if (average.isPresent()) {
|
||||
double tem = average.getAsDouble();
|
||||
setter.invoke(result,tem);
|
||||
|
||||
double sd = getTemParam(l3, tem, i);
|
||||
setterSd.invoke(resultSd,sd);
|
||||
} else {
|
||||
// 如果列表为空,可以设置默认值或其他逻辑
|
||||
setter.invoke(result, 0d);
|
||||
setterSd.invoke(resultSd,0d);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
private Double getTemParam(List<LineDataDto> l3, Double avg, Integer count) {
|
||||
double tem = 0.0;
|
||||
for (LineDataDto lineDataDto : l3) {
|
||||
try {
|
||||
double vvv = (double) LineDataDto.class.getMethod("getV" + count).invoke(lineDataDto);
|
||||
tem += (vvv - avg) * (vvv - avg);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
return Math.sqrt(tem/l3.size());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -83,12 +83,15 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
|
||||
|
||||
//获取中台母线信息
|
||||
List<PmsMidLedger> allMidBusBarList = this.getBusBarInfo();
|
||||
|
||||
//获取在运测点
|
||||
List<Monitor> monitorList = this.getRunMonitorList(pmsRunStatisticsListD);
|
||||
|
||||
|
||||
//获取监测母线
|
||||
List<GeneratrixWire> superviseBusList;
|
||||
if (CollUtil.isNotEmpty(pmsRunStatisticsListD)) {
|
||||
List<String> wireIds = pmsRunStatisticsListD.stream()
|
||||
.filter(x -> StrUtil.isNotBlank(x.getOnlineBusIds()))
|
||||
.flatMap(x -> CollectionUtil.toList(x.getOnlineBusIds().split(StrUtil.COMMA)).stream()).distinct().collect(Collectors.toList());
|
||||
List<String> wireIds = pmsRunStatisticsListD.stream().filter(x -> StrUtil.isNotBlank(x.getOnlineBusIds())).flatMap(x -> CollectionUtil.toList(x.getOnlineBusIds().split(StrUtil.COMMA)).stream()).distinct().collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(wireIds)){
|
||||
LambdaQueryWrapper<GeneratrixWire> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(GeneratrixWire::getStatus, DataStateEnum.ENABLE.getCode())
|
||||
@@ -125,8 +128,14 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
|
||||
return;
|
||||
}
|
||||
|
||||
if(item.getUnitId().equals("13B9B47F1E4F3324E05338297A0A0595")){
|
||||
System.out.println("555");
|
||||
}
|
||||
|
||||
BusBarDto busBarDto = allDept.stream().filter(o -> Objects.equals(o.getOrgId(), item.getUnitId())).findFirst().orElse(null);
|
||||
|
||||
List<Monitor> deptMonitorList = monitorList.stream().filter(t->item.getUnitId().contains(t.getOrgId())).collect(Collectors.toList());
|
||||
|
||||
if(Objects.isNull(busBarDto) || busBarDto.getAllOnlineBusNum()==0){
|
||||
return;
|
||||
}
|
||||
@@ -157,34 +166,34 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
|
||||
RUploadEvaluationDataD dto4 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_04.getCode(), 0, "0", dto);
|
||||
result.add(dto4);
|
||||
//各次谐波电压
|
||||
this.channelHarmonicData(rUploadEvaluationDataD, result, null, UploadEnum.INDEX_TYPE_05.getCode(), "0", dto, null);
|
||||
this.channelHarmonicData(rUploadEvaluationDataD, result, null,null, UploadEnum.INDEX_TYPE_05.getCode(), "0", dto, null);
|
||||
//负序电流
|
||||
RUploadEvaluationDataD dto6 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_06.getCode(), 0, "0", dto);
|
||||
result.add(dto6);
|
||||
/*** 计算分电压等级的数据*/
|
||||
if (CollUtil.isNotEmpty(busBarDto.getVoltageChild())) {
|
||||
busBarDto.getVoltageChild().forEach(item2 -> {
|
||||
RDimVoltageD rDimVoltageD = this.getDimVoltageData(item.getUnitId(), calculatedParam.getDataDate(), item2.getVoltageLevel());
|
||||
RDimVoltageD rDimVoltageD = this.getDimVoltageData(item.getUnitId(), calculatedParam.getDataDate(), item2.getVoltageLevel(),"avg");
|
||||
RDimVoltageD rDimVoltageDSd = this.getDimVoltageData(item.getUnitId(), calculatedParam.getDataDate(), item2.getVoltageLevel(),"sd");
|
||||
|
||||
List<Monitor> voltageMonitor = deptMonitorList.stream().filter(it->it.getVoltageLevel().equals(item2.getVoltageLevel())).collect(Collectors.toList());
|
||||
|
||||
RUploadEvaluationDataD dto0 = this.getLineNum(busBarDto, item2.getVoltageLevel());
|
||||
//电压
|
||||
double sd1 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getV(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_01.getCode(), null);
|
||||
RUploadEvaluationDataD dto11 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getV(), sd1, UploadEnum.INDEX_TYPE_01.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
RUploadEvaluationDataD dto11 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getV(), Objects.isNull(rDimVoltageDSd) ? defaultValue : rDimVoltageDSd.getV(), UploadEnum.INDEX_TYPE_01.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
result.add(dto11);
|
||||
//长时间闪变
|
||||
double sd2 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getPst(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_02.getCode(), null);
|
||||
RUploadEvaluationDataD dto22 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getPst(), sd2, UploadEnum.INDEX_TYPE_02.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
RUploadEvaluationDataD dto22 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getPst(), Objects.isNull(rDimVoltageDSd) ? defaultValue : rDimVoltageDSd.getPst(), UploadEnum.INDEX_TYPE_02.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
result.add(dto22);
|
||||
//三相电压不平衡
|
||||
double sd3 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVUnbalance(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_03.getCode(), null);
|
||||
RUploadEvaluationDataD dto33 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVUnbalance(), sd3, UploadEnum.INDEX_TYPE_03.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
RUploadEvaluationDataD dto33 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVUnbalance(), Objects.isNull(rDimVoltageDSd) ? defaultValue : rDimVoltageDSd.getVUnbalance(), UploadEnum.INDEX_TYPE_03.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
result.add(dto33);
|
||||
//电压总谐波畸变率
|
||||
double sd4 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVThd(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_04.getCode(), null);
|
||||
RUploadEvaluationDataD dto44 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVThd(), sd4, UploadEnum.INDEX_TYPE_04.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
RUploadEvaluationDataD dto44 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVThd(), Objects.isNull(rDimVoltageDSd) ? defaultValue : rDimVoltageDSd.getVThd(), UploadEnum.INDEX_TYPE_04.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
result.add(dto44);
|
||||
//各次谐波电压
|
||||
List<Double> valueList = new ArrayList<>();
|
||||
List<Double> valueListSd = new ArrayList<>();
|
||||
if (!Objects.isNull(rDimVoltageD)) {
|
||||
valueList = Arrays.asList(rDimVoltageD.getV2(), rDimVoltageD.getV3(), rDimVoltageD.getV4(), rDimVoltageD.getV5(), rDimVoltageD.getV6(), rDimVoltageD.getV7(), rDimVoltageD.getV8(), rDimVoltageD.getV9(), rDimVoltageD.getV10()
|
||||
, rDimVoltageD.getV11(), rDimVoltageD.getV12(), rDimVoltageD.getV13(), rDimVoltageD.getV14(), rDimVoltageD.getV15(), rDimVoltageD.getV16(), rDimVoltageD.getV17(), rDimVoltageD.getV18(), rDimVoltageD.getV19(), rDimVoltageD.getV20()
|
||||
@@ -192,10 +201,16 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
|
||||
, rDimVoltageD.getV31(), rDimVoltageD.getV32(), rDimVoltageD.getV33(), rDimVoltageD.getV34(), rDimVoltageD.getV35(), rDimVoltageD.getV36(), rDimVoltageD.getV37(), rDimVoltageD.getV38(), rDimVoltageD.getV39(), rDimVoltageD.getV40()
|
||||
, rDimVoltageD.getV41(), rDimVoltageD.getV42(), rDimVoltageD.getV43(), rDimVoltageD.getV44(), rDimVoltageD.getV45(), rDimVoltageD.getV46(), rDimVoltageD.getV47(), rDimVoltageD.getV48(), rDimVoltageD.getV49(), rDimVoltageD.getV50());
|
||||
}
|
||||
this.channelHarmonicData(rUploadEvaluationDataD, result, valueList, UploadEnum.INDEX_TYPE_05.getCode(), item2.getVoltageLevel(), dto0, item.getLineBaseList());
|
||||
if (!Objects.isNull(rDimVoltageDSd)) {
|
||||
valueListSd = Arrays.asList(rDimVoltageDSd.getV2(), rDimVoltageDSd.getV3(), rDimVoltageDSd.getV4(), rDimVoltageDSd.getV5(), rDimVoltageDSd.getV6(), rDimVoltageDSd.getV7(), rDimVoltageDSd.getV8(), rDimVoltageDSd.getV9(), rDimVoltageDSd.getV10()
|
||||
, rDimVoltageDSd.getV11(), rDimVoltageDSd.getV12(), rDimVoltageDSd.getV13(), rDimVoltageDSd.getV14(), rDimVoltageDSd.getV15(), rDimVoltageDSd.getV16(), rDimVoltageDSd.getV17(), rDimVoltageDSd.getV18(), rDimVoltageDSd.getV19(), rDimVoltageDSd.getV20()
|
||||
, rDimVoltageDSd.getV21(), rDimVoltageDSd.getV22(), rDimVoltageDSd.getV23(), rDimVoltageDSd.getV24(), rDimVoltageDSd.getV25(), rDimVoltageDSd.getV26(), rDimVoltageDSd.getV27(), rDimVoltageDSd.getV28(), rDimVoltageDSd.getV29(), rDimVoltageDSd.getV30()
|
||||
, rDimVoltageDSd.getV31(), rDimVoltageDSd.getV32(), rDimVoltageDSd.getV33(), rDimVoltageDSd.getV34(), rDimVoltageDSd.getV35(), rDimVoltageDSd.getV36(), rDimVoltageDSd.getV37(), rDimVoltageDSd.getV38(), rDimVoltageDSd.getV39(), rDimVoltageDSd.getV40()
|
||||
, rDimVoltageDSd.getV41(), rDimVoltageDSd.getV42(), rDimVoltageDSd.getV43(), rDimVoltageDSd.getV44(), rDimVoltageDSd.getV45(), rDimVoltageDSd.getV46(), rDimVoltageDSd.getV47(), rDimVoltageDSd.getV48(), rDimVoltageDSd.getV49(), rDimVoltageDSd.getV50());
|
||||
}
|
||||
this.channelHarmonicData(rUploadEvaluationDataD, result, valueList,valueListSd, UploadEnum.INDEX_TYPE_05.getCode(), item2.getVoltageLevel(), dto0, voltageMonitor);
|
||||
//负序电流
|
||||
double sd6 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getINeg(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_06.getCode(), null);
|
||||
RUploadEvaluationDataD dto66 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getINeg(), sd6, UploadEnum.INDEX_TYPE_06.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
RUploadEvaluationDataD dto66 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getINeg(), Objects.isNull(rDimVoltageDSd) ? defaultValue : rDimVoltageDSd.getINeg(), UploadEnum.INDEX_TYPE_06.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
result.add(dto66);
|
||||
});
|
||||
}
|
||||
@@ -207,136 +222,19 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
|
||||
|
||||
|
||||
|
||||
/* @Override
|
||||
public void insertEvaluationDataDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||
List<RUploadEvaluationDataD> result = new ArrayList<>();
|
||||
final Double defaultValue = 3.1415926;
|
||||
//首先获取pms_run_statistic表是否存在执行日期的数据
|
||||
List<PmsRunStatisticD> pmsRunStatisticsListD = runStatisticDMapper.selectList(new LambdaQueryWrapper<PmsRunStatisticD>().eq(PmsRunStatisticD::getStatisticDate, calculatedParam.getDataDate()));
|
||||
|
||||
//获取中台母线信息
|
||||
List<PmsMidLedger> allMidBusBarList = this.getBusBarInfo();
|
||||
//获取监测母线
|
||||
List<GeneratrixWire> superviseBusList;
|
||||
if (CollUtil.isNotEmpty(pmsRunStatisticsListD)) {
|
||||
List<String> wireIds = pmsRunStatisticsListD.stream()
|
||||
.filter(x -> StrUtil.isNotBlank(x.getOnlineBusIds()))
|
||||
.flatMap(x -> CollectionUtil.toList(x.getOnlineBusIds().split(StrUtil.COMMA)).stream()).distinct().collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(wireIds)){
|
||||
LambdaQueryWrapper<GeneratrixWire> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(GeneratrixWire::getStatus, DataStateEnum.ENABLE.getCode())
|
||||
.in(GeneratrixWire::getId, wireIds);
|
||||
superviseBusList = generatrixWireMapper.selectList(lambdaQueryWrapper);
|
||||
}else{
|
||||
List<Monitor> list1 = this.getPmsMonitor();
|
||||
superviseBusList = this.getCnBusBarInfo(list1);
|
||||
}
|
||||
} else {
|
||||
//获取监测点信息
|
||||
List<Monitor> list1 = this.getPmsMonitor();
|
||||
superviseBusList = this.getCnBusBarInfo(list1);
|
||||
private List<Monitor> getRunMonitorList(List<PmsRunStatisticD> pmsRunStatisticsListD) {
|
||||
List<String> monitorIds = pmsRunStatisticsListD.stream().filter(x -> StrUtil.isNotBlank(x.getRunMonitorIds())).flatMap(x -> CollectionUtil.toList(x.getRunMonitorIds().split(StrUtil.COMMA)).stream()).distinct().collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(monitorIds)) {
|
||||
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.select(Monitor::getId, Monitor::getVoltageLevel, Monitor::getName,Monitor::getOrgId).eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode())
|
||||
.in(Monitor::getId, monitorIds);
|
||||
return pmsMonitorMapper.selectList(lambdaQueryWrapper);
|
||||
}else {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
//获取单位下各电压等级数据
|
||||
|
||||
Dept rootDept = deptFeignClient.getRootDept().getData();
|
||||
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||
deptGetLineParam.setDeptId(rootDept.getId());
|
||||
List<DeptGetBusBarDTO> barDto = commTerminalGeneralClient.deptBusBar(deptGetLineParam).getData();
|
||||
|
||||
List<BusBarDto> busBarList = this.getBusBarNum(superviseBusList, allMidBusBarList, barDto);
|
||||
List<BusBarDto> allDept = this.getAllDeptLineNum(busBarList, deptGetLineParam);
|
||||
//获取省级单位id
|
||||
String provinceId = deptFeignClient.getDepSonIdByDeptId(rootDept.getId()).getData().get(0);
|
||||
Dept dept = deptFeignClient.getDeptById(provinceId).getData();
|
||||
//获取所有单位
|
||||
List<Dept> deptList = deptFeignClient.getAllDept().getData();
|
||||
Map<String, List<Dept>> deptMap = deptList.stream().collect(Collectors.groupingBy(Dept::getCode));
|
||||
|
||||
List<DeptGetChildrenMoreDTO> list = calculatedParam.getIdList();
|
||||
list.forEach(item -> {
|
||||
if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()), item.getDeptLevel())) {
|
||||
return;
|
||||
}
|
||||
|
||||
BusBarDto busBarDto = allDept.stream().filter(o -> Objects.equals(o.getOrgId(), item.getUnitId())).findFirst().orElse(null);
|
||||
|
||||
if(Objects.isNull(busBarDto) || busBarDto.getAllOnlineBusNum()==0){
|
||||
return;
|
||||
}
|
||||
|
||||
RUploadEvaluationDataD rUploadEvaluationDataD = new RUploadEvaluationDataD();
|
||||
rUploadEvaluationDataD.setProvinceId(dept.getCode());
|
||||
rUploadEvaluationDataD.setProvinceName(dept.getName());
|
||||
rUploadEvaluationDataD.setDataSources(UploadEnum.DATA_SOURCES_01.getCode());
|
||||
rUploadEvaluationDataD.setStatisticalDate(calculatedParam.getDataDate());
|
||||
rUploadEvaluationDataD.setComputeDate(calculatedParam.getDataDate());
|
||||
rUploadEvaluationDataD.setStatisticalType(UploadEnum.STATISTICAL_TYPE_03.getCode());
|
||||
rUploadEvaluationDataD.setUploadStatus(Integer.parseInt(UploadEnum.UPLOAD_STATUS_0.getCode()));
|
||||
this.judgeLevel(item.getDeptLevel(), rUploadEvaluationDataD, item.getUnitId(), item.getUnitName(), deptList, deptMap);
|
||||
}
|
||||
|
||||
|
||||
*//*** 计算无电压等级的数据*//*
|
||||
RUploadEvaluationDataD dto = this.getLineNum(busBarDto, "0");
|
||||
//电压
|
||||
RUploadEvaluationDataD dto1 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_01.getCode(), 0, "0", dto);
|
||||
result.add(dto1);
|
||||
//长时间闪变
|
||||
RUploadEvaluationDataD dto2 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_02.getCode(), 0, "0", dto);
|
||||
result.add(dto2);
|
||||
//三相电压不平衡
|
||||
RUploadEvaluationDataD dto3 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_03.getCode(), 0, "0", dto);
|
||||
result.add(dto3);
|
||||
//电压总谐波畸变率
|
||||
RUploadEvaluationDataD dto4 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_04.getCode(), 0, "0", dto);
|
||||
result.add(dto4);
|
||||
//各次谐波电压
|
||||
this.channelHarmonicData(rUploadEvaluationDataD, result, null, UploadEnum.INDEX_TYPE_05.getCode(), "0", dto, null);
|
||||
//负序电流
|
||||
RUploadEvaluationDataD dto6 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_06.getCode(), 0, "0", dto);
|
||||
result.add(dto6);
|
||||
*//*** 计算分电压等级的数据*//*
|
||||
if (CollUtil.isNotEmpty(busBarDto.getVoltageChild())) {
|
||||
busBarDto.getVoltageChild().forEach(item2 -> {
|
||||
RDimVoltageD rDimVoltageD = this.getDimVoltageData(item.getUnitId(), calculatedParam.getDataDate(), item2.getVoltageLevel());
|
||||
|
||||
RUploadEvaluationDataD dto0 = this.getLineNum(busBarDto, item2.getVoltageLevel());
|
||||
//电压
|
||||
double sd1 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getV()*Math.sqrt(3), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_01.getCode(), null);
|
||||
RUploadEvaluationDataD dto11 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getV(), sd1, UploadEnum.INDEX_TYPE_01.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
result.add(dto11);
|
||||
//长时间闪变
|
||||
double sd2 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getPst(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_02.getCode(), null);
|
||||
RUploadEvaluationDataD dto22 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getPst(), sd2, UploadEnum.INDEX_TYPE_02.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
result.add(dto22);
|
||||
//三相电压不平衡
|
||||
double sd3 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVUnbalance(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_03.getCode(), null);
|
||||
RUploadEvaluationDataD dto33 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVUnbalance(), sd3, UploadEnum.INDEX_TYPE_03.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
result.add(dto33);
|
||||
//电压总谐波畸变率
|
||||
double sd4 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVThd(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_04.getCode(), null);
|
||||
RUploadEvaluationDataD dto44 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVThd(), sd4, UploadEnum.INDEX_TYPE_04.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
result.add(dto44);
|
||||
//各次谐波电压
|
||||
List<Double> valueList = new ArrayList<>();
|
||||
if (!Objects.isNull(rDimVoltageD)) {
|
||||
valueList = Arrays.asList(rDimVoltageD.getV2(), rDimVoltageD.getV3(), rDimVoltageD.getV4(), rDimVoltageD.getV5(), rDimVoltageD.getV6(), rDimVoltageD.getV7(), rDimVoltageD.getV8(), rDimVoltageD.getV9(), rDimVoltageD.getV10()
|
||||
, rDimVoltageD.getV11(), rDimVoltageD.getV12(), rDimVoltageD.getV13(), rDimVoltageD.getV14(), rDimVoltageD.getV15(), rDimVoltageD.getV16(), rDimVoltageD.getV17(), rDimVoltageD.getV18(), rDimVoltageD.getV19(), rDimVoltageD.getV20()
|
||||
, rDimVoltageD.getV21(), rDimVoltageD.getV22(), rDimVoltageD.getV23(), rDimVoltageD.getV24(), rDimVoltageD.getV25(), rDimVoltageD.getV26(), rDimVoltageD.getV27(), rDimVoltageD.getV28(), rDimVoltageD.getV29(), rDimVoltageD.getV30()
|
||||
, rDimVoltageD.getV31(), rDimVoltageD.getV32(), rDimVoltageD.getV33(), rDimVoltageD.getV34(), rDimVoltageD.getV35(), rDimVoltageD.getV36(), rDimVoltageD.getV37(), rDimVoltageD.getV38(), rDimVoltageD.getV39(), rDimVoltageD.getV40()
|
||||
, rDimVoltageD.getV41(), rDimVoltageD.getV42(), rDimVoltageD.getV43(), rDimVoltageD.getV44(), rDimVoltageD.getV45(), rDimVoltageD.getV46(), rDimVoltageD.getV47(), rDimVoltageD.getV48(), rDimVoltageD.getV49(), rDimVoltageD.getV50());
|
||||
}
|
||||
this.channelHarmonicData(rUploadEvaluationDataD, result, valueList, UploadEnum.INDEX_TYPE_05.getCode(), item2.getVoltageLevel(), dto0, item.getLineBaseList());
|
||||
//负序电流
|
||||
double sd6 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getINeg(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_06.getCode(), null);
|
||||
RUploadEvaluationDataD dto66 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getINeg(), sd6, UploadEnum.INDEX_TYPE_06.getCode(), 0, item2.getVoltageLevel(), dto0);
|
||||
result.add(dto66);
|
||||
});
|
||||
}
|
||||
});
|
||||
if (CollUtil.isNotEmpty(result)) {
|
||||
this.saveOrUpdateBatchByMultiId(result, 1000);
|
||||
}
|
||||
}*/
|
||||
|
||||
/**
|
||||
* 通过日表取平均值,作为月表数据
|
||||
@@ -742,7 +640,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
|
||||
/**
|
||||
* 各次谐波电压数据处理
|
||||
*/
|
||||
public void channelHarmonicData(RUploadEvaluationDataD rUploadEvaluationDataD, List<RUploadEvaluationDataD> result, List<Double> valueList, String indexType, String voltage, RUploadEvaluationDataD rUploadEvaluationDataD2, List<LineDevGetDTO> line) {
|
||||
public void channelHarmonicData(RUploadEvaluationDataD rUploadEvaluationDataD, List<RUploadEvaluationDataD> result, List<Double> valueList, List<Double> valueListSd, String indexType, String voltage, RUploadEvaluationDataD rUploadEvaluationDataD2, List<Monitor> line) {
|
||||
final Double defaultValue = 3.1415926;
|
||||
int length;
|
||||
if (!Objects.isNull(valueList)) {
|
||||
@@ -760,8 +658,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
|
||||
if (Objects.equals(voltage, "0")) {
|
||||
dto.setStandardDeviation(defaultValue);
|
||||
} else {
|
||||
double sd = this.getDimVoltageDataSd(voltage, dto.getAvgValue(), dto.getStatisticalDate(), line, indexType, dto.getHarmonicNum());
|
||||
dto.setStandardDeviation(sd);
|
||||
dto.setStandardDeviation(CollUtil.isNotEmpty(valueListSd) ? valueListSd.get(i) : defaultValue);
|
||||
}
|
||||
dto.setVoltageLevel(voltage);
|
||||
dto.setMonitorBusNum(rUploadEvaluationDataD2.getMonitorBusNum());
|
||||
@@ -774,28 +671,31 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
|
||||
/**
|
||||
* 获取单位母线的均值数据
|
||||
*/
|
||||
public RDimVoltageD getDimVoltageData(String orgId, String time, String voltage) {
|
||||
public RDimVoltageD getDimVoltageData(String orgId, String time, String voltage,String dataType) {
|
||||
LambdaQueryWrapper<RDimVoltageD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(RDimVoltageD::getOrgId, orgId)
|
||||
.eq(RDimVoltageD::getStatisDate, time)
|
||||
.eq(RDimVoltageD::getVoltageType, voltage);
|
||||
.eq(RDimVoltageD::getVoltageType, voltage)
|
||||
.eq(RDimVoltageD::getDataType,dataType);
|
||||
return rDimVoltageDMapper.selectOne(lambdaQueryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取不同电压等级母线下的监测点数据,用于计算标准差
|
||||
*/
|
||||
public Double getDimVoltageDataSd(String voltage, Double avg, String time, List<LineDevGetDTO> line, String type, Integer times) {
|
||||
public Double getDimVoltageDataSd(String voltage, Double avg, String time, List<Monitor> line, String type, Integer times) {
|
||||
double standardDeviation = 3.1415926;
|
||||
if (Objects.equals(avg, standardDeviation)) {
|
||||
return standardDeviation;
|
||||
}
|
||||
//获取监测点数据
|
||||
if (CollUtil.isNotEmpty(line)) {
|
||||
Map<String, List<LineDevGetDTO>> map = line.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel));
|
||||
Map<String, List<Monitor>> map = line.stream().collect(Collectors.groupingBy(Monitor::getVoltageLevel));
|
||||
if (!Objects.isNull(map.get(voltage))) {
|
||||
Set<String> lineSet = map.get(voltage).stream().map(LineDevGetDTO::getPointId).collect(Collectors.toSet());
|
||||
Set<String> lineSet = map.get(voltage).stream().map(Monitor::getId).collect(Collectors.toSet());
|
||||
List<LineDataDto> dataList = rDimVoltageDMapper.getLineData(time, time, lineSet);
|
||||
|
||||
|
||||
//根据平均值计算每个指标的标准差
|
||||
if (CollUtil.isNotEmpty(dataList)) {
|
||||
double total = this.getDataByType(type, avg, dataList, times);
|
||||
|
||||
Reference in New Issue
Block a user