Map遍历封装数据

Map遍历封装数据

一、代码:

BigDecimal price = this.price(energyBoardModel.getYearMonth());
        PowerVO powerVO = new PowerVO();
        List<Map<String,Object>> powerByBuList = energyBoardMapper.powerByBu(energyBoardModel);
        Map<String,Map<String,BigDecimal>> actualMap = new LinkedHashMap<>();
        Map<String,Map<String,BigDecimal>> budgetMap = new LinkedHashMap<>();
        Map<String,Map<String,BigDecimal>> warningMap = new LinkedHashMap<>();
        for (Map<String, Object> map : powerByBuList) {
            String departNameType = map.get("DEPART_NAME_TYPE").toString();
            String departName = map.get("DEPART_NAME").toString();
            BigDecimal addPowers = (BigDecimal) map.get("ADD_POWERS");
            BigDecimal budget = ((BigDecimal) map.get("BUDGET_E"));
            BigDecimal warningLine = ((BigDecimal) map.get("WARNING_LINE"));
            Map<String, BigDecimal> data = actualMap.get(departNameType);
            if(data == null){
                data = new LinkedHashMap<>();
                actualMap.put(departNameType,data);
            }
            data.put(departName,addPowers.multiply(price).divide(new BigDecimal(10000),2,BigDecimal.ROUND_HALF_UP));

            Map<String,BigDecimal> data1 = budgetMap.get(departNameType);
            if(data1 == null){
                data1 = new LinkedHashMap<>();
                budgetMap.put(departNameType,data1);
            }
            data1.put(departName,budget);

            Map<String,BigDecimal> data2 = warningMap.get(departNameType);
            if(data2 == null){
                data2 = new LinkedHashMap<>();
                warningMap.put(departNameType,data2);
            }
            data2.put(departName,warningLine);
        }
        List<Parent> parentList = new ArrayList<>();
        for (Map.Entry<String, Map<String, BigDecimal>> stringMapEntry : actualMap.entrySet()) {
            List<Children> childrenList = new ArrayList<>();
            Parent parent = new Parent();
            parent.setValue(stringMapEntry.getKey());
            for (Map.Entry<String, BigDecimal> stringBigDecimalEntry : stringMapEntry.getValue().entrySet()) {
                Children children = new Children();
                children.setValue(stringBigDecimalEntry.getKey());
                children.setName("总电费");
                children.setNum(stringBigDecimalEntry.getValue());
                childrenList.add(children);
                parent.setChildren(childrenList);
            }
            parentList.add(parent);

        }
        List<Parent> parentBudgetList = new ArrayList<>();
        for (Map.Entry<String, Map<String, BigDecimal>> stringMapEntry : budgetMap.entrySet()) {
            List<Children> childrenList = new ArrayList<>();
            Parent parent = new Parent();
            parent.setValue(stringMapEntry.getKey());
            for (Map.Entry<String, BigDecimal> stringBigDecimalEntry : stringMapEntry.getValue().entrySet()) {
                Children children = new Children();
                children.setValue(stringBigDecimalEntry.getKey());
                children.setName("预算");
                children.setNum(stringBigDecimalEntry.getValue());
                childrenList.add(children);
                parent.setChildren(childrenList);
            }
            parentBudgetList.add(parent);

        }
        List<BigDecimal> targetList = new ArrayList<>();
        for (Map.Entry<String, Map<String, BigDecimal>> stringMapEntry : warningMap.entrySet()) {
            for (Map.Entry<String, BigDecimal> stringBigDecimalEntry : stringMapEntry.getValue().entrySet()) {
                targetList.add(stringBigDecimalEntry.getValue());
            }
        }


        powerVO.setPlan(parentBudgetList);
        powerVO.setActual(parentList);
        powerVO.setTarget(targetList);


        return powerVO;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值