谐波监测-区域:稳态合格率统计和稳态超标占比
This commit is contained in:
@@ -8,6 +8,7 @@ import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -34,4 +35,9 @@ public interface RStatLimitRateDMapper extends BaseMapper<RStatLimitRateDPO> {
|
||||
@Param("ids") List<String> lineIndexes,
|
||||
@Param("statTime") String searchBeginTime,
|
||||
@Param("endTime") String searchEndTime);
|
||||
|
||||
List<MonitorOverLimitVO.DataVO> getPercentages(
|
||||
@Param("ids") List<String> lineIndexes,
|
||||
@Param("statTime") String searchBeginTime,
|
||||
@Param("endTime") String searchEndTime);
|
||||
}
|
||||
|
||||
@@ -183,4 +183,31 @@
|
||||
</where>
|
||||
GROUP BY my_index
|
||||
</select>
|
||||
<select id="getPercentages" resultType="com.njcn.harmonic.pojo.vo.MonitorOverLimitVO$DataVO">
|
||||
SELECT
|
||||
DATE_FORMAT(time_id,'%Y-%m-%d') AS time,
|
||||
IFNULL(TRUNCATE ((1- (
|
||||
sum( flicker_overtime )+ sum( flicker_all_time )+ sum( freq_dev_overtime )+ sum( voltage_dev_overtime )+ sum( ubalance_overtime )+ sum( uaberrance_overtime )+ sum( i_neg_overtime )+ sum( uharm_2_overtime )+ sum( uharm_3_overtime )+ sum( uharm_4_overtime )+ sum( uharm_5_overtime )+ sum( uharm_6_overtime )+ sum( uharm_7_overtime )+ sum( uharm_8_overtime )+ sum( uharm_9_overtime )+ sum( uharm_10_overtime )+ sum( uharm_11_overtime )+ sum( uharm_12_overtime )+ sum( uharm_13_overtime )+ sum( uharm_14_overtime )+ sum( uharm_15_overtime )+ sum( uharm_16_overtime )+ sum( uharm_17_overtime )+ sum( uharm_18_overtime )+ sum( uharm_19_overtime )+ sum( uharm_20_overtime )+ sum( uharm_21_overtime )+ sum( uharm_22_overtime )+ sum( uharm_23_overtime )+ sum( uharm_24_overtime )+ sum( uharm_25_overtime )+ sum( iharm_2_overtime )+ sum( iharm_3_overtime )+ sum( iharm_4_overtime )+ sum( iharm_5_overtime )+ sum( iharm_6_overtime )+ sum( iharm_7_overtime )+ sum( iharm_8_overtime )+ sum( iharm_9_overtime )+ sum( iharm_10_overtime )+ sum( iharm_11_overtime )+ sum( iharm_12_overtime )+ sum( iharm_13_overtime )+ sum( iharm_14_overtime )+ sum( iharm_15_overtime )+ sum( iharm_16_overtime )+ sum( iharm_17_overtime )+ sum( iharm_18_overtime )+ sum( iharm_19_overtime )+ sum( iharm_20_overtime )+ sum( iharm_21_overtime )+ sum( iharm_22_overtime )+ sum( iharm_23_overtime )+ sum( iharm_24_overtime )+ sum( iharm_25_overtime )+ sum( inuharm_1_overtime )+ sum( inuharm_2_overtime )+ sum( inuharm_3_overtime )+ sum( inuharm_4_overtime )+ sum( inuharm_5_overtime )+ sum( inuharm_6_overtime )+ sum( inuharm_7_overtime )+ sum( inuharm_8_overtime )+ sum( inuharm_9_overtime )+ sum( inuharm_10_overtime )+ sum( inuharm_11_overtime )+ sum( inuharm_12_overtime )+ sum( inuharm_13_overtime )+ sum( inuharm_14_overtime )+ sum( inuharm_15_overtime )+ sum( inuharm_16_overtime )) /(
|
||||
SUM( all_time )* 71 )
|
||||
)* 100,2),0) `data`
|
||||
FROM
|
||||
r_stat_limit_rate_d
|
||||
<where>
|
||||
phasic_type = "T"
|
||||
<if test=" ids != null and ids.size > 0">
|
||||
AND my_index IN
|
||||
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test=" statTime != null and statTime !=''">
|
||||
AND time_id >= #{statTime}
|
||||
</if>
|
||||
<if test="endTime != null and endTime != ''">
|
||||
AND time_id <= #{endTime}
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
`time`
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -13,10 +14,15 @@ import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||
import com.njcn.device.pq.enums.LineBaseEnum;
|
||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.utils.PublicDateUtil;
|
||||
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.mapper.SteadyExceedRateMapper;
|
||||
import com.njcn.harmonic.pojo.dto.SteadyQualifyDTO;
|
||||
import com.njcn.harmonic.pojo.po.LimitRatePO;
|
||||
import com.njcn.harmonic.pojo.po.RStatHarmonicD;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
|
||||
import com.njcn.harmonic.pojo.vo.RHarmonicPolylineVO;
|
||||
import com.njcn.harmonic.pojo.vo.SteadyExceedRateCensusVO;
|
||||
import com.njcn.harmonic.pojo.vo.SteadyExceedRateVO;
|
||||
import com.njcn.harmonic.service.IRStatLimitRateDService;
|
||||
@@ -25,11 +31,13 @@ import com.njcn.harmonic.utils.PubUtils;
|
||||
import com.njcn.influxdb.param.InfluxDBPublicParam;
|
||||
import com.njcn.influxdb.utils.InfluxDbUtils;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import org.influxdb.dto.QueryResult;
|
||||
import org.influxdb.impl.InfluxDBResultMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
@@ -53,6 +61,7 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
private final InfluxDbUtils influxDbUtils;
|
||||
|
||||
private final IRStatLimitRateDService rateDService;
|
||||
private final RStatLimitRateDMapper rateDMapper;
|
||||
|
||||
@Override
|
||||
public List<SteadyExceedRateVO> getSteadyExceedRateData(DeviceInfoParam.BusinessParam steadyExceedParam) {
|
||||
@@ -67,20 +76,18 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
SteadyExceedRateVO steadyExceedRateVO = new SteadyExceedRateVO();
|
||||
steadyExceedRateVO.setId(generalDeviceDTO.getIndex());
|
||||
steadyExceedRateVO.setName(generalDeviceDTO.getName());
|
||||
List<LimitRatePO> qualifiesRate = getQualifiesRate(lineIndexes, steadyExceedParam.getSearchBeginTime(), steadyExceedParam.getSearchEndTime());
|
||||
SteadyExceedRateVO dataMoreMonitorMoreDay = getDataMoreMonitorMoreDay(qualifiesRate);
|
||||
steadyExceedRateVO.setSteadyExceedRate(PubUtils.dataLimits(dataMoreMonitorMoreDay.getSteadyExceedRate()));
|
||||
|
||||
//组装父级数据树
|
||||
//组装子集数据树
|
||||
List<SteadyExceedRateVO> treeList = getTreeData(lineIndexes, steadyExceedParam);
|
||||
steadyExceedRateVO.setChildren(treeList);
|
||||
//父级数据
|
||||
steadyExceedRateVO.setSteadyExceedRate(PubUtils.dataLimits(NumberUtil.round(treeList.stream().mapToDouble(SteadyExceedRateVO::getSteadyExceedRate).average().orElse(0), 2).doubleValue()));
|
||||
|
||||
steadyExceedRateVO.setChildren(treeList);
|
||||
steadyExceedRateVOS.add(steadyExceedRateVO);
|
||||
}
|
||||
return steadyExceedRateVOS;
|
||||
}
|
||||
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public SteadyExceedRateCensusVO getSteadyExceedRateCensus(DeviceInfoParam.BusinessParam steadyExceedCensusParam) {
|
||||
SteadyExceedRateCensusVO steadyExceedRateCensusVO = new SteadyExceedRateCensusVO();
|
||||
@@ -91,10 +98,14 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
//按部门分类的实际运行终端综合信息
|
||||
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyExceedCensusParam).getData();
|
||||
if (!CollectionUtils.isEmpty(deviceDataList)) {
|
||||
List<Map<String,Double>> maps=new ArrayList<>();
|
||||
for (GeneralDeviceDTO generalDeviceDTO: deviceDataList) {
|
||||
type.add(generalDeviceDTO.getName());
|
||||
|
||||
List<String> lineIndexes = generalDeviceDTO.getLineIndexes();
|
||||
List<MonitorOverLimitVO.DataVO> percentages = rateDMapper.getPercentages(lineIndexes, steadyExceedCensusParam.getSearchBeginTime(), steadyExceedCensusParam.getSearchEndTime());
|
||||
Map<String, Double> collect = percentages.stream().collect(Collectors.toMap(MonitorOverLimitVO.DataVO::getTime, MonitorOverLimitVO.DataVO::getData));
|
||||
maps.add(collect);
|
||||
//按部门分类的监测点索引集
|
||||
tempIndex.add(lineIndexes);
|
||||
}
|
||||
@@ -102,6 +113,7 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
int timed = 0;
|
||||
switch (steadyExceedCensusParam.getTimeFlag()) {
|
||||
case 0:
|
||||
//查询是年
|
||||
time = getSteadyTimesByMouth(steadyExceedCensusParam.getSearchBeginTime(), steadyExceedCensusParam.getSearchEndTime());
|
||||
timed = getSteadyByMouth(steadyExceedCensusParam.getSearchBeginTime(), steadyExceedCensusParam.getSearchEndTime());
|
||||
for (int i =0; i<timed; i++) {
|
||||
@@ -123,24 +135,36 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
time = getSteadyTimesByDay(steadyExceedCensusParam.getSearchBeginTime(), steadyExceedCensusParam.getSearchEndTime());
|
||||
timed = getSteadyByDay(steadyExceedCensusParam.getSearchBeginTime(), steadyExceedCensusParam.getSearchEndTime());
|
||||
for (int i =0; i<timed; i++) {
|
||||
List<Double> steadyExceedRate = new ArrayList<>();
|
||||
for (List<String> lineIndexes: tempIndex) {
|
||||
if (!CollectionUtils.isEmpty(lineIndexes)) {
|
||||
List<LimitRatePO> qualifiesRate = getQualifiesRate(lineIndexes, steadyExceedCensusParam.getSearchBeginTime(), steadyExceedCensusParam.getSearchEndTime());
|
||||
if (!CollectionUtils.isEmpty(qualifiesRate)) {
|
||||
SteadyExceedRateVO dataMoreMonitorSingleDay = getDataMoreMonitorSingleDay(qualifiesRate, lineIndexes, time.get(i));
|
||||
steadyExceedRate.add(dataMoreMonitorSingleDay.getSteadyExceedRate());
|
||||
}else {
|
||||
steadyExceedRate.add(3.14159);
|
||||
//查询是天
|
||||
List<String> intervalTime = PubUtils.getIntervalTime(steadyExceedCensusParam.getSearchBeginTime(),steadyExceedCensusParam.getSearchEndTime());
|
||||
for (String interTime : intervalTime) {
|
||||
String startTime = PublicDateUtil.getFisrtDayOfMonth(Integer.parseInt(interTime.substring(0, 4)), Integer.parseInt(interTime.substring(5)));
|
||||
String endTime = PublicDateUtil.getLastDayOfMonth(Integer.parseInt(interTime.substring(0, 4)), Integer.parseInt(interTime.substring(5)));
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date dt = simpleDateFormat.parse(startTime);
|
||||
Date dtDate = simpleDateFormat.parse(endTime);
|
||||
Integer year = Integer.valueOf(String.format("%tY", dt));
|
||||
Integer mon = Integer.valueOf(String.format("%tm", dt));
|
||||
Integer day = Integer.valueOf(String.format("%td", dtDate));
|
||||
List<String> dayTime = PubUtils.getIntervalDateTime(year, mon, day);
|
||||
for (String s : dayTime) {
|
||||
List<Double> steadyExceedRate = new ArrayList<>();
|
||||
for (int i = 0; i < tempIndex.size(); i++) {
|
||||
|
||||
if (CollUtil.isNotEmpty(maps.get(i))) {
|
||||
if (maps.get(i).containsKey(s)) {
|
||||
Double data = maps.get(i).get(s);
|
||||
steadyExceedRate.add(data);
|
||||
} else {
|
||||
steadyExceedRate.add(3.14159);
|
||||
}
|
||||
} else {
|
||||
steadyExceedRate.add(3.1415);
|
||||
}
|
||||
} else {
|
||||
steadyExceedRate.add(3.1415);
|
||||
}
|
||||
steadyExceedList.add(steadyExceedRate);
|
||||
time.add(s);
|
||||
}
|
||||
steadyExceedList.add(steadyExceedRate);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
@@ -200,7 +224,7 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
}
|
||||
|
||||
|
||||
private List<String> getSteadyTimesByDay(String searchBeginTime, String searchEndTime) {
|
||||
public static List<String> getSteadyTimesByDay(String searchBeginTime, String searchEndTime) {
|
||||
List<String> string = new ArrayList<>();
|
||||
int beginTime = Integer.parseInt(searchBeginTime.substring(8, 10));
|
||||
int endTime = Integer.parseInt(searchEndTime.substring(8, 10));
|
||||
@@ -234,9 +258,15 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
List<SteadyExceedRateVO> powerCompanyList = steadyExceedRateMapper.getLineInfoByList(substationList.stream().map(SteadyExceedRateVO::getPid).distinct().collect(Collectors.toList()));
|
||||
|
||||
List<LimitRatePO> qualifiesRate = getQualifiesRate(lineIndexes, steadyExceedParam.getSearchBeginTime(), steadyExceedParam.getSearchEndTime());
|
||||
//根据监测点分组
|
||||
Map<String, List<LimitRatePO>> lineList = qualifiesRate.stream().collect(Collectors.groupingBy(LimitRatePO::getLineId));
|
||||
monitorList.forEach(steadyExceedRateVO -> {
|
||||
SteadyExceedRateVO dataSingleMonitorMoreDay = getDataSingleMonitorMoreDay(qualifiesRate, steadyExceedRateVO.getId());
|
||||
steadyExceedRateVO.setSteadyExceedRate(PubUtils.dataLimits(dataSingleMonitorMoreDay.getSteadyExceedRate()));
|
||||
if(lineList.containsKey(steadyExceedRateVO.getId())){
|
||||
SteadyExceedRateVO dataSingleMonitorMoreDay = getDataSingleMonitorMoreDay(lineList.get(steadyExceedRateVO.getId()));
|
||||
steadyExceedRateVO.setSteadyExceedRate(PubUtils.dataLimits(dataSingleMonitorMoreDay.getSteadyExceedRate()));
|
||||
}else{
|
||||
steadyExceedRateVO.setSteadyExceedRate(3.14159);
|
||||
}
|
||||
});
|
||||
setChildesList(substationList,monitorList);
|
||||
setFatherDistortion(substationList);
|
||||
@@ -294,20 +324,29 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
/**
|
||||
* 计算一个监测点日统计占比率
|
||||
*/
|
||||
public SteadyExceedRateVO getDataSingleMonitorSingeDay(List<LimitRatePO> qualifiesRate, String lineId, String time) {
|
||||
public List<SteadyExceedRateVO> getDataSingleMonitorSingeDay(List<LimitRatePO> qualifiesRate) {
|
||||
List<SteadyExceedRateVO> list=new ArrayList<>();
|
||||
SteadyExceedRateVO steadyExceedRateVO = new SteadyExceedRateVO();
|
||||
LimitRatePO limitRatePO;
|
||||
List<LimitRatePO> limitRatePOList = qualifiesRate.stream().filter(
|
||||
temp -> temp.getLineId().equals(lineId) && temp.getDayStr().equals(time)
|
||||
).collect(Collectors.toList());
|
||||
if (!CollectionUtil.isEmpty(limitRatePOList)) {
|
||||
limitRatePO = limitRatePOList.get(0);
|
||||
if ((limitRatePO.getFlickerOverTime()+ limitRatePO.getFreqDevOverTime()+ limitRatePO.getINegOverTime()+ limitRatePO.getUAberranceOverTime()+ limitRatePO.getUBalanceOverTime()+ limitRatePO.getVoltageDevOverTime()+ limitRatePO.getIHarm2OverTime()+ limitRatePO.getIHarm3OverTime()+ limitRatePO.getIHarm4OverTime()+ limitRatePO.getIHarm5OverTime()+ limitRatePO.getIHarm6OverTime()+ limitRatePO.getIHarm7OverTime()+ limitRatePO.getIHarm8OverTime()+ limitRatePO.getIHarm9OverTime()+ limitRatePO.getIHarm10OverTime()+ limitRatePO.getIHarm11OverTime()+ limitRatePO.getIHarm12OverTime()+ limitRatePO.getIHarm13OverTime()+ limitRatePO.getIHarm14OverTime()+ limitRatePO.getIHarm15OverTime()+ limitRatePO.getIHarm16OverTime()+ limitRatePO.getIHarm17OverTime()+ limitRatePO.getIHarm18OverTime()+ limitRatePO.getIHarm19OverTime()+ limitRatePO.getIHarm20OverTime()+ limitRatePO.getIHarm21OverTime()+ limitRatePO.getIHarm22OverTime()+ limitRatePO.getIHarm23OverTime()+ limitRatePO.getIHarm24OverTime()+ limitRatePO.getIHarm25OverTime()+ limitRatePO.getUHarm2OverTime()+ limitRatePO.getUHarm3OverTime()+ limitRatePO.getUHarm4OverTime()+ limitRatePO.getUHarm5OverTime()+ limitRatePO.getUHarm6OverTime()+ limitRatePO.getUHarm7OverTime()+ limitRatePO.getUHarm8OverTime()+ limitRatePO.getUHarm9OverTime()+ limitRatePO.getUHarm10OverTime()+ limitRatePO.getUHarm11OverTime()+ limitRatePO.getUHarm12OverTime()+ limitRatePO.getUHarm13OverTime()+ limitRatePO.getUHarm14OverTime()+ limitRatePO.getUHarm15OverTime()+ limitRatePO.getUHarm16OverTime()+ limitRatePO.getUHarm17OverTime()+ limitRatePO.getUHarm18OverTime()+ limitRatePO.getUHarm19OverTime()+ limitRatePO.getUHarm20OverTime()+ limitRatePO.getUHarm21OverTime()+ limitRatePO.getUHarm22OverTime()+ limitRatePO.getUHarm23OverTime()+ limitRatePO.getUHarm24OverTime()+ limitRatePO.getUHarm25OverTime()+ limitRatePO.getInUHARM1OverTime()+ limitRatePO.getInUHARM2OverTime()+ limitRatePO.getInUHARM3OverTime()+ limitRatePO.getInUHARM4OverTime()+ limitRatePO.getInUHARM5OverTime()+ limitRatePO.getInUHARM6OverTime()+ limitRatePO.getInUHARM7OverTime()+ limitRatePO.getInUHARM8OverTime()+ limitRatePO.getInUHARM9OverTime()+ limitRatePO.getInUHARM10OverTime()+ limitRatePO.getInUHARM11OverTime()+ limitRatePO.getInUHARM12OverTime()+ limitRatePO.getInUHARM13OverTime()+ limitRatePO.getInUHARM14OverTime()+ limitRatePO.getInUHARM15OverTime()+ limitRatePO.getInUHARM16OverTime()) > 0){
|
||||
steadyExceedRateVO.setSteadyExceedRate(100.00);
|
||||
} else { steadyExceedRateVO.setSteadyExceedRate(0.00); }
|
||||
if (!CollectionUtil.isEmpty(qualifiesRate)) {
|
||||
for (LimitRatePO limitRatePO : qualifiesRate) {
|
||||
steadyExceedRateVO = new SteadyExceedRateVO();
|
||||
|
||||
double calculate = calculate(limitRatePO.getAllTime(),
|
||||
limitRatePO.getFlickerOverTime() +
|
||||
limitRatePO.getFreqDevOverTime() +
|
||||
limitRatePO.getINegOverTime() +
|
||||
limitRatePO.getUAberranceOverTime() +
|
||||
limitRatePO.getUBalanceOverTime() +
|
||||
limitRatePO.getVoltageDevOverTime() +
|
||||
limitRatePO.getFlickerAllTime() +
|
||||
limitRatePO.getIHarm2OverTime() + limitRatePO.getIHarm3OverTime() + limitRatePO.getIHarm4OverTime() + limitRatePO.getIHarm5OverTime() + limitRatePO.getIHarm6OverTime() + limitRatePO.getIHarm7OverTime() + limitRatePO.getIHarm8OverTime() + limitRatePO.getIHarm9OverTime() + limitRatePO.getIHarm10OverTime() + limitRatePO.getIHarm11OverTime() + limitRatePO.getIHarm12OverTime() + limitRatePO.getIHarm13OverTime() + limitRatePO.getIHarm14OverTime() + limitRatePO.getIHarm15OverTime() + limitRatePO.getIHarm16OverTime() + limitRatePO.getIHarm17OverTime() + limitRatePO.getIHarm18OverTime() + limitRatePO.getIHarm19OverTime() + limitRatePO.getIHarm20OverTime() + limitRatePO.getIHarm21OverTime() + limitRatePO.getIHarm22OverTime() + limitRatePO.getIHarm23OverTime() + limitRatePO.getIHarm24OverTime() + limitRatePO.getIHarm25OverTime() +
|
||||
limitRatePO.getUHarm2OverTime() + limitRatePO.getUHarm3OverTime() + limitRatePO.getUHarm4OverTime() + limitRatePO.getUHarm5OverTime() + limitRatePO.getUHarm6OverTime() + limitRatePO.getUHarm7OverTime() + limitRatePO.getUHarm8OverTime() + limitRatePO.getUHarm9OverTime() + limitRatePO.getUHarm10OverTime() + limitRatePO.getUHarm11OverTime() + limitRatePO.getUHarm12OverTime() + limitRatePO.getUHarm13OverTime() + limitRatePO.getUHarm14OverTime() + limitRatePO.getUHarm15OverTime() + limitRatePO.getUHarm16OverTime() + limitRatePO.getUHarm17OverTime() + limitRatePO.getUHarm18OverTime() + limitRatePO.getUHarm19OverTime() + limitRatePO.getUHarm20OverTime() + limitRatePO.getUHarm21OverTime() + limitRatePO.getUHarm22OverTime() + limitRatePO.getUHarm23OverTime() + limitRatePO.getUHarm24OverTime() + limitRatePO.getUHarm25OverTime() +
|
||||
limitRatePO.getInUHARM1OverTime() + limitRatePO.getInUHARM2OverTime() + limitRatePO.getInUHARM3OverTime() + limitRatePO.getInUHARM4OverTime() + limitRatePO.getInUHARM5OverTime() + limitRatePO.getInUHARM6OverTime() + limitRatePO.getInUHARM7OverTime() + limitRatePO.getInUHARM8OverTime() + limitRatePO.getInUHARM9OverTime() + limitRatePO.getInUHARM10OverTime() + limitRatePO.getInUHARM11OverTime() + limitRatePO.getInUHARM12OverTime() + limitRatePO.getInUHARM13OverTime() + limitRatePO.getInUHARM14OverTime() + limitRatePO.getInUHARM15OverTime() + limitRatePO.getInUHARM16OverTime());
|
||||
steadyExceedRateVO.setSteadyExceedRate(calculate);
|
||||
list.add(steadyExceedRateVO);
|
||||
}
|
||||
}
|
||||
return steadyExceedRateVO;
|
||||
return list;
|
||||
}
|
||||
/**
|
||||
* 计算一个监测点月统计占比率
|
||||
@@ -320,36 +359,38 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
).collect(Collectors.toList());
|
||||
if (!CollectionUtil.isEmpty(limitRatePOList)) {
|
||||
limitRatePO = limitRatePOList.get(0);
|
||||
if ((limitRatePO.getFlickerOverTime()+ limitRatePO.getFreqDevOverTime()+ limitRatePO.getINegOverTime()+ limitRatePO.getUAberranceOverTime()+ limitRatePO.getUBalanceOverTime()+ limitRatePO.getVoltageDevOverTime()+ limitRatePO.getIHarm2OverTime()+ limitRatePO.getIHarm3OverTime()+ limitRatePO.getIHarm4OverTime()+ limitRatePO.getIHarm5OverTime()+ limitRatePO.getIHarm6OverTime()+ limitRatePO.getIHarm7OverTime()+ limitRatePO.getIHarm8OverTime()+ limitRatePO.getIHarm9OverTime()+ limitRatePO.getIHarm10OverTime()+ limitRatePO.getIHarm11OverTime()+ limitRatePO.getIHarm12OverTime()+ limitRatePO.getIHarm13OverTime()+ limitRatePO.getIHarm14OverTime()+ limitRatePO.getIHarm15OverTime()+ limitRatePO.getIHarm16OverTime()+ limitRatePO.getIHarm17OverTime()+ limitRatePO.getIHarm18OverTime()+ limitRatePO.getIHarm19OverTime()+ limitRatePO.getIHarm20OverTime()+ limitRatePO.getIHarm21OverTime()+ limitRatePO.getIHarm22OverTime()+ limitRatePO.getIHarm23OverTime()+ limitRatePO.getIHarm24OverTime()+ limitRatePO.getIHarm25OverTime()+ limitRatePO.getUHarm2OverTime()+ limitRatePO.getUHarm3OverTime()+ limitRatePO.getUHarm4OverTime()+ limitRatePO.getUHarm5OverTime()+ limitRatePO.getUHarm6OverTime()+ limitRatePO.getUHarm7OverTime()+ limitRatePO.getUHarm8OverTime()+ limitRatePO.getUHarm9OverTime()+ limitRatePO.getUHarm10OverTime()+ limitRatePO.getUHarm11OverTime()+ limitRatePO.getUHarm12OverTime()+ limitRatePO.getUHarm13OverTime()+ limitRatePO.getUHarm14OverTime()+ limitRatePO.getUHarm15OverTime()+ limitRatePO.getUHarm16OverTime()+ limitRatePO.getUHarm17OverTime()+ limitRatePO.getUHarm18OverTime()+ limitRatePO.getUHarm19OverTime()+ limitRatePO.getUHarm20OverTime()+ limitRatePO.getUHarm21OverTime()+ limitRatePO.getUHarm22OverTime()+ limitRatePO.getUHarm23OverTime()+ limitRatePO.getUHarm24OverTime()+ limitRatePO.getUHarm25OverTime()+ limitRatePO.getInUHARM1OverTime()+ limitRatePO.getInUHARM2OverTime()+ limitRatePO.getInUHARM3OverTime()+ limitRatePO.getInUHARM4OverTime()+ limitRatePO.getInUHARM5OverTime()+ limitRatePO.getInUHARM6OverTime()+ limitRatePO.getInUHARM7OverTime()+ limitRatePO.getInUHARM8OverTime()+ limitRatePO.getInUHARM9OverTime()+ limitRatePO.getInUHARM10OverTime()+ limitRatePO.getInUHARM11OverTime()+ limitRatePO.getInUHARM12OverTime()+ limitRatePO.getInUHARM13OverTime()+ limitRatePO.getInUHARM14OverTime()+ limitRatePO.getInUHARM15OverTime()+ limitRatePO.getInUHARM16OverTime()) > 0){
|
||||
steadyExceedRateVO.setSteadyExceedRate(100.00);
|
||||
} else { steadyExceedRateVO.setSteadyExceedRate(0.00); }
|
||||
|
||||
double calculate = calculate(limitRatePO.getAllTime(),
|
||||
limitRatePO.getFlickerOverTime() +
|
||||
limitRatePO.getFreqDevOverTime() +
|
||||
limitRatePO.getINegOverTime() +
|
||||
limitRatePO.getUAberranceOverTime() +
|
||||
limitRatePO.getUBalanceOverTime() +
|
||||
limitRatePO.getVoltageDevOverTime() +
|
||||
limitRatePO.getFlickerAllTime() +
|
||||
limitRatePO.getIHarm2OverTime() + limitRatePO.getIHarm3OverTime() + limitRatePO.getIHarm4OverTime() + limitRatePO.getIHarm5OverTime() + limitRatePO.getIHarm6OverTime() + limitRatePO.getIHarm7OverTime() + limitRatePO.getIHarm8OverTime() + limitRatePO.getIHarm9OverTime() + limitRatePO.getIHarm10OverTime() + limitRatePO.getIHarm11OverTime() + limitRatePO.getIHarm12OverTime() + limitRatePO.getIHarm13OverTime() + limitRatePO.getIHarm14OverTime() + limitRatePO.getIHarm15OverTime() + limitRatePO.getIHarm16OverTime() + limitRatePO.getIHarm17OverTime() + limitRatePO.getIHarm18OverTime() + limitRatePO.getIHarm19OverTime() + limitRatePO.getIHarm20OverTime() + limitRatePO.getIHarm21OverTime() + limitRatePO.getIHarm22OverTime() + limitRatePO.getIHarm23OverTime() + limitRatePO.getIHarm24OverTime() + limitRatePO.getIHarm25OverTime() +
|
||||
limitRatePO.getUHarm2OverTime() + limitRatePO.getUHarm3OverTime() + limitRatePO.getUHarm4OverTime() + limitRatePO.getUHarm5OverTime() + limitRatePO.getUHarm6OverTime() + limitRatePO.getUHarm7OverTime() + limitRatePO.getUHarm8OverTime() + limitRatePO.getUHarm9OverTime() + limitRatePO.getUHarm10OverTime() + limitRatePO.getUHarm11OverTime() + limitRatePO.getUHarm12OverTime() + limitRatePO.getUHarm13OverTime() + limitRatePO.getUHarm14OverTime() + limitRatePO.getUHarm15OverTime() + limitRatePO.getUHarm16OverTime() + limitRatePO.getUHarm17OverTime() + limitRatePO.getUHarm18OverTime() + limitRatePO.getUHarm19OverTime() + limitRatePO.getUHarm20OverTime() + limitRatePO.getUHarm21OverTime() + limitRatePO.getUHarm22OverTime() + limitRatePO.getUHarm23OverTime() + limitRatePO.getUHarm24OverTime() + limitRatePO.getUHarm25OverTime() +
|
||||
limitRatePO.getInUHARM1OverTime() + limitRatePO.getInUHARM2OverTime() + limitRatePO.getInUHARM3OverTime() + limitRatePO.getInUHARM4OverTime() + limitRatePO.getInUHARM5OverTime() + limitRatePO.getInUHARM6OverTime() + limitRatePO.getInUHARM7OverTime() + limitRatePO.getInUHARM8OverTime() + limitRatePO.getInUHARM9OverTime() + limitRatePO.getInUHARM10OverTime() + limitRatePO.getInUHARM11OverTime() + limitRatePO.getInUHARM12OverTime() + limitRatePO.getInUHARM13OverTime() + limitRatePO.getInUHARM14OverTime() + limitRatePO.getInUHARM15OverTime() + limitRatePO.getInUHARM16OverTime());
|
||||
steadyExceedRateVO.setSteadyExceedRate(calculate);
|
||||
} else {
|
||||
steadyExceedRateVO.setSteadyExceedRate(0.00);
|
||||
}
|
||||
|
||||
return steadyExceedRateVO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算一个监测点时间范围统计占比率
|
||||
*/
|
||||
public SteadyExceedRateVO getDataSingleMonitorMoreDay(List<LimitRatePO> qualifiesRate, String lineId) {
|
||||
public SteadyExceedRateVO getDataSingleMonitorMoreDay(List<LimitRatePO> qualifiesRate) {
|
||||
SteadyExceedRateVO steadyExceedRateVO = new SteadyExceedRateVO();
|
||||
List<LimitRatePO> limitRatePOList;
|
||||
List<SteadyExceedRateVO> steadyExceedRateVOS = new ArrayList<>();
|
||||
//从数据里筛选出指定监测点的数据
|
||||
limitRatePOList = qualifiesRate.stream().filter(
|
||||
temp -> temp.getLineId().equalsIgnoreCase(lineId)).collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(limitRatePOList)) {
|
||||
Map<String, List<SteadyExceedRateVO>> timeMap;
|
||||
//获取出时间和id,获取日统计占比率
|
||||
for (LimitRatePO po: limitRatePOList) {
|
||||
SteadyExceedRateVO dataSingleMonitorSingeDay = getDataSingleMonitorSingeDay(qualifiesRate, lineId, po.getDayStr());
|
||||
|
||||
Double rate = dataSingleMonitorSingeDay.getSteadyExceedRate();
|
||||
steadyExceedRateVO.setSteadyExceedRate(rate);
|
||||
steadyExceedRateVOS.add(steadyExceedRateVO);
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(qualifiesRate)) {
|
||||
//直接把所有的时间的信息返回出来
|
||||
steadyExceedRateVOS.addAll(getDataSingleMonitorSingeDay(qualifiesRate));
|
||||
//求时间范围的占比率平均值
|
||||
steadyExceedRateVO.setSteadyExceedRate(NumberUtil.round(steadyExceedRateVOS.stream().mapToDouble(SteadyExceedRateVO::getSteadyExceedRate).average().orElse(0), 2).doubleValue());
|
||||
steadyExceedRateVO.setSteadyExceedRate(NumberUtil.round(steadyExceedRateVOS.stream().filter(x->x.getSteadyExceedRate()!=3.14159)
|
||||
.mapToDouble(SteadyExceedRateVO::getSteadyExceedRate).average().orElse(0), 2).doubleValue());
|
||||
|
||||
}
|
||||
return steadyExceedRateVO;
|
||||
@@ -362,17 +403,21 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
SteadyExceedRateVO steadyExceedRateVO = new SteadyExceedRateVO();
|
||||
List<SteadyExceedRateVO> steadyResults = new ArrayList<>();
|
||||
//以时间分组的各项数据
|
||||
Map<String, List<LimitRatePO>> groupByTimeData = qualifiesRate.stream().collect(Collectors.groupingBy(LimitRatePO::getDayStr));
|
||||
if (CollectionUtil.isNotEmpty(groupByTimeData)) {
|
||||
Set<String> times = groupByTimeData.keySet();
|
||||
for (String time : times) {
|
||||
List<String> ids = groupByTimeData.get(time).stream().map(LimitRatePO::getLineId).collect(Collectors.toList());
|
||||
steadyResults.add(getDataMoreMonitorSingleDay(qualifiesRate, ids, time));
|
||||
}
|
||||
// Map<String, List<LimitRatePO>> groupByTimeData = qualifiesRate.stream().collect(Collectors.groupingBy(LimitRatePO::getDayStr));
|
||||
// if (CollectionUtil.isNotEmpty(groupByTimeData)) {
|
||||
// Set<String> times = groupByTimeData.keySet();
|
||||
// for (String time : times) {
|
||||
// List<String> ids = groupByTimeData.get(time).stream().map(LimitRatePO::getLineId).collect(Collectors.toList());
|
||||
// steadyResults.add(getDataMoreMonitorSingleDay(qualifiesRate, ids, time));
|
||||
// }
|
||||
// }
|
||||
if(CollUtil.isNotEmpty(qualifiesRate)){
|
||||
steadyResults.add(getDataMoreMonitorSingleDay(qualifiesRate,null,null));
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(steadyResults)) {
|
||||
//求区域监测点多天的平均值
|
||||
steadyExceedRateVO.setSteadyExceedRate(PubUtils.dataLimits(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyExceedRateVO::getSteadyExceedRate).average().orElse(0), 2).doubleValue()));
|
||||
steadyExceedRateVO.setSteadyExceedRate(PubUtils.dataLimits(NumberUtil.round(steadyResults.stream().filter(item -> item.getSteadyExceedRate()!=3.14159)
|
||||
.mapToDouble(SteadyExceedRateVO::getSteadyExceedRate).average().orElse(0), 2).doubleValue()));
|
||||
}
|
||||
return steadyExceedRateVO;
|
||||
}
|
||||
@@ -383,9 +428,11 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
public SteadyExceedRateVO getDataMoreMonitorSingleDay(List<LimitRatePO> qualifiesRate, List<String> lineIds, String time) {
|
||||
SteadyExceedRateVO steadyExceedRateVO = new SteadyExceedRateVO();
|
||||
List<SteadyExceedRateVO> steadyResults = new ArrayList<>();
|
||||
for (String lineId : lineIds) {
|
||||
steadyResults.add(getDataSingleMonitorSingeDay(qualifiesRate, lineId, time));
|
||||
}
|
||||
// for (String lineId : lineIds) {
|
||||
// steadyResults.add(getDataSingleMonitorSingeDay(qualifiesRate, lineId, time));
|
||||
// }
|
||||
//直接统计当前部门下面的全部监测点信息
|
||||
steadyResults.addAll(getDataSingleMonitorSingeDay(qualifiesRate));
|
||||
steadyResults = steadyResults.stream().filter(item -> item.getSteadyExceedRate()!=3.14159).collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(steadyResults)) {
|
||||
//求多个监测点的平均值
|
||||
@@ -515,4 +562,19 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 总占比
|
||||
*
|
||||
* @param allTime
|
||||
* @param overTime
|
||||
* @return
|
||||
*/
|
||||
private static double calculate(Integer allTime, Integer overTime) {
|
||||
if (allTime == 0) {
|
||||
return 3.14159;
|
||||
} else {
|
||||
return NumberUtil.round((1 - (overTime / (allTime * 71.0))) * 100, 2).doubleValue();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.njcn.harmonic.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@@ -13,24 +12,16 @@ import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.harmonic.mapper.SteadyQualifyMapper;
|
||||
import com.njcn.harmonic.pojo.dto.SteadyQualifyDTO;
|
||||
import com.njcn.harmonic.pojo.po.LimitRate;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.vo.SteadyQualifyCensusVO;
|
||||
import com.njcn.harmonic.pojo.vo.SteadyQualifyVO;
|
||||
import com.njcn.harmonic.service.IRStatLimitRateDService;
|
||||
import com.njcn.harmonic.service.SteadyQualifyService;
|
||||
import com.njcn.harmonic.utils.PubUtils;
|
||||
import com.njcn.influxdb.param.InfluxDBPublicParam;
|
||||
import com.njcn.influxdb.utils.InfluxDbUtils;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.influxdb.dto.QueryResult;
|
||||
import org.influxdb.impl.InfluxDBResultMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -47,8 +38,6 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
|
||||
private final SteadyQualifyMapper steadyQualifyMapper;
|
||||
|
||||
private final InfluxDbUtils influxDbUtils;
|
||||
|
||||
private final IRStatLimitRateDService rateDService;
|
||||
|
||||
@Override
|
||||
@@ -58,7 +47,7 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
//按照条件获取实际运行终端综合信息
|
||||
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyParam).getData();
|
||||
//组装监测点Top层集合
|
||||
for (GeneralDeviceDTO generalDeviceDTO: deviceDataList) {
|
||||
for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) {
|
||||
List<String> lineIndexes = generalDeviceDTO.getLineIndexes();
|
||||
if (CollectionUtils.isEmpty(lineIndexes)) {
|
||||
continue;
|
||||
@@ -68,19 +57,43 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
steadyQualifyVO.setName(generalDeviceDTO.getName());
|
||||
// List<SteadyQualifyVO> lineData = steadyQualifyMapper.getSteadyQualifyData(lineIndexes);
|
||||
List<SteadyQualifyDTO> qualifiesRate = getQualifiesRate(lineIndexes, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
|
||||
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(qualifiesRate, lineIndexes);
|
||||
if (CollectionUtil.isNotEmpty(treeList)) {
|
||||
List<SteadyQualifyVO> flicker = treeList.stream().filter(s -> s.getFlicker() != 3.14159).collect(Collectors.toList());
|
||||
List<SteadyQualifyVO> freqOffset = treeList.stream().filter(s -> s.getFreqOffset() != 3.14159).collect(Collectors.toList());
|
||||
List<SteadyQualifyVO> voltageOffset = treeList.stream().filter(s -> s.getVoltageOffset() != 3.14159).collect(Collectors.toList());
|
||||
List<SteadyQualifyVO> voltageUnbalance = treeList.stream().filter(s -> s.getVoltageUnbalance() != 3.14159).collect(Collectors.toList());
|
||||
List<SteadyQualifyVO> negativeCurrent = treeList.stream().filter(s -> s.getNegativeCurrent() != 3.14159).collect(Collectors.toList());
|
||||
List<SteadyQualifyVO> harmonicVoltage = treeList.stream().filter(s -> s.getHarmonicVoltage() != 3.14159).collect(Collectors.toList());
|
||||
List<SteadyQualifyVO> harmonicCurrent = treeList.stream().filter(s -> s.getHarmonicCurrent() != 3.14159).collect(Collectors.toList());
|
||||
List<SteadyQualifyVO> interHarmonic = treeList.stream().filter(s -> s.getInterHarmonic() != 3.14159).collect(Collectors.toList());
|
||||
//求各项平均值
|
||||
if (!CollectionUtils.isEmpty(flicker)) {
|
||||
steadyQualifyVO.setFlicker(PubUtils.dataLimits(NumberUtil.round(flicker.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue()));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(freqOffset)) {
|
||||
steadyQualifyVO.setFreqOffset(PubUtils.dataLimits(NumberUtil.round(freqOffset.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue()));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(voltageOffset)) {
|
||||
steadyQualifyVO.setVoltageOffset(PubUtils.dataLimits(NumberUtil.round(voltageOffset.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue()));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(voltageUnbalance)) {
|
||||
steadyQualifyVO.setVoltageUnbalance(PubUtils.dataLimits(NumberUtil.round(voltageUnbalance.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue()));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(negativeCurrent)) {
|
||||
steadyQualifyVO.setNegativeCurrent(PubUtils.dataLimits(NumberUtil.round(negativeCurrent.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue()));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(harmonicVoltage)) {
|
||||
steadyQualifyVO.setHarmonicVoltage(PubUtils.dataLimits(NumberUtil.round(harmonicVoltage.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue()));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(harmonicCurrent)) {
|
||||
steadyQualifyVO.setHarmonicCurrent(PubUtils.dataLimits(NumberUtil.round(harmonicCurrent.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue()));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(interHarmonic)) {
|
||||
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(NumberUtil.round(interHarmonic.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue()));
|
||||
}
|
||||
}
|
||||
//组装父级数据树
|
||||
List<SteadyQualifyVO> treeList = getTreeData(lineIndexes, steadyParam);
|
||||
steadyQualifyVO.setChildren(treeList);
|
||||
steadyQualifyList.add(steadyQualifyVO);
|
||||
}
|
||||
@@ -98,7 +111,7 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
harmonicCurrent = new ArrayList<>(), negativeCurrent = new ArrayList<>(),
|
||||
freqOffset = new ArrayList<>(), flicker = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(deviceDataList)) {
|
||||
for (GeneralDeviceDTO generalDeviceDTO: deviceDataList){
|
||||
for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) {
|
||||
List<String> lineIndexes = generalDeviceDTO.getLineIndexes();
|
||||
if (CollectionUtils.isEmpty(lineIndexes)) {
|
||||
continue;
|
||||
@@ -132,7 +145,7 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
/**
|
||||
* 获取父级每层数据
|
||||
*/
|
||||
private List<SteadyQualifyVO> getTreeData(List<String> lineIndexes, DeviceInfoParam.BusinessParam steadyParam) {
|
||||
private List<SteadyQualifyVO> getTreeData(List<SteadyQualifyDTO> qualifiesRate, List<String> lineIndexes) {
|
||||
//监测点集合
|
||||
List<SteadyQualifyVO> monitorList = steadyQualifyMapper.getSteadyQualifyData(lineIndexes);
|
||||
//母线集合
|
||||
@@ -144,7 +157,7 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
//供电公司集合
|
||||
List<SteadyQualifyVO> powerCompanyList = steadyQualifyMapper.getLineInfoByList(substationList.stream().map(SteadyQualifyVO::getPid).distinct().collect(Collectors.toList()));
|
||||
|
||||
List<SteadyQualifyDTO> qualifiesRate = getQualifiesRate(lineIndexes, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
|
||||
// List<SteadyQualifyDTO> qualifiesRate = getQualifiesRate(lineIndexes, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
|
||||
monitorList.forEach(steadyQualifyVO -> {
|
||||
SteadyQualifyVO dataSingleMonitorMoreDay = getDataSingleMonitorMoreDay(qualifiesRate, steadyQualifyVO.getId());
|
||||
steadyQualifyVO.setFlicker(PubUtils.dataLimits(dataSingleMonitorMoreDay.getFlicker()));
|
||||
@@ -156,7 +169,7 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
steadyQualifyVO.setHarmonicCurrent(PubUtils.dataLimits(dataSingleMonitorMoreDay.getHarmonicCurrent()));
|
||||
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(dataSingleMonitorMoreDay.getInterHarmonic()));
|
||||
});
|
||||
setChildesList(substationList,monitorList);
|
||||
setChildesList(substationList, monitorList);
|
||||
setFatherDistortion(substationList);
|
||||
|
||||
powerCompanyList.stream().peek(item -> item.setChildren(getChildCategoryList(item, substationList))).collect(Collectors.toList());
|
||||
@@ -212,6 +225,7 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
private List<SteadyQualifyVO> getChildCategoryList(SteadyQualifyVO item, List<SteadyQualifyVO> child) {
|
||||
return child.stream().filter(allItem -> allItem.getPid().equals(item.getId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private void setChildesList(List<SteadyQualifyVO> item, List<SteadyQualifyVO> childes) {
|
||||
Map<String, List<SteadyQualifyVO>> groupLine;
|
||||
groupLine = childes.stream().collect(Collectors.groupingBy(steadyQualifyVO -> {
|
||||
@@ -228,31 +242,33 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
/**
|
||||
* 计算监测点日统计合格率
|
||||
*/
|
||||
public SteadyQualifyVO getDataSingleMonitorSingeDay(List<SteadyQualifyDTO> qualifiesRate, String lineId, String time) {
|
||||
public List<SteadyQualifyVO> getDataSingleMonitorSingeDay(List<SteadyQualifyDTO> qualifiesRate) {
|
||||
List<SteadyQualifyVO> list = new ArrayList<>();
|
||||
SteadyQualifyVO steadyQualifyVO = new SteadyQualifyVO();
|
||||
List<SteadyQualifyDTO> steadyQualifyDTOList = qualifiesRate.stream().filter(
|
||||
temp -> temp.getMYINDEX().equalsIgnoreCase(lineId) && temp.getTime().equalsIgnoreCase(time)
|
||||
).collect(Collectors.toList());
|
||||
if (!CollectionUtil.isEmpty(steadyQualifyDTOList)) {
|
||||
SteadyQualifyDTO steadyQualifyDTO = steadyQualifyDTOList.get(0);
|
||||
//闪变合格率
|
||||
steadyQualifyVO.setFlicker(calculate(steadyQualifyDTO.getFlicker_AllTime(), steadyQualifyDTO.getFlicker_OverTime()));
|
||||
//频率偏差合格率
|
||||
steadyQualifyVO.setFreqOffset(calculate(steadyQualifyDTO.getAllTime(), steadyQualifyDTO.getFreq_Dev_OverTime()));
|
||||
//计算电压偏差
|
||||
steadyQualifyVO.setVoltageOffset(calculate(steadyQualifyDTO.getAllTime(), steadyQualifyDTO.getVoltage_Dev_OverTime()));
|
||||
//相电压不平衡度
|
||||
steadyQualifyVO.setVoltageUnbalance(calculate(steadyQualifyDTO.getAllTime(), steadyQualifyDTO.getUBalance_OverTime()));
|
||||
//负序电流
|
||||
steadyQualifyVO.setNegativeCurrent(calculate(steadyQualifyDTO.getAllTime(), steadyQualifyDTO.getI_Neg_OverTime()));
|
||||
//谐波电压
|
||||
steadyQualifyVO.setHarmonicVoltage(calculate(steadyQualifyDTO.getAllTime(), NumberUtil.max(steadyQualifyDTO.getUAberrance_OverTime(), steadyQualifyDTO.getUHarm_2_OverTime(), steadyQualifyDTO.getUHarm_3_OverTime(), steadyQualifyDTO.getUHarm_4_OverTime(), steadyQualifyDTO.getUHarm_5_OverTime(), steadyQualifyDTO.getUHarm_6_OverTime(), steadyQualifyDTO.getUHarm_7_OverTime(), steadyQualifyDTO.getUHarm_8_OverTime(), steadyQualifyDTO.getUHarm_9_OverTime(), steadyQualifyDTO.getUHarm_10_OverTime(), steadyQualifyDTO.getUHarm_11_OverTime(), steadyQualifyDTO.getUHarm_12_OverTime(), steadyQualifyDTO.getUHarm_13_OverTime(), steadyQualifyDTO.getUHarm_14_OverTime(), steadyQualifyDTO.getUHarm_15_OverTime(), steadyQualifyDTO.getUHarm_16_OverTime(), steadyQualifyDTO.getUHarm_17_OverTime(), steadyQualifyDTO.getUHarm_18_OverTime(), steadyQualifyDTO.getUHarm_19_OverTime(), steadyQualifyDTO.getUHarm_20_OverTime(), steadyQualifyDTO.getUHarm_21_OverTime(), steadyQualifyDTO.getUHarm_22_OverTime(), steadyQualifyDTO.getUHarm_23_OverTime(), steadyQualifyDTO.getUHarm_24_OverTime(), steadyQualifyDTO.getUHarm_25_OverTime())));
|
||||
//谐波电流
|
||||
steadyQualifyVO.setHarmonicCurrent(calculate(steadyQualifyDTO.getAllTime(), NumberUtil.max(steadyQualifyDTO.getIHarm_2_OverTime(), steadyQualifyDTO.getIHarm_3_OverTime(), steadyQualifyDTO.getIHarm_4_OverTime(), steadyQualifyDTO.getIHarm_5_OverTime(), steadyQualifyDTO.getIHarm_6_OverTime(), steadyQualifyDTO.getIHarm_7_OverTime(), steadyQualifyDTO.getIHarm_8_OverTime(), steadyQualifyDTO.getIHarm_9_OverTime(), steadyQualifyDTO.getIHarm_10_OverTime(), steadyQualifyDTO.getIHarm_11_OverTime(), steadyQualifyDTO.getIHarm_12_OverTime(), steadyQualifyDTO.getIHarm_13_OverTime(), steadyQualifyDTO.getIHarm_14_OverTime(), steadyQualifyDTO.getIHarm_15_OverTime(), steadyQualifyDTO.getIHarm_16_OverTime(), steadyQualifyDTO.getIHarm_17_OverTime(), steadyQualifyDTO.getIHarm_18_OverTime(), steadyQualifyDTO.getIHarm_19_OverTime(), steadyQualifyDTO.getIHarm_20_OverTime(), steadyQualifyDTO.getIHarm_21_OverTime(), steadyQualifyDTO.getIHarm_22_OverTime(), steadyQualifyDTO.getIHarm_23_OverTime(), steadyQualifyDTO.getIHarm_24_OverTime(), steadyQualifyDTO.getIHarm_25_OverTime())));
|
||||
//间谐波电压含有率
|
||||
steadyQualifyVO.setInterHarmonic(calculate(steadyQualifyDTO.getAllTime(), NumberUtil.max(steadyQualifyDTO.getInUHARM_1_OverTime(), steadyQualifyDTO.getInUHARM_2_OverTime(), steadyQualifyDTO.getInUHARM_3_OverTime(), steadyQualifyDTO.getInUHARM_4_OverTime(), steadyQualifyDTO.getInUHARM_5_OverTime(), steadyQualifyDTO.getInUHARM_6_OverTime(), steadyQualifyDTO.getInUHARM_7_OverTime(), steadyQualifyDTO.getInUHARM_8_OverTime(), steadyQualifyDTO.getInUHARM_9_OverTime(), steadyQualifyDTO.getInUHARM_10_OverTime(), steadyQualifyDTO.getInUHARM_11_OverTime(), steadyQualifyDTO.getInUHARM_12_OverTime(), steadyQualifyDTO.getInUHARM_13_OverTime(), steadyQualifyDTO.getInUHARM_14_OverTime(), steadyQualifyDTO.getInUHARM_15_OverTime(), steadyQualifyDTO.getInUHARM_16_OverTime())));
|
||||
|
||||
if (!CollectionUtil.isEmpty(qualifiesRate)) {
|
||||
for (SteadyQualifyDTO steadyQualifyDTO : qualifiesRate) {
|
||||
steadyQualifyVO = new SteadyQualifyVO();
|
||||
//闪变合格率
|
||||
steadyQualifyVO.setFlicker(calculate(steadyQualifyDTO.getFlicker_AllTime(), steadyQualifyDTO.getFlicker_OverTime()));
|
||||
//频率偏差合格率
|
||||
steadyQualifyVO.setFreqOffset(calculate(steadyQualifyDTO.getAllTime(), steadyQualifyDTO.getFreq_Dev_OverTime()));
|
||||
//计算电压偏差
|
||||
steadyQualifyVO.setVoltageOffset(calculate(steadyQualifyDTO.getAllTime(), steadyQualifyDTO.getVoltage_Dev_OverTime()));
|
||||
//相电压不平衡度
|
||||
steadyQualifyVO.setVoltageUnbalance(calculate(steadyQualifyDTO.getAllTime(), steadyQualifyDTO.getUBalance_OverTime()));
|
||||
//负序电流
|
||||
steadyQualifyVO.setNegativeCurrent(calculate(steadyQualifyDTO.getAllTime(), steadyQualifyDTO.getI_Neg_OverTime()));
|
||||
//谐波电压
|
||||
steadyQualifyVO.setHarmonicVoltage(calculateV(steadyQualifyDTO.getAllTime(), (steadyQualifyDTO.getUAberrance_OverTime() + steadyQualifyDTO.getUHarm_2_OverTime() + steadyQualifyDTO.getUHarm_3_OverTime() + steadyQualifyDTO.getUHarm_4_OverTime() + steadyQualifyDTO.getUHarm_5_OverTime() + steadyQualifyDTO.getUHarm_6_OverTime() + steadyQualifyDTO.getUHarm_7_OverTime() + steadyQualifyDTO.getUHarm_8_OverTime() + steadyQualifyDTO.getUHarm_9_OverTime() + steadyQualifyDTO.getUHarm_10_OverTime() + steadyQualifyDTO.getUHarm_11_OverTime() + steadyQualifyDTO.getUHarm_12_OverTime() + steadyQualifyDTO.getUHarm_13_OverTime() + steadyQualifyDTO.getUHarm_14_OverTime() + steadyQualifyDTO.getUHarm_15_OverTime() + steadyQualifyDTO.getUHarm_16_OverTime() + steadyQualifyDTO.getUHarm_17_OverTime() + steadyQualifyDTO.getUHarm_18_OverTime() + steadyQualifyDTO.getUHarm_19_OverTime() + steadyQualifyDTO.getUHarm_20_OverTime() + steadyQualifyDTO.getUHarm_21_OverTime() + steadyQualifyDTO.getUHarm_22_OverTime() + steadyQualifyDTO.getUHarm_23_OverTime() + steadyQualifyDTO.getUHarm_24_OverTime() + steadyQualifyDTO.getUHarm_25_OverTime())));
|
||||
//谐波电流
|
||||
steadyQualifyVO.setHarmonicCurrent(calculateI(steadyQualifyDTO.getAllTime(), (steadyQualifyDTO.getIHarm_2_OverTime() + steadyQualifyDTO.getIHarm_3_OverTime() + steadyQualifyDTO.getIHarm_4_OverTime() + steadyQualifyDTO.getIHarm_5_OverTime() + steadyQualifyDTO.getIHarm_6_OverTime() + steadyQualifyDTO.getIHarm_7_OverTime() + steadyQualifyDTO.getIHarm_8_OverTime() + steadyQualifyDTO.getIHarm_9_OverTime() + steadyQualifyDTO.getIHarm_10_OverTime() + steadyQualifyDTO.getIHarm_11_OverTime() + steadyQualifyDTO.getIHarm_12_OverTime() + steadyQualifyDTO.getIHarm_13_OverTime() + steadyQualifyDTO.getIHarm_14_OverTime() + steadyQualifyDTO.getIHarm_15_OverTime() + steadyQualifyDTO.getIHarm_16_OverTime() + steadyQualifyDTO.getIHarm_17_OverTime() + steadyQualifyDTO.getIHarm_18_OverTime() + steadyQualifyDTO.getIHarm_19_OverTime() + steadyQualifyDTO.getIHarm_20_OverTime() + steadyQualifyDTO.getIHarm_21_OverTime() + steadyQualifyDTO.getIHarm_22_OverTime() + steadyQualifyDTO.getIHarm_23_OverTime() + steadyQualifyDTO.getIHarm_24_OverTime() + steadyQualifyDTO.getIHarm_25_OverTime())));
|
||||
//间谐波电压含有率
|
||||
steadyQualifyVO.setInterHarmonic(calculateIN(steadyQualifyDTO.getAllTime(), (steadyQualifyDTO.getInUHARM_1_OverTime() + steadyQualifyDTO.getInUHARM_2_OverTime() + steadyQualifyDTO.getInUHARM_3_OverTime() + steadyQualifyDTO.getInUHARM_4_OverTime() + steadyQualifyDTO.getInUHARM_5_OverTime() + steadyQualifyDTO.getInUHARM_6_OverTime() + steadyQualifyDTO.getInUHARM_7_OverTime() + steadyQualifyDTO.getInUHARM_8_OverTime() + steadyQualifyDTO.getInUHARM_9_OverTime() + steadyQualifyDTO.getInUHARM_10_OverTime() + steadyQualifyDTO.getInUHARM_11_OverTime() + steadyQualifyDTO.getInUHARM_12_OverTime() + steadyQualifyDTO.getInUHARM_13_OverTime() + steadyQualifyDTO.getInUHARM_14_OverTime() + steadyQualifyDTO.getInUHARM_15_OverTime() + steadyQualifyDTO.getInUHARM_16_OverTime())));
|
||||
list.add(steadyQualifyVO);
|
||||
}
|
||||
}
|
||||
return steadyQualifyVO;
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -265,10 +281,8 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
temp -> temp.getMYINDEX().equalsIgnoreCase(lineId)).collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(steadyQualifyDTOList)) {
|
||||
List<SteadyQualifyVO> steadyQualifyVOS = new ArrayList<>();
|
||||
//获取出时间和id,调用第一个方法
|
||||
for (SteadyQualifyDTO steadyQualifyDTO : steadyQualifyDTOList) {
|
||||
steadyQualifyVOS.add(getDataSingleMonitorSingeDay(qualifiesRate, lineId, steadyQualifyDTO.getTime()));
|
||||
}
|
||||
//获取出时间和id,调用第一个方法(改展示一条数据,可以不用每天都统计)
|
||||
steadyQualifyVOS.addAll(getDataSingleMonitorSingeDay(steadyQualifyDTOList));
|
||||
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());
|
||||
@@ -280,28 +294,28 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
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());
|
||||
steadyQualifyVO.setFlicker(NumberUtil.round(flicker.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());
|
||||
steadyQualifyVO.setFreqOffset(NumberUtil.round(freqOffset.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());
|
||||
steadyQualifyVO.setVoltageOffset(NumberUtil.round(voltageOffset.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());
|
||||
steadyQualifyVO.setVoltageUnbalance(NumberUtil.round(voltageUnbalance.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());
|
||||
steadyQualifyVO.setNegativeCurrent(NumberUtil.round(negativeCurrent.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());
|
||||
steadyQualifyVO.setHarmonicVoltage(NumberUtil.round(harmonicVoltage.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());
|
||||
steadyQualifyVO.setHarmonicCurrent(NumberUtil.round(harmonicCurrent.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());
|
||||
steadyQualifyVO.setInterHarmonic(NumberUtil.round(interHarmonic.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -314,15 +328,8 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
public SteadyQualifyVO getDataMoreMonitorMoreDay(List<SteadyQualifyDTO> qualifiesRate) {
|
||||
SteadyQualifyVO steadyQualifyVO = new SteadyQualifyVO();
|
||||
List<SteadyQualifyVO> steadyResults = new ArrayList<>();
|
||||
//以时间分组的各项数据
|
||||
Map<String, List<SteadyQualifyDTO>> groupByTimeData = qualifiesRate.stream().collect(Collectors.groupingBy(SteadyQualifyDTO::getTime));
|
||||
if (CollectionUtil.isNotEmpty(groupByTimeData)) {
|
||||
Set<String> times = groupByTimeData.keySet();
|
||||
for (String time : times) {
|
||||
List<String> ids = groupByTimeData.get(time).stream().map(SteadyQualifyDTO::getMYINDEX).collect(Collectors.toList());
|
||||
steadyResults.add(getDataMoreMonitorSingleDay(qualifiesRate, ids, time));
|
||||
}
|
||||
}
|
||||
//获取所有监测点每天信息(根本不需要时间分组,只是要所有的统计)
|
||||
steadyResults.addAll(getDataSingleMonitorSingeDay(qualifiesRate));
|
||||
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());
|
||||
@@ -364,53 +371,54 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
/**
|
||||
* 计算区域监测点日统计合格率
|
||||
*/
|
||||
public SteadyQualifyVO getDataMoreMonitorSingleDay(List<SteadyQualifyDTO> qualifiesRate, List<String> lineIds, String time) {
|
||||
SteadyQualifyVO steadyQualifyVO = new SteadyQualifyVO();
|
||||
List<SteadyQualifyVO> steadyResults = new ArrayList<>();
|
||||
for (String lineId : lineIds) {
|
||||
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());
|
||||
//求各项平均值
|
||||
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;
|
||||
}
|
||||
// public SteadyQualifyVO getDataMoreMonitorSingleDay(List<SteadyQualifyDTO> qualifiesRate, List<String> lineIds, String time) {
|
||||
// SteadyQualifyVO steadyQualifyVO = new SteadyQualifyVO();
|
||||
// List<SteadyQualifyVO> steadyResults = new ArrayList<>();
|
||||
// for (String lineId : lineIds) {
|
||||
// steadyResults.addAll(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());
|
||||
// //求各项平均值
|
||||
// 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;
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
* influxDB查询稳态监测点相关信息
|
||||
*
|
||||
* @param lineIndexes
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
@@ -419,13 +427,14 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
List<SteadyQualifyDTO> qualifyDTOList = new ArrayList<>();
|
||||
List<RStatLimitRateDPO> limitRates = rateDService.list(new LambdaQueryWrapper<RStatLimitRateDPO>()
|
||||
.in(RStatLimitRateDPO::getLineId, lineIndexes)
|
||||
.eq(RStatLimitRateDPO::getPhasicType, "T")
|
||||
.ge(StrUtil.isNotBlank(startTime), RStatLimitRateDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(startTime)))
|
||||
.le(StrUtil.isNotBlank(endTime), RStatLimitRateDPO::getTime, DateUtil.endOfDay(DateUtil.parse(endTime)))
|
||||
);
|
||||
if(CollUtil.isNotEmpty(limitRates)){
|
||||
limitRates.forEach(list ->{
|
||||
if (CollUtil.isNotEmpty(limitRates)) {
|
||||
limitRates.forEach(list -> {
|
||||
SteadyQualifyDTO steadyQualifyDTO = new SteadyQualifyDTO();
|
||||
steadyQualifyDTO.setTime(DateUtil.format(list.getTime(),"yyyy-MM-dd HH:mm:ss.SSS"));
|
||||
steadyQualifyDTO.setTime(DateUtil.format(list.getTime(), "yyyy-MM-dd HH:mm:ss.SSS"));
|
||||
steadyQualifyDTO.setMYINDEX(list.getLineId());
|
||||
steadyQualifyDTO.setPhasic_Type(list.getPhasicType());
|
||||
steadyQualifyDTO.setAllTime(Double.parseDouble(list.getAllTime().toString()));
|
||||
@@ -505,120 +514,72 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
||||
}
|
||||
return qualifyDTOList;
|
||||
|
||||
// //组装sql语句
|
||||
// StringBuilder timeId = new StringBuilder();
|
||||
// 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(InfluxDBPublicParam.LINE_ID + "='").append(lineIndexes.get(i)).append("' or ");
|
||||
// } else {
|
||||
// timeId.append(InfluxDBPublicParam.LINE_ID + "='").append(lineIndexes.get(i)).append("' tz('Asia/Shanghai')");
|
||||
// }
|
||||
// }
|
||||
// //sql语句
|
||||
// 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);
|
||||
// limitRates.forEach(list ->{
|
||||
// SteadyQualifyDTO steadyQualifyDTO = new SteadyQualifyDTO();
|
||||
// LocalDateTime localDateTime = LocalDateTime.ofInstant(list.getTime(), ZoneId.systemDefault());
|
||||
// DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
|
||||
// steadyQualifyDTO.setTime(dateTimeFormatter.format(localDateTime));
|
||||
// steadyQualifyDTO.setMYINDEX(list.getLineId());
|
||||
// steadyQualifyDTO.setPhasic_Type(list.getPhasicType());
|
||||
// steadyQualifyDTO.setAllTime(Double.parseDouble(list.getAllTime().toString()));
|
||||
// steadyQualifyDTO.setFlicker_AllTime(Double.parseDouble(list.getFlickerAllTime().toString()));
|
||||
// steadyQualifyDTO.setFlicker_OverTime(Double.parseDouble(list.getFlickerOverTime().toString()));
|
||||
// steadyQualifyDTO.setFreq_Dev_OverTime(Double.parseDouble(list.getFreqDevOverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_2_OverTime(Double.parseDouble(list.getIHarm2OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_3_OverTime(Double.parseDouble(list.getIHarm3OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_4_OverTime(Double.parseDouble(list.getIHarm4OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_5_OverTime(Double.parseDouble(list.getIHarm5OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_6_OverTime(Double.parseDouble(list.getIHarm6OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_7_OverTime(Double.parseDouble(list.getIHarm7OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_8_OverTime(Double.parseDouble(list.getIHarm8OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_9_OverTime(Double.parseDouble(list.getIHarm9OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_10_OverTime(Double.parseDouble(list.getIHarm10OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_11_OverTime(Double.parseDouble(list.getIHarm11OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_12_OverTime(Double.parseDouble(list.getIHarm12OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_13_OverTime(Double.parseDouble(list.getIHarm13OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_14_OverTime(Double.parseDouble(list.getIHarm14OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_15_OverTime(Double.parseDouble(list.getIHarm15OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_16_OverTime(Double.parseDouble(list.getIHarm16OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_17_OverTime(Double.parseDouble(list.getIHarm17OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_18_OverTime(Double.parseDouble(list.getIHarm18OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_19_OverTime(Double.parseDouble(list.getIHarm19OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_20_OverTime(Double.parseDouble(list.getIHarm20OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_21_OverTime(Double.parseDouble(list.getIHarm21OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_22_OverTime(Double.parseDouble(list.getIHarm22OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_23_OverTime(Double.parseDouble(list.getIHarm23OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_24_OverTime(Double.parseDouble(list.getIHarm24OverTime().toString()));
|
||||
// steadyQualifyDTO.setIHarm_25_OverTime(Double.parseDouble(list.getIHarm25OverTime().toString()));
|
||||
// steadyQualifyDTO.setI_Neg_OverTime(Double.parseDouble(list.getINegOverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_1_OverTime(Double.parseDouble(list.getInuHarm1OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_2_OverTime(Double.parseDouble(list.getInuHarm2OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_3_OverTime(Double.parseDouble(list.getInuHarm3OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_4_OverTime(Double.parseDouble(list.getInuHarm4OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_5_OverTime(Double.parseDouble(list.getInuHarm5OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_6_OverTime(Double.parseDouble(list.getInuHarm6OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_7_OverTime(Double.parseDouble(list.getInuHarm7OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_8_OverTime(Double.parseDouble(list.getInuHarm8OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_9_OverTime(Double.parseDouble(list.getInuHarm9OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_10_OverTime(Double.parseDouble(list.getInuHarm10OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_11_OverTime(Double.parseDouble(list.getInuHarm11OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_12_OverTime(Double.parseDouble(list.getInuHarm12OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_13_OverTime(Double.parseDouble(list.getInuHarm13OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_14_OverTime(Double.parseDouble(list.getInuHarm14OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_15_OverTime(Double.parseDouble(list.getInuHarm15OverTime().toString()));
|
||||
// steadyQualifyDTO.setInUHARM_16_OverTime(Double.parseDouble(list.getInuHarm16OverTime().toString()));
|
||||
// steadyQualifyDTO.setUAberrance_OverTime(Double.parseDouble(list.getUAberranceOverTime().toString()));
|
||||
// steadyQualifyDTO.setUBalance_OverTime(Double.parseDouble(list.getUBalanceOverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_2_OverTime(Double.parseDouble(list.getUHarm2OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_3_OverTime(Double.parseDouble(list.getUHarm3OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_4_OverTime(Double.parseDouble(list.getUHarm4OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_5_OverTime(Double.parseDouble(list.getUHarm5OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_6_OverTime(Double.parseDouble(list.getUHarm6OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_7_OverTime(Double.parseDouble(list.getUHarm7OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_8_OverTime(Double.parseDouble(list.getUHarm8OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_9_OverTime(Double.parseDouble(list.getUHarm9OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_10_OverTime(Double.parseDouble(list.getUHarm10OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_11_OverTime(Double.parseDouble(list.getUHarm11OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_12_OverTime(Double.parseDouble(list.getUHarm12OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_13_OverTime(Double.parseDouble(list.getUHarm13OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_14_OverTime(Double.parseDouble(list.getUHarm14OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_15_OverTime(Double.parseDouble(list.getUHarm15OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_16_OverTime(Double.parseDouble(list.getUHarm16OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_17_OverTime(Double.parseDouble(list.getUHarm17OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_18_OverTime(Double.parseDouble(list.getUHarm18OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_19_OverTime(Double.parseDouble(list.getUHarm19OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_20_OverTime(Double.parseDouble(list.getUHarm20OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_21_OverTime(Double.parseDouble(list.getUHarm21OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_22_OverTime(Double.parseDouble(list.getUHarm22OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_23_OverTime(Double.parseDouble(list.getUHarm23OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_24_OverTime(Double.parseDouble(list.getUHarm24OverTime().toString()));
|
||||
// steadyQualifyDTO.setUHarm_25_OverTime(Double.parseDouble(list.getUHarm25OverTime().toString()));
|
||||
// steadyQualifyDTO.setVoltage_Dev_OverTime(Double.parseDouble(list.getVoltageDevOverTime().toString()));
|
||||
// qualifyDTOList.add(steadyQualifyDTO);
|
||||
// });
|
||||
//
|
||||
//
|
||||
// return qualifyDTOList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static double calculate(Double allTime, Double overTime) {
|
||||
if (allTime == 0) {
|
||||
return 3.14159;
|
||||
} else {
|
||||
if (allTime >= overTime){
|
||||
if (allTime >= overTime) {
|
||||
return NumberUtil.round((allTime - overTime) / allTime * 100, 2).doubleValue();
|
||||
}
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 电压
|
||||
*
|
||||
* @param allTime 总条数
|
||||
* @param overTime 相加
|
||||
* @return
|
||||
*/
|
||||
private static double calculateV(Double allTime, Double overTime) {
|
||||
if (allTime == 0) {
|
||||
return 3.14159;
|
||||
} else {
|
||||
if (allTime >= overTime) {
|
||||
return NumberUtil.round((1 - (overTime / (allTime * 25))) * 100, 2).doubleValue();
|
||||
}
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 电流
|
||||
*
|
||||
* @param allTime
|
||||
* @param overTime
|
||||
* @return
|
||||
*/
|
||||
private static double calculateI(Double allTime, Double overTime) {
|
||||
if (allTime == 0) {
|
||||
return 3.14159;
|
||||
} else {
|
||||
if (allTime >= overTime) {
|
||||
return NumberUtil.round((1 - (overTime / (allTime * 24))) * 100, 2).doubleValue();
|
||||
}
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 间谐波
|
||||
*
|
||||
* @param allTime
|
||||
* @param overTime
|
||||
* @return
|
||||
*/
|
||||
private static double calculateIN(Double allTime, Double overTime) {
|
||||
if (allTime == 0) {
|
||||
return 3.14159;
|
||||
} else {
|
||||
if (allTime >= overTime) {
|
||||
return NumberUtil.round((1 - (overTime / (allTime * 16))) * 100, 2).doubleValue();
|
||||
}
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user