|
|
|
|
@@ -6,12 +6,12 @@ import com.njcn.device.api.GeneralDeviceInfoClient;
|
|
|
|
|
import com.njcn.device.enums.LineBaseEnum;
|
|
|
|
|
import com.njcn.device.pojo.dto.GeneralDeviceDTO;
|
|
|
|
|
import com.njcn.device.pojo.param.DeviceInfoParam;
|
|
|
|
|
import com.njcn.harmonic.constant.Param;
|
|
|
|
|
import com.njcn.harmonic.mapper.SteadyQualifyMapper;
|
|
|
|
|
import com.njcn.harmonic.pojo.dto.SteadyQualifyDTO;
|
|
|
|
|
import com.njcn.harmonic.pojo.vo.SteadyQualifyCensusVO;
|
|
|
|
|
import com.njcn.harmonic.pojo.vo.SteadyQualifyVO;
|
|
|
|
|
import com.njcn.harmonic.service.SteadyQualifyService;
|
|
|
|
|
import com.njcn.influxdb.param.InfluxDBPublicParam;
|
|
|
|
|
import com.njcn.influxdb.utils.InfluxDbUtils;
|
|
|
|
|
import lombok.AllArgsConstructor;
|
|
|
|
|
import org.influxdb.dto.QueryResult;
|
|
|
|
|
@@ -53,15 +53,17 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
|
|
|
|
steadyQualifyVO.setName(generalDeviceDTO.getName());
|
|
|
|
|
// List<SteadyQualifyVO> lineData = steadyQualifyMapper.getSteadyQualifyData(lineIndexes);
|
|
|
|
|
List<SteadyQualifyDTO> qualifiesRate = getQualifiesRate(lineIndexes, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
|
|
|
|
|
SteadyQualifyVO dataMoreMonitorMoreDay = getDataMoreMonitorMoreDay(qualifiesRate);
|
|
|
|
|
steadyQualifyVO.setFlicker(dataMoreMonitorMoreDay.getFlicker());
|
|
|
|
|
steadyQualifyVO.setFreqOffset(dataMoreMonitorMoreDay.getFreqOffset());
|
|
|
|
|
steadyQualifyVO.setVoltageOffset(dataMoreMonitorMoreDay.getVoltageOffset());
|
|
|
|
|
steadyQualifyVO.setVoltageUnbalance(dataMoreMonitorMoreDay.getVoltageUnbalance());
|
|
|
|
|
steadyQualifyVO.setNegativeCurrent(dataMoreMonitorMoreDay.getNegativeCurrent());
|
|
|
|
|
steadyQualifyVO.setHarmonicVoltage(dataMoreMonitorMoreDay.getHarmonicVoltage());
|
|
|
|
|
steadyQualifyVO.setHarmonicCurrent(dataMoreMonitorMoreDay.getHarmonicCurrent());
|
|
|
|
|
steadyQualifyVO.setInterHarmonic(dataMoreMonitorMoreDay.getInterHarmonic());
|
|
|
|
|
if (!CollectionUtils.isEmpty(qualifiesRate)) {
|
|
|
|
|
SteadyQualifyVO dataMoreMonitorMoreDay = getDataMoreMonitorMoreDay(qualifiesRate);
|
|
|
|
|
steadyQualifyVO.setFlicker(dataMoreMonitorMoreDay.getFlicker());
|
|
|
|
|
steadyQualifyVO.setFreqOffset(dataMoreMonitorMoreDay.getFreqOffset());
|
|
|
|
|
steadyQualifyVO.setVoltageOffset(dataMoreMonitorMoreDay.getVoltageOffset());
|
|
|
|
|
steadyQualifyVO.setVoltageUnbalance(dataMoreMonitorMoreDay.getVoltageUnbalance());
|
|
|
|
|
steadyQualifyVO.setNegativeCurrent(dataMoreMonitorMoreDay.getNegativeCurrent());
|
|
|
|
|
steadyQualifyVO.setHarmonicVoltage(dataMoreMonitorMoreDay.getHarmonicVoltage());
|
|
|
|
|
steadyQualifyVO.setHarmonicCurrent(dataMoreMonitorMoreDay.getHarmonicCurrent());
|
|
|
|
|
steadyQualifyVO.setInterHarmonic(dataMoreMonitorMoreDay.getInterHarmonic());
|
|
|
|
|
}
|
|
|
|
|
//组装父级数据树
|
|
|
|
|
List<SteadyQualifyVO> treeList = getTreeData(lineIndexes, steadyParam);
|
|
|
|
|
steadyQualifyVO.setChildren(treeList);
|
|
|
|
|
@@ -252,15 +254,41 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
|
|
|
|
for (SteadyQualifyDTO steadyQualifyDTO : steadyQualifyDTOList) {
|
|
|
|
|
steadyQualifyVOS.add(getDataSingleMonitorSingeDay(qualifiesRate, lineId, steadyQualifyDTO.getTime()));
|
|
|
|
|
}
|
|
|
|
|
//求各项平均值
|
|
|
|
|
steadyQualifyVO.setFlicker(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue());
|
|
|
|
|
if (CollectionUtil.isNotEmpty(steadyQualifyVOS)) {
|
|
|
|
|
List<SteadyQualifyVO> flicker = steadyQualifyVOS.stream().filter(s -> s.getFlicker() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> freqOffset = steadyQualifyVOS.stream().filter(s -> s.getFreqOffset() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> voltageOffset = steadyQualifyVOS.stream().filter(s -> s.getVoltageOffset() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> voltageUnbalance = steadyQualifyVOS.stream().filter(s -> s.getVoltageUnbalance() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> negativeCurrent = steadyQualifyVOS.stream().filter(s -> s.getNegativeCurrent() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> harmonicVoltage = steadyQualifyVOS.stream().filter(s -> s.getHarmonicVoltage() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> harmonicCurrent = steadyQualifyVOS.stream().filter(s -> s.getHarmonicCurrent() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> interHarmonic = steadyQualifyVOS.stream().filter(s -> s.getInterHarmonic() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
//求各项平均值
|
|
|
|
|
if (!CollectionUtils.isEmpty(flicker)) {
|
|
|
|
|
steadyQualifyVO.setFlicker(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(freqOffset)) {
|
|
|
|
|
steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(voltageOffset)) {
|
|
|
|
|
steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(voltageUnbalance)) {
|
|
|
|
|
steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(negativeCurrent)) {
|
|
|
|
|
steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(harmonicVoltage)) {
|
|
|
|
|
steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(harmonicCurrent)) {
|
|
|
|
|
steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(flicker)) {
|
|
|
|
|
steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyQualifyVOS.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return steadyQualifyVO;
|
|
|
|
|
}
|
|
|
|
|
@@ -281,15 +309,39 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (CollectionUtil.isNotEmpty(steadyResults)) {
|
|
|
|
|
List<SteadyQualifyVO> flicker = steadyResults.stream().filter(s -> s.getFlicker() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> freqOffset = steadyResults.stream().filter(s -> s.getFreqOffset() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> voltageOffset = steadyResults.stream().filter(s -> s.getVoltageOffset() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> voltageUnbalance = steadyResults.stream().filter(s -> s.getVoltageUnbalance() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> negativeCurrent = steadyResults.stream().filter(s -> s.getNegativeCurrent() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> harmonicVoltage = steadyResults.stream().filter(s -> s.getHarmonicVoltage() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> harmonicCurrent = steadyResults.stream().filter(s -> s.getHarmonicCurrent() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> interHarmonic = steadyResults.stream().filter(s -> s.getInterHarmonic() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
//求各项平均值
|
|
|
|
|
steadyQualifyVO.setFlicker(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue());
|
|
|
|
|
if (!CollectionUtils.isEmpty(flicker)) {
|
|
|
|
|
steadyQualifyVO.setFlicker(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(freqOffset)) {
|
|
|
|
|
steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(voltageOffset)) {
|
|
|
|
|
steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(voltageUnbalance)) {
|
|
|
|
|
steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(negativeCurrent)) {
|
|
|
|
|
steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(harmonicVoltage)) {
|
|
|
|
|
steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(harmonicCurrent)) {
|
|
|
|
|
steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(interHarmonic)) {
|
|
|
|
|
steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return steadyQualifyVO;
|
|
|
|
|
}
|
|
|
|
|
@@ -304,15 +356,39 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
|
|
|
|
steadyResults.add(getDataSingleMonitorSingeDay(qualifiesRate, lineId, time));
|
|
|
|
|
}
|
|
|
|
|
if (CollectionUtil.isNotEmpty(steadyResults)) {
|
|
|
|
|
List<SteadyQualifyVO> flicker = steadyResults.stream().filter(s -> s.getFlicker() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> freqOffset = steadyResults.stream().filter(s -> s.getFreqOffset() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> voltageOffset = steadyResults.stream().filter(s -> s.getVoltageOffset() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> voltageUnbalance = steadyResults.stream().filter(s -> s.getVoltageUnbalance() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> negativeCurrent = steadyResults.stream().filter(s -> s.getNegativeCurrent() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> harmonicVoltage = steadyResults.stream().filter(s -> s.getHarmonicVoltage() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> harmonicCurrent = steadyResults.stream().filter(s -> s.getHarmonicCurrent() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
List<SteadyQualifyVO> interHarmonic = steadyResults.stream().filter(s -> s.getInterHarmonic() != 3.14159).collect(Collectors.toList());
|
|
|
|
|
//求各项平均值
|
|
|
|
|
steadyQualifyVO.setFlicker(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue());
|
|
|
|
|
if (!CollectionUtils.isEmpty(flicker)) {
|
|
|
|
|
steadyQualifyVO.setFlicker(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(freqOffset)) {
|
|
|
|
|
steadyQualifyVO.setFreqOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(voltageOffset)) {
|
|
|
|
|
steadyQualifyVO.setVoltageOffset(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(voltageUnbalance)) {
|
|
|
|
|
steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(negativeCurrent)) {
|
|
|
|
|
steadyQualifyVO.setNegativeCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(harmonicVoltage)) {
|
|
|
|
|
steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(harmonicCurrent)) {
|
|
|
|
|
steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(interHarmonic)) {
|
|
|
|
|
steadyQualifyVO.setInterHarmonic(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return steadyQualifyVO;
|
|
|
|
|
}
|
|
|
|
|
@@ -327,22 +403,24 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
|
|
|
|
private List<SteadyQualifyDTO> getQualifiesRate(List<String> lineIndexes, String startTime, String endTime) {
|
|
|
|
|
List<SteadyQualifyDTO> qualifyDTOList = new ArrayList<>();
|
|
|
|
|
//组装sql语句
|
|
|
|
|
// StringBuilder string = new StringBuilder();
|
|
|
|
|
// string.append(Param.QualityFlag + "='1' and (" + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEA + "' or " + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEB + "' or " + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEC + "') and "+ Param.VALUETYPE + "='AVG' and ");
|
|
|
|
|
StringBuilder timeId = new StringBuilder();
|
|
|
|
|
timeId.append(Param.TIME + " >= '" + startTime + Param.START_TIME + "' and " + Param.TIME + " <= '" + endTime + Param.END_TIME + "' and ");
|
|
|
|
|
timeId.append(InfluxDBPublicParam.TIME + " >= '" + startTime + InfluxDBPublicParam.START_TIME + "' and " + InfluxDBPublicParam.TIME + " <= '" + endTime + InfluxDBPublicParam.END_TIME + "' and ");
|
|
|
|
|
for (int i = 0; i < lineIndexes.size(); i++) {
|
|
|
|
|
if (lineIndexes.size() - i != 1) {
|
|
|
|
|
timeId.append(Param.MYINDEX + "='").append(lineIndexes.get(i)).append("' or ");
|
|
|
|
|
timeId.append(InfluxDBPublicParam.LINE_ID + "='").append(lineIndexes.get(i)).append("' or ");
|
|
|
|
|
} else {
|
|
|
|
|
timeId.append(Param.MYINDEX + "='").append(lineIndexes.get(i)).append("' ");
|
|
|
|
|
timeId.append(InfluxDBPublicParam.LINE_ID + "='").append(lineIndexes.get(i)).append("' tz('Asia/Shanghai')");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
String a = "SELECT * FROM LIMIT_RATE WHERE time >= '2021-01-01 00:00:00' and time <= '2022-04-30 23:59:59' and MYINDEX='bffe97ff541333448358b7b00ed97cdb' or MYINDEX='479bf4e228b5579629454ee99de0b950' or MYINDEX='1e3b8531483b2a8cbee6747f1f641cf9'";
|
|
|
|
|
//sql语句
|
|
|
|
|
String sql = "SELECT * FROM LIMIT_RATE WHERE " + timeId;
|
|
|
|
|
String sql = "SELECT * FROM "+ InfluxDBPublicParam.LIMIT_RATE +" WHERE " + timeId;
|
|
|
|
|
//结果集
|
|
|
|
|
QueryResult result = influxDbUtils.query(sql);
|
|
|
|
|
// //结果集映射到对象中
|
|
|
|
|
// InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
|
|
|
|
// List<LimitRate> limitRates = influxDBResultMapper.toPOJO(result, LimitRate.class);
|
|
|
|
|
|
|
|
|
|
//处理结果集
|
|
|
|
|
if (!CollectionUtils.isEmpty(result.getResults().get(0).getSeries())) {
|
|
|
|
|
List<List<Object>> values = result.getResults().get(0).getSeries().get(0).getValues();
|
|
|
|
|
@@ -445,10 +523,14 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static double calculate(Double allTime, Double overTime) {
|
|
|
|
|
if (allTime >= overTime){
|
|
|
|
|
return NumberUtil.round((allTime - overTime) / allTime * 100, 2).doubleValue();
|
|
|
|
|
if (allTime == 0) {
|
|
|
|
|
return 3.14159;
|
|
|
|
|
} else {
|
|
|
|
|
if (allTime >= overTime){
|
|
|
|
|
return NumberUtil.round((allTime - overTime) / allTime * 100, 2).doubleValue();
|
|
|
|
|
}
|
|
|
|
|
return 0.0;
|
|
|
|
|
}
|
|
|
|
|
return 0.0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|