1234567891011121314151617181920212223242526272829303132333435363738 |
- 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<HomeGradeVO> getGradeList(List<String> 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<HomeGradeVO>(){{
- 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()));
- }};
- }
- }
|