1.解决监测点超标问题
This commit is contained in:
@@ -423,7 +423,14 @@
|
||||
THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
) allOvertime
|
||||
) allOvertime,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN A.flickerAllTime > 0
|
||||
THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
) flickerAllTime
|
||||
FROM
|
||||
(SELECT
|
||||
time_id,
|
||||
@@ -434,6 +441,7 @@
|
||||
SUM(ubalance_overtime) AS ubalanceOvertime,
|
||||
SUM(uaberrance_overtime) AS uaberranceOvertime,
|
||||
SUM(i_neg_overtime) AS iNegOvertime,
|
||||
SUM(flicker_all_time) AS flickerAllTime,
|
||||
SUM(
|
||||
IF(
|
||||
(
|
||||
|
||||
@@ -527,7 +527,7 @@ public class GridServiceImpl implements IGridService {
|
||||
detail9.setTargetName(DicDataEnum.INTERHARMONIC_VOLTAGE.getName());
|
||||
if (CollUtil.isNotEmpty(list2)) {
|
||||
//筛选出9项指标(电压偏差、频率偏差、电压总谐波畸变率、电压闪变、三相电压不平衡度、负序电流、谐波电流、间谐波电压、谐波电压)超标监测点
|
||||
long allNum = list2.stream().filter(o->o.getAllOvertime() > 0).count();
|
||||
long allNum = list2.stream().filter(o->o.getAllOvertime() > 0|| o.getFlickerAllTime()>0).count();
|
||||
detail.setOverNum((int) allNum);
|
||||
detail.setOverRatio(PubUtils.doubleRound(2,detail.getOverNum()*100.0/detail.getOnlineNum()));
|
||||
//筛选出电压偏差超标监测点
|
||||
|
||||
@@ -699,9 +699,8 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
||||
if (CollUtil.isNotEmpty(limitTarget)) {
|
||||
long count = limitTarget.stream()
|
||||
.filter(x -> x.getAllTime() > 0 || x.getFlickerAllTime() > 0)
|
||||
.distinct()
|
||||
.map(RStatLimitTargetDPO::getLineId).count();
|
||||
lineData.setOutOfStandardRate(NumberUtil.round(count * 100.0 / limitTarget.size(), 2).floatValue());
|
||||
.map(RStatLimitTargetDPO::getLineId).distinct().count();
|
||||
lineData.setOutOfStandardRate(NumberUtil.round(count * 100.0 / lineIds.size(), 2).floatValue());
|
||||
} else {
|
||||
lineData.setOutOfStandardRate(0.0f);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user