package com.winhc.repal.util; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.winhc.repal.model.vo.HomeGradeVO; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; import java.util.List; /** * @Description: BillGradeUtil * @Author: xda * @Date: 2022/5/7 18:31 */ public class BillGradeUtil { public static List getGradeList(List gradeList) { if (CollUtil.isEmpty(gradeList)) { return new ArrayList<>(); } int total = gradeList.size(); long aCount = gradeList.stream().filter("A"::equals).count();; long bCount = gradeList.stream().filter("B"::equals).count();; long cCount = gradeList.stream().filter("C"::equals).count();; long dCount = gradeList.stream().filter("D"::equals).count();; long nCount = gradeList.stream().filter(StrUtil::isNotBlank).count();; return new ArrayList(){{ add(new HomeGradeVO(Math.toIntExact(aCount), new BigDecimal(aCount).divide(new BigDecimal(total), 1, RoundingMode.HALF_UP).stripTrailingZeros().toPlainString())); add(new HomeGradeVO(Math.toIntExact(bCount), new BigDecimal(bCount).divide(new BigDecimal(total), 1, RoundingMode.HALF_UP).stripTrailingZeros().toPlainString())); add(new HomeGradeVO(Math.toIntExact(cCount), new BigDecimal(cCount).divide(new BigDecimal(total), 1, RoundingMode.HALF_UP).stripTrailingZeros().toPlainString())); add(new HomeGradeVO(Math.toIntExact(dCount), new BigDecimal(dCount).divide(new BigDecimal(total), 1, RoundingMode.HALF_UP).stripTrailingZeros().toPlainString())); add(new HomeGradeVO(Math.toIntExact(nCount), new BigDecimal(nCount).divide(new BigDecimal(total), 1, RoundingMode.HALF_UP).stripTrailingZeros().toPlainString())); }}; } }