1.调整配网用户接口超100%问题
2.去除预处理县级数据统计
This commit is contained in:
@@ -466,11 +466,11 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
||||
monitorLimitRateVO.setUbalanceOvertime(BigDecimal.valueOf(3.14159));
|
||||
monitorLimitRateVO.setVoltageDevOvertime(BigDecimal.valueOf(3.14159));
|
||||
}else {
|
||||
monitorLimitRateVO.setFlickerOvertime(BigDecimal.valueOf((double) item.getFlickerOvertime()/item.getFlickerAllTime()*100).setScale(2, RoundingMode.HALF_UP));
|
||||
monitorLimitRateVO.setFreqDevOvertime(BigDecimal.valueOf((double) item.getFreqDevOvertime()/item.getAllTime()*100).setScale(2, RoundingMode.HALF_UP));
|
||||
monitorLimitRateVO.setUaberranceOvertime(BigDecimal.valueOf((double) item.getUaberranceOvertime()/item.getAllTime()*100).setScale(2, RoundingMode.HALF_UP));
|
||||
monitorLimitRateVO.setUbalanceOvertime(BigDecimal.valueOf((double) item.getUbalanceOvertime()/item.getAllTime()*100).setScale(2, RoundingMode.HALF_UP));
|
||||
monitorLimitRateVO.setVoltageDevOvertime(BigDecimal.valueOf((double) item.getVoltageDevOvertime()/item.getAllTime()*100).setScale(2, RoundingMode.HALF_UP));
|
||||
monitorLimitRateVO.setFlickerOvertime(calculatePercentage(item.getFlickerOvertime(),item.getFlickerAllTime()));
|
||||
monitorLimitRateVO.setFreqDevOvertime(calculatePercentage(item.getFreqDevOvertime(),item.getAllTime()));
|
||||
monitorLimitRateVO.setUaberranceOvertime(calculatePercentage(item.getUaberranceOvertime(),item.getAllTime()));
|
||||
monitorLimitRateVO.setUbalanceOvertime(calculatePercentage(item.getUbalanceOvertime(),item.getAllTime()));
|
||||
monitorLimitRateVO.setVoltageDevOvertime(calculatePercentage(item.getVoltageDevOvertime(),item.getAllTime()));
|
||||
}
|
||||
setUharmOvertimeRatios(item,monitorLimitRateVO);
|
||||
resultList.add(monitorLimitRateVO);
|
||||
@@ -480,6 +480,32 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 计算百分比,结果不超过100
|
||||
*
|
||||
* @param flickerOvertime 闪烁超时时间
|
||||
* @param flickerAllTime 总闪烁时间
|
||||
* @return 计算的百分比(如果结果超过100,则返回100)
|
||||
*/
|
||||
public BigDecimal calculatePercentage(Integer flickerOvertime, Integer flickerAllTime) {
|
||||
// 检查参数是否为null
|
||||
if (flickerOvertime == null || flickerAllTime == null) {
|
||||
throw new IllegalArgumentException("方法遇到不合法参数");
|
||||
}
|
||||
// 将Integer转换为BigDecimal进行计算
|
||||
BigDecimal overtime = BigDecimal.valueOf(flickerOvertime);
|
||||
BigDecimal allTime = BigDecimal.valueOf(flickerAllTime);
|
||||
|
||||
// 计算百分比
|
||||
BigDecimal percentage = overtime.divide(allTime, 10, RoundingMode.HALF_UP)
|
||||
.multiply(BigDecimal.valueOf(100))
|
||||
.setScale(2, RoundingMode.HALF_UP);
|
||||
|
||||
// 如果百分比超过100,则调整为100
|
||||
return percentage.compareTo(BigDecimal.valueOf(100)) > 0 ? BigDecimal.valueOf(100) : percentage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PwLimitDataVO> pwMonitorLimitDataRange(PwUserMonitorParam pwUserMonitorParam) {
|
||||
List<PwLimitDataVO> result = new ArrayList<>();
|
||||
@@ -637,6 +663,7 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
||||
} else {
|
||||
BigDecimal ratio = BigDecimal.valueOf((double) uharmOvertime / allTime*100)
|
||||
.setScale(2, RoundingMode.HALF_UP);
|
||||
ratio = ratio.compareTo(BigDecimal.valueOf(100)) > 0 ? BigDecimal.valueOf(100) : ratio;
|
||||
monitorLimitRateVO.getClass().getMethod(setterName, BigDecimal.class)
|
||||
.invoke(monitorLimitRateVO, ratio);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user