获取终端运行统计接口新增三个统计率

This commit is contained in:
陈超
2022-08-10 20:09:57 +08:00
parent 54f43ada86
commit 49140e026b
2 changed files with 54 additions and 18 deletions

View File

@@ -49,12 +49,21 @@ public class TerminalRunningStatisticsVO implements Serializable {
@ApiModelProperty("投运") @ApiModelProperty("投运")
private Long normal; private Long normal;
@ApiModelProperty("投运率")
private Double normalRate;
@ApiModelProperty("热备用") @ApiModelProperty("热备用")
private Long breaks; private Long breaks;
@ApiModelProperty("热备用率")
private Double breaksRate;
@ApiModelProperty("停运") @ApiModelProperty("停运")
private Long shutdown; private Long shutdown;
@ApiModelProperty("停运率")
private Double shutdownRate;
@ApiModelProperty("在线率") @ApiModelProperty("在线率")
private Double onlineRate; private Double onlineRate;
@@ -78,12 +87,21 @@ public class TerminalRunningStatisticsVO implements Serializable {
@ApiModelProperty("总计-投运") @ApiModelProperty("总计-投运")
private Long normal; private Long normal;
@ApiModelProperty("总计-投运率")
private Double normalRate;
@ApiModelProperty("总计-热备用") @ApiModelProperty("总计-热备用")
private Long breaks; private Long breaks;
@ApiModelProperty("总计-热备用率")
private Double breaksRate;
@ApiModelProperty("总计-停运") @ApiModelProperty("总计-停运")
private Long shutdown; private Long shutdown;
@ApiModelProperty("总计-停运率")
private Double shutdownRate;
@ApiModelProperty("总计-在线率") @ApiModelProperty("总计-在线率")
private Double onlineRate; private Double onlineRate;
@@ -91,11 +109,11 @@ public class TerminalRunningStatisticsVO implements Serializable {
private List<TerminalRunningInfoVO> areaInfo; private List<TerminalRunningInfoVO> areaInfo;
public static TerminalRunningVO empty() { 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) { 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).breaks(breaks).shutdown(shutdown).onlineRate(onlineRate).areaInfo(areaInfo).build(); return TerminalRunningVO.builder().numberOfTerminals(numberOfTerminals).normal(normal).normalRate(normalRate).breaks(breaks).breaksRate(breaksRate).shutdown(shutdown).shutdownRate(shutdownRate).onlineRate(onlineRate).areaInfo(areaInfo).build();
} }
} }
} }

View File

@@ -270,6 +270,18 @@ public class AreaLineServiceImpl implements AreaLineService {
terminalRunningInfoVO.setNormal(countDeviceRunStatus(pqDeviceList).apply(0, deviceIndexes)); terminalRunningInfoVO.setNormal(countDeviceRunStatus(pqDeviceList).apply(0, deviceIndexes));
terminalRunningInfoVO.setBreaks(countDeviceRunStatus(pqDeviceList).apply(1, deviceIndexes)); terminalRunningInfoVO.setBreaks(countDeviceRunStatus(pqDeviceList).apply(1, deviceIndexes));
terminalRunningInfoVO.setShutdown(countDeviceRunStatus(pqDeviceList).apply(2, 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)); terminalRunningInfoVO.setOnlineRate(computingDeviceOnlineRate(pqsOnlinerateList).apply(deviceIndexes));
return terminalRunningInfoVO; return terminalRunningInfoVO;
}).sorted(TerminalRunningInfoVO.sortAscAreaName()) }).sorted(TerminalRunningInfoVO.sortAscAreaName())
@@ -283,9 +295,15 @@ public class AreaLineServiceImpl implements AreaLineService {
.sum(); .sum();
Long shutdownSum = terminalRun.stream().mapToLong(TerminalRunningInfoVO::getShutdown) Long shutdownSum = terminalRun.stream().mapToLong(TerminalRunningInfoVO::getShutdown)
.sum(); .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); Double onlineRateAvg = computingDeviceOnlineRate(pqsOnlinerateList).apply(deviceIndexList);
return TerminalRunningVO.buildVO(terminalSum, normalSum, breaksSum, shutdownSum, return TerminalRunningVO.buildVO(terminalSum, normalSum, normalRateSum, breaksSum, breaksRateSum, shutdownSum,
onlineRateAvg, terminalRun); shutdownRateSum, onlineRateAvg, terminalRun);
} }
/** /**