获取终端运行统计接口新增三个统计率
This commit is contained in:
@@ -49,12 +49,21 @@ public class TerminalRunningStatisticsVO implements Serializable {
|
||||
@ApiModelProperty("投运")
|
||||
private Long normal;
|
||||
|
||||
@ApiModelProperty("投运率")
|
||||
private Double normalRate;
|
||||
|
||||
@ApiModelProperty("热备用")
|
||||
private Long breaks;
|
||||
|
||||
@ApiModelProperty("热备用率")
|
||||
private Double breaksRate;
|
||||
|
||||
@ApiModelProperty("停运")
|
||||
private Long shutdown;
|
||||
|
||||
@ApiModelProperty("停运率")
|
||||
private Double shutdownRate;
|
||||
|
||||
@ApiModelProperty("在线率")
|
||||
private Double onlineRate;
|
||||
|
||||
@@ -78,12 +87,21 @@ public class TerminalRunningStatisticsVO implements Serializable {
|
||||
@ApiModelProperty("总计-投运")
|
||||
private Long normal;
|
||||
|
||||
@ApiModelProperty("总计-投运率")
|
||||
private Double normalRate;
|
||||
|
||||
@ApiModelProperty("总计-热备用")
|
||||
private Long breaks;
|
||||
|
||||
@ApiModelProperty("总计-热备用率")
|
||||
private Double breaksRate;
|
||||
|
||||
@ApiModelProperty("总计-停运")
|
||||
private Long shutdown;
|
||||
|
||||
@ApiModelProperty("总计-停运率")
|
||||
private Double shutdownRate;
|
||||
|
||||
@ApiModelProperty("总计-在线率")
|
||||
private Double onlineRate;
|
||||
|
||||
@@ -91,11 +109,11 @@ public class TerminalRunningStatisticsVO implements Serializable {
|
||||
private List<TerminalRunningInfoVO> areaInfo;
|
||||
|
||||
public static TerminalRunningVO empty() {
|
||||
return TerminalRunningVO.buildVO(0, 0L, 0L, 0L, 0.00D, Collections.emptyList());
|
||||
return TerminalRunningVO.buildVO(0, 0L, 0.00D, 0L, 0.00D, 0L, 0.00D, 0.00D, Collections.emptyList());
|
||||
}
|
||||
|
||||
public static TerminalRunningVO buildVO(Integer numberOfTerminals, Long normal, Long breaks, Long shutdown, Double onlineRate, List<TerminalRunningInfoVO> areaInfo) {
|
||||
return TerminalRunningVO.builder().numberOfTerminals(numberOfTerminals).normal(normal).breaks(breaks).shutdown(shutdown).onlineRate(onlineRate).areaInfo(areaInfo).build();
|
||||
public static TerminalRunningVO buildVO(Integer numberOfTerminals, Long normal, Double normalRate, Long breaks, Double breaksRate, Long shutdown, Double shutdownRate, Double onlineRate, List<TerminalRunningInfoVO> areaInfo) {
|
||||
return TerminalRunningVO.builder().numberOfTerminals(numberOfTerminals).normal(normal).normalRate(normalRate).breaks(breaks).breaksRate(breaksRate).shutdown(shutdown).shutdownRate(shutdownRate).onlineRate(onlineRate).areaInfo(areaInfo).build();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,6 +270,18 @@ public class AreaLineServiceImpl implements AreaLineService {
|
||||
terminalRunningInfoVO.setNormal(countDeviceRunStatus(pqDeviceList).apply(0, deviceIndexes));
|
||||
terminalRunningInfoVO.setBreaks(countDeviceRunStatus(pqDeviceList).apply(1, deviceIndexes));
|
||||
terminalRunningInfoVO.setShutdown(countDeviceRunStatus(pqDeviceList).apply(2, deviceIndexes));
|
||||
if (deviceIndexes.size()==0) {
|
||||
terminalRunningInfoVO.setNormalRate(0.0);
|
||||
terminalRunningInfoVO.setBreaksRate(0.0);
|
||||
terminalRunningInfoVO.setShutdownRate(0.0);
|
||||
} else {
|
||||
double normalRate = terminalRunningInfoVO.getNormal().doubleValue() / terminalRunningInfoVO.getNumberOfTerminals() * 100;
|
||||
terminalRunningInfoVO.setNormalRate(new BigDecimal(normalRate).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
double breaksRate = terminalRunningInfoVO.getBreaks().doubleValue() / terminalRunningInfoVO.getNumberOfTerminals() * 100;
|
||||
terminalRunningInfoVO.setBreaksRate(new BigDecimal(breaksRate).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
double shutdownRate = terminalRunningInfoVO.getShutdown().doubleValue() / terminalRunningInfoVO.getNumberOfTerminals() * 100;
|
||||
terminalRunningInfoVO.setShutdownRate(new BigDecimal(shutdownRate).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
}
|
||||
terminalRunningInfoVO.setOnlineRate(computingDeviceOnlineRate(pqsOnlinerateList).apply(deviceIndexes));
|
||||
return terminalRunningInfoVO;
|
||||
}).sorted(TerminalRunningInfoVO.sortAscAreaName())
|
||||
@@ -283,9 +295,15 @@ public class AreaLineServiceImpl implements AreaLineService {
|
||||
.sum();
|
||||
Long shutdownSum = terminalRun.stream().mapToLong(TerminalRunningInfoVO::getShutdown)
|
||||
.sum();
|
||||
Double normalRateSum = 0.0,breaksRateSum = 0.0,shutdownRateSum = 0.0;
|
||||
if (terminalSum!=0) {
|
||||
normalRateSum = new BigDecimal(normalSum.doubleValue() / terminalSum *100).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
breaksRateSum = new BigDecimal(breaksSum.doubleValue() / terminalSum *100).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
shutdownRateSum = new BigDecimal(shutdownSum.doubleValue() / terminalSum *100).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
}
|
||||
Double onlineRateAvg = computingDeviceOnlineRate(pqsOnlinerateList).apply(deviceIndexList);
|
||||
return TerminalRunningVO.buildVO(terminalSum, normalSum, breaksSum, shutdownSum,
|
||||
onlineRateAvg, terminalRun);
|
||||
return TerminalRunningVO.buildVO(terminalSum, normalSum, normalRateSum, breaksSum, breaksRateSum, shutdownSum,
|
||||
shutdownRateSum, onlineRateAvg, terminalRun);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user