package com.nanjing.water.service.dto; import com.nanjing.water.common.ConstantFactory; import com.nanjing.water.common.util.ListUtil; import lombok.Data; import java.math.BigDecimal; import java.util.List; import java.util.Objects; @Data public class StatisticsTodayDto { private String pointCode; private String facilityCode; private String parameterCode; private List listValue; /** * 最小值 */ public BigDecimal getMinValue() { if (ListUtil.isNullOrEmpty(listValue)) { return BigDecimal.ZERO; } return listValue.stream().min(BigDecimal::compareTo).get(); } /** * 最大值 */ public BigDecimal getMaxValue() { if (ListUtil.isNullOrEmpty(listValue)) { return BigDecimal.ZERO; } return listValue.stream().max(BigDecimal::compareTo).get(); } /** * 平均值 */ public BigDecimal getAverageValue() { if (ListUtil.isNullOrEmpty(listValue)) { return BigDecimal.ZERO; } BigDecimal sum = listValue.stream().reduce(BigDecimal.ZERO, BigDecimal::add); if (Objects.equals(sum, BigDecimal.ZERO)) { return BigDecimal.ZERO; } return sum.divide(new BigDecimal(String.valueOf(listValue.size())), ConstantFactory.NUM2, BigDecimal.ROUND_HALF_UP); } /** * 统计次数 */ public Integer getDataCount() { return this.listValue.size(); } /** * 合格次数 */ public Integer getPassCount() { return this.listValue.size(); } }