Merge remote-tracking branch 'origin/master'

This commit is contained in:
hzj
2025-03-03 16:08:07 +08:00
44 changed files with 2354 additions and 90 deletions

View File

@@ -235,6 +235,61 @@ public class MeasurementExecutor extends BaseExecutor {
dayDataService.dataHarmPowerQHandler(bindCmp.getRequestData());
}
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataHarmPowerS", nodeType = NodeTypeEnum.COMMON)
public boolean dataHarmPowerSToDayAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataHarmPowerS", nodeType = NodeTypeEnum.COMMON)
public void dataHarmPowerSToDayProcess(NodeComponent bindCmp) {
dayDataService.dataHarmPowerSHandler(bindCmp.getRequestData());
}
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataHarmRateI", nodeType = NodeTypeEnum.COMMON)
public boolean dataHarmRateIToDayAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataHarmRateI", nodeType = NodeTypeEnum.COMMON)
public void dataHarmRateIToDayProcess(NodeComponent bindCmp) {
dayDataService.dataHarmRateIHandler(bindCmp.getRequestData());
}
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataHarmRateV", nodeType = NodeTypeEnum.COMMON)
public boolean dataHarmRateVToDayAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataHarmRateV", nodeType = NodeTypeEnum.COMMON)
public void dataHarmRateVToDayProcess(NodeComponent bindCmp) {
dayDataService.dataHarmRateVHandler(bindCmp.getRequestData());
}
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataInHarmI", nodeType = NodeTypeEnum.COMMON)
public boolean dataInHarmIToDayAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataInHarmI", nodeType = NodeTypeEnum.COMMON)
public void dataInHarmIToDayProcess(NodeComponent bindCmp) {
dayDataService.dataInHarmIHandler(bindCmp.getRequestData());
}
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataInHarmV", nodeType = NodeTypeEnum.COMMON)
public boolean dataInHarmVToDayAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataInHarmV", nodeType = NodeTypeEnum.COMMON)
public void dataInHarmVToDayProcess(NodeComponent bindCmp) {
dayDataService.dataInHarmVHandler(bindCmp.getRequestData());
}
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataPlt", nodeType = NodeTypeEnum.COMMON)
public boolean dataPltToDayAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataPlt", nodeType = NodeTypeEnum.COMMON)
public void dataPltToDayProcess(NodeComponent bindCmp) {
dayDataService.dataPltHandler(bindCmp.getRequestData());
}
/**
* 监测点cvt转换算法()
* @author hzj

View File

@@ -0,0 +1,20 @@
package com.njcn.algorithm.service.line;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
/**
* @author xiaoyao
* @version 1.0.0
* @createTime 2022/10/24 20:06
*/
public interface IDataIntegrityService {
/***
* 监测点数据完整性_日表
* @author xuyang
* @date 2023/11/09 10:08
* @param calculatedParam 查询条件
*/
void dataIntegrity(CalculatedParam<String> calculatedParam);
}

View File

@@ -72,4 +72,51 @@ public interface IDayDataService {
*/
void dataHarmPowerQHandler(CalculatedParam calculatedParam);
/***
* dataHarmPowerS转r_stat_data_harmpower_s_d
* @author xuyang
* @date 2025/01/18 21:18
* @param calculatedParam 查询条件
*/
void dataHarmPowerSHandler(CalculatedParam calculatedParam);
/***
* dataHarmRateI转r_stat_data_harmRate_i_d
* @author xuyang
* @date 2025/01/18 21:18
* @param calculatedParam 查询条件
*/
void dataHarmRateIHandler(CalculatedParam calculatedParam);
/***
* dataHarmRateV转r_stat_data_harmRate_v_d
* @author xuyang
* @date 2025/01/18 21:18
* @param calculatedParam 查询条件
*/
void dataHarmRateVHandler(CalculatedParam calculatedParam);
/***
* dataInHarmI转r_stat_data_inharm_i_d
* @author xuyang
* @date 2025/01/18 21:18
* @param calculatedParam 查询条件
*/
void dataInHarmIHandler(CalculatedParam calculatedParam);
/***
* dataInHarmV转r_stat_data_inharm_v_d
* @author xuyang
* @date 2025/01/18 21:18
* @param calculatedParam 查询条件
*/
void dataInHarmVHandler(CalculatedParam calculatedParam);
/***
* dataPlt转r_stat_data_plt_d
* @author xuyang
* @date 2025/01/18 21:18
* @param calculatedParam 查询条件
*/
void dataPltHandler(CalculatedParam calculatedParam);
}

View File

@@ -10,7 +10,6 @@ import com.njcn.dataProcess.pojo.dto.*;
import com.njcn.dataProcess.pojo.po.PqDataVerify;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.pojo.po.DataHarmPowerQ;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
@@ -49,7 +48,18 @@ public class DayDataServiceImpl implements IDayDataService {
private DataHarmpowerPFeignClient dataHarmpowerPFeignClient;
@Resource
private DataHarmpowerQFeignClient dataHarmpowerQFeignClient;
@Resource
private DataHarmpowerSFeignClient dataHarmpowerSFeignClient;
@Resource
private DataHarmRateIFeignClient dataHarmRateIFeignClient;
@Resource
private DataHarmRateVFeignClient dataHarmRateVFeignClient;
@Resource
private DataInharmIFeignClient dataInharmIFeignClient;
@Resource
private DataInharmVFeignClient dataInharmVFeignClient;
@Resource
private DataPltFeignClient dataPltFeignClient;
@Resource
private PqDataVerifyFeignClient pqDataVerifyFeignClient;
@@ -414,7 +424,277 @@ public class DayDataServiceImpl implements IDayDataService {
//存储数据
dataHarmpowerQFeignClient.addList(result);
}
}
@Override
public void dataHarmPowerSHandler(CalculatedParam calculatedParam) {
logger.info("{},dataHarmPowerS表转r_stat_data_harmpower_s_d算法开始=====》", LocalDateTime.now());
List<DataHarmPowerSDto> result = new ArrayList<>();
//远程接口获取分钟数据
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
//以100个监测点分片处理
List<List<String>> pendingIds = ListUtils.partition(calculatedParam.getIdList(),NUM);
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataHarmpowerSFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
partList.forEach(item->{
//相别
List<CommonMinuteDto.PhasicType> phasicTypeList = item.getPhasicTypeList();
phasicTypeList.forEach(item2->{
//数据类型
List<CommonMinuteDto.ValueType> valueTypeList = item2.getValueTypeList();
//获取平均值集合
CommonMinuteDto.ValueType valueTypes = valueTypeList.stream().filter(type-> type.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.AVG_WEB)).findFirst().orElse(null);
valueTypeList.forEach(item3->{
DataHarmPowerSDto dto = new DataHarmPowerSDto();
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataHarmPowerSHandler(item3,valueTypes,dto,true);
result.add(dto);
});
});
});
}
});
if (CollUtil.isNotEmpty(result)) {
//存储数据
dataHarmpowerSFeignClient.addList(result);
}
}
@Override
public void dataHarmRateIHandler(CalculatedParam calculatedParam) {
logger.info("{},dataHarmRateI表转r_stat_data_harmRate_i_d算法开始=====》", LocalDateTime.now());
List<DataHarmRateIDto> result = new ArrayList<>();
//远程接口获取分钟数据
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
//以100个监测点分片处理
List<List<String>> pendingIds = ListUtils.partition(calculatedParam.getIdList(),NUM);
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataHarmRateIFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
partList.forEach(item->{
//相别
List<CommonMinuteDto.PhasicType> phasicTypeList = item.getPhasicTypeList();
phasicTypeList.forEach(item2->{
//数据类型
List<CommonMinuteDto.ValueType> valueTypeList = item2.getValueTypeList();
//获取平均值集合
CommonMinuteDto.ValueType valueTypes = valueTypeList.stream().filter(type-> type.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.AVG_WEB)).findFirst().orElse(null);
valueTypeList.forEach(item3->{
DataHarmRateIDto dto = new DataHarmRateIDto();
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataHarmRateIHandler(item3,valueTypes,dto,true);
result.add(dto);
});
});
});
}
});
if (CollUtil.isNotEmpty(result)) {
//存储数据
dataHarmRateIFeignClient.addList(result);
}
}
@Override
public void dataHarmRateVHandler(CalculatedParam calculatedParam) {
logger.info("{},dataHarmRateV表转r_stat_data_harmRate_v_d算法开始=====》", LocalDateTime.now());
List<DataHarmRateVDto> result = new ArrayList<>();
//远程接口获取分钟数据
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
//以100个监测点分片处理
List<List<String>> pendingIds = ListUtils.partition(calculatedParam.getIdList(),NUM);
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataHarmRateVFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
partList.forEach(item->{
//相别
List<CommonMinuteDto.PhasicType> phasicTypeList = item.getPhasicTypeList();
phasicTypeList.forEach(item2->{
//数据类型
List<CommonMinuteDto.ValueType> valueTypeList = item2.getValueTypeList();
//获取平均值集合
CommonMinuteDto.ValueType valueTypes = valueTypeList.stream().filter(type-> type.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.AVG_WEB)).findFirst().orElse(null);
valueTypeList.forEach(item3->{
DataHarmRateVDto dto = new DataHarmRateVDto();
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataHarmRateVHandler(item3,valueTypes,dto,true);
result.add(dto);
});
});
});
}
});
if (CollUtil.isNotEmpty(result)) {
//存储数据
dataHarmRateVFeignClient.addList(result);
}
}
@Override
public void dataInHarmIHandler(CalculatedParam calculatedParam) {
logger.info("{},dataInHarmI表转r_stat_data_inharm_i_d算法开始=====》", LocalDateTime.now());
List<DataInHarmIDto> result = new ArrayList<>();
//远程接口获取分钟数据
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
//以100个监测点分片处理
List<List<String>> pendingIds = ListUtils.partition(calculatedParam.getIdList(),NUM);
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataInharmIFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
partList.forEach(item->{
//相别
List<CommonMinuteDto.PhasicType> phasicTypeList = item.getPhasicTypeList();
phasicTypeList.forEach(item2->{
//数据类型
List<CommonMinuteDto.ValueType> valueTypeList = item2.getValueTypeList();
//获取平均值集合
CommonMinuteDto.ValueType valueTypes = valueTypeList.stream().filter(type-> type.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.AVG_WEB)).findFirst().orElse(null);
valueTypeList.forEach(item3->{
DataInHarmIDto dto = new DataInHarmIDto();
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataInHarmIHandler(item3,valueTypes,dto,true);
result.add(dto);
});
});
});
}
});
if (CollUtil.isNotEmpty(result)) {
//存储数据
dataInharmIFeignClient.addList(result);
}
}
@Override
public void dataInHarmVHandler(CalculatedParam calculatedParam) {
logger.info("{},dataInHarmV表转r_stat_data_inharm_v_d算法开始=====》", LocalDateTime.now());
List<DataInHarmVDto> result = new ArrayList<>();
//远程接口获取分钟数据
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
//以100个监测点分片处理
List<List<String>> pendingIds = ListUtils.partition(calculatedParam.getIdList(),NUM);
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataInharmVFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
partList.forEach(item->{
//相别
List<CommonMinuteDto.PhasicType> phasicTypeList = item.getPhasicTypeList();
phasicTypeList.forEach(item2->{
//数据类型
List<CommonMinuteDto.ValueType> valueTypeList = item2.getValueTypeList();
//获取平均值集合
CommonMinuteDto.ValueType valueTypes = valueTypeList.stream().filter(type-> type.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.AVG_WEB)).findFirst().orElse(null);
valueTypeList.forEach(item3->{
DataInHarmVDto dto = new DataInHarmVDto();
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataInHarmVHandler(item3,valueTypes,dto,true);
result.add(dto);
});
});
});
}
});
if (CollUtil.isNotEmpty(result)) {
//存储数据
dataInharmVFeignClient.addList(result);
}
}
@Override
public void dataPltHandler(CalculatedParam calculatedParam) {
logger.info("{},dataPlt表转r_stat_data_plt_d算法开始=====》", LocalDateTime.now());
List<DataPltDto> result = new ArrayList<>();
List<String> valueList = Arrays.asList("AVG","MAX","MIN","CP95");
//远程接口获取分钟数据
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
//以100个监测点分片处理
List<List<String>> pendingIds = ListUtils.partition(calculatedParam.getIdList(),NUM);
pendingIds.forEach(list->{
lineParam.setLineId(list);
//添加异常数据时间点
getAbnormalData(lineParam);
//获取原始数据
List<CommonMinuteDto> partList = dataPltFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
partList.forEach(item->{
//相别
List<CommonMinuteDto.PhasicType> phasicTypeList = item.getPhasicTypeList();
phasicTypeList.forEach(item2->{
//数据类型
List<CommonMinuteDto.ValueType> valueTypeList = item2.getValueTypeList();
valueTypeList.forEach(item3->{
valueList.forEach(item4->{
DataPltDto dto = new DataPltDto();
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item4);
dto.setQualityFlag(Objects.equals(item.getQualityFlag(),"null") ? "0" : item.getQualityFlag());
channelDataPltHandler(item3,dto,item4,true);
result.add(dto);
});
});
});
});
}
});
if (CollUtil.isNotEmpty(result)) {
//存储数据
dataPltFeignClient.addList(result);
}
}
//获取异常数据集合
@@ -873,6 +1153,347 @@ public class DayDataServiceImpl implements IDayDataService {
dto.setQ50(getData(type,valueType.getValueList().get(50),scheme));
}
public void channelDataHarmPowerSHandler(CommonMinuteDto.ValueType pojo1, CommonMinuteDto.ValueType pojo2, DataHarmPowerSDto dto, boolean scheme) {
CommonMinuteDto.ValueType valueType;
String type;
if (dto.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.CP95) && !scheme) {
valueType = pojo2;
type = "CP95";
} else {
valueType = pojo1;
type = pojo1.getValueType();
}
//按照指标集合排列顺序取值
dto.setS(getData(type,valueType.getValueList().get(0),scheme));
dto.setS1(getData(type,valueType.getValueList().get(1),scheme));
dto.setS2(getData(type,valueType.getValueList().get(2),scheme));
dto.setS3(getData(type,valueType.getValueList().get(3),scheme));
dto.setS4(getData(type,valueType.getValueList().get(4),scheme));
dto.setS5(getData(type,valueType.getValueList().get(5),scheme));
dto.setS6(getData(type,valueType.getValueList().get(6),scheme));
dto.setS7(getData(type,valueType.getValueList().get(7),scheme));
dto.setS8(getData(type,valueType.getValueList().get(8),scheme));
dto.setS9(getData(type,valueType.getValueList().get(9),scheme));
dto.setS10(getData(type,valueType.getValueList().get(10),scheme));
dto.setS11(getData(type,valueType.getValueList().get(11),scheme));
dto.setS12(getData(type,valueType.getValueList().get(12),scheme));
dto.setS13(getData(type,valueType.getValueList().get(13),scheme));
dto.setS14(getData(type,valueType.getValueList().get(14),scheme));
dto.setS15(getData(type,valueType.getValueList().get(15),scheme));
dto.setS16(getData(type,valueType.getValueList().get(16),scheme));
dto.setS17(getData(type,valueType.getValueList().get(17),scheme));
dto.setS18(getData(type,valueType.getValueList().get(18),scheme));
dto.setS19(getData(type,valueType.getValueList().get(19),scheme));
dto.setS20(getData(type,valueType.getValueList().get(20),scheme));
dto.setS21(getData(type,valueType.getValueList().get(21),scheme));
dto.setS22(getData(type,valueType.getValueList().get(22),scheme));
dto.setS23(getData(type,valueType.getValueList().get(23),scheme));
dto.setS24(getData(type,valueType.getValueList().get(24),scheme));
dto.setS25(getData(type,valueType.getValueList().get(25),scheme));
dto.setS26(getData(type,valueType.getValueList().get(26),scheme));
dto.setS27(getData(type,valueType.getValueList().get(27),scheme));
dto.setS28(getData(type,valueType.getValueList().get(28),scheme));
dto.setS29(getData(type,valueType.getValueList().get(29),scheme));
dto.setS30(getData(type,valueType.getValueList().get(30),scheme));
dto.setS31(getData(type,valueType.getValueList().get(31),scheme));
dto.setS32(getData(type,valueType.getValueList().get(32),scheme));
dto.setS33(getData(type,valueType.getValueList().get(33),scheme));
dto.setS34(getData(type,valueType.getValueList().get(34),scheme));
dto.setS35(getData(type,valueType.getValueList().get(35),scheme));
dto.setS36(getData(type,valueType.getValueList().get(36),scheme));
dto.setS37(getData(type,valueType.getValueList().get(37),scheme));
dto.setS38(getData(type,valueType.getValueList().get(38),scheme));
dto.setS39(getData(type,valueType.getValueList().get(39),scheme));
dto.setS40(getData(type,valueType.getValueList().get(40),scheme));
dto.setS41(getData(type,valueType.getValueList().get(41),scheme));
dto.setS42(getData(type,valueType.getValueList().get(42),scheme));
dto.setS43(getData(type,valueType.getValueList().get(43),scheme));
dto.setS44(getData(type,valueType.getValueList().get(44),scheme));
dto.setS45(getData(type,valueType.getValueList().get(45),scheme));
dto.setS46(getData(type,valueType.getValueList().get(46),scheme));
dto.setS47(getData(type,valueType.getValueList().get(47),scheme));
dto.setS48(getData(type,valueType.getValueList().get(48),scheme));
dto.setS49(getData(type,valueType.getValueList().get(49),scheme));
dto.setS50(getData(type,valueType.getValueList().get(50),scheme));
}
public void channelDataHarmRateIHandler(CommonMinuteDto.ValueType pojo1, CommonMinuteDto.ValueType pojo2, DataHarmRateIDto dto, boolean scheme) {
CommonMinuteDto.ValueType valueType;
String type;
if (dto.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.CP95) && !scheme) {
valueType = pojo2;
type = "CP95";
} else {
valueType = pojo1;
type = pojo1.getValueType();
}
//按照指标集合排列顺序取值
dto.setI1(getData(type,valueType.getValueList().get(0),scheme));
dto.setI2(getData(type,valueType.getValueList().get(1),scheme));
dto.setI3(getData(type,valueType.getValueList().get(2),scheme));
dto.setI4(getData(type,valueType.getValueList().get(3),scheme));
dto.setI5(getData(type,valueType.getValueList().get(4),scheme));
dto.setI6(getData(type,valueType.getValueList().get(5),scheme));
dto.setI7(getData(type,valueType.getValueList().get(6),scheme));
dto.setI8(getData(type,valueType.getValueList().get(7),scheme));
dto.setI9(getData(type,valueType.getValueList().get(8),scheme));
dto.setI10(getData(type,valueType.getValueList().get(9),scheme));
dto.setI11(getData(type,valueType.getValueList().get(10),scheme));
dto.setI12(getData(type,valueType.getValueList().get(11),scheme));
dto.setI13(getData(type,valueType.getValueList().get(12),scheme));
dto.setI14(getData(type,valueType.getValueList().get(13),scheme));
dto.setI15(getData(type,valueType.getValueList().get(14),scheme));
dto.setI16(getData(type,valueType.getValueList().get(15),scheme));
dto.setI17(getData(type,valueType.getValueList().get(16),scheme));
dto.setI18(getData(type,valueType.getValueList().get(17),scheme));
dto.setI19(getData(type,valueType.getValueList().get(18),scheme));
dto.setI20(getData(type,valueType.getValueList().get(19),scheme));
dto.setI21(getData(type,valueType.getValueList().get(20),scheme));
dto.setI22(getData(type,valueType.getValueList().get(21),scheme));
dto.setI23(getData(type,valueType.getValueList().get(22),scheme));
dto.setI24(getData(type,valueType.getValueList().get(23),scheme));
dto.setI25(getData(type,valueType.getValueList().get(24),scheme));
dto.setI26(getData(type,valueType.getValueList().get(25),scheme));
dto.setI27(getData(type,valueType.getValueList().get(26),scheme));
dto.setI28(getData(type,valueType.getValueList().get(27),scheme));
dto.setI29(getData(type,valueType.getValueList().get(28),scheme));
dto.setI30(getData(type,valueType.getValueList().get(29),scheme));
dto.setI31(getData(type,valueType.getValueList().get(30),scheme));
dto.setI32(getData(type,valueType.getValueList().get(31),scheme));
dto.setI33(getData(type,valueType.getValueList().get(32),scheme));
dto.setI34(getData(type,valueType.getValueList().get(33),scheme));
dto.setI35(getData(type,valueType.getValueList().get(34),scheme));
dto.setI36(getData(type,valueType.getValueList().get(35),scheme));
dto.setI37(getData(type,valueType.getValueList().get(36),scheme));
dto.setI38(getData(type,valueType.getValueList().get(37),scheme));
dto.setI39(getData(type,valueType.getValueList().get(38),scheme));
dto.setI40(getData(type,valueType.getValueList().get(39),scheme));
dto.setI41(getData(type,valueType.getValueList().get(40),scheme));
dto.setI42(getData(type,valueType.getValueList().get(41),scheme));
dto.setI43(getData(type,valueType.getValueList().get(42),scheme));
dto.setI44(getData(type,valueType.getValueList().get(43),scheme));
dto.setI45(getData(type,valueType.getValueList().get(44),scheme));
dto.setI46(getData(type,valueType.getValueList().get(45),scheme));
dto.setI47(getData(type,valueType.getValueList().get(46),scheme));
dto.setI48(getData(type,valueType.getValueList().get(47),scheme));
dto.setI49(getData(type,valueType.getValueList().get(48),scheme));
dto.setI50(getData(type,valueType.getValueList().get(50),scheme));
}
public void channelDataHarmRateVHandler(CommonMinuteDto.ValueType pojo1, CommonMinuteDto.ValueType pojo2, DataHarmRateVDto dto, boolean scheme) {
CommonMinuteDto.ValueType valueType;
String type;
if (dto.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.CP95) && !scheme) {
valueType = pojo2;
type = "CP95";
} else {
valueType = pojo1;
type = pojo1.getValueType();
}
//按照指标集合排列顺序取值
dto.setV1(getData(type,valueType.getValueList().get(0),scheme));
dto.setV2(getData(type,valueType.getValueList().get(1),scheme));
dto.setV3(getData(type,valueType.getValueList().get(2),scheme));
dto.setV4(getData(type,valueType.getValueList().get(3),scheme));
dto.setV5(getData(type,valueType.getValueList().get(4),scheme));
dto.setV6(getData(type,valueType.getValueList().get(5),scheme));
dto.setV7(getData(type,valueType.getValueList().get(6),scheme));
dto.setV8(getData(type,valueType.getValueList().get(7),scheme));
dto.setV9(getData(type,valueType.getValueList().get(8),scheme));
dto.setV10(getData(type,valueType.getValueList().get(9),scheme));
dto.setV11(getData(type,valueType.getValueList().get(10),scheme));
dto.setV12(getData(type,valueType.getValueList().get(11),scheme));
dto.setV13(getData(type,valueType.getValueList().get(12),scheme));
dto.setV14(getData(type,valueType.getValueList().get(13),scheme));
dto.setV15(getData(type,valueType.getValueList().get(14),scheme));
dto.setV16(getData(type,valueType.getValueList().get(15),scheme));
dto.setV17(getData(type,valueType.getValueList().get(16),scheme));
dto.setV18(getData(type,valueType.getValueList().get(17),scheme));
dto.setV19(getData(type,valueType.getValueList().get(18),scheme));
dto.setV20(getData(type,valueType.getValueList().get(19),scheme));
dto.setV21(getData(type,valueType.getValueList().get(20),scheme));
dto.setV22(getData(type,valueType.getValueList().get(21),scheme));
dto.setV23(getData(type,valueType.getValueList().get(22),scheme));
dto.setV24(getData(type,valueType.getValueList().get(23),scheme));
dto.setV25(getData(type,valueType.getValueList().get(24),scheme));
dto.setV26(getData(type,valueType.getValueList().get(25),scheme));
dto.setV27(getData(type,valueType.getValueList().get(26),scheme));
dto.setV28(getData(type,valueType.getValueList().get(27),scheme));
dto.setV29(getData(type,valueType.getValueList().get(28),scheme));
dto.setV30(getData(type,valueType.getValueList().get(29),scheme));
dto.setV31(getData(type,valueType.getValueList().get(30),scheme));
dto.setV32(getData(type,valueType.getValueList().get(31),scheme));
dto.setV33(getData(type,valueType.getValueList().get(32),scheme));
dto.setV34(getData(type,valueType.getValueList().get(33),scheme));
dto.setV35(getData(type,valueType.getValueList().get(34),scheme));
dto.setV36(getData(type,valueType.getValueList().get(35),scheme));
dto.setV37(getData(type,valueType.getValueList().get(36),scheme));
dto.setV38(getData(type,valueType.getValueList().get(37),scheme));
dto.setV39(getData(type,valueType.getValueList().get(38),scheme));
dto.setV40(getData(type,valueType.getValueList().get(39),scheme));
dto.setV41(getData(type,valueType.getValueList().get(40),scheme));
dto.setV42(getData(type,valueType.getValueList().get(41),scheme));
dto.setV43(getData(type,valueType.getValueList().get(42),scheme));
dto.setV44(getData(type,valueType.getValueList().get(43),scheme));
dto.setV45(getData(type,valueType.getValueList().get(44),scheme));
dto.setV46(getData(type,valueType.getValueList().get(45),scheme));
dto.setV47(getData(type,valueType.getValueList().get(46),scheme));
dto.setV48(getData(type,valueType.getValueList().get(47),scheme));
dto.setV49(getData(type,valueType.getValueList().get(48),scheme));
dto.setV50(getData(type,valueType.getValueList().get(50),scheme));
}
public void channelDataInHarmIHandler(CommonMinuteDto.ValueType pojo1, CommonMinuteDto.ValueType pojo2, DataInHarmIDto dto, boolean scheme) {
CommonMinuteDto.ValueType valueType;
String type;
if (dto.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.CP95) && !scheme) {
valueType = pojo2;
type = "CP95";
} else {
valueType = pojo1;
type = pojo1.getValueType();
}
//按照指标集合排列顺序取值
dto.setI1(getData(type,valueType.getValueList().get(0),scheme));
dto.setI2(getData(type,valueType.getValueList().get(1),scheme));
dto.setI3(getData(type,valueType.getValueList().get(2),scheme));
dto.setI4(getData(type,valueType.getValueList().get(3),scheme));
dto.setI5(getData(type,valueType.getValueList().get(4),scheme));
dto.setI6(getData(type,valueType.getValueList().get(5),scheme));
dto.setI7(getData(type,valueType.getValueList().get(6),scheme));
dto.setI8(getData(type,valueType.getValueList().get(7),scheme));
dto.setI9(getData(type,valueType.getValueList().get(8),scheme));
dto.setI10(getData(type,valueType.getValueList().get(9),scheme));
dto.setI11(getData(type,valueType.getValueList().get(10),scheme));
dto.setI12(getData(type,valueType.getValueList().get(11),scheme));
dto.setI13(getData(type,valueType.getValueList().get(12),scheme));
dto.setI14(getData(type,valueType.getValueList().get(13),scheme));
dto.setI15(getData(type,valueType.getValueList().get(14),scheme));
dto.setI16(getData(type,valueType.getValueList().get(15),scheme));
dto.setI17(getData(type,valueType.getValueList().get(16),scheme));
dto.setI18(getData(type,valueType.getValueList().get(17),scheme));
dto.setI19(getData(type,valueType.getValueList().get(18),scheme));
dto.setI20(getData(type,valueType.getValueList().get(19),scheme));
dto.setI21(getData(type,valueType.getValueList().get(20),scheme));
dto.setI22(getData(type,valueType.getValueList().get(21),scheme));
dto.setI23(getData(type,valueType.getValueList().get(22),scheme));
dto.setI24(getData(type,valueType.getValueList().get(23),scheme));
dto.setI25(getData(type,valueType.getValueList().get(24),scheme));
dto.setI26(getData(type,valueType.getValueList().get(25),scheme));
dto.setI27(getData(type,valueType.getValueList().get(26),scheme));
dto.setI28(getData(type,valueType.getValueList().get(27),scheme));
dto.setI29(getData(type,valueType.getValueList().get(28),scheme));
dto.setI30(getData(type,valueType.getValueList().get(29),scheme));
dto.setI31(getData(type,valueType.getValueList().get(30),scheme));
dto.setI32(getData(type,valueType.getValueList().get(31),scheme));
dto.setI33(getData(type,valueType.getValueList().get(32),scheme));
dto.setI34(getData(type,valueType.getValueList().get(33),scheme));
dto.setI35(getData(type,valueType.getValueList().get(34),scheme));
dto.setI36(getData(type,valueType.getValueList().get(35),scheme));
dto.setI37(getData(type,valueType.getValueList().get(36),scheme));
dto.setI38(getData(type,valueType.getValueList().get(37),scheme));
dto.setI39(getData(type,valueType.getValueList().get(38),scheme));
dto.setI40(getData(type,valueType.getValueList().get(39),scheme));
dto.setI41(getData(type,valueType.getValueList().get(40),scheme));
dto.setI42(getData(type,valueType.getValueList().get(41),scheme));
dto.setI43(getData(type,valueType.getValueList().get(42),scheme));
dto.setI44(getData(type,valueType.getValueList().get(43),scheme));
dto.setI45(getData(type,valueType.getValueList().get(44),scheme));
dto.setI46(getData(type,valueType.getValueList().get(45),scheme));
dto.setI47(getData(type,valueType.getValueList().get(46),scheme));
dto.setI48(getData(type,valueType.getValueList().get(47),scheme));
dto.setI49(getData(type,valueType.getValueList().get(48),scheme));
dto.setI50(getData(type,valueType.getValueList().get(50),scheme));
}
public void channelDataInHarmVHandler(CommonMinuteDto.ValueType pojo1, CommonMinuteDto.ValueType pojo2, DataInHarmVDto dto, boolean scheme) {
CommonMinuteDto.ValueType valueType;
String type;
if (dto.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.CP95) && !scheme) {
valueType = pojo2;
type = "CP95";
} else {
valueType = pojo1;
type = pojo1.getValueType();
}
//按照指标集合排列顺序取值
dto.setV1(getData(type,valueType.getValueList().get(0),scheme));
dto.setV2(getData(type,valueType.getValueList().get(1),scheme));
dto.setV3(getData(type,valueType.getValueList().get(2),scheme));
dto.setV4(getData(type,valueType.getValueList().get(3),scheme));
dto.setV5(getData(type,valueType.getValueList().get(4),scheme));
dto.setV6(getData(type,valueType.getValueList().get(5),scheme));
dto.setV7(getData(type,valueType.getValueList().get(6),scheme));
dto.setV8(getData(type,valueType.getValueList().get(7),scheme));
dto.setV9(getData(type,valueType.getValueList().get(8),scheme));
dto.setV10(getData(type,valueType.getValueList().get(9),scheme));
dto.setV11(getData(type,valueType.getValueList().get(10),scheme));
dto.setV12(getData(type,valueType.getValueList().get(11),scheme));
dto.setV13(getData(type,valueType.getValueList().get(12),scheme));
dto.setV14(getData(type,valueType.getValueList().get(13),scheme));
dto.setV15(getData(type,valueType.getValueList().get(14),scheme));
dto.setV16(getData(type,valueType.getValueList().get(15),scheme));
dto.setV17(getData(type,valueType.getValueList().get(16),scheme));
dto.setV18(getData(type,valueType.getValueList().get(17),scheme));
dto.setV19(getData(type,valueType.getValueList().get(18),scheme));
dto.setV20(getData(type,valueType.getValueList().get(19),scheme));
dto.setV21(getData(type,valueType.getValueList().get(20),scheme));
dto.setV22(getData(type,valueType.getValueList().get(21),scheme));
dto.setV23(getData(type,valueType.getValueList().get(22),scheme));
dto.setV24(getData(type,valueType.getValueList().get(23),scheme));
dto.setV25(getData(type,valueType.getValueList().get(24),scheme));
dto.setV26(getData(type,valueType.getValueList().get(25),scheme));
dto.setV27(getData(type,valueType.getValueList().get(26),scheme));
dto.setV28(getData(type,valueType.getValueList().get(27),scheme));
dto.setV29(getData(type,valueType.getValueList().get(28),scheme));
dto.setV30(getData(type,valueType.getValueList().get(29),scheme));
dto.setV31(getData(type,valueType.getValueList().get(30),scheme));
dto.setV32(getData(type,valueType.getValueList().get(31),scheme));
dto.setV33(getData(type,valueType.getValueList().get(32),scheme));
dto.setV34(getData(type,valueType.getValueList().get(33),scheme));
dto.setV35(getData(type,valueType.getValueList().get(34),scheme));
dto.setV36(getData(type,valueType.getValueList().get(35),scheme));
dto.setV37(getData(type,valueType.getValueList().get(36),scheme));
dto.setV38(getData(type,valueType.getValueList().get(37),scheme));
dto.setV39(getData(type,valueType.getValueList().get(38),scheme));
dto.setV40(getData(type,valueType.getValueList().get(39),scheme));
dto.setV41(getData(type,valueType.getValueList().get(40),scheme));
dto.setV42(getData(type,valueType.getValueList().get(41),scheme));
dto.setV43(getData(type,valueType.getValueList().get(42),scheme));
dto.setV44(getData(type,valueType.getValueList().get(43),scheme));
dto.setV45(getData(type,valueType.getValueList().get(44),scheme));
dto.setV46(getData(type,valueType.getValueList().get(45),scheme));
dto.setV47(getData(type,valueType.getValueList().get(46),scheme));
dto.setV48(getData(type,valueType.getValueList().get(47),scheme));
dto.setV49(getData(type,valueType.getValueList().get(48),scheme));
dto.setV50(getData(type,valueType.getValueList().get(50),scheme));
}
public void channelDataPltHandler(CommonMinuteDto.ValueType pojo1, DataPltDto dto, String valueType, boolean scheme) {
dto.setPlt(getData(valueType,pojo1.getValueList().get(0),scheme));
}
//数据类型处理
//cp95值的计算有点区别会用到cp95的集合或者平均值的集合
public Double getData(String valueType, List<Double> list, boolean scheme) {

View File

@@ -0,0 +1,93 @@
package com.njcn.algorithm.serviceimpl.line;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.algorithm.service.line.IDataIntegrityService;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.pojo.bo.MeasurementCount;
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
import com.njcn.influx.pojo.po.DataV;
import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @Author: cdf
* @CreateTime: 2025-02-28
* @Description: 数据完成性
*/
@Service
@RequiredArgsConstructor
public class IDataIntegrityServiceImpl implements IDataIntegrityService {
private final CommTerminalGeneralClient commTerminalGeneralClient;
@Override
public void dataIntegrity(CalculatedParam<String> calculatedParam) {
List<RStatIntegrityD> poList = new ArrayList<>();
List<String> lineIds = calculatedParam.getIdList();
String beginDay = LocalDateTimeUtil.format(
LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),
DatePattern.NORM_DATETIME_PATTERN
);
String endDay = LocalDateTimeUtil.format(
LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),
DatePattern.NORM_DATETIME_PATTERN
);
//以尺寸100分片
List<List<String>> pendingIds = ListUtils.partition(lineIds,5);
for (List<String> pendingId : pendingIds) {
List<LineDevGetDTO> lineDevGetDTOList = commTerminalGeneralClient.getMonitorDetailList(pendingId).getData();
List<MeasurementCount> countList = this.getMeasurementCount(pendingId,beginDay,endDay);
poList.addAll(
lineDevGetDTOList.stream()
.map(item -> {
RStatIntegrityD integrityDpo = new RStatIntegrityD();
integrityDpo.setTimeId(LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
integrityDpo.setLineIndex(item.getPointId());
integrityDpo.setDueTime(InfluxDBTableConstant.DAY_MINUTE / item.getInterval());
integrityDpo.setRealTime(countList.stream()
.filter(item2 -> Objects.equals(item.getPointId(), item2.getLineId()))
.map(item2 -> (int) Double.parseDouble(item2.getFreq()))
.findFirst().orElse(0)
);
return integrityDpo;
})
.collect(Collectors.toList())
);
}
}
/**
* 获取data_v中各个监测点的数据总数
* @param lineIndex 监测点索引
* @param startTime 起始时间
* @param endTime 结束时间
*/
public List<MeasurementCount> getMeasurementCount(List<String> lineIndex, String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class,MeasurementCount.class);
influxQueryWrapper.regular(DataV::getLineId, lineIndex)
.eq(DataV::getValueType, InfluxDbSqlConstant.MAX)
.eq(DataV::getPhaseType, InfluxDBTableConstant.PHASE_TYPE_A)
.count(DataV::getFreq)
.groupBy(DataV::getLineId)
.between(DataV::getTime, startTime, endTime);
//return dataVMapper.getMeasurementCount(influxQueryWrapper);
//TODO 调用插入数据库
return null;
}
}