获取终端运行统计接口新增三个统计率
This commit is contained in:
@@ -42,18 +42,27 @@ public class TerminalRunningStatisticsVO implements Serializable {
|
||||
|
||||
@ApiModelProperty("区域名称")
|
||||
private String areaName;
|
||||
|
||||
|
||||
@ApiModelProperty("终端个数")
|
||||
private Integer numberOfTerminals;
|
||||
|
||||
|
||||
@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;
|
||||
@@ -66,36 +75,45 @@ public class TerminalRunningStatisticsVO implements Serializable {
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public static class TerminalRunningVO implements Serializable {
|
||||
private static final long serialVersionUID = 8990224131248734699L;
|
||||
|
||||
|
||||
@ApiModelProperty("总计-终端个数")
|
||||
private Integer numberOfTerminals;
|
||||
|
||||
|
||||
@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;
|
||||
|
||||
|
||||
@ApiModelProperty("列表数据")
|
||||
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