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()); 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转换算法() * 监测点cvt转换算法()
* @author hzj * @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); 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.pojo.po.PqDataVerify;
import com.njcn.dataProcess.util.TimeUtils; import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant; import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.pojo.po.DataHarmPowerQ;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
@@ -49,7 +48,18 @@ public class DayDataServiceImpl implements IDayDataService {
private DataHarmpowerPFeignClient dataHarmpowerPFeignClient; private DataHarmpowerPFeignClient dataHarmpowerPFeignClient;
@Resource @Resource
private DataHarmpowerQFeignClient dataHarmpowerQFeignClient; 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 @Resource
private PqDataVerifyFeignClient pqDataVerifyFeignClient; private PqDataVerifyFeignClient pqDataVerifyFeignClient;
@@ -414,7 +424,277 @@ public class DayDataServiceImpl implements IDayDataService {
//存储数据 //存储数据
dataHarmpowerQFeignClient.addList(result); 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)); 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的集合或者平均值的集合 //cp95值的计算有点区别会用到cp95的集合或者平均值的集合
public Double getData(String valueType, List<Double> list, boolean scheme) { 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;
}
}

View File

@@ -0,0 +1,27 @@
package com.njcn.dataProcess.api;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataHarmRateIFeignClientFallbackFactory;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataHarmRateI", fallbackFactory = DataHarmRateIFeignClientFallbackFactory.class, contextId = "dataHarmRateI")
public interface DataHarmRateIFeignClient {
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataHarmRateIDto> list);
}

View File

@@ -4,7 +4,9 @@ import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataHarmRateVFeignClientFallbackFactory; import com.njcn.dataProcess.api.fallback.DataHarmRateVFeignClientFallbackFactory;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@@ -20,4 +22,10 @@ public interface DataHarmRateVFeignClient {
@PostMapping("/getRawData") @PostMapping("/getRawData")
HttpResult<List<DataHarmDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam); HttpResult<List<DataHarmDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataHarmRateVDto> list);
} }

View File

@@ -2,9 +2,11 @@ package com.njcn.dataProcess.api;
import com.njcn.common.pojo.constant.ServerInfo; import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataIFeignClientFallbackFactory; import com.njcn.dataProcess.api.fallback.DataIFeignClientFallbackFactory;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO; import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@@ -24,4 +26,10 @@ public interface DataHarmpowerSFeignClient {
@PostMapping("/batchInsertion") @PostMapping("/batchInsertion")
HttpResult<String> batchInsertion(@RequestBody List<DataHarmpowerSDTO> dataHarmpowerSDTOList); HttpResult<String> batchInsertion(@RequestBody List<DataHarmpowerSDTO> dataHarmpowerSDTOList);
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataHarmPowerSDto> data);
} }

View File

@@ -5,6 +5,10 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataInharmIFeignClientFallbackFactory; import com.njcn.dataProcess.api.fallback.DataInharmIFeignClientFallbackFactory;
import com.njcn.dataProcess.dto.DataInharmIDTO; import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@@ -19,9 +23,13 @@ import java.util.List;
@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataInharmI", fallbackFactory = DataInharmIFeignClientFallbackFactory.class, contextId = "dataInharmI") @FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataInharmI", fallbackFactory = DataInharmIFeignClientFallbackFactory.class, contextId = "dataInharmI")
public interface DataInharmIFeignClient { public interface DataInharmIFeignClient {
@PostMapping("/batchInsertion") @PostMapping("/batchInsertion")
HttpResult<String> batchInsertion(@RequestBody List<DataInharmIDTO> dataInharmIDTOList); HttpResult<String> batchInsertion(@RequestBody List<DataInharmIDTO> dataInharmIDTOList);
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataInHarmIDto> list);
} }

View File

@@ -6,7 +6,10 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataInharmVFeignClientFallbackFactory; import com.njcn.dataProcess.api.fallback.DataInharmVFeignClientFallbackFactory;
import com.njcn.dataProcess.dto.DataInharmVDTO; import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@@ -29,4 +32,10 @@ public interface DataInharmVFeignClient {
@PostMapping("/getRawData") @PostMapping("/getRawData")
HttpResult<List<DataHarmDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam); HttpResult<List<DataHarmDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataInHarmVDto> list);
} }

View File

@@ -5,6 +5,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataPltFeignClientFallbackFactory; import com.njcn.dataProcess.api.fallback.DataPltFeignClientFallbackFactory;
import com.njcn.dataProcess.dto.DataPltDTO; import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto; import com.njcn.dataProcess.pojo.dto.DataPltDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@@ -28,4 +29,10 @@ public interface DataPltFeignClient {
@PostMapping("/getRawData") @PostMapping("/getRawData")
HttpResult<List<DataPltDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam); HttpResult<List<DataPltDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataPltDto> list);
} }

View File

@@ -0,0 +1,55 @@
package com.njcn.dataProcess.api.fallback;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataHarmRateIFeignClient;
import com.njcn.dataProcess.api.DataHarmRateVFeignClient;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author xy
*/
@Slf4j
@Component
public class DataHarmRateIFeignClientFallbackFactory implements FallbackFactory<DataHarmRateIFeignClient> {
/**
* 输出远程请求接口异常日志
* @param cause RPC请求异常
*/
@Override
public DataHarmRateIFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if(cause.getCause() instanceof BusinessException){
BusinessException businessException = (BusinessException) cause.getCause();
exceptionEnum = DataProcessingEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new DataHarmRateIFeignClient() {
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataHarmRateIDto> list) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -5,7 +5,9 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataHarmRateVFeignClient; import com.njcn.dataProcess.api.DataHarmRateVFeignClient;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil; import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory; import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -41,6 +43,18 @@ public class DataHarmRateVFeignClientFallbackFactory implements FallbackFactory<
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataHarmRateVDto> list) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
}; };
} }
} }

View File

@@ -5,6 +5,9 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataHarmpowerSFeignClient; import com.njcn.dataProcess.api.DataHarmpowerSFeignClient;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO; import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil; import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import com.njcn.system.utils.SystemEnumUtil; import com.njcn.system.utils.SystemEnumUtil;
import feign.hystrix.FallbackFactory; import feign.hystrix.FallbackFactory;
@@ -44,6 +47,18 @@ public class DataHarmpowerSFeignClientFallbackFactory implements FallbackFactory
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataHarmPowerSDto> data) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
}; };
} }
} }

View File

@@ -5,6 +5,9 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataInharmIFeignClient; import com.njcn.dataProcess.api.DataInharmIFeignClient;
import com.njcn.dataProcess.dto.DataInharmIDTO; import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil; import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import com.njcn.system.utils.SystemEnumUtil; import com.njcn.system.utils.SystemEnumUtil;
import feign.hystrix.FallbackFactory; import feign.hystrix.FallbackFactory;
@@ -44,6 +47,18 @@ public class DataInharmIFeignClientFallbackFactory implements FallbackFactory<Da
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataInHarmIDto> list) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
}; };
} }
} }

View File

@@ -6,7 +6,9 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataInharmVFeignClient; import com.njcn.dataProcess.api.DataInharmVFeignClient;
import com.njcn.dataProcess.dto.DataInharmVDTO; import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil; import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory; import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -51,6 +53,18 @@ public class DataInharmVFeignClientFallbackFactory implements FallbackFactory<Da
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataInHarmVDto> list) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
}; };
} }
} }

View File

@@ -6,6 +6,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataPltFeignClient; import com.njcn.dataProcess.api.DataPltFeignClient;
import com.njcn.dataProcess.dto.DataPltDTO; import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto; import com.njcn.dataProcess.pojo.dto.DataPltDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil; import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory; import feign.hystrix.FallbackFactory;
@@ -51,6 +52,18 @@ public class DataPltFeignClientFallbackFactory implements FallbackFactory<DataPl
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataPltDto> list) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
}; };
} }
} }

View File

@@ -0,0 +1,66 @@
package com.njcn.dataProcess.controller;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import com.njcn.dataProcess.service.IDataHarmRateI;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author xy
* @version 1.0
* @data 2025/3/3 10:00
*/
@Validated
@Slf4j
@Controller
@RestController
@RequestMapping("/dataHarmRateI")
@Api(tags = "谐波电流含有率")
public class DataHarmRateIController extends BaseController {
@QueryBean
private IDataHarmRateI dataHarmRateIQuery;
@InsertBean
private IDataHarmRateI dataHarmRateIInsert;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataHarmRateIQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataHarmRateIDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataHarmRateIInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
}

View File

@@ -10,7 +10,9 @@ import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean; import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.dto.DataHarmrateVDTO; import com.njcn.dataProcess.dto.DataHarmrateVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.service.IDataHarmRateV; import com.njcn.dataProcess.service.IDataHarmRateV;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -63,4 +65,22 @@ public class DataHarmRateVController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataHarmRateVQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataHarmRateVDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataHarmRateVInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
} }

View File

@@ -9,6 +9,10 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO; import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.annotation.InsertBean; import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean; import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerQDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.service.IDataHarmpowerS; import com.njcn.dataProcess.service.IDataHarmpowerS;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -52,9 +56,22 @@ public class DataHarmpowerSController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataHarmpowerSQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataHarmPowerSDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataHarmpowerSInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
} }

View File

@@ -6,9 +6,12 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.annotation.InsertBean; import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean; import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.service.IDataInharmI; import com.njcn.dataProcess.service.IDataInharmI;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -53,9 +56,22 @@ public class DataInharmIController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataInharmIQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataInHarmIDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataInharmIInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
} }

View File

@@ -6,11 +6,13 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.annotation.InsertBean; import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean; import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import com.njcn.dataProcess.service.IDataInharmV; import com.njcn.dataProcess.service.IDataInharmV;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -64,5 +66,23 @@ public class DataInharmVController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataInharmVQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataInHarmVDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataInharmVInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
} }

View File

@@ -10,6 +10,7 @@ import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean; import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.dto.DataPltDTO; import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto; import com.njcn.dataProcess.pojo.dto.DataPltDto;
import com.njcn.dataProcess.service.IDataPlt; import com.njcn.dataProcess.service.IDataPlt;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
@@ -64,5 +65,22 @@ public class DataPltController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataPltQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataPltDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataPltInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
} }

View File

@@ -0,0 +1,11 @@
package com.njcn.dataProcess.dao.imapper;
import com.njcn.dataProcess.po.influx.DataHarmrateI;
import com.njcn.influx.base.InfluxDbBaseMapper;
/**
* @author xy
*/
public interface DataHarmRateIMapper extends InfluxDbBaseMapper<DataHarmrateI> {
}

View File

@@ -1,14 +0,0 @@
package com.njcn.dataProcess.dao.imapper;
import com.njcn.dataProcess.po.influx.DataHarmrateV;
import com.njcn.influx.base.InfluxDbBaseMapper;
/**
* @author xy
*/
public interface DataHarmRateVMapper extends InfluxDbBaseMapper<DataHarmrateV> {
}

View File

@@ -3,12 +3,9 @@ package com.njcn.dataProcess.dao.imapper;
import com.njcn.dataProcess.po.influx.DataHarmrateV; import com.njcn.dataProcess.po.influx.DataHarmrateV;
import com.njcn.influx.base.InfluxDbBaseMapper; import com.njcn.influx.base.InfluxDbBaseMapper;
/** /**
* @author xy * @author xy
*/ */
public interface DataHarmRateVMapper extends InfluxDbBaseMapper<DataHarmrateV> { public interface DataHarmRateVMapper extends InfluxDbBaseMapper<DataHarmrateV> {
} }

View File

@@ -0,0 +1,27 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateID;
import java.util.List;
/**
* @author xy
*/
public interface IDataHarmRateI extends IMppService<RStatDataHarmRateID> {
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataHarmRateIDto> list);
}

View File

@@ -1,8 +1,12 @@
package com.njcn.dataProcess.service; package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataHarmrateVDTO; import com.njcn.dataProcess.dto.DataHarmrateVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateVD;
import java.util.List; import java.util.List;
@@ -10,7 +14,7 @@ import java.util.List;
* @author xy * @author xy
*/ */
public interface public interface
IDataHarmRateV { IDataHarmRateV extends IMppService<RStatDataHarmRateVD> {
/** /**
* 获取原始数据 * 获取原始数据
@@ -20,4 +24,15 @@ IDataHarmRateV {
List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam); List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam);
void batchInsertion (List<DataHarmrateVDTO> dataHarmrateVDTOList); void batchInsertion (List<DataHarmrateVDTO> dataHarmrateVDTOList);
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataHarmRateVDto> list);
} }

View File

@@ -1,6 +1,11 @@
package com.njcn.dataProcess.service; package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO; import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmPowerSD;
import java.util.List; import java.util.List;
@@ -11,6 +16,17 @@ import java.util.List;
* @author clam * @author clam
* @version V1.0.0 * @version V1.0.0
*/ */
public interface IDataHarmpowerS { public interface IDataHarmpowerS extends IMppService<RStatDataHarmPowerSD> {
void batchInsertion(List<DataHarmpowerSDTO> dataIDTOList); void batchInsertion(List<DataHarmpowerSDTO> dataIDTOList);
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataHarmPowerSDto> list);
} }

View File

@@ -1,6 +1,11 @@
package com.njcn.dataProcess.service; package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataInharmIDTO; import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmID;
import java.util.List; import java.util.List;
@@ -11,7 +16,18 @@ import java.util.List;
* @author clam * @author clam
* @version V1.0.0 * @version V1.0.0
*/ */
public interface IDataInharmI { public interface IDataInharmI extends IMppService<RStatDataInHarmID> {
void batchInsertion(List<DataInharmIDTO> dataIDTOList); void batchInsertion(List<DataInharmIDTO> dataIDTOList);
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataInHarmIDto> list);
} }

View File

@@ -1,8 +1,12 @@
package com.njcn.dataProcess.service; package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataInharmVDTO; import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmVD;
import java.util.List; import java.util.List;
@@ -13,7 +17,7 @@ import java.util.List;
* @author clam * @author clam
* @version V1.0.0 * @version V1.0.0
*/ */
public interface IDataInharmV { public interface IDataInharmV extends IMppService<RStatDataInHarmVD> {
void batchInsertion(List<DataInharmVDTO> dataIDTOList); void batchInsertion(List<DataInharmVDTO> dataIDTOList);
@@ -23,4 +27,16 @@ public interface IDataInharmV {
* @return * @return
*/ */
List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam); List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam);
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataInHarmVDto> list);
} }

View File

@@ -1,9 +1,11 @@
package com.njcn.dataProcess.service; package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataPltDTO; import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIDto; import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto; import com.njcn.dataProcess.pojo.dto.DataPltDto;
import com.njcn.dataProcess.pojo.po.RStatDataPltD;
import java.util.List; import java.util.List;
@@ -14,7 +16,7 @@ import java.util.List;
* @author clam * @author clam
* @version V1.0.0 * @version V1.0.0
*/ */
public interface IDataPlt { public interface IDataPlt extends IMppService<RStatDataPltD> {
void batchInsertion(List<DataPltDTO> dataPltDTOList); void batchInsertion(List<DataPltDTO> dataPltDTOList);
/** /**
@@ -23,4 +25,15 @@ public interface IDataPlt {
* @return * @return
*/ */
List<DataPltDto> getRawData(LineCountEvaluateParam lineParam); List<DataPltDto> getRawData(LineCountEvaluateParam lineParam);
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataPltDto> list);
} }

View File

@@ -0,0 +1,190 @@
package com.njcn.dataProcess.service.impl.influxdb;
import cn.hutool.core.collection.CollectionUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.HarmonicTimesUtil;
import com.njcn.dataProcess.dao.imapper.DataHarmRateIMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmRateIRelationMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataHarmrateI;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateID;
import com.njcn.dataProcess.service.IDataHarmRateI;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author xy
*/
@Service("InfluxdbDataHarmRateIImpl")
public class InfluxdbDataHarmRateIImpl extends MppServiceImpl<RStatDataHarmRateIRelationMapper, RStatDataHarmRateID> implements IDataHarmRateI {
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@Resource
private DataHarmRateIMapper dataHarmRateIMapper;
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataHarmrateI> data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataHarmrateI>> lineMap = data.stream().collect(Collectors.groupingBy(DataHarmrateI::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataHarmrateI>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataHarmrateI::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
//以数据类型分组
Map<String,List<DataHarmrateI>> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataHarmrateI::getValueType));
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data12 = valueTypeList.stream().map(DataHarmrateI::getI1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataHarmrateI::getI2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataHarmrateI::getI3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataHarmrateI::getI4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataHarmrateI::getI5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataHarmrateI::getI6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataHarmrateI::getI7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataHarmrateI::getI8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataHarmrateI::getI9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataHarmrateI::getI10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataHarmrateI::getI11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataHarmrateI::getI12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataHarmrateI::getI13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataHarmrateI::getI14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataHarmrateI::getI15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataHarmrateI::getI16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataHarmrateI::getI17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataHarmrateI::getI18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataHarmrateI::getI19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataHarmrateI::getI20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataHarmrateI::getI21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataHarmrateI::getI22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataHarmrateI::getI23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataHarmrateI::getI24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataHarmrateI::getI25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataHarmrateI::getI26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataHarmrateI::getI27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataHarmrateI::getI28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataHarmrateI::getI29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataHarmrateI::getI30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataHarmrateI::getI31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataHarmrateI::getI32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataHarmrateI::getI33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataHarmrateI::getI34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataHarmrateI::getI35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataHarmrateI::getI36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataHarmrateI::getI37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataHarmrateI::getI38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataHarmrateI::getI39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataHarmrateI::getI40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataHarmrateI::getI41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataHarmrateI::getI42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataHarmrateI::getI43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataHarmrateI::getI44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataHarmrateI::getI45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataHarmrateI::getI46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataHarmrateI::getI47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataHarmrateI::getI48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataHarmrateI::getI49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataHarmrateI::getI50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(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);
value.setValueList(lists);
valueTypes.add(value);
});
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataHarmRateIDto> list) {
}
/**
* 按监测点集合、时间条件获取分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理
* 需要进行剔除异常数据时,这里会有三种情况判断
* 1.无异常数据,则直接返回集合;
* 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据;
* 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常
*/
public List<DataHarmrateI> getMinuteData(List<String> lineList, String startTime, String endTime, Map<String,List<String>> timeMap) {
List<DataHarmrateI> result = new ArrayList<>();
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateI.class);
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
influxQueryWrapper.regular(DataHarmrateI::getLineId, lineList)
.select(DataHarmrateI::getLineId)
.select(DataHarmrateI::getPhasicType)
.select(DataHarmrateI::getValueType)
.select(DataHarmrateI::getQualityFlag)
.between(DataHarmrateI::getTime, startTime, endTime)
.eq(DataHarmrateI::getQualityFlag,"0");
List<DataHarmrateI> list = dataHarmRateIMapper.selectByQueryWrapper(influxQueryWrapper);
Map<String,List<DataHarmrateI>> lineMap = list.stream().collect(Collectors.groupingBy(DataHarmrateI::getLineId));
//有异常数据
if (CollectionUtil.isNotEmpty(timeMap)) {
lineMap.forEach((k,v)->{
List<String> timeList = timeMap.get(k);
//有异常数据,当前监测点自身的异常数据
if (CollectionUtil.isNotEmpty(timeList)) {
List<DataHarmrateI> filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList());
//1.过滤掉异常数据后还有正常数据,则用正常数据计算
if (CollectionUtil.isNotEmpty(filterList)) {
result.addAll(filterList);
}
//2.过滤掉异常数据后没有正常数据,则用所有异常数据计算,但是需要标记数据为异常的
else {
v.parallelStream().forEach(item -> item.setQualityFlag("1"));
result.addAll(v);
}
}
//没有异常数据,则使用原数据
else {
result.addAll(v);
}
});
}
//没有异常数据,则使用原数据
else {
result.addAll(list);
}
return result;
}
}

View File

@@ -1,14 +1,19 @@
package com.njcn.dataProcess.service.impl.influxdb; package com.njcn.dataProcess.service.impl.influxdb;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.HarmonicTimesUtil; import com.njcn.common.utils.HarmonicTimesUtil;
import com.njcn.dataProcess.dao.imapper.DataHarmRateVMapper; import com.njcn.dataProcess.dao.imapper.DataHarmRateVMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmRateVRelationMapper;
import com.njcn.dataProcess.dto.DataHarmrateVDTO; import com.njcn.dataProcess.dto.DataHarmrateVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataHarmrateV; import com.njcn.dataProcess.po.influx.DataHarmrateV;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateVD;
import com.njcn.dataProcess.service.IDataHarmRateV; import com.njcn.dataProcess.service.IDataHarmRateV;
import com.njcn.dataProcess.util.BeanFeildUtils; import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant; import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper; import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -19,6 +24,7 @@ import org.springframework.stereotype.Service;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -28,7 +34,7 @@ import java.util.stream.Collectors;
*/ */
@Service("InfluxdbDataHarmRateVImpl") @Service("InfluxdbDataHarmRateVImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class InfluxdbDataHarmRateVImpl implements IDataHarmRateV { public class InfluxdbDataHarmRateVImpl extends MppServiceImpl<RStatDataHarmRateVRelationMapper, RStatDataHarmRateVD> implements IDataHarmRateV {
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault()); private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@@ -37,7 +43,7 @@ public class InfluxdbDataHarmRateVImpl implements IDataHarmRateV {
@Override @Override
public List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam) { public List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam) {
List<DataHarmDto> result = new ArrayList<>(); List<DataHarmDto> result = new ArrayList<>();
List<DataHarmrateV> list = getMinuteDataI(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime()); List<DataHarmrateV> list = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime());
list.forEach(item->{ list.forEach(item->{
DataHarmDto dto = new DataHarmDto(); DataHarmDto dto = new DataHarmDto();
BeanUtils.copyProperties(item,dto); BeanUtils.copyProperties(item,dto);
@@ -47,18 +53,138 @@ public class InfluxdbDataHarmRateVImpl implements IDataHarmRateV {
return result; return result;
} }
@Override
public void batchInsertion(List<DataHarmrateVDTO> dataHarmrateVDTOList) {
int totalCount = dataHarmrateVDTOList.size();
if(totalCount<=0){
return;
}
List<DataHarmrateV> collect = dataHarmrateVDTOList.stream().flatMap(temp -> DataHarmrateV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
int minSize = Math.min(1200000, collect.size());
List<List<DataHarmrateV>> partition = ListUtils.partition(collect, minSize);
for (List<DataHarmrateV> dataHarmrateVList : partition) {
List<DataHarmrateV> sublistAsOriginalListType = new ArrayList<>(dataHarmrateVList);
dataHarmRateVMapper.insertBatch(sublistAsOriginalListType);
}
}
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataHarmrateV> data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataHarmrateV>> lineMap = data.stream().collect(Collectors.groupingBy(DataHarmrateV::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataHarmrateV>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataHarmrateV::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
//以数据类型分组
Map<String,List<DataHarmrateV>> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataHarmrateV::getValueType));
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data12 = valueTypeList.stream().map(DataHarmrateV::getV1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataHarmrateV::getV2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataHarmrateV::getV3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataHarmrateV::getV4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataHarmrateV::getV5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataHarmrateV::getV6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataHarmrateV::getV7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataHarmrateV::getV8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataHarmrateV::getV9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataHarmrateV::getV10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataHarmrateV::getV11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataHarmrateV::getV12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataHarmrateV::getV13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataHarmrateV::getV14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataHarmrateV::getV15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataHarmrateV::getV16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataHarmrateV::getV17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataHarmrateV::getV18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataHarmrateV::getV19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataHarmrateV::getV20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataHarmrateV::getV21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataHarmrateV::getV22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataHarmrateV::getV23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataHarmrateV::getV24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataHarmrateV::getV25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataHarmrateV::getV26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataHarmrateV::getV27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataHarmrateV::getV28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataHarmrateV::getV29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataHarmrateV::getV30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataHarmrateV::getV31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataHarmrateV::getV32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataHarmrateV::getV33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataHarmrateV::getV34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataHarmrateV::getV35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataHarmrateV::getV36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataHarmrateV::getV37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataHarmrateV::getV38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataHarmrateV::getV39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataHarmrateV::getV40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataHarmrateV::getV41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataHarmrateV::getV42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataHarmrateV::getV43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataHarmrateV::getV44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataHarmrateV::getV45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataHarmrateV::getV46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataHarmrateV::getV47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataHarmrateV::getV48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataHarmrateV::getV49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataHarmrateV::getV50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(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);
value.setValueList(lists);
valueTypes.add(value);
});
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataHarmRateVDto> list) {
}
/** /**
* 按监测点集合、时间条件获取dataI分钟数据 * 按监测点集合、时间条件获取分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理 * timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理
* 需要进行剔除异常数据时,这里会有三种情况判断 * 需要进行剔除异常数据时,这里会有三种情况判断
* 1.无异常数据,则直接返回集合; * 1.无异常数据,则直接返回集合;
* 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据; * 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据;
* 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常 * 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常
*/ */
public List<DataHarmrateV> getMinuteDataI(List<String> lineList, String startTime, String endTime, Map<String,List<String>> timeMap) { public List<DataHarmrateV> getMinuteData(List<String> lineList, String startTime, String endTime, Map<String,List<String>> timeMap) {
List<DataHarmrateV> result = new ArrayList<>(); List<DataHarmrateV> result = new ArrayList<>();
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class); InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class);
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(2, 50, 1)); influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
influxQueryWrapper.regular(DataHarmrateV::getLineId, lineList) influxQueryWrapper.regular(DataHarmrateV::getLineId, lineList)
.select(DataHarmrateV::getLineId) .select(DataHarmrateV::getLineId)
.select(DataHarmrateV::getPhasicType) .select(DataHarmrateV::getPhasicType)
@@ -98,27 +224,4 @@ public class InfluxdbDataHarmRateVImpl implements IDataHarmRateV {
return result; return result;
} }
@Override
public void batchInsertion(List<DataHarmrateVDTO> dataHarmrateVDTOList) {
int totalCount = dataHarmrateVDTOList.size();
if(totalCount<=0){
return;
}
List<DataHarmrateV> collect = dataHarmrateVDTOList.stream().flatMap(temp -> DataHarmrateV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
int minSize = Math.min(1200000, collect.size());
List<List<DataHarmrateV>> partition = ListUtils.partition(collect, minSize);
for (List<DataHarmrateV> dataHarmrateVList : partition) {
List<DataHarmrateV> sublistAsOriginalListType = new ArrayList<>(dataHarmrateVList);
dataHarmRateVMapper.insertBatch(sublistAsOriginalListType);
}
}
} }

View File

@@ -1,15 +1,30 @@
package com.njcn.dataProcess.service.impl.influxdb; package com.njcn.dataProcess.service.impl.influxdb;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO; import cn.hutool.core.collection.CollectionUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.HarmonicTimesUtil;
import com.njcn.dataProcess.dao.imapper.DataHarmpowerSMapper; import com.njcn.dataProcess.dao.imapper.DataHarmpowerSMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmPowerSRelationMapper;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataHarmpowerS; import com.njcn.dataProcess.po.influx.DataHarmpowerS;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmPowerSD;
import com.njcn.dataProcess.service.IDataHarmpowerS; import com.njcn.dataProcess.service.IDataHarmpowerS;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -21,8 +36,9 @@ import java.util.stream.Collectors;
*/ */
@Service("InfluxdbDataHarmpowerSImpl") @Service("InfluxdbDataHarmpowerSImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class InfluxdbDataHarmpowerSImpl implements IDataHarmpowerS { public class InfluxdbDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowerSRelationMapper, RStatDataHarmPowerSD> implements IDataHarmpowerS {
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
private final DataHarmpowerSMapper dataHarmpowerSMapper; private final DataHarmpowerSMapper dataHarmpowerSMapper;
@@ -43,4 +59,160 @@ public class InfluxdbDataHarmpowerSImpl implements IDataHarmpowerS {
} }
} }
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataHarmpowerS> data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataHarmpowerS>> lineMap = data.stream().collect(Collectors.groupingBy(DataHarmpowerS::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataHarmpowerS>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataHarmpowerS::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
//以数据类型分组
Map<String,List<DataHarmpowerS>> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataHarmpowerS::getValueType));
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
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);
value.setValueList(lists);
valueTypes.add(value);
});
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataHarmPowerSDto> list) {
}
/**
* 按监测点集合、时间条件获取分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理
* 需要进行剔除异常数据时,这里会有三种情况判断
* 1.无异常数据,则直接返回集合;
* 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据;
* 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常
*/
public List<DataHarmpowerS> getMinuteData(List<String> lineList, String startTime, String endTime, Map<String,List<String>> timeMap) {
List<DataHarmpowerS> result = new ArrayList<>();
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerS.class);
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.S, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
influxQueryWrapper.regular(DataHarmpowerS::getLineId, lineList)
.select(DataHarmpowerS::getLineId)
.select(DataHarmpowerS::getPhasicType)
.select(DataHarmpowerS::getValueType)
.select(DataHarmpowerS::getS)
.select(DataHarmpowerS::getQualityFlag)
.between(DataHarmpowerS::getTime, startTime, endTime)
.eq(DataHarmpowerS::getQualityFlag,"0");
List<DataHarmpowerS> list = dataHarmpowerSMapper.selectByQueryWrapper(influxQueryWrapper);
Map<String,List<DataHarmpowerS>> lineMap = list.stream().collect(Collectors.groupingBy(DataHarmpowerS::getLineId));
//有异常数据
if (CollectionUtil.isNotEmpty(timeMap)) {
lineMap.forEach((k,v)->{
List<String> timeList = timeMap.get(k);
//有异常数据,当前监测点自身的异常数据
if (CollectionUtil.isNotEmpty(timeList)) {
List<DataHarmpowerS> filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList());
//1.过滤掉异常数据后还有正常数据,则用正常数据计算
if (CollectionUtil.isNotEmpty(filterList)) {
result.addAll(filterList);
}
//2.过滤掉异常数据后没有正常数据,则用所有异常数据计算,但是需要标记数据为异常的
else {
v.parallelStream().forEach(item -> item.setQualityFlag("1"));
result.addAll(v);
}
}
//没有异常数据,则使用原数据
else {
result.addAll(v);
}
});
}
//没有异常数据,则使用原数据
else {
result.addAll(list);
}
return result;
}
} }

View File

@@ -1,15 +1,30 @@
package com.njcn.dataProcess.service.impl.influxdb; package com.njcn.dataProcess.service.impl.influxdb;
import com.njcn.dataProcess.dto.DataInharmIDTO; import cn.hutool.core.collection.CollectionUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.HarmonicTimesUtil;
import com.njcn.dataProcess.dao.imapper.DataInharmIMapper; import com.njcn.dataProcess.dao.imapper.DataInharmIMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataInHarmIRelationMapper;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataInharmI; import com.njcn.dataProcess.po.influx.DataInharmI;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmID;
import com.njcn.dataProcess.service.IDataInharmI; import com.njcn.dataProcess.service.IDataInharmI;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -21,9 +36,10 @@ import java.util.stream.Collectors;
*/ */
@Service("InfluxdbDataInharmIImpl") @Service("InfluxdbDataInharmIImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class InfluxdbDataInharmIImpl implements IDataInharmI { public class InfluxdbDataInharmIImpl extends MppServiceImpl<RStatDataInHarmIRelationMapper, RStatDataInHarmID> implements IDataInharmI {
private final DataInharmIMapper dataInharmIMapper; private final DataInharmIMapper dataInharmIMapper;
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@Override @Override
@@ -43,4 +59,157 @@ public class InfluxdbDataInharmIImpl implements IDataInharmI {
} }
} }
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataInharmI> data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataInharmI>> lineMap = data.stream().collect(Collectors.groupingBy(DataInharmI::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataInharmI>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataInharmI::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
//以数据类型分组
Map<String,List<DataInharmI>> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataInharmI::getValueType));
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data12 = valueTypeList.stream().map(DataInharmI::getI1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataInharmI::getI2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataInharmI::getI3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataInharmI::getI4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataInharmI::getI5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataInharmI::getI6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataInharmI::getI7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataInharmI::getI8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataInharmI::getI9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataInharmI::getI10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataInharmI::getI11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataInharmI::getI12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataInharmI::getI13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataInharmI::getI14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataInharmI::getI15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataInharmI::getI16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataInharmI::getI17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataInharmI::getI18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataInharmI::getI19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataInharmI::getI20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataInharmI::getI21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataInharmI::getI22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataInharmI::getI23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataInharmI::getI24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataInharmI::getI25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataInharmI::getI26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataInharmI::getI27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataInharmI::getI28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataInharmI::getI29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataInharmI::getI30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataInharmI::getI31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataInharmI::getI32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataInharmI::getI33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataInharmI::getI34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataInharmI::getI35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataInharmI::getI36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataInharmI::getI37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataInharmI::getI38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataInharmI::getI39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataInharmI::getI40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataInharmI::getI41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataInharmI::getI42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataInharmI::getI43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataInharmI::getI44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataInharmI::getI45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataInharmI::getI46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataInharmI::getI47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataInharmI::getI48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataInharmI::getI49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataInharmI::getI50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(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);
value.setValueList(lists);
valueTypes.add(value);
});
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataInHarmIDto> list) {
}
/**
* 按监测点集合、时间条件获取分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理
* 需要进行剔除异常数据时,这里会有三种情况判断
* 1.无异常数据,则直接返回集合;
* 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据;
* 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常
*/
public List<DataInharmI> getMinuteData(List<String> lineList, String startTime, String endTime, Map<String,List<String>> timeMap) {
List<DataInharmI> result = new ArrayList<>();
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmI.class);
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
influxQueryWrapper.regular(DataInharmI::getLineId, lineList)
.select(DataInharmI::getLineId)
.select(DataInharmI::getPhasicType)
.select(DataInharmI::getValueType)
.select(DataInharmI::getQualityFlag)
.between(DataInharmI::getTime, startTime, endTime)
.eq(DataInharmI::getQualityFlag,"0");
List<DataInharmI> list = dataInharmIMapper.selectByQueryWrapper(influxQueryWrapper);
Map<String,List<DataInharmI>> lineMap = list.stream().collect(Collectors.groupingBy(DataInharmI::getLineId));
//有异常数据
if (CollectionUtil.isNotEmpty(timeMap)) {
lineMap.forEach((k,v)->{
List<String> timeList = timeMap.get(k);
//有异常数据,当前监测点自身的异常数据
if (CollectionUtil.isNotEmpty(timeList)) {
List<DataInharmI> filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList());
//1.过滤掉异常数据后还有正常数据,则用正常数据计算
if (CollectionUtil.isNotEmpty(filterList)) {
result.addAll(filterList);
}
//2.过滤掉异常数据后没有正常数据,则用所有异常数据计算,但是需要标记数据为异常的
else {
v.parallelStream().forEach(item -> item.setQualityFlag("1"));
result.addAll(v);
}
}
//没有异常数据,则使用原数据
else {
result.addAll(v);
}
});
}
//没有异常数据,则使用原数据
else {
result.addAll(list);
}
return result;
}
} }

View File

@@ -1,14 +1,20 @@
package com.njcn.dataProcess.service.impl.influxdb; package com.njcn.dataProcess.service.impl.influxdb;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.HarmonicTimesUtil; import com.njcn.common.utils.HarmonicTimesUtil;
import com.njcn.dataProcess.dao.imapper.DataInharmVMapper; import com.njcn.dataProcess.dao.imapper.DataInharmVMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataInHarmVRelationMapper;
import com.njcn.dataProcess.dto.DataInharmVDTO; import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataI; import com.njcn.dataProcess.po.influx.DataI;
import com.njcn.dataProcess.po.influx.DataInharmV; import com.njcn.dataProcess.po.influx.DataInharmV;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmVD;
import com.njcn.dataProcess.service.IDataInharmV; import com.njcn.dataProcess.service.IDataInharmV;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant; import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper; import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -19,6 +25,7 @@ import org.springframework.stereotype.Service;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -33,7 +40,7 @@ import java.util.stream.Collectors;
*/ */
@Service("InfluxdbDataInharmVImpl") @Service("InfluxdbDataInharmVImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class InfluxdbDataInharmVImpl implements IDataInharmV { public class InfluxdbDataInharmVImpl extends MppServiceImpl<RStatDataInHarmVRelationMapper, RStatDataInHarmVD> implements IDataInharmV {
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault()); private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@@ -71,6 +78,107 @@ public class InfluxdbDataInharmVImpl implements IDataInharmV {
return result; return result;
} }
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataInharmV> data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataInharmV>> lineMap = data.stream().collect(Collectors.groupingBy(DataInharmV::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataInharmV>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataInharmV::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
//以数据类型分组
Map<String,List<DataInharmV>> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataInharmV::getValueType));
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data12 = valueTypeList.stream().map(DataInharmV::getV1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataInharmV::getV2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataInharmV::getV3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataInharmV::getV4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataInharmV::getV5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataInharmV::getV6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataInharmV::getV7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataInharmV::getV8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataInharmV::getV9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataInharmV::getV10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataInharmV::getV11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataInharmV::getV12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataInharmV::getV13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataInharmV::getV14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataInharmV::getV15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataInharmV::getV16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataInharmV::getV17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataInharmV::getV18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataInharmV::getV19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataInharmV::getV20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataInharmV::getV21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataInharmV::getV22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataInharmV::getV23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataInharmV::getV24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataInharmV::getV25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataInharmV::getV26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataInharmV::getV27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataInharmV::getV28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataInharmV::getV29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataInharmV::getV30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataInharmV::getV31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataInharmV::getV32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataInharmV::getV33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataInharmV::getV34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataInharmV::getV35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataInharmV::getV36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataInharmV::getV37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataInharmV::getV38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataInharmV::getV39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataInharmV::getV40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataInharmV::getV41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataInharmV::getV42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataInharmV::getV43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataInharmV::getV44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataInharmV::getV45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataInharmV::getV46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataInharmV::getV47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataInharmV::getV48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataInharmV::getV49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataInharmV::getV50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(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);
value.setValueList(lists);
valueTypes.add(value);
});
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataInHarmVDto> list) {
}
/** /**
* 按监测点集合、时间条件获取dataI分钟数据 * 按监测点集合、时间条件获取dataI分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理 * timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理

View File

@@ -1,15 +1,17 @@
package com.njcn.dataProcess.service.impl.influxdb; package com.njcn.dataProcess.service.impl.influxdb;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.njcn.common.utils.HarmonicTimesUtil; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.imapper.DataPltMapper; import com.njcn.dataProcess.dao.imapper.DataPltMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataPltRelationMapper;
import com.njcn.dataProcess.dto.DataPltDTO; import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataI;
import com.njcn.dataProcess.po.influx.DataPlt; import com.njcn.dataProcess.po.influx.DataPlt;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto; import com.njcn.dataProcess.pojo.dto.DataPltDto;
import com.njcn.dataProcess.pojo.po.RStatDataPltD;
import com.njcn.dataProcess.service.IDataPlt; import com.njcn.dataProcess.service.IDataPlt;
import com.njcn.influx.constant.InfluxDbSqlConstant; import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.query.InfluxQueryWrapper; import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
@@ -18,9 +20,7 @@ import org.springframework.stereotype.Service;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -32,7 +32,7 @@ import java.util.stream.Collectors;
*/ */
@Service("InfluxdbDataPltImpl") @Service("InfluxdbDataPltImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class InfluxdbDataPltImpl implements IDataPlt { public class InfluxdbDataPltImpl extends MppServiceImpl<RStatDataPltRelationMapper, RStatDataPltD> implements IDataPlt {
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault()); private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@@ -70,6 +70,52 @@ public class InfluxdbDataPltImpl implements IDataPlt {
return result; return result;
} }
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataPlt> data = getMinuteDataPlt(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataPlt>> lineMap = data.stream().collect(Collectors.groupingBy(DataPlt::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataPlt>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataPlt::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(null);
//规定好集合指标参数
List<Double> data1 = phasicTypeList.stream().map(DataPlt::getPlt).collect(Collectors.toList());
List<List<Double>> lists = Collections.singletonList(data1);
value.setValueList(lists);
valueTypes.add(value);
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataPltDto> list) {
}
/** /**
* 按监测点集合、时间条件获取dataI分钟数据 * 按监测点集合、时间条件获取dataI分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理 * timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理

View File

@@ -0,0 +1,48 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmRateIRelationMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateID;
import com.njcn.dataProcess.service.IDataHarmRateI;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author xy
*/
@Service("RelationDataHarmRateIImpl")
@RequiredArgsConstructor
public class RelationDataHarmRateIImpl extends MppServiceImpl<RStatDataHarmRateIRelationMapper, RStatDataHarmRateID> implements IDataHarmRateI {
@Resource
private IDataHarmRateI dataHarmRateI;
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataHarmRateIDto> list) {
List<RStatDataHarmRateID> result = new ArrayList<>();
list.forEach(item->{
RStatDataHarmRateID data = new RStatDataHarmRateID();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataHarmRateI.saveOrUpdateBatchByMultiId(result);
}
}

View File

@@ -1,13 +1,19 @@
package com.njcn.dataProcess.service.impl.relation; package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.DataHarmrateVRelationMapper; import com.njcn.dataProcess.dao.relation.mapper.DataHarmrateVRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.DataIRelationMapper; import com.njcn.dataProcess.dao.relation.mapper.DataIRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmRateVRelationMapper;
import com.njcn.dataProcess.dto.DataHarmrateVDTO; import com.njcn.dataProcess.dto.DataHarmrateVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.DataHarmrateV; import com.njcn.dataProcess.po.relation.DataHarmrateV;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateVD;
import com.njcn.dataProcess.service.IDataHarmRateV; import com.njcn.dataProcess.service.IDataHarmRateV;
import com.njcn.dataProcess.util.BeanFeildUtils; import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@@ -24,11 +30,13 @@ import java.util.stream.Collectors;
*/ */
@Service("RelationDataHarmRateVImpl") @Service("RelationDataHarmRateVImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class RelationDataHarmRateVImpl implements IDataHarmRateV { public class RelationDataHarmRateVImpl extends MppServiceImpl<RStatDataHarmRateVRelationMapper, RStatDataHarmRateVD> implements IDataHarmRateV {
@Resource @Resource
private DataIRelationMapper dataIRelationMapper; private DataIRelationMapper dataIRelationMapper;
private final DataHarmrateVRelationMapper dataHarmrateVRelationMapper; private final DataHarmrateVRelationMapper dataHarmrateVRelationMapper;
@Resource
private IDataHarmRateV dataHarmRateV;
@Override @Override
public List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam) { public List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam) {
@@ -62,4 +70,23 @@ public class RelationDataHarmRateVImpl implements IDataHarmRateV {
} }
} }
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataHarmRateVDto> list) {
List<RStatDataHarmRateVD> result = new ArrayList<>();
list.forEach(item->{
RStatDataHarmRateVD data = new RStatDataHarmRateVD();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataHarmRateV.saveOrUpdateBatchByMultiId(result);
}
} }

View File

@@ -1,15 +1,25 @@
package com.njcn.dataProcess.service.impl.relation; package com.njcn.dataProcess.service.impl.relation;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.DataHarmpowerSRelationMapper; import com.njcn.dataProcess.dao.relation.mapper.DataHarmpowerSRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmPowerSRelationMapper;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.DataHarmpowerS; import com.njcn.dataProcess.po.relation.DataHarmpowerS;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmPowerSD;
import com.njcn.dataProcess.service.IDataHarmpowerS; import com.njcn.dataProcess.service.IDataHarmpowerS;
import com.njcn.dataProcess.util.BeanFeildUtils; import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -22,8 +32,12 @@ import java.util.stream.Collectors;
*/ */
@Service("RelationDataHarmpowerSImpl") @Service("RelationDataHarmpowerSImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class RelationDataHarmpowerSImpl implements IDataHarmpowerS { public class RelationDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowerSRelationMapper, RStatDataHarmPowerSD> implements IDataHarmpowerS {
private final DataHarmpowerSRelationMapper dataHarmpowerSRelationMapper; private final DataHarmpowerSRelationMapper dataHarmpowerSRelationMapper;
@Resource
private IDataHarmpowerS dataHarmPowerS;
@Override @Override
public void batchInsertion(List<DataHarmpowerSDTO> dataHarmpowerSDTOList) { public void batchInsertion(List<DataHarmpowerSDTO> dataHarmpowerSDTOList) {
int totalCount = dataHarmpowerSDTOList.size(); int totalCount = dataHarmpowerSDTOList.size();
@@ -49,4 +63,23 @@ public class RelationDataHarmpowerSImpl implements IDataHarmpowerS {
} }
} }
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataHarmPowerSDto> list) {
List<RStatDataHarmPowerSD> result = new ArrayList<>();
list.forEach(item->{
RStatDataHarmPowerSD data = new RStatDataHarmPowerSD();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataHarmPowerS.saveOrUpdateBatchByMultiId(result);
}
} }

View File

@@ -1,16 +1,25 @@
package com.njcn.dataProcess.service.impl.relation; package com.njcn.dataProcess.service.impl.relation;
import com.njcn.dataProcess.dto.DataInharmIDTO; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.DataInharmIRelationMapper; import com.njcn.dataProcess.dao.relation.mapper.DataInharmIRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataInHarmIRelationMapper;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.DataInharmI; import com.njcn.dataProcess.po.relation.DataInharmI;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmID;
import com.njcn.dataProcess.service.IDataInharmI; import com.njcn.dataProcess.service.IDataInharmI;
import com.njcn.dataProcess.util.BeanFeildUtils; import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -21,9 +30,11 @@ import java.util.stream.Collectors;
*/ */
@Service("RelationDataInharmIImpl") @Service("RelationDataInharmIImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class RelationDataInharmIImpl implements IDataInharmI { public class RelationDataInharmIImpl extends MppServiceImpl<RStatDataInHarmIRelationMapper, RStatDataInHarmID> implements IDataInharmI {
private final DataInharmIRelationMapper dataVInharmIMapper;
private final DataInharmIRelationMapper dataVInharmIMapper;
@Resource
private IDataInharmI dataInharmI;
@Override @Override
public void batchInsertion(List<DataInharmIDTO> dataInharmIDTOList) { public void batchInsertion(List<DataInharmIDTO> dataInharmIDTOList) {
@@ -50,4 +61,23 @@ public class RelationDataInharmIImpl implements IDataInharmI {
dataVInharmIMapper.insertBatchSomeColumn(dataInharmIList); dataVInharmIMapper.insertBatchSomeColumn(dataInharmIList);
} }
} }
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataInHarmIDto> list) {
List<RStatDataInHarmID> result = new ArrayList<>();
list.forEach(item->{
RStatDataInHarmID data = new RStatDataInHarmID();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataInharmI.saveOrUpdateBatchByMultiId(result);
}
} }

View File

@@ -1,18 +1,25 @@
package com.njcn.dataProcess.service.impl.relation; package com.njcn.dataProcess.service.impl.relation;
import com.njcn.dataProcess.dto.DataInharmVDTO; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.DataVInharmVRelationMapper; import com.njcn.dataProcess.dao.relation.mapper.DataVInharmVRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataInHarmVRelationMapper;
import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.DataInharmV; import com.njcn.dataProcess.po.relation.DataInharmV;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmVD;
import com.njcn.dataProcess.service.IDataInharmV; import com.njcn.dataProcess.service.IDataInharmV;
import com.njcn.dataProcess.util.BeanFeildUtils; import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -24,8 +31,11 @@ import java.util.stream.Collectors;
*/ */
@Service("RelationDataInharmVImpl") @Service("RelationDataInharmVImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class RelationDataInharmVImpl implements IDataInharmV { public class RelationDataInharmVImpl extends MppServiceImpl<RStatDataInHarmVRelationMapper, RStatDataInHarmVD> implements IDataInharmV {
private final DataVInharmVRelationMapper dataVInharmVRelationMapper; private final DataVInharmVRelationMapper dataVInharmVRelationMapper;
@Resource
private IDataInharmV dataInHarmV;
@Override @Override
@@ -59,4 +69,23 @@ public class RelationDataInharmVImpl implements IDataInharmV {
public List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam) { public List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam) {
return Collections.emptyList(); return Collections.emptyList();
} }
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataInHarmVDto> list) {
List<RStatDataInHarmVD> result = new ArrayList<>();
list.forEach(item->{
RStatDataInHarmVD data = new RStatDataInHarmVD();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataInHarmV.saveOrUpdateBatchByMultiId(result);
}
} }

View File

@@ -1,18 +1,23 @@
package com.njcn.dataProcess.service.impl.relation; package com.njcn.dataProcess.service.impl.relation;
import com.njcn.dataProcess.dto.DataPltDTO; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.DataPltRelationMapper; import com.njcn.dataProcess.dao.relation.mapper.DataPltRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataPltRelationMapper;
import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.DataPlt; import com.njcn.dataProcess.po.relation.DataPlt;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto; import com.njcn.dataProcess.pojo.dto.DataPltDto;
import com.njcn.dataProcess.pojo.po.RStatDataPltD;
import com.njcn.dataProcess.service.IDataPlt; import com.njcn.dataProcess.service.IDataPlt;
import com.njcn.dataProcess.util.BeanFeildUtils; import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -26,9 +31,11 @@ import java.util.stream.Collectors;
*/ */
@Service("RelationDataPltImpl") @Service("RelationDataPltImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class RelationDataPltImpl implements IDataPlt { public class RelationDataPltImpl extends MppServiceImpl<RStatDataPltRelationMapper, RStatDataPltD> implements IDataPlt {
private final DataPltRelationMapper dataPltRelationMapper; private final DataPltRelationMapper dataPltRelationMapper;
private final IDataPlt dataPlt;
@Override @Override
public void batchInsertion(List<DataPltDTO> dataPltDTOList) { public void batchInsertion(List<DataPltDTO> dataPltDTOList) {
int totalCount = dataPltDTOList.size(); int totalCount = dataPltDTOList.size();
@@ -59,4 +66,23 @@ public class RelationDataPltImpl implements IDataPlt {
public List<DataPltDto> getRawData(LineCountEvaluateParam lineParam) { public List<DataPltDto> getRawData(LineCountEvaluateParam lineParam) {
return Collections.emptyList(); return Collections.emptyList();
} }
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataPltDto> list) {
List<RStatDataPltD> result = new ArrayList<>();
list.forEach(item->{
RStatDataPltD data = new RStatDataPltD();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataPlt.saveOrUpdateBatchByMultiId(result);
}
} }