31 Commits

Author SHA1 Message Date
wr
f6d8fe73f7 微调 2026-05-08 10:09:48 +08:00
hzj
e6ed7c655a 修改实时超时时间为25s 2026-04-22 14:49:18 +08:00
hzj
6cf56d6768 修改前置兼容性bug 2026-04-16 13:49:17 +08:00
hzj
61e67fc1c8 Merge remote-tracking branch 'origin/master' 2026-04-09 19:54:28 +08:00
hzj
234ba26bbe 修改实时数据超时时间 2026-04-09 19:54:07 +08:00
xy
3d59a3d058 微调 2026-04-09 11:22:07 +08:00
xy
1b9d736e55 三相电压不平衡度越限方法判断调整 2026-04-09 11:10:34 +08:00
hzj
c31d91074d 优化装置状态翻转 2026-04-09 08:58:09 +08:00
hzj
044f3c4d64 相角数据进行兼容处理,让相角保持在-180至180之间 2026-04-08 13:50:10 +08:00
wr
09fe5ca317 Merge remote-tracking branch 'origin/master' 2026-04-02 10:48:59 +08:00
wr
7412e2beda 微调 2026-04-02 10:48:12 +08:00
wr
90baa65b71 微调 2026-04-02 10:47:05 +08:00
xy
3f9e2076d2 辽宁算法兼容 2026-03-26 10:28:33 +08:00
cdf
1bda6b1156 算法模块整合nacos鉴权 2026-03-21 15:18:25 +08:00
xy
d3b4146674 修复bug。功率T项数据缺失 2026-03-18 10:22:57 +08:00
cdf
365448d8a0 修复算法运行报错bug 2026-03-11 11:19:12 +08:00
xy
d3e46f5ba4 修复bug。算法内部使用新线程导致LiteFlow层面的process()方法瞬间返回,但实际计算还在进行,会影响有上下层关系的算法计算 2026-02-28 16:07:36 +08:00
xy
35939e6f8f 长时闪变越限兼容判断 2026-02-03 16:45:05 +08:00
xy
ba1f5a2e00 长时间闪变新增最大值限值判断 2026-02-03 16:37:36 +08:00
hzj
97e3386d53 优化装置状态翻转不更新updateTime 2026-01-30 10:18:18 +08:00
xy
4f8c34d21b 微调 2026-01-28 08:40:51 +08:00
wr
fd398a85de Merge remote-tracking branch 'origin/master' 2026-01-26 14:58:12 +08:00
wr
1aae135e83 优化污染值算法增加是否零票判断 2026-01-22 09:20:45 +08:00
xy
60bad4bc06 优化算法 2026-01-20 14:10:13 +08:00
xy
fe3c0363fb 算法优化 2026-01-20 13:32:55 +08:00
cdf
718fd012c8 修复算法运行报错bug 2026-01-15 21:52:52 +08:00
hzj
7bac8f5b14 优化装置状态翻转 2026-01-15 11:42:27 +08:00
hzj
fec6e6c27d 优化装置状态翻转 2026-01-15 11:34:16 +08:00
xy
fe2e3b118d 微调 2026-01-09 09:54:15 +08:00
xy
dbf0027c65 算法调整 2026-01-07 18:52:03 +08:00
xy
91ff704f0a 算法调整 2026-01-07 18:23:38 +08:00
41 changed files with 1920 additions and 1051 deletions

View File

@@ -44,6 +44,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static com.njcn.algorithm.utils.MemorySizeUtil.dealResponse;
/**
@@ -123,10 +124,12 @@ public class ExecutionCenter extends BaseController {
}
calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
CalculatedParam repairParam = BeanUtil.copyProperties(calculatedParam, CalculatedParam.class);
repairParam.setType(0);
flowService.execute2Resp(methodDescribe, repairParam);
}
} else {
//非补招
calculatedParam.setType(0);
liteflowResponse = flowExecutor.execute2Resp("measurement_point", calculatedParam);
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
}
@@ -162,6 +165,7 @@ public class ExecutionCenter extends BaseController {
}
} else {
//非补招
calculatedParam.setType(2);
liteflowResponse = flowExecutor.execute2Resp("wl_measurement_point", calculatedParam);
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
}

View File

@@ -4,24 +4,29 @@ import com.njcn.device.biz.pojo.po.Overlimit;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
public interface IDataLimitRateAsync {
/**
* limit_rate多线程算法
*
* @param dataDate
* @param list
* @param phase
* @param overLimitMap
* @param size
* @param i
* @param type 系统类型
* @return
* @Author: wr
* @Date: 2025/12/17 12:16
*/
void lineDataRate(String dataDate,
List<String> list,
List<String> phase,
Map<String, Overlimit> overLimitMap,
int size,
int i);
CompletableFuture<Void> lineDataRate(String dataDate,
List<String> list,
List<String> phase,
Map<String, Overlimit> overLimitMap,
int size,
int i,
int type);
}

View File

@@ -58,7 +58,7 @@ public class DataComAssServiceImpl implements IDataComAssService {
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
List<String> lineIdList = calculatedParam.getIdList();
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
for (String lineId : lineIdList) {
DataComassesDPO rStatComassesDpo = new DataComassesDPO();
rStatComassesDpo.setTime(calculatedParam.getDataDate());

View File

@@ -22,6 +22,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
@@ -64,9 +65,13 @@ public class DayDataServiceImpl implements IDayDataService {
private DataInharmVFeignClient dataInharmVFeignClient;
@Resource
private DataPltFeignClient dataPltFeignClient;
@Resource
private PqDataVerifyFeignClient pqDataVerifyFeignClient;
/**
* 查询配置 辽宁版本比较特殊没有CP95值采用平均值进行判断
*/
@Value("${version.used:master}")
private String versionUsed;
@Override
public void dataVHandler(CalculatedParam calculatedParam) {
@@ -82,7 +87,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataVFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -100,9 +105,10 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setValueType(item3.getValueType().toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataVHandler(item3,valueTypes,dto,true);
//默认CP95值取 CP95的最大值如果有特殊要求可以根据平均值的数据取CP95
channelDataVHandler(item3,valueTypes,dto,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -131,7 +137,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataIFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -148,9 +154,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setValueType(item3.getValueType().toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataIHandler(item3,valueTypes,dto,true);
channelDataIHandler(item3,valueTypes,dto,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -180,7 +186,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataFlickerFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -196,9 +202,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item4);
dto.setValueType(item4.toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataFlickerHandler(item3,dto,item4,true);
channelDataFlickerHandler(item3,dto,item4,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -229,7 +235,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataFlucFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -245,9 +251,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item4);
dto.setValueType(item4.toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataFlucHandler(item3,dto,item4,true);
channelDataFlucHandler(item3,dto,item4,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -277,7 +283,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataHarmphasicIFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -294,9 +300,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setValueType(item3.getValueType().toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataHarmPhasicIHandler(item3,valueTypes,dto,true);
channelDataHarmPhasicIHandler(item3,valueTypes,dto,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -325,7 +331,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataHarmphasicVFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -342,9 +348,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setValueType(item3.getValueType().toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataHarmPhasicVHandler(item3,valueTypes,dto,true);
channelDataHarmPhasicVHandler(item3,valueTypes,dto,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -373,7 +379,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataHarmpowerPFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -390,9 +396,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setValueType(item3.getValueType().toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataHarmPowerPHandler(item3,valueTypes,dto,true);
channelDataHarmPowerPHandler(item3,valueTypes,dto,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -421,7 +427,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataHarmpowerQFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -438,9 +444,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setValueType(item3.getValueType().toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataHarmPowerQHandler(item3,valueTypes,dto,true);
channelDataHarmPowerQHandler(item3,valueTypes,dto,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -469,7 +475,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataHarmpowerSFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -486,9 +492,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setValueType(item3.getValueType().toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataHarmPowerSHandler(item3,valueTypes,dto,true);
channelDataHarmPowerSHandler(item3,valueTypes,dto,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -517,7 +523,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataHarmRateIFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -534,9 +540,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setValueType(item3.getValueType().toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataHarmRateIHandler(item3,valueTypes,dto,true);
channelDataHarmRateIHandler(item3,valueTypes,dto,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -565,7 +571,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataHarmRateVFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -582,9 +588,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setValueType(item3.getValueType().toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataHarmRateVHandler(item3,valueTypes,dto,true);
channelDataHarmRateVHandler(item3,valueTypes,dto,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -613,7 +619,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataInharmIFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -630,9 +636,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setValueType(item3.getValueType().toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataInHarmIHandler(item3,valueTypes,dto,true);
channelDataInHarmIHandler(item3,valueTypes,dto,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -661,7 +667,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataInharmVFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -678,9 +684,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setValueType(item3.getValueType().toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataInHarmVHandler(item3,valueTypes,dto,true);
channelDataInHarmVHandler(item3,valueTypes,dto,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -710,7 +716,7 @@ public class DayDataServiceImpl implements IDayDataService {
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataPltFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
@@ -726,9 +732,9 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item4);
dto.setValueType(item4.toUpperCase());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataPltHandler(item3,dto,item4,true);
channelDataPltHandler(item3,dto,item4,!Objects.equals(versionUsed, "liaoning"));
result.add(dto);
});
});
@@ -1549,47 +1555,64 @@ public class DayDataServiceImpl implements IDayDataService {
valueType = valueType.toUpperCase();
if (scheme) {
switch (valueType) {
case InfluxDbSqlConstant.MAX:
case InfluxDbSqlConstant.CP95:
case "MAX":
case "CP95":
Optional<Double> max = list.stream().filter(Objects::nonNull).max(Double::compare);
result = max.orElse(null);
result = max.orElse(0.0);
break;
case InfluxDbSqlConstant.MIN:
case "MIN":
Optional<Double> min = list.stream().filter(Objects::nonNull).min(Double::compare);
result = min.orElse(null);
result = min.orElse(0.0);
break;
case InfluxDbSqlConstant.AVG_WEB:
case "AVG":
OptionalDouble average = list.stream()
.filter(Objects::nonNull)
.mapToDouble(Double::doubleValue)
.average();
result = average.isPresent() ? average.getAsDouble() : null;
result = average.isPresent() ? average.getAsDouble() : 0.0;
break;
default:
break;
}
} else {
switch (valueType) {
case InfluxDbSqlConstant.MAX:
case "MAX":
Optional<Double> max = list.stream().filter(Objects::nonNull).max(Double::compare);
result = max.orElse(null);
result = max.orElse(0.0);
break;
case InfluxDbSqlConstant.MIN:
case "MIN":
Optional<Double> min = list.stream().filter(Objects::nonNull).min(Double::compare);
result = min.orElse(null);
result = min.orElse(0.0);
break;
case InfluxDbSqlConstant.AVG_WEB:
case "AVG":
OptionalDouble average = list.stream()
.filter(Objects::nonNull)
.mapToDouble(Double::doubleValue)
.average();
result = average.isPresent() ? average.getAsDouble() : null;
result = average.isPresent() ? average.getAsDouble() : 0.0;
break;
case InfluxDbSqlConstant.CP95:
list.sort(Collections.reverseOrder());
int discardCount = (int) Math.ceil(list.size() * 0.05);
List<Double> remainingList = list.subList(discardCount, list.size());
result = remainingList.isEmpty() ? null : remainingList.get(0);
case "CP95":
if (list == null || list.isEmpty()) {
result = 0.0;
break;
}
// 过滤掉 null 元素
List<Double> filteredList = list.stream()
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (filteredList.isEmpty()) {
result = 0.0;
break;
}
filteredList.sort(Collections.reverseOrder());
int discardCount = (int) Math.ceil(filteredList.size() * 0.05);
if (discardCount >= filteredList.size()) {
result = 0.0;
break;
}
List<Double> remainingList = filteredList.subList(discardCount, filteredList.size());
result = remainingList.isEmpty() ? 0.0 : remainingList.get(0);
break;
default:
break;
@@ -1603,4 +1626,28 @@ public class DayDataServiceImpl implements IDayDataService {
return result;
}
/**
* 将平均值赋值给 CP95
*/
public void putCP95ByAvg(List<CommonMinuteDto> list) {
list.forEach(po1->{
List<CommonMinuteDto.PhasicType> phasicTypeList = po1.getPhasicTypeList();
phasicTypeList.forEach(po2 -> {
List<CommonMinuteDto.ValueType> valueTypeList = po2.getValueTypeList();
AtomicReference<List<List<Double>>> valueList = new AtomicReference<>(new ArrayList<>());
valueTypeList.forEach(po3 -> {
if (po3.getValueType().equals(InfluxDbSqlConstant.AVG_WEB)) {
valueList.set(po3.getValueList());
}
if (po3.getValueType().equals(InfluxDbSqlConstant.CP95)) {
po3.setValueList((List<List<Double>>) valueList);
}
});
});
});
}
}

View File

@@ -12,10 +12,16 @@ import com.njcn.algorithm.service.line.IDataLimitRateAsync;
import com.njcn.algorithm.utils.MemorySizeUtil;
import com.njcn.common.utils.PubUtils;
import com.njcn.csdevice.api.CsLineFeignClient;
import com.njcn.dataProcess.api.*;
import com.njcn.csdevice.api.CsOverLimitClient;
import com.njcn.dataProcess.api.DataLimitQualifiedFeignClient;
import com.njcn.dataProcess.api.DataLimitRateFeignClient;
import com.njcn.dataProcess.api.DataLimitTargetFeignClient;
import com.njcn.dataProcess.constant.PhaseType;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.*;
import com.njcn.dataProcess.pojo.dto.DataLimitDetailDto;
import com.njcn.dataProcess.pojo.dto.DataLimitRateDto;
import com.njcn.dataProcess.pojo.dto.DataLimitTargetDto;
import com.njcn.dataProcess.pojo.dto.DataQualifiedDetail;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.po.Overlimit;
@@ -25,6 +31,7 @@ import org.apache.commons.collections4.ListUtils;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
@@ -38,6 +45,8 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -67,6 +76,8 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
private IDataLimitRateAsync dataLimitRateAsync;
@Resource
private CsLineFeignClient csLineFeignClient;
@Resource
private CsOverLimitClient csOverLimitClient;
@Override
public void limitRateHandler(CalculatedParam calculatedParam) {
@@ -79,18 +90,45 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
lineParam.setType(calculatedParam.getType());
List<String> lineIds = calculatedParam.getIdList();
List<Overlimit> overLimitList;
//获取所有监测点的限值
List<Overlimit> overLimitList = commTerminalGeneralClient.getOverLimitDataByIds(lineIds).getData();
if (Objects.equals(lineParam.getType(), 2)) {
List<Overlimit> list = csOverLimitClient.getOverLimitByLineIds(lineIds).getData();
overLimitList = list.stream()
.map(item -> {
Overlimit overlimit = new Overlimit();
BeanUtils.copyProperties(item, overlimit);
return overlimit;
})
.collect(Collectors.toList());
} else {
overLimitList = commTerminalGeneralClient.getOverLimitDataByIds(lineIds).getData();
}
Map<String, Overlimit> overLimitMap = overLimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity()));
//以100个监测点分片处理
List<List<String>> pendingIds = ListUtils.partition(lineIds, 1);
ArrayList<String> phase = ListUtil.toList(PhaseType.PHASE_A, PhaseType.PHASE_B, PhaseType.PHASE_C);
MemorySizeUtil.getNowMemory();
List<CompletableFuture<Void>> futures = new ArrayList<>();
for (int i = 0; i < pendingIds.size(); i++) {
logger.info(calculatedParam.getDataDate()+" 总分区数据:" + pendingIds.size() + "=====》当前第"+(i + 1)+"小分区");
List<String> list = pendingIds.get(i);
dataLimitRateAsync.lineDataRate(calculatedParam.getDataDate(), list, phase, overLimitMap, pendingIds.size(), (i + 1));
// 获取Future
CompletableFuture<Void> future = dataLimitRateAsync.lineDataRate(
calculatedParam.getDataDate(),
list,
phase,
overLimitMap,
pendingIds.size(),
(i + 1),
lineParam.getType()
);
futures.add(future);
}
// 等待所有任务完成
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
System.gc();
}

View File

@@ -18,16 +18,15 @@ import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
/**
@@ -55,21 +54,28 @@ public class IDataLimitRateAsyncImpl implements IDataLimitRateAsync {
private DataLimitRateFeignClient dataLimitRateFeignClient;
@Resource
private DataLimitRateDetailFeignClient dataLimitRateDetailFeignClient;
/**
* 查询配置 辽宁版本比较特殊没有CP95值采用平均值进行判断
*/
@Value("${version.used:master}")
private String versionUsed;
@Override
@Async("asyncExecutor")
public void lineDataRate(String dataDate,
List<String> list,
List<String> phase,
Map<String, Overlimit> overLimitMap,
int size,
int i) {
public CompletableFuture<Void> lineDataRate(String dataDate,
List<String> list,
List<String> phase,
Map<String, Overlimit> overLimitMap,
int size,
int i,
int type) {
List<DataLimitDetailDto> result = new ArrayList<>();
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfDay(dataDate));
lineParam.setEndTime(TimeUtils.getEndOfDay(dataDate));
lineParam.setLineId(list);
lineParam.setType(type);
//获取电压数据
List<DataVDto> dataVAllTime = dataVFeignClient.getRawData(lineParam).getData();
//闪变数据
@@ -80,99 +86,182 @@ public class IDataLimitRateAsyncImpl implements IDataLimitRateAsync {
List<DataHarmDto> dataVInHarmList = dataInharmVFeignClient.getRawData(lineParam).getData();
//电流数据
List<DataIDto> dataIList = dataIFeignClient.getRawData(lineParam).getData();
/**
* 功能描述:获取influxDB -> data_v ->
* 总计算次数(用data_v中phasic_type=A,value_type=avg,quality_flag=0来参与统计)
*/
//在线监测设备会有AB、BC、CA的数据会导致数据重复计算这边根据时间去重
Map<String, List<DataVDto>> allTime = dataVAllTime.stream()
.filter(x -> PhaseType.PHASE_A.equals(x.getPhasicType()))
.filter(x -> InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataVDto::getLineId));
.collect(Collectors.groupingBy(
DataVDto::getLineId,
Collectors.collectingAndThen(
Collectors.toCollection(
// 使用 TreeSet 根据时间排序并去重
() -> new TreeSet<>(
Comparator.comparing(DataVDto::getMinTime)
)
),
ArrayList::new
)
));
/**
* 功能描述:获取influxDB -> data_plt ->
* 闪变总计算次数(用data_plt中phasic_type=A,value_type=avg,quality_flag=0来参与统计)
*/
//fixme 冀北现场 闪变原始表没有 value_type 这个参数
Map<String, List<DataPltDto>> pltAllTime = dataPltAllTime.stream()
.filter(x -> PhaseType.PHASE_A.equals(x.getPhasicType()))
// .filter(x -> InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataPltDto::getLineId));
Map<String, List<DataPltDto>> pltAllTime;
if (type == 2) {
pltAllTime = dataPltAllTime.stream()
.filter(x -> PhaseType.PHASE_A.equals(x.getPhasicType()))
.filter(x -> InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataPltDto::getLineId));
} else {
pltAllTime = dataPltAllTime.stream()
.filter(x -> PhaseType.PHASE_A.equals(x.getPhasicType()))
.collect(Collectors.groupingBy(DataPltDto::getLineId));
}
/**
*功能描述:获取influxDB -> data_harmrate_v ->
* 2-25次谐波电压含有率 -> A相||B相||C相的日95%概率值
*/
Map<String, List<DataHarmDto>> harmRateV = dataVHarmList.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
.collect(Collectors.groupingBy(DataHarmDto::getLineId));
Map<String, List<DataHarmDto>> harmRateV;
if (Objects.equals(versionUsed, "liaoning")) {
harmRateV = dataVHarmList.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.AVG.equalsIgnoreCase(x.getValueType()))
.peek(x -> x.setValueType(InfluxDBTableConstant.CP95))
.collect(Collectors.groupingBy(DataHarmDto::getLineId));
} else {
harmRateV = dataVHarmList.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataHarmDto::getLineId));
}
/**
* 功能描述:获取influxDB -> data_i -> 2-25次谐波电流 -> 日95%概率值
*/
Map<String, List<DataIDto>> dataI = dataIList.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
.collect(Collectors.groupingBy(DataIDto::getLineId));
Map<String, List<DataIDto>> dataI;
if (Objects.equals(versionUsed, "liaoning")) {
dataI = dataIList.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.AVG.equalsIgnoreCase(x.getValueType()))
.peek(x -> x.setValueType(InfluxDBTableConstant.CP95))
.collect(Collectors.groupingBy(DataIDto::getLineId));
} else {
dataI = dataIList.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataIDto::getLineId));
}
/**
* 功能描述:获取influxDB -> data_inharm_v -> 0.5-15.5次间谐波电压含有率 -> 日95%概率值
*/
Map<String, List<DataHarmDto>> inHarmV = dataVInHarmList.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
.collect(Collectors.groupingBy(DataHarmDto::getLineId));
Map<String, List<DataHarmDto>> inHarmV;
if (Objects.equals(versionUsed, "liaoning")) {
inHarmV = dataVInHarmList.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.AVG.equalsIgnoreCase(x.getValueType()))
.peek(x -> x.setValueType(InfluxDBTableConstant.CP95))
.collect(Collectors.groupingBy(DataHarmDto::getLineId));
} else {
inHarmV = dataVInHarmList.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataHarmDto::getLineId));
}
/**
* 功能描述:获取influxDB -> data_v -> 电压总谐波畸变率 -> 日95%概率值
*/
Map<String, List<DataVDto>> dataVThd = dataVAllTime.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
.collect(Collectors.groupingBy(DataVDto::getLineId));
Map<String, List<DataVDto>> dataVThd;
if (Objects.equals(versionUsed, "liaoning")) {
dataVThd = dataVAllTime.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.AVG.equalsIgnoreCase(x.getValueType()))
.peek(x -> x.setValueType(InfluxDBTableConstant.CP95))
.collect(Collectors.groupingBy(DataVDto::getLineId));
} else {
dataVThd = dataVAllTime.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataVDto::getLineId));
}
/**
* 功能描述:获取influxDB -> data_v -> 负序电压不平衡度 -> 最大值 && 日95%概率值
*/
Map<String, List<DataVDto>> dataVUnbalance = dataVAllTime.stream()
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()) ||
InfluxDBTableConstant.MAX.equals(x.getValueType()))
.collect(Collectors.groupingBy(DataVDto::getLineId));
Map<String, List<DataVDto>> dataVUnbalance;
if (Objects.equals(versionUsed, "liaoning")) {
dataVUnbalance = dataVAllTime.stream()
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equalsIgnoreCase(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.AVG.equalsIgnoreCase(x.getValueType()) ||
InfluxDBTableConstant.MAX.equalsIgnoreCase(x.getValueType()))
// .peek(x -> x.setValueType(InfluxDBTableConstant.CP95))
.collect(Collectors.groupingBy(DataVDto::getLineId));
} else {
dataVUnbalance = dataVAllTime.stream()
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equalsIgnoreCase(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equalsIgnoreCase(x.getValueType()) ||
InfluxDBTableConstant.MAX.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataVDto::getLineId));
}
/**
* 功能描述:获取influxDB -> data_i -> 负序电流 -> 最大值 && 日95%概率值
*/
Map<String, List<DataIDto>> dataINeg = dataIList.stream()
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()) ||
InfluxDBTableConstant.MAX.equals(x.getValueType()))
.collect(Collectors.groupingBy(DataIDto::getLineId));
Map<String, List<DataIDto>> dataINeg;
if (Objects.equals(versionUsed, "liaoning")) {
dataINeg = dataIList.stream()
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equalsIgnoreCase(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.AVG.equalsIgnoreCase(x.getValueType()) ||
InfluxDBTableConstant.MAX.equalsIgnoreCase(x.getValueType()))
.peek(x -> x.setValueType(InfluxDBTableConstant.CP95))
.collect(Collectors.groupingBy(DataIDto::getLineId));
} else {
dataINeg = dataIList.stream()
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equalsIgnoreCase(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.CP95.equalsIgnoreCase(x.getValueType()) ||
InfluxDBTableConstant.MAX.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataIDto::getLineId));
}
/**
* 功能描述:获取influxDB -> data_v -> 频率偏差 -> 最大值 && 最小值
*/
Map<String, List<DataVDto>> dataVFreq = dataVAllTime.stream()
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.MIN.equals(x.getValueType()) ||
InfluxDBTableConstant.MAX.equals(x.getValueType()))
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equalsIgnoreCase(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.MIN.equalsIgnoreCase(x.getValueType()) ||
InfluxDBTableConstant.MAX.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataVDto::getLineId));
/**
* 功能描述:获取influxDB -> data_v -> 电压偏差 -> 最大值
*/
Map<String, List<DataVDto>> dataVDev = dataVAllTime.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.MAX.equals(x.getValueType()))
.filter(x -> InfluxDBTableConstant.MAX.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataVDto::getLineId));
/**
* 功能描述:获取influxDB -> data_plt -> 长时间闪变 -> 注(取最大值原始算法去掉了,现没有根据最大值比较)
*/
Map<String, List<DataPltDto>> dataPlt = dataPltAllTime.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.collect(Collectors.groupingBy(DataPltDto::getLineId));
Map<String, List<DataPltDto>> dataPlt;
if (type == 2) {
dataPlt = dataPltAllTime.stream()
.filter(x -> phase.contains(x.getPhasicType()))
.filter(x -> InfluxDBTableConstant.MAX.equalsIgnoreCase(x.getValueType()))
.collect(Collectors.groupingBy(DataPltDto::getLineId));
} else {
dataPlt = dataPltAllTime.stream()
.filter(x -> PhaseType.PHASE_A.equals(x.getPhasicType()))
.collect(Collectors.groupingBy(DataPltDto::getLineId));
}
for (String item : list) {
if (ObjectUtil.isNotNull(overLimitMap.get(item))) {
@@ -211,6 +300,8 @@ public class IDataLimitRateAsyncImpl implements IDataLimitRateAsync {
MemorySizeUtil.getNowMemory();
}
System.gc();
return CompletableFuture.completedFuture(null);
}
/**
@@ -277,6 +368,7 @@ public class IDataLimitRateAsyncImpl implements IDataLimitRateAsync {
result.add(b);
result.add(c);
result.add(t);
return result;
}
@@ -549,12 +641,20 @@ public class IDataLimitRateAsyncImpl implements IDataLimitRateAsync {
}
}
}
//三相电压不平衡度
// 三相电压不平衡度
// 短时对应测量值日统计的最大值4%
// 一般对应测量值日统计的95%概率大值2%
if (!CollectionUtils.isEmpty(dataVPOUnbalanceList)) {
for (DataVDto item : dataVPOUnbalanceList) {
if (ObjectUtil.isNotNull(item.getVUnbalance())) {
if (item.getVUnbalance() > overlimit.getUbalance()) {
addAbnormalData(sx, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVUnbalance(), overlimit.getUbalance());
if (InfluxDBTableConstant.MAX.equalsIgnoreCase(item.getValueType())) {
if (item.getVUnbalance() > 4.0) {
addAbnormalData(sx, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVUnbalance(), 4.0f);
}
} else {
if (item.getVUnbalance() > 2.0) {
addAbnormalData(sx, item.getPhasicType(), "CP95", item.getMinTime(), item.getVUnbalance(), 2.0f);
}
}
}
}

View File

@@ -80,19 +80,21 @@ public class PollutionCalcImpl implements IPollutionCalc {
LineDevGetDTO line = lineDetailMap.get(id);
if (limitMap.containsKey(id)) {
Overlimit overlimit = limitMap.get(id);
dataPollutionD = new DataPollutionD();
dataPollutionD.setLineId(id);
dataPollutionD.setDataDate(LocalDateTimeUtil.parseDate(calculatedParam.getDataDate()));
dataPollutionD.setPollutionType(vHarmonicLimit);
lineParam.setValueType(Arrays.asList(line.getTimeInterval() + ""));
lineParam.setLineId(Arrays.asList(id));
List<DataVDto> dataVDtoList = dataVFeignClient.getGroupByTimeDataV(lineParam).getData();
List<DataHarmDto> dataHarmDtoList = dataHarmRateVFeignClient.getGroupByTimeHarmRateV(lineParam).getData();
//计算谐波电压污染值
dataPollutionD.setValue(PubUtils.doubleRound(2, calcVAllPollutionValue(dataVDtoList, dataHarmDtoList, overlimit) * line.getTimeInterval()));
if(!dataVFeignClient.excludeZeroData(lineParam).getData()){
dataPollutionD = new DataPollutionD();
dataPollutionD.setLineId(id);
dataPollutionD.setDataDate(LocalDateTimeUtil.parseDate(calculatedParam.getDataDate()));
dataPollutionD.setPollutionType(vHarmonicLimit);
List<DataVDto> dataVDtoList = dataVFeignClient.getGroupByTimeDataV(lineParam).getData();
List<DataHarmDto> dataHarmDtoList = dataHarmRateVFeignClient.getGroupByTimeHarmRateV(lineParam).getData();
//计算谐波电压污染值
dataPollutionD.setValue(PubUtils.doubleRound(2, calcVAllPollutionValue(dataVDtoList, dataHarmDtoList, overlimit) * line.getTimeInterval()));
list.add(dataPollutionD);
}
list.add(dataPollutionD);
dataPollutionD = new DataPollutionD();
dataPollutionD.setLineId(id);
dataPollutionD.setDataDate(LocalDateTimeUtil.parseDate(calculatedParam.getDataDate()));

View File

@@ -27,7 +27,7 @@ import com.njcn.event.api.TransientFeignClient;
import com.njcn.event.file.pojo.dto.WaveDataDTO;
import com.njcn.event.pojo.param.EventCountParam;
import com.njcn.event.pojo.po.RmpEventDetailPO;
import com.njcn.supervision.api.UserLedgerFeignClient;
import com.njcn.supervision.api.UserLedgerOldFeignClient;
import com.njcn.supervision.pojo.vo.user.NewUserReportVO;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.api.DictTreeFeignClient;
@@ -84,7 +84,7 @@ public class SpecialAnalysisServiceImpl implements ISpecialAnalysisService {
@Resource
private CommLineClient commLineClient;
@Resource
private UserLedgerFeignClient userLedgerFeignClient;
private UserLedgerOldFeignClient userLedgerFeignClient;
@Resource
private DataLimitRateDetailFeignClient dataLimitRateDetailFeignClient;

View File

@@ -0,0 +1,76 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10401
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
compression:
request:
enabled: true
# 配置压缩支持的MIME TYPE
mime-types: text/xml,application/xml,application/json
# 配置压缩数据大小的下限
min-request-size: 1024
response:
# 配置响应GZIP压缩
enabled: true
spring:
application:
name: @artifactId@
cloud:
nacos:
discovery:
server-addr: @nacos.url@
namespace: @nacos.namespace@
config:
username: @nacos.username@
password: @nacos.password@
server-addr: @nacos.url@
namespace: @nacos.namespace@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-id: share-config-datasource-db.yaml
refresh: true
main:
allow-bean-definition-overriding: true
liteflow:
rule-source-ext-data-map:
serverAddr: @nacos.url@
dataId: prepare_liteflow
group: DEFAULT_GROUP
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
when-max-wait-time: 3600000
print-banner: false
#项目日志的配置
logging:
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: info
com.alibaba.nacos.client: INFO
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.harmonic.pojo
line:
num: 20
mqtt:
client-id: @artifactId@${random.value}

View File

@@ -0,0 +1,79 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10401
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
compression:
request:
enabled: true
# 配置压缩支持的MIME TYPE
mime-types: text/xml,application/xml,application/json
# 配置压缩数据大小的下限
min-request-size: 1024
response:
# 配置响应GZIP压缩
enabled: true
spring:
application:
name: @artifactId@
cloud:
nacos:
discovery:
ip: @service.server.url@
server-addr: @nacos.url@
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
config:
server-addr: @nacos.url@
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-Id: share-config-datasource-db.yaml
refresh: true
main:
allow-bean-definition-overriding: true
liteflow:
rule-source-ext-data-map:
serverAddr: @nacos.url@
dataId: prepare_liteflow
group: DEFAULT_GROUP
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
when-max-wait-time: 3600000
print-banner: false
#项目日志的配置
logging:
#config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: info
com.alibaba.nacos.client: INFO
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.harmonic.pojo
line:
num: 20
#mqtt:
# client-id: @artifactId@${random.value}

View File

@@ -1,72 +1,3 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10401
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
compression:
request:
enabled: true
# 配置压缩支持的MIME TYPE
mime-types: text/xml,application/xml,application/json
# 配置压缩数据大小的下限
min-request-size: 1024
response:
# 配置响应GZIP压缩
enabled: true
spring:
application:
name: @artifactId@
cloud:
nacos:
discovery:
ip: @service.server.url@
server-addr: @nacos.url@
namespace: @nacos.namespace@
config:
server-addr: @nacos.url@
namespace: @nacos.namespace@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-Id: share-config-datasource-db.yaml
refresh: true
main:
allow-bean-definition-overriding: true
liteflow:
rule-source-ext-data-map:
serverAddr: @nacos.url@
dataId: prepare_liteflow
group: DEFAULT_GROUP
namespace: @nacos.namespace@
when-max-wait-time: 600000
print-banner: false
#项目日志的配置
logging:
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: error
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.harmonic.pojo
line:
num: 10
mqtt:
client-id: @artifactId@${random.value}
profiles:
active: @spring.profiles.active@

View File

@@ -18,6 +18,28 @@ import java.util.Objects;
* @version V1.0.0
*/
public class BeanIConverter {
/**
* 角度相关常量
*/
private static final double ANGLE_180 = 180.0;
private static final double ANGLE_360 = 360.0;
private static final double ANGLE_MINUS_180 = -180.0;
public static Double adjustPhase(Double phase) {
if (phase == null) {
return null;
}
// 使用模运算将角度标准化到[-180, 180]范围
double normalizedPhase = phase % ANGLE_360;
// 处理超出[-180, 180]范围的情况
if (normalizedPhase > ANGLE_180) {
normalizedPhase -= ANGLE_360;
} else if (normalizedPhase < ANGLE_MINUS_180) {
normalizedPhase += ANGLE_360;
}
return normalizedPhase;
}
//A,B,C三项
public static DataIDTO messageDataITODataI(MessageDataI messageDataI){
DataIDTO dataI = new DataIDTO();
@@ -283,209 +305,209 @@ public class BeanIConverter {
public static DataHarmphasicIDTO messageDataITODataHarmphasicI(MessageDataI messageDataI){
DataHarmphasicIDTO dataHarmphasicI = new DataHarmphasicIDTO();
if(Objects.nonNull(messageDataI)){
dataHarmphasicI.setI1(messageDataI.getIfundAngle());
dataHarmphasicI.setI2(messageDataI.getIa2());
dataHarmphasicI.setI3(messageDataI.getIa3());
dataHarmphasicI.setI4(messageDataI.getIa4());
dataHarmphasicI.setI5(messageDataI.getIa5());
dataHarmphasicI.setI6(messageDataI.getIa6());
dataHarmphasicI.setI7(messageDataI.getIa7());
dataHarmphasicI.setI8(messageDataI.getIa8());
dataHarmphasicI.setI9(messageDataI.getIa9());
dataHarmphasicI.setI10(messageDataI.getIa10());
dataHarmphasicI.setI11(messageDataI.getIa11());
dataHarmphasicI.setI12(messageDataI.getIa12());
dataHarmphasicI.setI13(messageDataI.getIa13());
dataHarmphasicI.setI14(messageDataI.getIa14());
dataHarmphasicI.setI15(messageDataI.getIa15());
dataHarmphasicI.setI16(messageDataI.getIa16());
dataHarmphasicI.setI17(messageDataI.getIa17());
dataHarmphasicI.setI18(messageDataI.getIa18());
dataHarmphasicI.setI19(messageDataI.getIa19());
dataHarmphasicI.setI20(messageDataI.getIa20());
dataHarmphasicI.setI21(messageDataI.getIa21());
dataHarmphasicI.setI22(messageDataI.getIa22());
dataHarmphasicI.setI23(messageDataI.getIa23());
dataHarmphasicI.setI24(messageDataI.getIa24());
dataHarmphasicI.setI25(messageDataI.getIa25());
dataHarmphasicI.setI26(messageDataI.getIa26());
dataHarmphasicI.setI27(messageDataI.getIa27());
dataHarmphasicI.setI28(messageDataI.getIa28());
dataHarmphasicI.setI29(messageDataI.getIa29());
dataHarmphasicI.setI30(messageDataI.getIa30());
dataHarmphasicI.setI31(messageDataI.getIa31());
dataHarmphasicI.setI32(messageDataI.getIa32());
dataHarmphasicI.setI33(messageDataI.getIa33());
dataHarmphasicI.setI34(messageDataI.getIa34());
dataHarmphasicI.setI35(messageDataI.getIa35());
dataHarmphasicI.setI36(messageDataI.getIa36());
dataHarmphasicI.setI37(messageDataI.getIa37());
dataHarmphasicI.setI38(messageDataI.getIa38());
dataHarmphasicI.setI39(messageDataI.getIa39());
dataHarmphasicI.setI40(messageDataI.getIa40());
dataHarmphasicI.setI41(messageDataI.getIa41());
dataHarmphasicI.setI42(messageDataI.getIa42());
dataHarmphasicI.setI43(messageDataI.getIa43());
dataHarmphasicI.setI44(messageDataI.getIa44());
dataHarmphasicI.setI45(messageDataI.getIa45());
dataHarmphasicI.setI46(messageDataI.getIa46());
dataHarmphasicI.setI47(messageDataI.getIa47());
dataHarmphasicI.setI48(messageDataI.getIa48());
dataHarmphasicI.setI49(messageDataI.getIa49());
dataHarmphasicI.setI50(messageDataI.getIa50());
dataHarmphasicI.setI1(adjustPhase(messageDataI.getIfundAngle()));
dataHarmphasicI.setI2(adjustPhase(messageDataI.getIa2()));
dataHarmphasicI.setI3(adjustPhase(messageDataI.getIa3()));
dataHarmphasicI.setI4(adjustPhase(messageDataI.getIa4()));
dataHarmphasicI.setI5(adjustPhase(messageDataI.getIa5()));
dataHarmphasicI.setI6(adjustPhase(messageDataI.getIa6()));
dataHarmphasicI.setI7(adjustPhase(messageDataI.getIa7()));
dataHarmphasicI.setI8(adjustPhase(messageDataI.getIa8()));
dataHarmphasicI.setI9(adjustPhase(messageDataI.getIa9()));
dataHarmphasicI.setI10(adjustPhase(messageDataI.getIa10()));
dataHarmphasicI.setI11(adjustPhase(messageDataI.getIa11()));
dataHarmphasicI.setI12(adjustPhase(messageDataI.getIa12()));
dataHarmphasicI.setI13(adjustPhase(messageDataI.getIa13()));
dataHarmphasicI.setI14(adjustPhase(messageDataI.getIa14()));
dataHarmphasicI.setI15(adjustPhase(messageDataI.getIa15()));
dataHarmphasicI.setI16(adjustPhase(messageDataI.getIa16()));
dataHarmphasicI.setI17(adjustPhase(messageDataI.getIa17()));
dataHarmphasicI.setI18(adjustPhase(messageDataI.getIa18()));
dataHarmphasicI.setI19(adjustPhase(messageDataI.getIa19()));
dataHarmphasicI.setI20(adjustPhase(messageDataI.getIa20()));
dataHarmphasicI.setI21(adjustPhase(messageDataI.getIa21()));
dataHarmphasicI.setI22(adjustPhase(messageDataI.getIa22()));
dataHarmphasicI.setI23(adjustPhase(messageDataI.getIa23()));
dataHarmphasicI.setI24(adjustPhase(messageDataI.getIa24()));
dataHarmphasicI.setI25(adjustPhase(messageDataI.getIa25()));
dataHarmphasicI.setI26(adjustPhase(messageDataI.getIa26()));
dataHarmphasicI.setI27(adjustPhase(messageDataI.getIa27()));
dataHarmphasicI.setI28(adjustPhase(messageDataI.getIa28()));
dataHarmphasicI.setI29(adjustPhase(messageDataI.getIa29()));
dataHarmphasicI.setI30(adjustPhase(messageDataI.getIa30()));
dataHarmphasicI.setI31(adjustPhase(messageDataI.getIa31()));
dataHarmphasicI.setI32(adjustPhase(messageDataI.getIa32()));
dataHarmphasicI.setI33(adjustPhase(messageDataI.getIa33()));
dataHarmphasicI.setI34(adjustPhase(messageDataI.getIa34()));
dataHarmphasicI.setI35(adjustPhase(messageDataI.getIa35()));
dataHarmphasicI.setI36(adjustPhase(messageDataI.getIa36()));
dataHarmphasicI.setI37(adjustPhase(messageDataI.getIa37()));
dataHarmphasicI.setI38(adjustPhase(messageDataI.getIa38()));
dataHarmphasicI.setI39(adjustPhase(messageDataI.getIa39()));
dataHarmphasicI.setI40(adjustPhase(messageDataI.getIa40()));
dataHarmphasicI.setI41(adjustPhase(messageDataI.getIa41()));
dataHarmphasicI.setI42(adjustPhase(messageDataI.getIa42()));
dataHarmphasicI.setI43(adjustPhase(messageDataI.getIa43()));
dataHarmphasicI.setI44(adjustPhase(messageDataI.getIa44()));
dataHarmphasicI.setI45(adjustPhase(messageDataI.getIa45()));
dataHarmphasicI.setI46(adjustPhase(messageDataI.getIa46()));
dataHarmphasicI.setI47(adjustPhase(messageDataI.getIa47()));
dataHarmphasicI.setI48(adjustPhase(messageDataI.getIa48()));
dataHarmphasicI.setI49(adjustPhase(messageDataI.getIa49()));
dataHarmphasicI.setI50(adjustPhase(messageDataI.getIa50()));
dataHarmphasicI.setI1Max( messageDataI.getMaxIfundAngle());
dataHarmphasicI.setI2Max(messageDataI.getMaxIa2());
dataHarmphasicI.setI3Max(messageDataI.getMaxIa3());
dataHarmphasicI.setI4Max(messageDataI.getMaxIa4());
dataHarmphasicI.setI5Max(messageDataI.getMaxIa5());
dataHarmphasicI.setI6Max(messageDataI.getMaxIa6());
dataHarmphasicI.setI7Max(messageDataI.getMaxIa7());
dataHarmphasicI.setI8Max(messageDataI.getMaxIa8());
dataHarmphasicI.setI9Max(messageDataI.getMaxIa9());
dataHarmphasicI.setI10Max(messageDataI.getMaxIa10());
dataHarmphasicI.setI11Max(messageDataI.getMaxIa11());
dataHarmphasicI.setI12Max(messageDataI.getMaxIa12());
dataHarmphasicI.setI13Max(messageDataI.getMaxIa13());
dataHarmphasicI.setI14Max(messageDataI.getMaxIa14());
dataHarmphasicI.setI15Max(messageDataI.getMaxIa15());
dataHarmphasicI.setI16Max(messageDataI.getMaxIa16());
dataHarmphasicI.setI17Max(messageDataI.getMaxIa17());
dataHarmphasicI.setI18Max(messageDataI.getMaxIa18());
dataHarmphasicI.setI19Max(messageDataI.getMaxIa19());
dataHarmphasicI.setI20Max(messageDataI.getMaxIa20());
dataHarmphasicI.setI21Max(messageDataI.getMaxIa21());
dataHarmphasicI.setI22Max(messageDataI.getMaxIa22());
dataHarmphasicI.setI23Max(messageDataI.getMaxIa23());
dataHarmphasicI.setI24Max(messageDataI.getMaxIa24());
dataHarmphasicI.setI25Max(messageDataI.getMaxIa25());
dataHarmphasicI.setI26Max(messageDataI.getMaxIa26());
dataHarmphasicI.setI27Max(messageDataI.getMaxIa27());
dataHarmphasicI.setI28Max(messageDataI.getMaxIa28());
dataHarmphasicI.setI29Max(messageDataI.getMaxIa29());
dataHarmphasicI.setI30Max(messageDataI.getMaxIa30());
dataHarmphasicI.setI31Max(messageDataI.getMaxIa31());
dataHarmphasicI.setI32Max(messageDataI.getMaxIa32());
dataHarmphasicI.setI33Max(messageDataI.getMaxIa33());
dataHarmphasicI.setI34Max(messageDataI.getMaxIa34());
dataHarmphasicI.setI35Max(messageDataI.getMaxIa35());
dataHarmphasicI.setI36Max(messageDataI.getMaxIa36());
dataHarmphasicI.setI37Max(messageDataI.getMaxIa37());
dataHarmphasicI.setI38Max(messageDataI.getMaxIa38());
dataHarmphasicI.setI39Max(messageDataI.getMaxIa39());
dataHarmphasicI.setI40Max(messageDataI.getMaxIa40());
dataHarmphasicI.setI41Max(messageDataI.getMaxIa41());
dataHarmphasicI.setI42Max(messageDataI.getMaxIa42());
dataHarmphasicI.setI43Max(messageDataI.getMaxIa43());
dataHarmphasicI.setI44Max(messageDataI.getMaxIa44());
dataHarmphasicI.setI45Max(messageDataI.getMaxIa45());
dataHarmphasicI.setI46Max(messageDataI.getMaxIa46());
dataHarmphasicI.setI47Max(messageDataI.getMaxIa47());
dataHarmphasicI.setI48Max(messageDataI.getMaxIa48());
dataHarmphasicI.setI49Max(messageDataI.getMaxIa49());
dataHarmphasicI.setI50Max(messageDataI.getMaxIa50());
dataHarmphasicI.setI1Max( adjustPhase(messageDataI.getMaxIfundAngle()));
dataHarmphasicI.setI2Max(adjustPhase(messageDataI.getMaxIa2()));
dataHarmphasicI.setI3Max(adjustPhase(messageDataI.getMaxIa3()));
dataHarmphasicI.setI4Max(adjustPhase(messageDataI.getMaxIa4()));
dataHarmphasicI.setI5Max(adjustPhase(messageDataI.getMaxIa5()));
dataHarmphasicI.setI6Max(adjustPhase(messageDataI.getMaxIa6()));
dataHarmphasicI.setI7Max(adjustPhase(messageDataI.getMaxIa7()));
dataHarmphasicI.setI8Max(adjustPhase(messageDataI.getMaxIa8()));
dataHarmphasicI.setI9Max(adjustPhase(messageDataI.getMaxIa9()));
dataHarmphasicI.setI10Max(adjustPhase(messageDataI.getMaxIa10()));
dataHarmphasicI.setI11Max(adjustPhase(messageDataI.getMaxIa11()));
dataHarmphasicI.setI12Max(adjustPhase(messageDataI.getMaxIa12()));
dataHarmphasicI.setI13Max(adjustPhase(messageDataI.getMaxIa13()));
dataHarmphasicI.setI14Max(adjustPhase(messageDataI.getMaxIa14()));
dataHarmphasicI.setI15Max(adjustPhase(messageDataI.getMaxIa15()));
dataHarmphasicI.setI16Max(adjustPhase(messageDataI.getMaxIa16()));
dataHarmphasicI.setI17Max(adjustPhase(messageDataI.getMaxIa17()));
dataHarmphasicI.setI18Max(adjustPhase(messageDataI.getMaxIa18()));
dataHarmphasicI.setI19Max(adjustPhase(messageDataI.getMaxIa19()));
dataHarmphasicI.setI20Max(adjustPhase(messageDataI.getMaxIa20()));
dataHarmphasicI.setI21Max(adjustPhase(messageDataI.getMaxIa21()));
dataHarmphasicI.setI22Max(adjustPhase(messageDataI.getMaxIa22()));
dataHarmphasicI.setI23Max(adjustPhase(messageDataI.getMaxIa23()));
dataHarmphasicI.setI24Max(adjustPhase(messageDataI.getMaxIa24()));
dataHarmphasicI.setI25Max(adjustPhase(messageDataI.getMaxIa25()));
dataHarmphasicI.setI26Max(adjustPhase(messageDataI.getMaxIa26()));
dataHarmphasicI.setI27Max(adjustPhase(messageDataI.getMaxIa27()));
dataHarmphasicI.setI28Max(adjustPhase(messageDataI.getMaxIa28()));
dataHarmphasicI.setI29Max(adjustPhase(messageDataI.getMaxIa29()));
dataHarmphasicI.setI30Max(adjustPhase(messageDataI.getMaxIa30()));
dataHarmphasicI.setI31Max(adjustPhase(messageDataI.getMaxIa31()));
dataHarmphasicI.setI32Max(adjustPhase(messageDataI.getMaxIa32()));
dataHarmphasicI.setI33Max(adjustPhase(messageDataI.getMaxIa33()));
dataHarmphasicI.setI34Max(adjustPhase(messageDataI.getMaxIa34()));
dataHarmphasicI.setI35Max(adjustPhase(messageDataI.getMaxIa35()));
dataHarmphasicI.setI36Max(adjustPhase(messageDataI.getMaxIa36()));
dataHarmphasicI.setI37Max(adjustPhase(messageDataI.getMaxIa37()));
dataHarmphasicI.setI38Max(adjustPhase(messageDataI.getMaxIa38()));
dataHarmphasicI.setI39Max(adjustPhase(messageDataI.getMaxIa39()));
dataHarmphasicI.setI40Max(adjustPhase(messageDataI.getMaxIa40()));
dataHarmphasicI.setI41Max(adjustPhase(messageDataI.getMaxIa41()));
dataHarmphasicI.setI42Max(adjustPhase(messageDataI.getMaxIa42()));
dataHarmphasicI.setI43Max(adjustPhase(messageDataI.getMaxIa43()));
dataHarmphasicI.setI44Max(adjustPhase(messageDataI.getMaxIa44()));
dataHarmphasicI.setI45Max(adjustPhase(messageDataI.getMaxIa45()));
dataHarmphasicI.setI46Max(adjustPhase(messageDataI.getMaxIa46()));
dataHarmphasicI.setI47Max(adjustPhase(messageDataI.getMaxIa47()));
dataHarmphasicI.setI48Max(adjustPhase(messageDataI.getMaxIa48()));
dataHarmphasicI.setI49Max(adjustPhase(messageDataI.getMaxIa49()));
dataHarmphasicI.setI50Max(adjustPhase(messageDataI.getMaxIa50()));
dataHarmphasicI.setI1Min(messageDataI.getMinIfundAngle());
dataHarmphasicI.setI2Min(messageDataI.getMinIa2());
dataHarmphasicI.setI3Min(messageDataI.getMinIa3());
dataHarmphasicI.setI4Min(messageDataI.getMinIa4());
dataHarmphasicI.setI5Min(messageDataI.getMinIa5());
dataHarmphasicI.setI6Min(messageDataI.getMinIa6());
dataHarmphasicI.setI7Min(messageDataI.getMinIa7());
dataHarmphasicI.setI8Min(messageDataI.getMinIa8());
dataHarmphasicI.setI9Min(messageDataI.getMinIa9());
dataHarmphasicI.setI10Min(messageDataI.getMinIa10());
dataHarmphasicI.setI11Min(messageDataI.getMinIa11());
dataHarmphasicI.setI12Min(messageDataI.getMinIa12());
dataHarmphasicI.setI13Min(messageDataI.getMinIa13());
dataHarmphasicI.setI14Min(messageDataI.getMinIa14());
dataHarmphasicI.setI15Min(messageDataI.getMinIa15());
dataHarmphasicI.setI16Min(messageDataI.getMinIa16());
dataHarmphasicI.setI17Min(messageDataI.getMinIa17());
dataHarmphasicI.setI18Min(messageDataI.getMinIa18());
dataHarmphasicI.setI19Min(messageDataI.getMinIa19());
dataHarmphasicI.setI20Min(messageDataI.getMinIa20());
dataHarmphasicI.setI21Min(messageDataI.getMinIa21());
dataHarmphasicI.setI22Min(messageDataI.getMinIa22());
dataHarmphasicI.setI23Min(messageDataI.getMinIa23());
dataHarmphasicI.setI24Min(messageDataI.getMinIa24());
dataHarmphasicI.setI25Min(messageDataI.getMinIa25());
dataHarmphasicI.setI26Min(messageDataI.getMinIa26());
dataHarmphasicI.setI27Min(messageDataI.getMinIa27());
dataHarmphasicI.setI28Min(messageDataI.getMinIa28());
dataHarmphasicI.setI29Min(messageDataI.getMinIa29());
dataHarmphasicI.setI30Min(messageDataI.getMinIa30());
dataHarmphasicI.setI31Min(messageDataI.getMinIa31());
dataHarmphasicI.setI32Min(messageDataI.getMinIa32());
dataHarmphasicI.setI33Min(messageDataI.getMinIa33());
dataHarmphasicI.setI34Min(messageDataI.getMinIa34());
dataHarmphasicI.setI35Min(messageDataI.getMinIa35());
dataHarmphasicI.setI36Min(messageDataI.getMinIa36());
dataHarmphasicI.setI37Min(messageDataI.getMinIa37());
dataHarmphasicI.setI38Min(messageDataI.getMinIa38());
dataHarmphasicI.setI39Min(messageDataI.getMinIa39());
dataHarmphasicI.setI40Min(messageDataI.getMinIa40());
dataHarmphasicI.setI41Min(messageDataI.getMinIa41());
dataHarmphasicI.setI42Min(messageDataI.getMinIa42());
dataHarmphasicI.setI43Min(messageDataI.getMinIa43());
dataHarmphasicI.setI44Min(messageDataI.getMinIa44());
dataHarmphasicI.setI45Min(messageDataI.getMinIa45());
dataHarmphasicI.setI46Min(messageDataI.getMinIa46());
dataHarmphasicI.setI47Min(messageDataI.getMinIa47());
dataHarmphasicI.setI48Min(messageDataI.getMinIa48());
dataHarmphasicI.setI49Min(messageDataI.getMinIa49());
dataHarmphasicI.setI50Min(messageDataI.getMinIa50());
dataHarmphasicI.setI1Min(adjustPhase(messageDataI.getMinIfundAngle()));
dataHarmphasicI.setI2Min(adjustPhase(messageDataI.getMinIa2()));
dataHarmphasicI.setI3Min(adjustPhase(messageDataI.getMinIa3()));
dataHarmphasicI.setI4Min(adjustPhase(messageDataI.getMinIa4()));
dataHarmphasicI.setI5Min(adjustPhase(messageDataI.getMinIa5()));
dataHarmphasicI.setI6Min(adjustPhase(messageDataI.getMinIa6()));
dataHarmphasicI.setI7Min(adjustPhase(messageDataI.getMinIa7()));
dataHarmphasicI.setI8Min(adjustPhase(messageDataI.getMinIa8()));
dataHarmphasicI.setI9Min(adjustPhase(messageDataI.getMinIa9()));
dataHarmphasicI.setI10Min(adjustPhase(messageDataI.getMinIa10()));
dataHarmphasicI.setI11Min(adjustPhase(messageDataI.getMinIa11()));
dataHarmphasicI.setI12Min(adjustPhase(messageDataI.getMinIa12()));
dataHarmphasicI.setI13Min(adjustPhase(messageDataI.getMinIa13()));
dataHarmphasicI.setI14Min(adjustPhase(messageDataI.getMinIa14()));
dataHarmphasicI.setI15Min(adjustPhase(messageDataI.getMinIa15()));
dataHarmphasicI.setI16Min(adjustPhase(messageDataI.getMinIa16()));
dataHarmphasicI.setI17Min(adjustPhase(messageDataI.getMinIa17()));
dataHarmphasicI.setI18Min(adjustPhase(messageDataI.getMinIa18()));
dataHarmphasicI.setI19Min(adjustPhase(messageDataI.getMinIa19()));
dataHarmphasicI.setI20Min(adjustPhase(messageDataI.getMinIa20()));
dataHarmphasicI.setI21Min(adjustPhase(messageDataI.getMinIa21()));
dataHarmphasicI.setI22Min(adjustPhase(messageDataI.getMinIa22()));
dataHarmphasicI.setI23Min(adjustPhase(messageDataI.getMinIa23()));
dataHarmphasicI.setI24Min(adjustPhase(messageDataI.getMinIa24()));
dataHarmphasicI.setI25Min(adjustPhase(messageDataI.getMinIa25()));
dataHarmphasicI.setI26Min(adjustPhase(messageDataI.getMinIa26()));
dataHarmphasicI.setI27Min(adjustPhase(messageDataI.getMinIa27()));
dataHarmphasicI.setI28Min(adjustPhase(messageDataI.getMinIa28()));
dataHarmphasicI.setI29Min(adjustPhase(messageDataI.getMinIa29()));
dataHarmphasicI.setI30Min(adjustPhase(messageDataI.getMinIa30()));
dataHarmphasicI.setI31Min(adjustPhase(messageDataI.getMinIa31()));
dataHarmphasicI.setI32Min(adjustPhase(messageDataI.getMinIa32()));
dataHarmphasicI.setI33Min(adjustPhase(messageDataI.getMinIa33()));
dataHarmphasicI.setI34Min(adjustPhase(messageDataI.getMinIa34()));
dataHarmphasicI.setI35Min(adjustPhase(messageDataI.getMinIa35()));
dataHarmphasicI.setI36Min(adjustPhase(messageDataI.getMinIa36()));
dataHarmphasicI.setI37Min(adjustPhase(messageDataI.getMinIa37()));
dataHarmphasicI.setI38Min(adjustPhase(messageDataI.getMinIa38()));
dataHarmphasicI.setI39Min(adjustPhase(messageDataI.getMinIa39()));
dataHarmphasicI.setI40Min(adjustPhase(messageDataI.getMinIa40()));
dataHarmphasicI.setI41Min(adjustPhase(messageDataI.getMinIa41()));
dataHarmphasicI.setI42Min(adjustPhase(messageDataI.getMinIa42()));
dataHarmphasicI.setI43Min(adjustPhase(messageDataI.getMinIa43()));
dataHarmphasicI.setI44Min(adjustPhase(messageDataI.getMinIa44()));
dataHarmphasicI.setI45Min(adjustPhase(messageDataI.getMinIa45()));
dataHarmphasicI.setI46Min(adjustPhase(messageDataI.getMinIa46()));
dataHarmphasicI.setI47Min(adjustPhase(messageDataI.getMinIa47()));
dataHarmphasicI.setI48Min(adjustPhase(messageDataI.getMinIa48()));
dataHarmphasicI.setI49Min(adjustPhase(messageDataI.getMinIa49()));
dataHarmphasicI.setI50Min(adjustPhase(messageDataI.getMinIa50()));
dataHarmphasicI.setI1Cp95(messageDataI.getGIfundAngle());
dataHarmphasicI.setI2Cp95(messageDataI.getGIa2());
dataHarmphasicI.setI3Cp95(messageDataI.getGIa3());
dataHarmphasicI.setI4Cp95(messageDataI.getGIa4());
dataHarmphasicI.setI5Cp95(messageDataI.getGIa5());
dataHarmphasicI.setI6Cp95(messageDataI.getGIa6());
dataHarmphasicI.setI7Cp95(messageDataI.getGIa7());
dataHarmphasicI.setI8Cp95(messageDataI.getGIa8());
dataHarmphasicI.setI9Cp95(messageDataI.getGIa9());
dataHarmphasicI.setI10Cp95(messageDataI.getGIa10());
dataHarmphasicI.setI11Cp95(messageDataI.getGIa11());
dataHarmphasicI.setI12Cp95(messageDataI.getGIa12());
dataHarmphasicI.setI13Cp95(messageDataI.getGIa13());
dataHarmphasicI.setI14Cp95(messageDataI.getGIa14());
dataHarmphasicI.setI15Cp95(messageDataI.getGIa15());
dataHarmphasicI.setI16Cp95(messageDataI.getGIa16());
dataHarmphasicI.setI17Cp95(messageDataI.getGIa17());
dataHarmphasicI.setI18Cp95(messageDataI.getGIa18());
dataHarmphasicI.setI19Cp95(messageDataI.getGIa19());
dataHarmphasicI.setI20Cp95(messageDataI.getGIa20());
dataHarmphasicI.setI21Cp95(messageDataI.getGIa21());
dataHarmphasicI.setI22Cp95(messageDataI.getGIa22());
dataHarmphasicI.setI23Cp95(messageDataI.getGIa23());
dataHarmphasicI.setI24Cp95(messageDataI.getGIa24());
dataHarmphasicI.setI25Cp95(messageDataI.getGIa25());
dataHarmphasicI.setI26Cp95(messageDataI.getGIa26());
dataHarmphasicI.setI27Cp95(messageDataI.getGIa27());
dataHarmphasicI.setI28Cp95(messageDataI.getGIa28());
dataHarmphasicI.setI29Cp95(messageDataI.getGIa29());
dataHarmphasicI.setI30Cp95(messageDataI.getGIa30());
dataHarmphasicI.setI31Cp95(messageDataI.getGIa31());
dataHarmphasicI.setI32Cp95(messageDataI.getGIa32());
dataHarmphasicI.setI33Cp95(messageDataI.getGIa33());
dataHarmphasicI.setI34Cp95(messageDataI.getGIa34());
dataHarmphasicI.setI35Cp95(messageDataI.getGIa35());
dataHarmphasicI.setI36Cp95(messageDataI.getGIa36());
dataHarmphasicI.setI37Cp95(messageDataI.getGIa37());
dataHarmphasicI.setI38Cp95(messageDataI.getGIa38());
dataHarmphasicI.setI39Cp95(messageDataI.getGIa39());
dataHarmphasicI.setI40Cp95(messageDataI.getGIa40());
dataHarmphasicI.setI41Cp95(messageDataI.getGIa41());
dataHarmphasicI.setI42Cp95(messageDataI.getGIa42());
dataHarmphasicI.setI43Cp95(messageDataI.getGIa43());
dataHarmphasicI.setI44Cp95(messageDataI.getGIa44());
dataHarmphasicI.setI45Cp95(messageDataI.getGIa45());
dataHarmphasicI.setI46Cp95(messageDataI.getGIa46());
dataHarmphasicI.setI47Cp95(messageDataI.getGIa47());
dataHarmphasicI.setI48Cp95(messageDataI.getGIa48());
dataHarmphasicI.setI49Cp95(messageDataI.getGIa49());
dataHarmphasicI.setI50Cp95(messageDataI.getGIa50());
dataHarmphasicI.setI1Cp95(adjustPhase(messageDataI.getGIfundAngle()));
dataHarmphasicI.setI2Cp95(adjustPhase(messageDataI.getGIa2()));
dataHarmphasicI.setI3Cp95(adjustPhase(messageDataI.getGIa3()));
dataHarmphasicI.setI4Cp95(adjustPhase(messageDataI.getGIa4()));
dataHarmphasicI.setI5Cp95(adjustPhase(messageDataI.getGIa5()));
dataHarmphasicI.setI6Cp95(adjustPhase(messageDataI.getGIa6()));
dataHarmphasicI.setI7Cp95(adjustPhase(messageDataI.getGIa7()));
dataHarmphasicI.setI8Cp95(adjustPhase(messageDataI.getGIa8()));
dataHarmphasicI.setI9Cp95(adjustPhase(messageDataI.getGIa9()));
dataHarmphasicI.setI10Cp95(adjustPhase(messageDataI.getGIa10()));
dataHarmphasicI.setI11Cp95(adjustPhase(messageDataI.getGIa11()));
dataHarmphasicI.setI12Cp95(adjustPhase(messageDataI.getGIa12()));
dataHarmphasicI.setI13Cp95(adjustPhase(messageDataI.getGIa13()));
dataHarmphasicI.setI14Cp95(adjustPhase(messageDataI.getGIa14()));
dataHarmphasicI.setI15Cp95(adjustPhase(messageDataI.getGIa15()));
dataHarmphasicI.setI16Cp95(adjustPhase(messageDataI.getGIa16()));
dataHarmphasicI.setI17Cp95(adjustPhase(messageDataI.getGIa17()));
dataHarmphasicI.setI18Cp95(adjustPhase(messageDataI.getGIa18()));
dataHarmphasicI.setI19Cp95(adjustPhase(messageDataI.getGIa19()));
dataHarmphasicI.setI20Cp95(adjustPhase(messageDataI.getGIa20()));
dataHarmphasicI.setI21Cp95(adjustPhase(messageDataI.getGIa21()));
dataHarmphasicI.setI22Cp95(adjustPhase(messageDataI.getGIa22()));
dataHarmphasicI.setI23Cp95(adjustPhase(messageDataI.getGIa23()));
dataHarmphasicI.setI24Cp95(adjustPhase(messageDataI.getGIa24()));
dataHarmphasicI.setI25Cp95(adjustPhase(messageDataI.getGIa25()));
dataHarmphasicI.setI26Cp95(adjustPhase(messageDataI.getGIa26()));
dataHarmphasicI.setI27Cp95(adjustPhase(messageDataI.getGIa27()));
dataHarmphasicI.setI28Cp95(adjustPhase(messageDataI.getGIa28()));
dataHarmphasicI.setI29Cp95(adjustPhase(messageDataI.getGIa29()));
dataHarmphasicI.setI30Cp95(adjustPhase(messageDataI.getGIa30()));
dataHarmphasicI.setI31Cp95(adjustPhase(messageDataI.getGIa31()));
dataHarmphasicI.setI32Cp95(adjustPhase(messageDataI.getGIa32()));
dataHarmphasicI.setI33Cp95(adjustPhase(messageDataI.getGIa33()));
dataHarmphasicI.setI34Cp95(adjustPhase(messageDataI.getGIa34()));
dataHarmphasicI.setI35Cp95(adjustPhase(messageDataI.getGIa35()));
dataHarmphasicI.setI36Cp95(adjustPhase(messageDataI.getGIa36()));
dataHarmphasicI.setI37Cp95(adjustPhase(messageDataI.getGIa37()));
dataHarmphasicI.setI38Cp95(adjustPhase(messageDataI.getGIa38()));
dataHarmphasicI.setI39Cp95(adjustPhase(messageDataI.getGIa39()));
dataHarmphasicI.setI40Cp95(adjustPhase(messageDataI.getGIa40()));
dataHarmphasicI.setI41Cp95(adjustPhase(messageDataI.getGIa41()));
dataHarmphasicI.setI42Cp95(adjustPhase(messageDataI.getGIa42()));
dataHarmphasicI.setI43Cp95(adjustPhase(messageDataI.getGIa43()));
dataHarmphasicI.setI44Cp95(adjustPhase(messageDataI.getGIa44()));
dataHarmphasicI.setI45Cp95(adjustPhase(messageDataI.getGIa45()));
dataHarmphasicI.setI46Cp95(adjustPhase(messageDataI.getGIa46()));
dataHarmphasicI.setI47Cp95(adjustPhase(messageDataI.getGIa47()));
dataHarmphasicI.setI48Cp95(adjustPhase(messageDataI.getGIa48()));
dataHarmphasicI.setI49Cp95(adjustPhase(messageDataI.getGIa49()));
dataHarmphasicI.setI50Cp95(adjustPhase(messageDataI.getGIa50()));
}
return dataHarmphasicI;

View File

@@ -19,6 +19,28 @@ import java.util.Objects;
* @version V1.0.0
*/
public class BeanVConverter {
/**
* 角度相关常量
*/
private static final double ANGLE_180 = 180.0;
private static final double ANGLE_360 = 360.0;
private static final double ANGLE_MINUS_180 = -180.0;
public static Double adjustPhase(Double phase) {
if (phase == null) {
return null;
}
// 使用模运算将角度标准化到[-180, 180]范围
double normalizedPhase = phase % ANGLE_360;
// 处理超出[-180, 180]范围的情况
if (normalizedPhase > ANGLE_180) {
normalizedPhase -= ANGLE_360;
} else if (normalizedPhase < ANGLE_MINUS_180) {
normalizedPhase += ANGLE_360;
}
return normalizedPhase;
}
//A,B,C三项
public static DataVDTO messageDataVTODataV(MessageDataV messageDataV){
DataVDTO dataVRelation = new DataVDTO();
@@ -561,209 +583,209 @@ public class BeanVConverter {
public static DataHarmphasicVDTO messageDataVTODataHarmphasicV(MessageDataV messageDataV){
DataHarmphasicVDTO dataHarmphasicV = new DataHarmphasicVDTO();
if (Objects.nonNull(messageDataV)){
dataHarmphasicV.setV1(messageDataV.getVfundAngle());
dataHarmphasicV.setV2(messageDataV.getVa2());
dataHarmphasicV.setV3(messageDataV.getVa3());
dataHarmphasicV.setV4(messageDataV.getVa4());
dataHarmphasicV.setV5(messageDataV.getVa5());
dataHarmphasicV.setV6(messageDataV.getVa6());
dataHarmphasicV.setV7(messageDataV.getVa7());
dataHarmphasicV.setV8(messageDataV.getVa8());
dataHarmphasicV.setV9(messageDataV.getVa9());
dataHarmphasicV.setV10(messageDataV.getVa10());
dataHarmphasicV.setV11(messageDataV.getVa11());
dataHarmphasicV.setV12(messageDataV.getVa12());
dataHarmphasicV.setV13(messageDataV.getVa13());
dataHarmphasicV.setV14(messageDataV.getVa14());
dataHarmphasicV.setV15(messageDataV.getVa15());
dataHarmphasicV.setV16(messageDataV.getVa16());
dataHarmphasicV.setV17(messageDataV.getVa17());
dataHarmphasicV.setV18(messageDataV.getVa18());
dataHarmphasicV.setV19(messageDataV.getVa19());
dataHarmphasicV.setV20(messageDataV.getVa20());
dataHarmphasicV.setV21(messageDataV.getVa21());
dataHarmphasicV.setV22(messageDataV.getVa22());
dataHarmphasicV.setV23(messageDataV.getVa23());
dataHarmphasicV.setV24(messageDataV.getVa24());
dataHarmphasicV.setV25(messageDataV.getVa25());
dataHarmphasicV.setV26(messageDataV.getVa26());
dataHarmphasicV.setV27(messageDataV.getVa27());
dataHarmphasicV.setV28(messageDataV.getVa28());
dataHarmphasicV.setV29(messageDataV.getVa29());
dataHarmphasicV.setV30(messageDataV.getVa30());
dataHarmphasicV.setV31(messageDataV.getVa31());
dataHarmphasicV.setV32(messageDataV.getVa32());
dataHarmphasicV.setV33(messageDataV.getVa33());
dataHarmphasicV.setV34(messageDataV.getVa34());
dataHarmphasicV.setV35(messageDataV.getVa35());
dataHarmphasicV.setV36(messageDataV.getVa36());
dataHarmphasicV.setV37(messageDataV.getVa37());
dataHarmphasicV.setV38(messageDataV.getVa38());
dataHarmphasicV.setV39(messageDataV.getVa39());
dataHarmphasicV.setV40(messageDataV.getVa40());
dataHarmphasicV.setV41(messageDataV.getVa41());
dataHarmphasicV.setV42(messageDataV.getVa42());
dataHarmphasicV.setV43(messageDataV.getVa43());
dataHarmphasicV.setV44(messageDataV.getVa44());
dataHarmphasicV.setV45(messageDataV.getVa45());
dataHarmphasicV.setV46(messageDataV.getVa46());
dataHarmphasicV.setV47(messageDataV.getVa47());
dataHarmphasicV.setV48(messageDataV.getVa48());
dataHarmphasicV.setV49(messageDataV.getVa49());
dataHarmphasicV.setV50(messageDataV.getVa50());
dataHarmphasicV.setV1(adjustPhase(messageDataV.getVfundAngle()));
dataHarmphasicV.setV2(adjustPhase(messageDataV.getVa2()));
dataHarmphasicV.setV3(adjustPhase(messageDataV.getVa3()));
dataHarmphasicV.setV4(adjustPhase(messageDataV.getVa4()));
dataHarmphasicV.setV5(adjustPhase(messageDataV.getVa5()));
dataHarmphasicV.setV6(adjustPhase(messageDataV.getVa6()));
dataHarmphasicV.setV7(adjustPhase(messageDataV.getVa7()));
dataHarmphasicV.setV8(adjustPhase(messageDataV.getVa8()));
dataHarmphasicV.setV9(adjustPhase(messageDataV.getVa9()));
dataHarmphasicV.setV10(adjustPhase(messageDataV.getVa10()));
dataHarmphasicV.setV11(adjustPhase(messageDataV.getVa11()));
dataHarmphasicV.setV12(adjustPhase(messageDataV.getVa12()));
dataHarmphasicV.setV13(adjustPhase(messageDataV.getVa13()));
dataHarmphasicV.setV14(adjustPhase(messageDataV.getVa14()));
dataHarmphasicV.setV15(adjustPhase(messageDataV.getVa15()));
dataHarmphasicV.setV16(adjustPhase(messageDataV.getVa16()));
dataHarmphasicV.setV17(adjustPhase(messageDataV.getVa17()));
dataHarmphasicV.setV18(adjustPhase(messageDataV.getVa18()));
dataHarmphasicV.setV19(adjustPhase(messageDataV.getVa19()));
dataHarmphasicV.setV20(adjustPhase(messageDataV.getVa20()));
dataHarmphasicV.setV21(adjustPhase(messageDataV.getVa21()));
dataHarmphasicV.setV22(adjustPhase(messageDataV.getVa22()));
dataHarmphasicV.setV23(adjustPhase(messageDataV.getVa23()));
dataHarmphasicV.setV24(adjustPhase(messageDataV.getVa24()));
dataHarmphasicV.setV25(adjustPhase(messageDataV.getVa25()));
dataHarmphasicV.setV26(adjustPhase(messageDataV.getVa26()));
dataHarmphasicV.setV27(adjustPhase(messageDataV.getVa27()));
dataHarmphasicV.setV28(adjustPhase(messageDataV.getVa28()));
dataHarmphasicV.setV29(adjustPhase(messageDataV.getVa29()));
dataHarmphasicV.setV30(adjustPhase(messageDataV.getVa30()));
dataHarmphasicV.setV31(adjustPhase(messageDataV.getVa31()));
dataHarmphasicV.setV32(adjustPhase(messageDataV.getVa32()));
dataHarmphasicV.setV33(adjustPhase(messageDataV.getVa33()));
dataHarmphasicV.setV34(adjustPhase(messageDataV.getVa34()));
dataHarmphasicV.setV35(adjustPhase(messageDataV.getVa35()));
dataHarmphasicV.setV36(adjustPhase(messageDataV.getVa36()));
dataHarmphasicV.setV37(adjustPhase(messageDataV.getVa37()));
dataHarmphasicV.setV38(adjustPhase(messageDataV.getVa38()));
dataHarmphasicV.setV39(adjustPhase(messageDataV.getVa39()));
dataHarmphasicV.setV40(adjustPhase(messageDataV.getVa40()));
dataHarmphasicV.setV41(adjustPhase(messageDataV.getVa41()));
dataHarmphasicV.setV42(adjustPhase(messageDataV.getVa42()));
dataHarmphasicV.setV43(adjustPhase(messageDataV.getVa43()));
dataHarmphasicV.setV44(adjustPhase(messageDataV.getVa44()));
dataHarmphasicV.setV45(adjustPhase(messageDataV.getVa45()));
dataHarmphasicV.setV46(adjustPhase(messageDataV.getVa46()));
dataHarmphasicV.setV47(adjustPhase(messageDataV.getVa47()));
dataHarmphasicV.setV48(adjustPhase(messageDataV.getVa48()));
dataHarmphasicV.setV49(adjustPhase(messageDataV.getVa49()));
dataHarmphasicV.setV50(adjustPhase(messageDataV.getVa50()));
dataHarmphasicV.setV1Max(messageDataV.getMaxVfundAngle());
dataHarmphasicV.setV2Max(messageDataV.getMaxVa2());
dataHarmphasicV.setV3Max(messageDataV.getMaxVa3());
dataHarmphasicV.setV4Max(messageDataV.getMaxVa4());
dataHarmphasicV.setV5Max(messageDataV.getMaxVa5());
dataHarmphasicV.setV6Max(messageDataV.getMaxVa6());
dataHarmphasicV.setV7Max(messageDataV.getMaxVa7());
dataHarmphasicV.setV8Max(messageDataV.getMaxVa8());
dataHarmphasicV.setV9Max(messageDataV.getMaxVa9());
dataHarmphasicV.setV10Max(messageDataV.getMaxVa10());
dataHarmphasicV.setV11Max(messageDataV.getMaxVa11());
dataHarmphasicV.setV12Max(messageDataV.getMaxVa12());
dataHarmphasicV.setV13Max(messageDataV.getMaxVa13());
dataHarmphasicV.setV14Max(messageDataV.getMaxVa14());
dataHarmphasicV.setV15Max(messageDataV.getMaxVa15());
dataHarmphasicV.setV16Max(messageDataV.getMaxVa16());
dataHarmphasicV.setV17Max(messageDataV.getMaxVa17());
dataHarmphasicV.setV18Max(messageDataV.getMaxVa18());
dataHarmphasicV.setV19Max(messageDataV.getMaxVa19());
dataHarmphasicV.setV20Max(messageDataV.getMaxVa20());
dataHarmphasicV.setV21Max(messageDataV.getMaxVa21());
dataHarmphasicV.setV22Max(messageDataV.getMaxVa22());
dataHarmphasicV.setV23Max(messageDataV.getMaxVa23());
dataHarmphasicV.setV24Max(messageDataV.getMaxVa24());
dataHarmphasicV.setV25Max(messageDataV.getMaxVa25());
dataHarmphasicV.setV26Max(messageDataV.getMaxVa26());
dataHarmphasicV.setV27Max(messageDataV.getMaxVa27());
dataHarmphasicV.setV28Max(messageDataV.getMaxVa28());
dataHarmphasicV.setV29Max(messageDataV.getMaxVa29());
dataHarmphasicV.setV30Max(messageDataV.getMaxVa30());
dataHarmphasicV.setV31Max(messageDataV.getMaxVa31());
dataHarmphasicV.setV32Max(messageDataV.getMaxVa32());
dataHarmphasicV.setV33Max(messageDataV.getMaxVa33());
dataHarmphasicV.setV34Max(messageDataV.getMaxVa34());
dataHarmphasicV.setV35Max(messageDataV.getMaxVa35());
dataHarmphasicV.setV36Max(messageDataV.getMaxVa36());
dataHarmphasicV.setV37Max(messageDataV.getMaxVa37());
dataHarmphasicV.setV38Max(messageDataV.getMaxVa38());
dataHarmphasicV.setV39Max(messageDataV.getMaxVa39());
dataHarmphasicV.setV40Max(messageDataV.getMaxVa40());
dataHarmphasicV.setV41Max(messageDataV.getMaxVa41());
dataHarmphasicV.setV42Max(messageDataV.getMaxVa42());
dataHarmphasicV.setV43Max(messageDataV.getMaxVa43());
dataHarmphasicV.setV44Max(messageDataV.getMaxVa44());
dataHarmphasicV.setV45Max(messageDataV.getMaxVa45());
dataHarmphasicV.setV46Max(messageDataV.getMaxVa46());
dataHarmphasicV.setV47Max(messageDataV.getMaxVa47());
dataHarmphasicV.setV48Max(messageDataV.getMaxVa48());
dataHarmphasicV.setV49Max(messageDataV.getMaxVa49());
dataHarmphasicV.setV50Max(messageDataV.getMaxVa50());
dataHarmphasicV.setV1Max(adjustPhase(messageDataV.getMaxVfundAngle()));
dataHarmphasicV.setV2Max(adjustPhase(messageDataV.getMaxVa2()));
dataHarmphasicV.setV3Max(adjustPhase(messageDataV.getMaxVa3()));
dataHarmphasicV.setV4Max(adjustPhase(messageDataV.getMaxVa4()));
dataHarmphasicV.setV5Max(adjustPhase(messageDataV.getMaxVa5()));
dataHarmphasicV.setV6Max(adjustPhase(messageDataV.getMaxVa6()));
dataHarmphasicV.setV7Max(adjustPhase(messageDataV.getMaxVa7()));
dataHarmphasicV.setV8Max(adjustPhase(messageDataV.getMaxVa8()));
dataHarmphasicV.setV9Max(adjustPhase(messageDataV.getMaxVa9()));
dataHarmphasicV.setV10Max(adjustPhase(messageDataV.getMaxVa10()));
dataHarmphasicV.setV11Max(adjustPhase(messageDataV.getMaxVa11()));
dataHarmphasicV.setV12Max(adjustPhase(messageDataV.getMaxVa12()));
dataHarmphasicV.setV13Max(adjustPhase(messageDataV.getMaxVa13()));
dataHarmphasicV.setV14Max(adjustPhase(messageDataV.getMaxVa14()));
dataHarmphasicV.setV15Max(adjustPhase(messageDataV.getMaxVa15()));
dataHarmphasicV.setV16Max(adjustPhase(messageDataV.getMaxVa16()));
dataHarmphasicV.setV17Max(adjustPhase(messageDataV.getMaxVa17()));
dataHarmphasicV.setV18Max(adjustPhase(messageDataV.getMaxVa18()));
dataHarmphasicV.setV19Max(adjustPhase(messageDataV.getMaxVa19()));
dataHarmphasicV.setV20Max(adjustPhase(messageDataV.getMaxVa20()));
dataHarmphasicV.setV21Max(adjustPhase(messageDataV.getMaxVa21()));
dataHarmphasicV.setV22Max(adjustPhase(messageDataV.getMaxVa22()));
dataHarmphasicV.setV23Max(adjustPhase(messageDataV.getMaxVa23()));
dataHarmphasicV.setV24Max(adjustPhase(messageDataV.getMaxVa24()));
dataHarmphasicV.setV25Max(adjustPhase(messageDataV.getMaxVa25()));
dataHarmphasicV.setV26Max(adjustPhase(messageDataV.getMaxVa26()));
dataHarmphasicV.setV27Max(adjustPhase(messageDataV.getMaxVa27()));
dataHarmphasicV.setV28Max(adjustPhase(messageDataV.getMaxVa28()));
dataHarmphasicV.setV29Max(adjustPhase(messageDataV.getMaxVa29()));
dataHarmphasicV.setV30Max(adjustPhase(messageDataV.getMaxVa30()));
dataHarmphasicV.setV31Max(adjustPhase(messageDataV.getMaxVa31()));
dataHarmphasicV.setV32Max(adjustPhase(messageDataV.getMaxVa32()));
dataHarmphasicV.setV33Max(adjustPhase(messageDataV.getMaxVa33()));
dataHarmphasicV.setV34Max(adjustPhase(messageDataV.getMaxVa34()));
dataHarmphasicV.setV35Max(adjustPhase(messageDataV.getMaxVa35()));
dataHarmphasicV.setV36Max(adjustPhase(messageDataV.getMaxVa36()));
dataHarmphasicV.setV37Max(adjustPhase(messageDataV.getMaxVa37()));
dataHarmphasicV.setV38Max(adjustPhase(messageDataV.getMaxVa38()));
dataHarmphasicV.setV39Max(adjustPhase(messageDataV.getMaxVa39()));
dataHarmphasicV.setV40Max(adjustPhase(messageDataV.getMaxVa40()));
dataHarmphasicV.setV41Max(adjustPhase(messageDataV.getMaxVa41()));
dataHarmphasicV.setV42Max(adjustPhase(messageDataV.getMaxVa42()));
dataHarmphasicV.setV43Max(adjustPhase(messageDataV.getMaxVa43()));
dataHarmphasicV.setV44Max(adjustPhase(messageDataV.getMaxVa44()));
dataHarmphasicV.setV45Max(adjustPhase(messageDataV.getMaxVa45()));
dataHarmphasicV.setV46Max(adjustPhase(messageDataV.getMaxVa46()));
dataHarmphasicV.setV47Max(adjustPhase(messageDataV.getMaxVa47()));
dataHarmphasicV.setV48Max(adjustPhase(messageDataV.getMaxVa48()));
dataHarmphasicV.setV49Max(adjustPhase(messageDataV.getMaxVa49()));
dataHarmphasicV.setV50Max(adjustPhase(messageDataV.getMaxVa50()));
dataHarmphasicV.setV1Min(messageDataV.getMinVfundAngle());
dataHarmphasicV.setV2Min(messageDataV.getMinVa2());
dataHarmphasicV.setV3Min(messageDataV.getMinVa3());
dataHarmphasicV.setV4Min(messageDataV.getMinVa4());
dataHarmphasicV.setV5Min(messageDataV.getMinVa5());
dataHarmphasicV.setV6Min(messageDataV.getMinVa6());
dataHarmphasicV.setV7Min(messageDataV.getMinVa7());
dataHarmphasicV.setV8Min(messageDataV.getMinVa8());
dataHarmphasicV.setV9Min(messageDataV.getMinVa9());
dataHarmphasicV.setV10Min(messageDataV.getMinVa10());
dataHarmphasicV.setV11Min(messageDataV.getMinVa11());
dataHarmphasicV.setV12Min(messageDataV.getMinVa12());
dataHarmphasicV.setV13Min(messageDataV.getMinVa13());
dataHarmphasicV.setV14Min(messageDataV.getMinVa14());
dataHarmphasicV.setV15Min(messageDataV.getMinVa15());
dataHarmphasicV.setV16Min(messageDataV.getMinVa16());
dataHarmphasicV.setV17Min(messageDataV.getMinVa17());
dataHarmphasicV.setV18Min(messageDataV.getMinVa18());
dataHarmphasicV.setV19Min(messageDataV.getMinVa19());
dataHarmphasicV.setV20Min(messageDataV.getMinVa20());
dataHarmphasicV.setV21Min(messageDataV.getMinVa21());
dataHarmphasicV.setV22Min(messageDataV.getMinVa22());
dataHarmphasicV.setV23Min(messageDataV.getMinVa23());
dataHarmphasicV.setV24Min(messageDataV.getMinVa24());
dataHarmphasicV.setV25Min(messageDataV.getMinVa25());
dataHarmphasicV.setV26Min(messageDataV.getMinVa26());
dataHarmphasicV.setV27Min(messageDataV.getMinVa27());
dataHarmphasicV.setV28Min(messageDataV.getMinVa28());
dataHarmphasicV.setV29Min(messageDataV.getMinVa29());
dataHarmphasicV.setV30Min(messageDataV.getMinVa30());
dataHarmphasicV.setV31Min(messageDataV.getMinVa31());
dataHarmphasicV.setV32Min(messageDataV.getMinVa32());
dataHarmphasicV.setV33Min(messageDataV.getMinVa33());
dataHarmphasicV.setV34Min(messageDataV.getMinVa34());
dataHarmphasicV.setV35Min(messageDataV.getMinVa35());
dataHarmphasicV.setV36Min(messageDataV.getMinVa36());
dataHarmphasicV.setV37Min(messageDataV.getMinVa37());
dataHarmphasicV.setV38Min(messageDataV.getMinVa38());
dataHarmphasicV.setV39Min(messageDataV.getMinVa39());
dataHarmphasicV.setV40Min(messageDataV.getMinVa40());
dataHarmphasicV.setV41Min(messageDataV.getMinVa41());
dataHarmphasicV.setV42Min(messageDataV.getMinVa42());
dataHarmphasicV.setV43Min(messageDataV.getMinVa43());
dataHarmphasicV.setV44Min(messageDataV.getMinVa44());
dataHarmphasicV.setV45Min(messageDataV.getMinVa45());
dataHarmphasicV.setV46Min(messageDataV.getMinVa46());
dataHarmphasicV.setV47Min(messageDataV.getMinVa47());
dataHarmphasicV.setV48Min(messageDataV.getMinVa48());
dataHarmphasicV.setV49Min(messageDataV.getMinVa49());
dataHarmphasicV.setV50Min(messageDataV.getMinVa50());
dataHarmphasicV.setV1Min(adjustPhase(messageDataV.getMinVfundAngle()));
dataHarmphasicV.setV2Min(adjustPhase(messageDataV.getMinVa2()));
dataHarmphasicV.setV3Min(adjustPhase(messageDataV.getMinVa3()));
dataHarmphasicV.setV4Min(adjustPhase(messageDataV.getMinVa4()));
dataHarmphasicV.setV5Min(adjustPhase(messageDataV.getMinVa5()));
dataHarmphasicV.setV6Min(adjustPhase(messageDataV.getMinVa6()));
dataHarmphasicV.setV7Min(adjustPhase(messageDataV.getMinVa7()));
dataHarmphasicV.setV8Min(adjustPhase(messageDataV.getMinVa8()));
dataHarmphasicV.setV9Min(adjustPhase(messageDataV.getMinVa9()));
dataHarmphasicV.setV10Min(adjustPhase(messageDataV.getMinVa10()));
dataHarmphasicV.setV11Min(adjustPhase(messageDataV.getMinVa11()));
dataHarmphasicV.setV12Min(adjustPhase(messageDataV.getMinVa12()));
dataHarmphasicV.setV13Min(adjustPhase(messageDataV.getMinVa13()));
dataHarmphasicV.setV14Min(adjustPhase(messageDataV.getMinVa14()));
dataHarmphasicV.setV15Min(adjustPhase(messageDataV.getMinVa15()));
dataHarmphasicV.setV16Min(adjustPhase(messageDataV.getMinVa16()));
dataHarmphasicV.setV17Min(adjustPhase(messageDataV.getMinVa17()));
dataHarmphasicV.setV18Min(adjustPhase(messageDataV.getMinVa18()));
dataHarmphasicV.setV19Min(adjustPhase(messageDataV.getMinVa19()));
dataHarmphasicV.setV20Min(adjustPhase(messageDataV.getMinVa20()));
dataHarmphasicV.setV21Min(adjustPhase(messageDataV.getMinVa21()));
dataHarmphasicV.setV22Min(adjustPhase(messageDataV.getMinVa22()));
dataHarmphasicV.setV23Min(adjustPhase(messageDataV.getMinVa23()));
dataHarmphasicV.setV24Min(adjustPhase(messageDataV.getMinVa24()));
dataHarmphasicV.setV25Min(adjustPhase(messageDataV.getMinVa25()));
dataHarmphasicV.setV26Min(adjustPhase(messageDataV.getMinVa26()));
dataHarmphasicV.setV27Min(adjustPhase(messageDataV.getMinVa27()));
dataHarmphasicV.setV28Min(adjustPhase(messageDataV.getMinVa28()));
dataHarmphasicV.setV29Min(adjustPhase(messageDataV.getMinVa29()));
dataHarmphasicV.setV30Min(adjustPhase(messageDataV.getMinVa30()));
dataHarmphasicV.setV31Min(adjustPhase(messageDataV.getMinVa31()));
dataHarmphasicV.setV32Min(adjustPhase(messageDataV.getMinVa32()));
dataHarmphasicV.setV33Min(adjustPhase(messageDataV.getMinVa33()));
dataHarmphasicV.setV34Min(adjustPhase(messageDataV.getMinVa34()));
dataHarmphasicV.setV35Min(adjustPhase(messageDataV.getMinVa35()));
dataHarmphasicV.setV36Min(adjustPhase(messageDataV.getMinVa36()));
dataHarmphasicV.setV37Min(adjustPhase(messageDataV.getMinVa37()));
dataHarmphasicV.setV38Min(adjustPhase(messageDataV.getMinVa38()));
dataHarmphasicV.setV39Min(adjustPhase(messageDataV.getMinVa39()));
dataHarmphasicV.setV40Min(adjustPhase(messageDataV.getMinVa40()));
dataHarmphasicV.setV41Min(adjustPhase(messageDataV.getMinVa41()));
dataHarmphasicV.setV42Min(adjustPhase(messageDataV.getMinVa42()));
dataHarmphasicV.setV43Min(adjustPhase(messageDataV.getMinVa43()));
dataHarmphasicV.setV44Min(adjustPhase(messageDataV.getMinVa44()));
dataHarmphasicV.setV45Min(adjustPhase(messageDataV.getMinVa45()));
dataHarmphasicV.setV46Min(adjustPhase(messageDataV.getMinVa46()));
dataHarmphasicV.setV47Min(adjustPhase(messageDataV.getMinVa47()));
dataHarmphasicV.setV48Min(adjustPhase(messageDataV.getMinVa48()));
dataHarmphasicV.setV49Min(adjustPhase(messageDataV.getMinVa49()));
dataHarmphasicV.setV50Min(adjustPhase(messageDataV.getMinVa50()));
dataHarmphasicV.setV1Cp95(messageDataV.getGVfundAngle());
dataHarmphasicV.setV2Cp95(messageDataV.getGVa2());
dataHarmphasicV.setV3Cp95(messageDataV.getGVa3());
dataHarmphasicV.setV4Cp95(messageDataV.getGVa4());
dataHarmphasicV.setV5Cp95(messageDataV.getGVa5());
dataHarmphasicV.setV6Cp95(messageDataV.getGVa6());
dataHarmphasicV.setV7Cp95(messageDataV.getGVa7());
dataHarmphasicV.setV8Cp95(messageDataV.getGVa8());
dataHarmphasicV.setV9Cp95(messageDataV.getGVa9());
dataHarmphasicV.setV10Cp95(messageDataV.getGVa10());
dataHarmphasicV.setV11Cp95(messageDataV.getGVa11());
dataHarmphasicV.setV12Cp95(messageDataV.getGVa12());
dataHarmphasicV.setV13Cp95(messageDataV.getGVa13());
dataHarmphasicV.setV14Cp95(messageDataV.getGVa14());
dataHarmphasicV.setV15Cp95(messageDataV.getGVa15());
dataHarmphasicV.setV16Cp95(messageDataV.getGVa16());
dataHarmphasicV.setV17Cp95(messageDataV.getGVa17());
dataHarmphasicV.setV18Cp95(messageDataV.getGVa18());
dataHarmphasicV.setV19Cp95(messageDataV.getGVa19());
dataHarmphasicV.setV20Cp95(messageDataV.getGVa20());
dataHarmphasicV.setV21Cp95(messageDataV.getGVa21());
dataHarmphasicV.setV22Cp95(messageDataV.getGVa22());
dataHarmphasicV.setV23Cp95(messageDataV.getGVa23());
dataHarmphasicV.setV24Cp95(messageDataV.getGVa24());
dataHarmphasicV.setV25Cp95(messageDataV.getGVa25());
dataHarmphasicV.setV26Cp95(messageDataV.getGVa26());
dataHarmphasicV.setV27Cp95(messageDataV.getGVa27());
dataHarmphasicV.setV28Cp95(messageDataV.getGVa28());
dataHarmphasicV.setV29Cp95(messageDataV.getGVa29());
dataHarmphasicV.setV30Cp95(messageDataV.getGVa30());
dataHarmphasicV.setV31Cp95(messageDataV.getGVa31());
dataHarmphasicV.setV32Cp95(messageDataV.getGVa32());
dataHarmphasicV.setV33Cp95(messageDataV.getGVa33());
dataHarmphasicV.setV34Cp95(messageDataV.getGVa34());
dataHarmphasicV.setV35Cp95(messageDataV.getGVa35());
dataHarmphasicV.setV36Cp95(messageDataV.getGVa36());
dataHarmphasicV.setV37Cp95(messageDataV.getGVa37());
dataHarmphasicV.setV38Cp95(messageDataV.getGVa38());
dataHarmphasicV.setV39Cp95(messageDataV.getGVa39());
dataHarmphasicV.setV40Cp95(messageDataV.getGVa40());
dataHarmphasicV.setV41Cp95(messageDataV.getGVa41());
dataHarmphasicV.setV42Cp95(messageDataV.getGVa42());
dataHarmphasicV.setV43Cp95(messageDataV.getGVa43());
dataHarmphasicV.setV44Cp95(messageDataV.getGVa44());
dataHarmphasicV.setV45Cp95(messageDataV.getGVa45());
dataHarmphasicV.setV46Cp95(messageDataV.getGVa46());
dataHarmphasicV.setV47Cp95(messageDataV.getGVa47());
dataHarmphasicV.setV48Cp95(messageDataV.getGVa48());
dataHarmphasicV.setV49Cp95(messageDataV.getGVa49());
dataHarmphasicV.setV50Cp95(messageDataV.getGVa50());
dataHarmphasicV.setV1Cp95(adjustPhase(messageDataV.getGVfundAngle()));
dataHarmphasicV.setV2Cp95(adjustPhase(messageDataV.getGVa2()));
dataHarmphasicV.setV3Cp95(adjustPhase(messageDataV.getGVa3()));
dataHarmphasicV.setV4Cp95(adjustPhase(messageDataV.getGVa4()));
dataHarmphasicV.setV5Cp95(adjustPhase(messageDataV.getGVa5()));
dataHarmphasicV.setV6Cp95(adjustPhase(messageDataV.getGVa6()));
dataHarmphasicV.setV7Cp95(adjustPhase(messageDataV.getGVa7()));
dataHarmphasicV.setV8Cp95(adjustPhase(messageDataV.getGVa8()));
dataHarmphasicV.setV9Cp95(adjustPhase(messageDataV.getGVa9()));
dataHarmphasicV.setV10Cp95(adjustPhase(messageDataV.getGVa10()));
dataHarmphasicV.setV11Cp95(adjustPhase(messageDataV.getGVa11()));
dataHarmphasicV.setV12Cp95(adjustPhase(messageDataV.getGVa12()));
dataHarmphasicV.setV13Cp95(adjustPhase(messageDataV.getGVa13()));
dataHarmphasicV.setV14Cp95(adjustPhase(messageDataV.getGVa14()));
dataHarmphasicV.setV15Cp95(adjustPhase(messageDataV.getGVa15()));
dataHarmphasicV.setV16Cp95(adjustPhase(messageDataV.getGVa16()));
dataHarmphasicV.setV17Cp95(adjustPhase(messageDataV.getGVa17()));
dataHarmphasicV.setV18Cp95(adjustPhase(messageDataV.getGVa18()));
dataHarmphasicV.setV19Cp95(adjustPhase(messageDataV.getGVa19()));
dataHarmphasicV.setV20Cp95(adjustPhase(messageDataV.getGVa20()));
dataHarmphasicV.setV21Cp95(adjustPhase(messageDataV.getGVa21()));
dataHarmphasicV.setV22Cp95(adjustPhase(messageDataV.getGVa22()));
dataHarmphasicV.setV23Cp95(adjustPhase(messageDataV.getGVa23()));
dataHarmphasicV.setV24Cp95(adjustPhase(messageDataV.getGVa24()));
dataHarmphasicV.setV25Cp95(adjustPhase(messageDataV.getGVa25()));
dataHarmphasicV.setV26Cp95(adjustPhase(messageDataV.getGVa26()));
dataHarmphasicV.setV27Cp95(adjustPhase(messageDataV.getGVa27()));
dataHarmphasicV.setV28Cp95(adjustPhase(messageDataV.getGVa28()));
dataHarmphasicV.setV29Cp95(adjustPhase(messageDataV.getGVa29()));
dataHarmphasicV.setV30Cp95(adjustPhase(messageDataV.getGVa30()));
dataHarmphasicV.setV31Cp95(adjustPhase(messageDataV.getGVa31()));
dataHarmphasicV.setV32Cp95(adjustPhase(messageDataV.getGVa32()));
dataHarmphasicV.setV33Cp95(adjustPhase(messageDataV.getGVa33()));
dataHarmphasicV.setV34Cp95(adjustPhase(messageDataV.getGVa34()));
dataHarmphasicV.setV35Cp95(adjustPhase(messageDataV.getGVa35()));
dataHarmphasicV.setV36Cp95(adjustPhase(messageDataV.getGVa36()));
dataHarmphasicV.setV37Cp95(adjustPhase(messageDataV.getGVa37()));
dataHarmphasicV.setV38Cp95(adjustPhase(messageDataV.getGVa38()));
dataHarmphasicV.setV39Cp95(adjustPhase(messageDataV.getGVa39()));
dataHarmphasicV.setV40Cp95(adjustPhase(messageDataV.getGVa40()));
dataHarmphasicV.setV41Cp95(adjustPhase(messageDataV.getGVa41()));
dataHarmphasicV.setV42Cp95(adjustPhase(messageDataV.getGVa42()));
dataHarmphasicV.setV43Cp95(adjustPhase(messageDataV.getGVa43()));
dataHarmphasicV.setV44Cp95(adjustPhase(messageDataV.getGVa44()));
dataHarmphasicV.setV45Cp95(adjustPhase(messageDataV.getGVa45()));
dataHarmphasicV.setV46Cp95(adjustPhase(messageDataV.getGVa46()));
dataHarmphasicV.setV47Cp95(adjustPhase(messageDataV.getGVa47()));
dataHarmphasicV.setV48Cp95(adjustPhase(messageDataV.getGVa48()));
dataHarmphasicV.setV49Cp95(adjustPhase(messageDataV.getGVa49()));
dataHarmphasicV.setV50Cp95(adjustPhase(messageDataV.getGVa50()));
}
@@ -980,4 +1002,5 @@ public class BeanVConverter {
return dataHarmrateVDTO;
}
}

View File

@@ -0,0 +1,52 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10404
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
spring:
application:
name: @artifactId@
cloud:
nacos:
discovery:
server-addr: @nacos.url@
namespace: @nacos.namespace@
config:
username: @nacos.username@
password: @nacos.password@
server-addr: @nacos.url@
namespace: @nacos.namespace@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-id: share-config-datasource-db.yaml
refresh: true
main:
allow-bean-definition-overriding: true
#项目日志的配置
logging:
#config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: info
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.harmonic.pojo
mqtt:
client-id: @artifactId@${random.value}

View File

@@ -0,0 +1,57 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10404
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
spring:
application:
name: @artifactId@
cloud:
nacos:
discovery:
ip: @service.server.url@
server-addr: @nacos.url@
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
config:
server-addr: @nacos.url@
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-id: share-config-datasource-db.yaml
refresh: true
- data-id: data-platform.yaml
refresh: true
main:
allow-bean-definition-overriding: true
#项目日志的配置
logging:
#config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: info
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.harmonic.pojo
mqtt:
client-id: @artifactId@${random.value}

View File

@@ -1,53 +1,3 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10404
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
spring:
application:
name: @artifactId@
cloud:
nacos:
discovery:
ip: @service.server.url@
server-addr: @nacos.url@
namespace: @nacos.namespace@
config:
server-addr: @nacos.url@
namespace: @nacos.namespace@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-Id: share-config-datasource-db.yaml
refresh: true
- data-Id: data-platform.yaml
refresh: true
main:
allow-bean-definition-overriding: true
#项目日志的配置
logging:
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: info
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.harmonic.pojo
mqtt:
client-id: @artifactId@${random.value}
profiles:
active: @spring.profiles.active@

View File

@@ -68,4 +68,8 @@ public interface DataVFeignClient {
//按时间分组获取原始数据
@PostMapping("/getGroupByTimeDataV")
HttpResult<List<DataVDto>> getGroupByTimeDataV(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/excludeZeroData")
HttpResult<Boolean> excludeZeroData(@RequestBody LineCountEvaluateParam lineParam);
}

View File

@@ -116,6 +116,12 @@ public class DataVFeignClientFallbackFactory implements FallbackFactory<DataVFei
log.error("{}异常,降级处理,异常为:{}","DataV按时间分组获取原始数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> excludeZeroData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","判断是否存在是零飘数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -213,6 +213,115 @@ public class DataHarmpowerP {
@Column(name = "p_50")
private Double p50;
//在线监测添加的字段
@Column(name = "totPf")
private Double totPf;
@Column(name = "totDf")
private Double totDf;
@Column(name = "totP")
private Double totP;
@Column(name = "totP1")
private Double totP1;
@Column(name = "totP2")
private Double totP2;
@Column(name = "totP3")
private Double totP3;
@Column(name = "totP4")
private Double totP4;
@Column(name = "totP5")
private Double totP5;
@Column(name = "totP6")
private Double totP6;
@Column(name = "totP7")
private Double totP7;
@Column(name = "totP8")
private Double totP8;
@Column(name = "totP9")
private Double totP9;
@Column(name = "totP10")
private Double totP10;
@Column(name = "totP11")
private Double totP11;
@Column(name = "totP12")
private Double totP12;
@Column(name = "totP13")
private Double totP13;
@Column(name = "totP14")
private Double totP14;
@Column(name = "totP15")
private Double totP15;
@Column(name = "totP16")
private Double totP16;
@Column(name = "totP17")
private Double totP17;
@Column(name = "totP18")
private Double totP18;
@Column(name = "totP19")
private Double totP19;
@Column(name = "totP20")
private Double totP20;
@Column(name = "totP21")
private Double totP21;
@Column(name = "totP22")
private Double totP22;
@Column(name = "totP23")
private Double totP23;
@Column(name = "totP24")
private Double totP24;
@Column(name = "totP25")
private Double totP25;
@Column(name = "totP26")
private Double totP26;
@Column(name = "totP27")
private Double totP27;
@Column(name = "totP28")
private Double totP28;
@Column(name = "totP29")
private Double totP29;
@Column(name = "totP30")
private Double totP30;
@Column(name = "totP31")
private Double totP31;
@Column(name = "totP32")
private Double totP32;
@Column(name = "totP33")
private Double totP33;
@Column(name = "totP34")
private Double totP34;
@Column(name = "totP35")
private Double totP35;
@Column(name = "totP36")
private Double totP36;
@Column(name = "totP37")
private Double totP37;
@Column(name = "totP38")
private Double totP38;
@Column(name = "totP39")
private Double totP39;
@Column(name = "totP40")
private Double totP40;
@Column(name = "totP41")
private Double totP41;
@Column(name = "totP42")
private Double totP42;
@Column(name = "totP43")
private Double totP43;
@Column(name = "totP44")
private Double totP44;
@Column(name = "totP45")
private Double totP45;
@Column(name = "totP46")
private Double totP46;
@Column(name = "totP47")
private Double totP47;
@Column(name = "totP49")
private Double totP48;
@Column(name = "totP49")
private Double totP49;
@Column(name = "totP50")
private Double totP50;
public static List<DataHarmpowerP> relationToInfluxDB(DataHarmpowerPDTO dataHarmpowerP) {
if (dataHarmpowerP == null) {
return null;

View File

@@ -207,6 +207,111 @@ public class DataHarmpowerQ {
@Column(name = "q_50")
private Double q50;
//在线监测添加的字段
@Column(name = "totQ")
private Double totQ;
@Column(name = "totQ1")
private Double totQ1;
@Column(name = "totQ2")
private Double totQ2;
@Column(name = "totQ3")
private Double totQ3;
@Column(name = "totQ4")
private Double totQ4;
@Column(name = "totQ5")
private Double totQ5;
@Column(name = "totQ6")
private Double totQ6;
@Column(name = "totQ7")
private Double totQ7;
@Column(name = "totQ8")
private Double totQ8;
@Column(name = "totQ9")
private Double totQ9;
@Column(name = "totQ10")
private Double totQ10;
@Column(name = "totQ11")
private Double totQ11;
@Column(name = "totQ12")
private Double totQ12;
@Column(name = "totQ13")
private Double totQ13;
@Column(name = "totQ14")
private Double totQ14;
@Column(name = "totQ15")
private Double totQ15;
@Column(name = "totQ16")
private Double totQ16;
@Column(name = "totQ17")
private Double totQ17;
@Column(name = "totQ18")
private Double totQ18;
@Column(name = "totQ19")
private Double totQ19;
@Column(name = "totQ20")
private Double totQ20;
@Column(name = "totQ21")
private Double totQ21;
@Column(name = "totQ22")
private Double totQ22;
@Column(name = "totQ23")
private Double totQ23;
@Column(name = "totQ24")
private Double totQ24;
@Column(name = "totQ25")
private Double totQ25;
@Column(name = "totQ26")
private Double totQ26;
@Column(name = "totQ27")
private Double totQ27;
@Column(name = "totQ28")
private Double totQ28;
@Column(name = "totQ29")
private Double totQ29;
@Column(name = "totQ30")
private Double totQ30;
@Column(name = "totQ31")
private Double totQ31;
@Column(name = "totQ32")
private Double totQ32;
@Column(name = "totQ33")
private Double totQ33;
@Column(name = "totQ34")
private Double totQ34;
@Column(name = "totQ35")
private Double totQ35;
@Column(name = "totQ36")
private Double totQ36;
@Column(name = "totQ37")
private Double totQ37;
@Column(name = "totQ38")
private Double totQ38;
@Column(name = "totQ39")
private Double totQ39;
@Column(name = "totQ40")
private Double totQ40;
@Column(name = "totQ41")
private Double totQ41;
@Column(name = "totQ42")
private Double totQ42;
@Column(name = "totQ43")
private Double totQ43;
@Column(name = "totQ44")
private Double totQ44;
@Column(name = "totQ45")
private Double totQ45;
@Column(name = "totQ46")
private Double totQ46;
@Column(name = "totQ47")
private Double totQ47;
@Column(name = "totQ49")
private Double totQ48;
@Column(name = "totQ49")
private Double totQ49;
@Column(name = "totQ50")
private Double totQ50;
public static List<DataHarmpowerQ> relationToInfluxDB(DataHarmpowerQDTO dataHarmpowerQ) {
if (dataHarmpowerQ == null) {
return null;

View File

@@ -207,6 +207,111 @@ public class DataHarmpowerS {
@Column(name = "s_50")
private Double s50;
//在线监测添加的字段
@Column(name = "totS")
private Double totS;
@Column(name = "totS1")
private Double totS1;
@Column(name = "totS2")
private Double totS2;
@Column(name = "totS3")
private Double totS3;
@Column(name = "totS4")
private Double totS4;
@Column(name = "totS5")
private Double totS5;
@Column(name = "totS6")
private Double totS6;
@Column(name = "totS7")
private Double totS7;
@Column(name = "totS8")
private Double totS8;
@Column(name = "totS9")
private Double totS9;
@Column(name = "totS10")
private Double totS10;
@Column(name = "totS11")
private Double totS11;
@Column(name = "totS12")
private Double totS12;
@Column(name = "totS13")
private Double totS13;
@Column(name = "totS14")
private Double totS14;
@Column(name = "totS15")
private Double totS15;
@Column(name = "totS16")
private Double totS16;
@Column(name = "totS17")
private Double totS17;
@Column(name = "totS18")
private Double totS18;
@Column(name = "totS19")
private Double totS19;
@Column(name = "totS20")
private Double totS20;
@Column(name = "totS21")
private Double totS21;
@Column(name = "totS22")
private Double totS22;
@Column(name = "totS23")
private Double totS23;
@Column(name = "totS24")
private Double totS24;
@Column(name = "totS25")
private Double totS25;
@Column(name = "totS26")
private Double totS26;
@Column(name = "totS27")
private Double totS27;
@Column(name = "totS28")
private Double totS28;
@Column(name = "totS29")
private Double totS29;
@Column(name = "totS30")
private Double totS30;
@Column(name = "totS31")
private Double totS31;
@Column(name = "totS32")
private Double totS32;
@Column(name = "totS33")
private Double totS33;
@Column(name = "totS34")
private Double totS34;
@Column(name = "totS35")
private Double totS35;
@Column(name = "totS36")
private Double totS36;
@Column(name = "totS37")
private Double totS37;
@Column(name = "totS38")
private Double totS38;
@Column(name = "totS39")
private Double totS39;
@Column(name = "totS40")
private Double totS40;
@Column(name = "totS41")
private Double totS41;
@Column(name = "totS42")
private Double totS42;
@Column(name = "totS43")
private Double totS43;
@Column(name = "totS44")
private Double totS44;
@Column(name = "totS45")
private Double totS45;
@Column(name = "totS46")
private Double totS46;
@Column(name = "totS47")
private Double totS47;
@Column(name = "totS49")
private Double totS48;
@Column(name = "totS49")
private Double totS49;
@Column(name = "totS50")
private Double totS50;
public static List<DataHarmpowerS> relationToInfluxDB(DataHarmpowerSDTO dataHarmpowerS) {
if (dataHarmpowerS == null) {
return null;

View File

@@ -18,6 +18,8 @@ public class PqsCommunicateDto {
private String description;
private Integer type;
//是否更新updateTime标志数据上送更新1状态翻转不更新0
private Integer flag=0;
}

View File

@@ -343,7 +343,7 @@ public class DataRecallController extends BaseController {
}
if(recallType ==3){
return;
// return;
}else if(recallType ==2){
Integer timeInterval = data.getTimeInterval();
List<LocalDateTime> localDateTimeList = generateTimeIntervals(finalCurrentDate, timeInterval);
@@ -353,7 +353,7 @@ public class DataRecallController extends BaseController {
List<String> timePeriod = mergeTimeIntervals(localDateTimeList, timeInterval);
//最大时间段为300
if(timePeriod.size()<300){
RecallMessage.RecallDTO recallDTO = new RecallMessage.RecallDTO();
RecallMessage.RecallDTO recallDTO = new RecallMessage.RecallDTO();
recallDTO.setDataType("0");
recallDTO.setMonitorId(Stream.of(temp).collect(Collectors.toList()));
recallDTO.setTimeInterval(timePeriod);

View File

@@ -166,6 +166,15 @@ public class DataVController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, dataV, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/excludeZeroData")
@ApiOperation("判断是否存在是零飘数据")
public HttpResult<Boolean> excludeZeroData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("excludeZeroData");
Boolean b = dataVQuery.excludeZeroData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, b, methodDescribe);
}

View File

@@ -81,4 +81,17 @@ public interface IDataV extends IMppService<RStatDataVD> {
List<DataVDto> getDataV(LineCountEvaluateParam lineParam);
List<DataVDto> getGroupByTimeDataV(LineCountEvaluateParam lineParam);
/**
* 查看监测点的电压,判断是否存在是零飘数据
* 如果零飘数据占比一半多,则抛弃该监测点数据
* @param lineParam
* @return: java.lang.Boolean
* @Author: wr
* @Date: 2026/1/15 9:26
*/
Boolean excludeZeroData(LineCountEvaluateParam lineParam);
}

View File

@@ -97,7 +97,7 @@ public class LnDataDealServiceImpl implements LnDataDealService {
pqsCommunicateDto.setTime(LocalDateTimeUtil.format(dataVDTO.getTimeid(), DatePattern.NORM_DATETIME_PATTERN));
pqsCommunicateDto.setDevId(temp);
pqsCommunicateDto.setType(1);
pqsCommunicateDto.setFlag(1);
iPqsCommunicate.insertion(pqsCommunicateDto);
});

View File

@@ -12,8 +12,6 @@ import com.njcn.dataProcess.dao.imapper.DataHarmpowerPMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmPowerPRelationMapper;
import com.njcn.dataProcess.dto.DataHarmpowerPDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataHarmphasicI;
import com.njcn.dataProcess.po.influx.DataHarmphasicV;
import com.njcn.dataProcess.po.influx.DataHarmpowerP;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerPDto;
@@ -29,6 +27,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
@@ -128,68 +127,12 @@ public class InfluxdbDataHarmpowerPImpl extends MppServiceImpl<RStatDataHarmPowe
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data1 = valueTypeList.stream().map(DataHarmpowerP::getDf).collect(Collectors.toList());
List<Double> data2 = valueTypeList.stream().map(DataHarmpowerP::getPf).collect(Collectors.toList());
List<Double> data3 = valueTypeList.stream().map(DataHarmpowerP::getP).collect(Collectors.toList());
List<Double> data12 = valueTypeList.stream().map(DataHarmpowerP::getP1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataHarmpowerP::getP2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataHarmpowerP::getP3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataHarmpowerP::getP4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataHarmpowerP::getP5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataHarmpowerP::getP6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataHarmpowerP::getP7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataHarmpowerP::getP8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataHarmpowerP::getP9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataHarmpowerP::getP10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataHarmpowerP::getP11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataHarmpowerP::getP12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataHarmpowerP::getP13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataHarmpowerP::getP14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataHarmpowerP::getP15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataHarmpowerP::getP16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataHarmpowerP::getP17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataHarmpowerP::getP18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataHarmpowerP::getP19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataHarmpowerP::getP20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataHarmpowerP::getP21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataHarmpowerP::getP22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataHarmpowerP::getP23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataHarmpowerP::getP24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataHarmpowerP::getP25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataHarmpowerP::getP26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataHarmpowerP::getP27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataHarmpowerP::getP28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataHarmpowerP::getP29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataHarmpowerP::getP30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataHarmpowerP::getP31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataHarmpowerP::getP32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataHarmpowerP::getP33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataHarmpowerP::getP34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataHarmpowerP::getP35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataHarmpowerP::getP36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataHarmpowerP::getP37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataHarmpowerP::getP38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataHarmpowerP::getP39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataHarmpowerP::getP40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataHarmpowerP::getP41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataHarmpowerP::getP42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataHarmpowerP::getP43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataHarmpowerP::getP44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataHarmpowerP::getP45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataHarmpowerP::getP46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataHarmpowerP::getP47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataHarmpowerP::getP48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataHarmpowerP::getP49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataHarmpowerP::getP50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data1,data2,data3,data12,data13,data14
,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24
,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34
,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44
,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54
,data55,data56,data57,data58,data59,data60,data61);
List<List<Double>> lists;
if (Objects.equals(phasicType, "T") && Objects.equals(lineParam.getType(), 2)) {
lists = extractDataLists(valueTypeList, "Tot");
} else {
lists = extractDataLists(valueTypeList, "");
}
value.setValueList(lists);
valueTypes.add(value);
});
@@ -203,6 +146,43 @@ public class InfluxdbDataHarmpowerPImpl extends MppServiceImpl<RStatDataHarmPowe
return result;
}
private List<List<Double>> extractDataLists(List<DataHarmpowerP> dataList, String prefix) {
List<List<Double>> result = new ArrayList<>();
// 前三个特殊字段
result.add(extractField(dataList, prefix + "Df"));
result.add(extractField(dataList, prefix + "Pf"));
result.add(extractField(dataList, prefix + "P"));
// P1到P50
for (int i = 1; i <= 50; i++) {
String fieldName = prefix + (i == 1 ? "P1" : "P" + i);
result.add(extractField(dataList, fieldName));
}
return result;
}
private List<Double> extractField(List<DataHarmpowerP> dataList, String fieldName) {
try {
Method method = DataHarmpowerP.class.getMethod("get" + capitalize(fieldName));
return dataList.stream()
.map(data -> {
try {
return (Double) method.invoke(data);
} catch (Exception e) {
throw new RuntimeException("Failed to get field: " + fieldName, e);
}
})
.collect(Collectors.toList());
} catch (NoSuchMethodException e) {
throw new RuntimeException("Field not found: " + fieldName, e);
}
}
private String capitalize(String str) {
if (str == null || str.isEmpty()) return str;
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
@Override
public void addList(List<DataHarmPowerPDto> list) {
@@ -298,20 +278,31 @@ public class InfluxdbDataHarmpowerPImpl extends MppServiceImpl<RStatDataHarmPowe
String devId = lineMap.get(lineId).getDeviceId();
CsLinePO po = lineMap.get(lineId);
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerP.class);
//A、B、C谐波有功功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmP_", "p_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
influxQueryWrapper.eq(DataHarmpowerP::getLineId, lineId)
.eq(DataHarmpowerP::getProcess,Integer.toString(devsMap.get(devId).getProcess()))
//三相总 谐波有功功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmTP_", "totP_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
InfluxQueryWrapper eq = influxQueryWrapper.eq(DataHarmpowerP::getLineId, lineId)
.eq(DataHarmpowerP::getProcess, Integer.toString(devsMap.get(devId).getProcess()))
.select(DataHarmpowerP::getLineId)
.select(DataHarmpowerP::getPhasicType)
.select(DataHarmpowerP::getValueType)
//位移功率因数
.select("Pq_DF","df")
.select("Pq_DF", "df")
//视在功率因素
.select("Pq_PF","pf")
//功功率
.select("Pq_P","p")
.select("Pq_PF", "pf")
//A、B、C三相有功功率
.select("Pq_P", "p")
//基波有功功率
.select("Pq_FundP","p_1")
.select("Pq_FundP", "p_1")
//三相总视在功率因数
.select("Pq_TotPF", "totPf")
//三相总位移功率因数
.select("Pq_TotDF", "totDf")
//三相总功率因数
.select("Pq_TotP", "totP")
//三相总基波有功功率
.select("Pq_TotHarmP", "totP1")
.between(DataHarmpowerP::getTime, startTime, endTime)
.eq(DataHarmpowerP::getQualityFlag, "0");
if (Objects.isNull(po.getLineNo())) {

View File

@@ -26,6 +26,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
@@ -124,66 +125,13 @@ public class InfluxdbDataHarmpowerQImpl extends MppServiceImpl<RStatDataHarmPowe
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data1 = valueTypeList.stream().map(DataHarmpowerQ::getQ).collect(Collectors.toList());
List<Double> data12 = valueTypeList.stream().map(DataHarmpowerQ::getQ1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataHarmpowerQ::getQ2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataHarmpowerQ::getQ3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataHarmpowerQ::getQ4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataHarmpowerQ::getQ5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataHarmpowerQ::getQ6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataHarmpowerQ::getQ7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataHarmpowerQ::getQ8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataHarmpowerQ::getQ9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataHarmpowerQ::getQ10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataHarmpowerQ::getQ11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataHarmpowerQ::getQ12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataHarmpowerQ::getQ13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataHarmpowerQ::getQ14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataHarmpowerQ::getQ15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataHarmpowerQ::getQ16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataHarmpowerQ::getQ17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataHarmpowerQ::getQ18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataHarmpowerQ::getQ19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataHarmpowerQ::getQ20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataHarmpowerQ::getQ21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataHarmpowerQ::getQ22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataHarmpowerQ::getQ23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataHarmpowerQ::getQ24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataHarmpowerQ::getQ25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataHarmpowerQ::getQ26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataHarmpowerQ::getQ27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataHarmpowerQ::getQ28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataHarmpowerQ::getQ29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataHarmpowerQ::getQ30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataHarmpowerQ::getQ31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataHarmpowerQ::getQ32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataHarmpowerQ::getQ33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataHarmpowerQ::getQ34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataHarmpowerQ::getQ35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataHarmpowerQ::getQ36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataHarmpowerQ::getQ37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataHarmpowerQ::getQ38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataHarmpowerQ::getQ39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataHarmpowerQ::getQ40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataHarmpowerQ::getQ41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataHarmpowerQ::getQ42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataHarmpowerQ::getQ43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataHarmpowerQ::getQ44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataHarmpowerQ::getQ45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataHarmpowerQ::getQ46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataHarmpowerQ::getQ47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataHarmpowerQ::getQ48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataHarmpowerQ::getQ49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataHarmpowerQ::getQ50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data1,data12,data13,data14
,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24
,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34
,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44
,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54
,data55,data56,data57,data58,data59,data60,data61);
List<List<Double>> lists;
if (Objects.equals(phasicType, "T") && Objects.equals(lineParam.getType(), 2)) {
lists = extractDataLists(valueTypeList, "Tot");
} else {
lists = extractDataLists(valueTypeList, "");
}
value.setValueList(lists);
valueTypes.add(value);
});
@@ -197,6 +145,39 @@ public class InfluxdbDataHarmpowerQImpl extends MppServiceImpl<RStatDataHarmPowe
return result;
}
private List<List<Double>> extractDataLists(List<DataHarmpowerQ> dataList, String prefix) {
List<List<Double>> result = new ArrayList<>();
result.add(extractField(dataList, prefix + "Q"));
// Q1到Q50
for (int i = 1; i <= 50; i++) {
String fieldName = prefix + (i == 1 ? "Q1" : "Q" + i);
result.add(extractField(dataList, fieldName));
}
return result;
}
private List<Double> extractField(List<DataHarmpowerQ> dataList, String fieldName) {
try {
Method method = DataHarmpowerQ.class.getMethod("get" + capitalize(fieldName));
return dataList.stream()
.map(data -> {
try {
return (Double) method.invoke(data);
} catch (Exception e) {
throw new RuntimeException("Failed to get field: " + fieldName, e);
}
})
.collect(Collectors.toList());
} catch (NoSuchMethodException e) {
throw new RuntimeException("Field not found: " + fieldName, e);
}
}
private String capitalize(String str) {
if (str == null || str.isEmpty()) return str;
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
@Override
public void addList(List<DataHarmPowerQDto> list) {
@@ -290,16 +271,23 @@ public class InfluxdbDataHarmpowerQImpl extends MppServiceImpl<RStatDataHarmPowe
String devId = lineMap.get(lineId).getDeviceId();
CsLinePO po = lineMap.get(lineId);
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerQ.class);
//A、B、C谐波无功功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmQ_", "q_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
//三相总 谐波有功功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmTQ_", "totQ_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
influxQueryWrapper.eq(DataHarmpowerQ::getLineId, lineId)
.eq(DataHarmpowerQ::getProcess,Integer.toString(devsMap.get(devId).getProcess()))
.select(DataHarmpowerQ::getLineId)
.select(DataHarmpowerQ::getPhasicType)
.select(DataHarmpowerQ::getValueType)
//功功率
.select("Pq_Q","q")
//基波功功率
//A、B、C三相无功功率
.select("Pq_Q", "q")
//基波功功率
.select("Pq_FundQ","q_1")
//总无功功率
.select("Pq_TotQ","totQ")
//基波无功功率(T)
.select("Pq_TotHarmQ","totQ1")
.between(DataHarmpowerQ::getTime, startTime, endTime)
.eq(DataHarmpowerQ::getQualityFlag, "0");
if (Objects.isNull(po.getLineNo())) {

View File

@@ -26,6 +26,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
@@ -124,66 +125,12 @@ public class InfluxdbDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowe
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data1 = valueTypeList.stream().map(DataHarmpowerS::getS).collect(Collectors.toList());
List<Double> data12 = valueTypeList.stream().map(DataHarmpowerS::getS1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataHarmpowerS::getS2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataHarmpowerS::getS3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataHarmpowerS::getS4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataHarmpowerS::getS5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataHarmpowerS::getS6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataHarmpowerS::getS7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataHarmpowerS::getS8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataHarmpowerS::getS9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataHarmpowerS::getS10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataHarmpowerS::getS11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataHarmpowerS::getS12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataHarmpowerS::getS13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataHarmpowerS::getS14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataHarmpowerS::getS15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataHarmpowerS::getS16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataHarmpowerS::getS17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataHarmpowerS::getS18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataHarmpowerS::getS19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataHarmpowerS::getS20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataHarmpowerS::getS21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataHarmpowerS::getS22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataHarmpowerS::getS23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataHarmpowerS::getS24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataHarmpowerS::getS25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataHarmpowerS::getS26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataHarmpowerS::getS27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataHarmpowerS::getS28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataHarmpowerS::getS29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataHarmpowerS::getS30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataHarmpowerS::getS31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataHarmpowerS::getS32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataHarmpowerS::getS33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataHarmpowerS::getS34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataHarmpowerS::getS35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataHarmpowerS::getS36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataHarmpowerS::getS37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataHarmpowerS::getS38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataHarmpowerS::getS39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataHarmpowerS::getS40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataHarmpowerS::getS41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataHarmpowerS::getS42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataHarmpowerS::getS43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataHarmpowerS::getS44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataHarmpowerS::getS45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataHarmpowerS::getS46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataHarmpowerS::getS47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataHarmpowerS::getS48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataHarmpowerS::getS49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataHarmpowerS::getS50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data1,data12,data13,data14
,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24
,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34
,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44
,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54
,data55,data56,data57,data58,data59,data60,data61);
List<List<Double>> lists;
if (Objects.equals(phasicType, "T") && Objects.equals(lineParam.getType(), 2)) {
lists = extractDataLists(valueTypeList, "Tot");
} else {
lists = extractDataLists(valueTypeList, "");
}
value.setValueList(lists);
valueTypes.add(value);
});
@@ -197,6 +144,39 @@ public class InfluxdbDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowe
return result;
}
private List<List<Double>> extractDataLists(List<DataHarmpowerS> dataList, String prefix) {
List<List<Double>> result = new ArrayList<>();
result.add(extractField(dataList, prefix + "S"));
// Q1到Q50
for (int i = 1; i <= 50; i++) {
String fieldName = prefix + (i == 1 ? "S1" : "S" + i);
result.add(extractField(dataList, fieldName));
}
return result;
}
private List<Double> extractField(List<DataHarmpowerS> dataList, String fieldName) {
try {
Method method = DataHarmpowerS.class.getMethod("get" + capitalize(fieldName));
return dataList.stream()
.map(data -> {
try {
return (Double) method.invoke(data);
} catch (Exception e) {
throw new RuntimeException("Failed to get field: " + fieldName, e);
}
})
.collect(Collectors.toList());
} catch (NoSuchMethodException e) {
throw new RuntimeException("Field not found: " + fieldName, e);
}
}
private String capitalize(String str) {
if (str == null || str.isEmpty()) return str;
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
@Override
public void addList(List<DataHarmPowerSDto> list) {
@@ -290,16 +270,23 @@ public class InfluxdbDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowe
String devId = lineMap.get(lineId).getDeviceId();
CsLinePO po = lineMap.get(lineId);
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerS.class);
//A、B、C谐波视在功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmS_", "s_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
//三相总 谐波视在功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmTS_", "totS_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
influxQueryWrapper.eq(DataHarmpowerS::getLineId, lineId)
.eq(DataHarmpowerS::getProcess,Integer.toString(devsMap.get(devId).getProcess()))
.select(DataHarmpowerS::getLineId)
.select(DataHarmpowerS::getPhasicType)
.select(DataHarmpowerS::getValueType)
//总功功率
//A、B、C视在功率
.select("Pq_S","s")
//基波有功功率
//基波视在功率
.select("Pq_FundS","s_1")
//总视在功率
.select("Pq_TotS","totS")
//基波视在功率T
.select("Pq_TotHarmS","totS1")
.between(DataHarmpowerS::getTime, startTime, endTime)
.eq(DataHarmpowerS::getQualityFlag, "0");
if (Objects.isNull(po.getLineNo())) {

View File

@@ -208,7 +208,7 @@ public class InfluxdbDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
List<DataV> list = dataVMapper.selectByQueryWrapper(influxQueryWrapper);
if (CollUtil.isNotEmpty(list)) {
Map<String, List<String>> abnormalTime = lineParam.getAbnormalTime();
if(CollUtil.isNotEmpty(abnormalTime)){
if (CollUtil.isNotEmpty(abnormalTime)) {
if (abnormalTime.containsKey(lineParam.getLineId().get(0))) {
List<String> timeList = abnormalTime.get(lineParam.getLineId().get(0));
//有异常数据,当前监测点自身的异常数据
@@ -216,7 +216,7 @@ public class InfluxdbDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
result.addAll(list.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList()));
}
}
}else{
} else {
result.addAll(list);
}
}
@@ -390,8 +390,8 @@ public class InfluxdbDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
.groupBy(DataV::getLineId)
.between(DataV::getTime, startTime, endTime);
List<MeasurementCountDTO> measurementCountDTOList = dataVMapper.getMeasurementCount(influxQueryWrapper);
if(CollUtil.isNotEmpty(measurementCountDTOList)){
for(MeasurementCountDTO m : measurementCountDTOList){
if (CollUtil.isNotEmpty(measurementCountDTOList)) {
for (MeasurementCountDTO m : measurementCountDTOList) {
MeasurementCountDTO.MeasurementCountResultDTO p = new MeasurementCountDTO.MeasurementCountResultDTO();
p.setFreq(m.getFreq());
p.setLineId(m.getLineId());
@@ -425,6 +425,27 @@ public class InfluxdbDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
return result;
}
@Override
public Boolean excludeZeroData(LineCountEvaluateParam lineParam) {
InfluxQueryWrapper dataVQueryWrapper = new InfluxQueryWrapper(DataV.class);
dataVQueryWrapper.eq(DataV::getLineId, lineParam.getLineId().get(0))
.eq(DataV::getValueType, InfluxDbSqlConstant.AVG_WEB)
.ne(DataV::getPhasicType, InfluxDBTableConstant.PHASE_TYPE_T)
.select(DataV::getRms)
.between(DataV::getTime, lineParam.getStartTime(), lineParam.getEndTime());
List<DataV> rmsResult = dataVMapper.selectByQueryWrapper(dataVQueryWrapper);
if (CollUtil.isNotEmpty(rmsResult)) {
List<DataV> exceptionData = rmsResult.stream().filter(dataV -> dataV.getRms() < 1.0).collect(Collectors.toList());
if (CollUtil.isNotEmpty(exceptionData)) {
if (exceptionData.size() * 2 >= rmsResult.size()) {
return true;
}
}
}
return false;
}
/**
* 按监测点集合、时间条件获取dataV分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理
@@ -483,53 +504,53 @@ public class InfluxdbDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
CsLinePO po = lineMap.get(lineId);
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
influxQueryWrapper.eq(DataV::getLineId, lineId)
.eq(DataV::getProcess,Integer.toString(devsMap.get(devId).getProcess()))
.eq(DataV::getProcess, Integer.toString(devsMap.get(devId).getProcess()))
.select(DataV::getLineId)
.select(DataV::getPhasicType)
.select(DataV::getValueType)
//频率
.select("Pq_Freq","freq")
.select("Pq_Freq", "freq")
//频率偏差
.select("Pq_FreqDev","freq_dev")
.select("Pq_FreqDev", "freq_dev")
//相电压有效值
.select("Pq_RmsU","rms")
.select("Pq_RmsU", "rms")
//线电压有效值
.select("Pq_RmsLU","rms_lvr")
.select("Pq_RmsLU", "rms_lvr")
//电压负序
.select("Pq_SeqNegU","v_neg")
.select("Pq_SeqNegU", "v_neg")
//电压正序
.select("Pq_SeqPosU","v_pos")
.select("Pq_SeqPosU", "v_pos")
//电压零序
.select("Pq_SeqZeroU","v_zero")
.select("Pq_SeqZeroU", "v_zero")
//电压负序不平衡度
.select("Pq_UnbalNegU","v_unbalance")
.select("Pq_UnbalNegU", "v_unbalance")
.between(DataV::getTime, lineParam.getStartTime(), lineParam.getEndTime())
.eq(DataV::getQualityFlag, "0");
if (CollUtil.isNotEmpty(lineParam.getPhasicType())) {
influxQueryWrapper.regular(DataV::getPhasicType, lineParam.getPhasicType());
}
if (Objects.isNull(po.getLineNo())) {
influxQueryWrapper.eq(DataV::getCldid,Integer.toString(po.getClDid()));
influxQueryWrapper.eq(DataV::getCldid, Integer.toString(po.getClDid()));
} else {
influxQueryWrapper.eq(DataV::getCldid,Integer.toString(po.getLineNo()));
influxQueryWrapper.eq(DataV::getCldid, Integer.toString(po.getLineNo()));
}
//判断接线方式 (0-星型 1-角型 2-V型) 星型是相电压 角型或者v型是线电压
if (Objects.equals(po.getConType(),0)) {
if (Objects.equals(po.getConType(), 0)) {
//相电压偏差
influxQueryWrapper.select("Pq_UDev","vu_dev");
influxQueryWrapper.select("Pq_UDev", "vu_dev");
//相电压谐波总畸变率
influxQueryWrapper.select("Pq_ThdU","v_thd");
influxQueryWrapper.select("Pq_ThdU", "v_thd");
//相电压基波有效值
influxQueryWrapper.select("Pq_RmsFundU","v_1");
influxQueryWrapper.select("Pq_RmsFundU", "v_1");
//2-50次 相电压谐波有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmUV_", "v_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
} else {
//线电压偏差
influxQueryWrapper.select("Pq_LUDev","vu_dev");
influxQueryWrapper.select("Pq_LUDev", "vu_dev");
//线电压谐波总畸变率
influxQueryWrapper.select("Pq_ThdLU","v_thd");
influxQueryWrapper.select("Pq_ThdLU", "v_thd");
//线电压基波有效值
influxQueryWrapper.select("Pq_RmsFundLU","v_1");
influxQueryWrapper.select("Pq_RmsFundLU", "v_1");
//2-50次 线电压谐波有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmLUV_", "v_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
}

View File

@@ -122,14 +122,17 @@ public class InfluxdbPqsCommunicateImpl implements IPqsCommunicate {
pqsCommunicate.setDevId(pqsCommunicateDto.getDevId());
pqsCommunicate.setType(pqsCommunicateDto.getType());
//如果不存数据或者状态不一样则插入数据
if(CollectionUtils.isEmpty(pqsCommunicates)|| !Objects.equals( pqsCommunicates.get(0).getType(),pqsCommunicateDto.getType())){
//可能存在掉线后最后一组数据还未入库,添加时间判断
if(CollectionUtils.isEmpty(pqsCommunicates)|| (!Objects.equals( pqsCommunicates.get(0).getType(),pqsCommunicateDto.getType())&&pqsCommunicates.get(0).getTime().isBefore(pqsCommunicate.getTime()))){
pqsCommunicateMapper.insertOne(pqsCommunicate);
}
//更新mysql数据
DevComFlagDTO devComFlagDTO = new DevComFlagDTO();
devComFlagDTO.setId(pqsCommunicateDto.getDevId());
devComFlagDTO.setDate(LocalDateTime.parse(pqsCommunicateDto.getTime(), DATE_TIME_FORMATTER));
if(Objects.equals(pqsCommunicateDto.getFlag(),1)){
devComFlagDTO.setDate(LocalDateTime.parse(pqsCommunicateDto.getTime(), DATE_TIME_FORMATTER));
}
devComFlagDTO.setStatus(pqsCommunicateDto.getType());
deviceFeignClient.updateDevComFlag(devComFlagDTO);

View File

@@ -167,6 +167,11 @@ public class RelationDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
return Collections.emptyList();
}
@Override
public Boolean excludeZeroData(LineCountEvaluateParam lineParam) {
return null;
}
private List<DataVDto> quality(List<DataVDto> list, LineCountEvaluateParam lineParam) {
List<DataVDto> result = new ArrayList<>();
Map<String, List<DataVDto>> lineMap = list.stream().collect(Collectors.groupingBy(DataVDto::getLineId));

View File

@@ -0,0 +1,78 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10405
compression:
enabled: true
mime-types: application/json,application/xml,text/html,text/xml,text/plain
min-response-size: 1024
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
spring:
application:
name: @artifactId@
#nacos注册中心以及配置中心的指定
cloud:
nacos:
discovery:
server-addr: @nacos.url@
namespace: @nacos.namespace@
config:
username: @nacos.username@
password: @nacos.password@
server-addr: @nacos.url@
namespace: @nacos.namespace@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-id: share-config-datasource-db.yaml
refresh: true
main:
allow-bean-definition-overriding: true
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
jackson:
time-zone: GMT+8
#项目日志的配置
logging:
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: error
mqtt:
client-id: @artifactId@${random.value}
data:
source:
query: Influxdb
# insert: Influxdb
insert: Relation
#mybatis配置信息
mybatis-plus:
configuration:
#配置sql日志输出
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
# type-aliases-package: com.njcn.harmonic.pojo
# type-handlers-package: com.njcn.db.handler
# global-config:
# db-config:
# date-format: yyyy-MM-dd HH:mm:ss
# global-config:
# enable-sql-runner: true

View File

@@ -0,0 +1,81 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10405
compression:
enabled: true
mime-types: application/json,application/xml,text/html,text/xml,text/plain
min-response-size: 1024
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
spring:
application:
name: @artifactId@
#nacos注册中心以及配置中心的指定
cloud:
nacos:
discovery:
ip: @service.server.url@
server-addr: @nacos.url@
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
config:
server-addr: @nacos.url@
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-id: share-config-datasource-db.yaml
refresh: true
main:
allow-bean-definition-overriding: true
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
jackson:
time-zone: GMT+8
#项目日志的配置
logging:
#config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: error
#mqtt:
# client-id: @artifactId@${random.value}
data:
source:
query: Influxdb
# insert: Influxdb
insert: Relation
#mybatis配置信息
mybatis-plus:
configuration:
#配置sql日志输出
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
# type-aliases-package: com.njcn.harmonic.pojo
# type-handlers-package: com.njcn.db.handler
# global-config:
# db-config:
# date-format: yyyy-MM-dd HH:mm:ss
# global-config:
# enable-sql-runner: true

View File

@@ -1,77 +1,3 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10405
compression:
enabled: true
mime-types: application/json,application/xml,text/html,text/xml,text/plain
min-response-size: 1024
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
spring:
application:
name: @artifactId@
#nacos注册中心以及配置中心的指定
cloud:
nacos:
discovery:
ip: @service.server.url@
server-addr: @nacos.url@
namespace: @nacos.namespace@
config:
server-addr: @nacos.url@
namespace: @nacos.namespace@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-Id: share-config-datasource-db.yaml
refresh: true
main:
allow-bean-definition-overriding: true
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
jackson:
time-zone: GMT+8
#项目日志的配置
logging:
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: info
mqtt:
client-id: @artifactId@${random.value}
data:
source:
query: Influxdb
# insert: Influxdb
insert: Relation
#mybatis配置信息
mybatis-plus:
configuration:
#配置sql日志输出
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
# type-aliases-package: com.njcn.harmonic.pojo
# type-handlers-package: com.njcn.db.handler
# global-config:
# db-config:
# date-format: yyyy-MM-dd HH:mm:ss
# global-config:
# enable-sql-runner: true
profiles:
active: @spring.profiles.active@

View File

@@ -13,6 +13,7 @@ import com.njcn.stat.api.MessAnalysisFeignClient;
import com.njcn.system.api.RocketMqLogFeignClient;
import com.njcn.system.pojo.po.RocketmqMsgErrorLog;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.beans.factory.annotation.Autowired;
@@ -82,7 +83,20 @@ public class DeviceRunFlagDataConsumer extends EnhanceConsumerMessageHandler<Dev
@Override
protected void handleMessage(DevComFlagDTO message) {
messAnalysisFeignClient.handleDevRunflag(message);
//获取之前设备状态
//删除设备时前置会在连接一次通道但是DevId为空所以添加
if(StringUtils.isNoneBlank(message.getId())){
String devFalg =redisUtil.getStringByKey(RedisKeyPrefix.DEVICE_RUN_FLAG.concat(message.getId()));
if(StringUtils.isBlank(devFalg)||(!Objects.equals(Integer.valueOf(devFalg),message.getStatus()))){
//状态翻转
messAnalysisFeignClient.handleDevRunflag(message);
redisUtil.saveByKey(RedisKeyPrefix.DEVICE_RUN_FLAG.concat(message.getId()),message.getStatus()+"");
}
}
}

View File

@@ -132,7 +132,7 @@ public class WebSocketServer {
baseMessage.setMessageBody(JSONObject.toJSONString(askRealDataMessage));
// 发送消息到topic1
askRealDataMessaggeTemplate.sendMember(baseMessage,data.getNodeId());
redisUtil.saveByKeyWithExpire(RedisKeyPrefix.ASK_REAL_DATA.concat(split[1]),RedisKeyPrefix.ASK_REAL_DATA.concat(split[1]),20L);
redisUtil.saveByKeyWithExpire(RedisKeyPrefix.ASK_REAL_DATA.concat(split[1]),RedisKeyPrefix.ASK_REAL_DATA.concat(split[1]),25L);
log.info("监测点连接:" + userIdAndLineIdAndDevId + ",当前在线监测点数为:" + getOnlineCount());
}

View File

@@ -0,0 +1,57 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10407
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
spring:
application:
name: @artifactId@
cloud:
nacos:
discovery:
ip: @service.server.url@
server-addr: @nacos.url@
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
config:
server-addr: @nacos.url@
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-id: share-config-datasource-db.yaml
refresh: true
- data-id: data-platform.yaml
refresh: true
main:
allow-bean-definition-overriding: true
#项目日志的配置
logging:
#config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: info
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.harmonic.pojo
mqtt:
client-id: @artifactId@${random.value}

View File

@@ -0,0 +1,57 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10407
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
spring:
application:
name: @artifactId@
cloud:
nacos:
discovery:
ip: @service.server.url@
server-addr: @nacos.url@
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
config:
server-addr: @nacos.url@
namespace: @nacos.namespace@
username: @nacos.username@
password: @nacos.password@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-id: share-config-datasource-db.yaml
refresh: true
- data-id: data-platform.yaml
refresh: true
main:
allow-bean-definition-overriding: true
#项目日志的配置
logging:
#config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: info
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.harmonic.pojo
mqtt:
client-id: @artifactId@${random.value}

View File

@@ -1,53 +1,3 @@
#当前服务的基本信息
microservice:
ename: @artifactId@
name: '@name@'
version: @version@
sentinel:
url: @sentinel.url@
gateway:
url: @gateway.url@
server:
port: 10407
#feign接口开启服务熔断降级处理
feign:
sentinel:
enabled: true
spring:
application:
name: @artifactId@
cloud:
nacos:
discovery:
ip: @service.server.url@
server-addr: @nacos.url@
namespace: @nacos.namespace@
config:
server-addr: @nacos.url@
namespace: @nacos.namespace@
file-extension: yaml
shared-configs:
- data-id: share-config.yaml
refresh: true
- data-Id: share-config-datasource-db.yaml
refresh: true
- data-Id: data-platform.yaml
refresh: true
main:
allow-bean-definition-overriding: true
#项目日志的配置
logging:
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
level:
root: info
#mybatis配置信息
mybatis-plus:
#别名扫描
type-aliases-package: com.njcn.harmonic.pojo
mqtt:
client-id: @artifactId@${random.value}
profiles:
active: @spring.profiles.active@

54
pom.xml
View File

@@ -15,7 +15,7 @@
<module>algorithm</module>
<module>log</module>
<module>data-processing</module>
<module>migration-influxdb</module>
<!--<module>migration-influxdb</module>-->
</modules>
<distributionManagement>
@@ -32,47 +32,13 @@
</distributionManagement>
<properties>
<spring.profiles.active>sjzx</spring.profiles.active>
<!--内网-->
<!-- <middle.server.url>192.168.1.22</middle.server.url>-->
<!-- <service.server.url>192.168.1.121</service.server.url>-->
<!-- <docker.server.url>192.168.1.22</docker.server.url>-->
<!-- <nacos.url>${middle.server.url}:18848</nacos.url>-->
<!-- <nacos.namespace>07ec981d-1377-4920-8760-b5a98ff7e668</nacos.namespace>-->
<!-- <middle.server.url>192.168.21.129</middle.server.url>-->
<!-- <service.server.url>192.168.21.1</service.server.url>-->
<!-- <docker.server.url>192.168.1.22</docker.server.url>-->
<!-- <nacos.url>${middle.server.url}:18848</nacos.url>-->
<!-- <nacos.namespace>0c19477c-444e-413c-9782-e6ebc2eedac1</nacos.namespace>-->
<!-- <middle.server.url>127.0.0.1</middle.server.url>-->
<!-- &lt;!&ndash;微服务模块发布地址&ndash;&gt;-->
<!-- <service.server.url>127.0.0.1</service.server.url>-->
<!-- &lt;!&ndash;docker仓库地址&ndash;&gt;-->
<!-- <docker.server.url>127.0.0.1</docker.server.url>-->
<!-- &lt;!&ndash;nacos的ip:port&ndash;&gt;-->
<!-- <nacos.url>${middle.server.url}:8848</nacos.url>-->
<!-- <nacos.namespace>37a0e99f-eb96-4d2f-9b47-75bffa765827</nacos.namespace>-->
<!-- <middle.server.url>24.43.102.139</middle.server.url>-->
<!-- <service.server.url>24.43.102.139</service.server.url>-->
<!-- <docker.server.url>24.43.102.139</docker.server.url>-->
<!-- <nacos.url>${middle.server.url}:18848</nacos.url>-->
<!-- <nacos.namespace></nacos.namespace>-->
<middle.server.url>127.0.0.1</middle.server.url>
<service.server.url>127.0.0.1</service.server.url>
<docker.server.url>127.0.0.1</docker.server.url>
<nacos.url>${middle.server.url}:8848</nacos.url>
<nacos.namespace>37a0e99f-eb96-4d2f-9b47-75bffa765827</nacos.namespace>
<!-- <middle.server.url>192.168.21.129</middle.server.url>-->
<!-- &lt;!&ndash;微服务模块发布地址&ndash;&gt;-->
<!-- <service.server.url>192.168.21.1</service.server.url>-->
<!-- &lt;!&ndash;docker仓库地址&ndash;&gt;-->
<!-- <docker.server.url>192.168.1.22</docker.server.url>-->
<!-- <nacos.url>${middle.server.url}:18848</nacos.url>-->
<!-- <nacos.namespace>0c19477c-444e-413c-9782-e6ebc2eedac1</nacos.namespace>-->
<middle.server.url>192.168.1.65</middle.server.url>
<service.server.url>192.168.1.65</service.server.url>
<docker.server.url>192.168.1.22</docker.server.url>
<nacos.url>${middle.server.url}:18848</nacos.url>
<nacos.namespace></nacos.namespace>
<!--sentinel:port-->
<sentinel.url>${middle.server.url}:8080</sentinel.url>
<!--网关地址主要用于配置swagger中认证token-->
@@ -87,6 +53,12 @@
<micro.sdk>common-microservice</micro.sdk>
<!-- <micro.sdk>common-huawei</micro.sdk>-->
<docker.operate>site</docker.operate>
<!--nacos开启鉴权后的用户名-->
<nacos.username>nacos</nacos.username>
<!--nacos的ip:port-->
<nacos.password>njcnpqs</nacos.password>
<java.version>1.8</java.version>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>