echarts图表后端怎么返回数据

		//获取传来月份所有的日期 如3月,返回3月每一天
        String substring = reportPeriodRange.substring(0, 4);
        String month = reportPeriodRange.substring(5, 6);
        int yearTime = Integer.parseInt(substring);
        int monthTime = Integer.parseInt(month);

		//查询某月的所有天数
		List labels = DateUti.getMonthFullDay(yearTime, monthTime);
		//获取数据中某月的所有数据
		List list = energyAnalysisCreateReportService.selConsumptionTrendDay(pojo);
		//将数据处理后塞入map中
        map = getDateOnConsumptionTrend(list, labels);


	public static List getMonthFullDay(int year , int month){
        SimpleDateFormat dateFormatYYYYMMDD = new SimpleDateFormat("yyyy-MM-dd");
        List fullDayList = new ArrayList<>(32);
        // 获得当前日期对象
        Calendar cal = Calendar.getInstance();
        cal.clear();// 清除信息
        cal.set(Calendar.YEAR, year);
        // 1月从0开始
        cal.set(Calendar.MONTH, month-1 );
        // 当月1号
        cal.set(Calendar.DAY_OF_MONTH,1);
        int count = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        for (int j = 1; j <= count ; j++) {
            fullDayList.add(dateFormatYYYYMMDD.format(cal.getTime()));
            cal.add(Calendar.DAY_OF_MONTH,1);
        }
        return fullDayList;
    }

	private static Map getDateOnConsumptionTrend(List list, List labels){
    try {
        Map map = new HashMap<>();

        List maxList = new ArrayList<>();

        if (list != null){
            if (list.size() > 0) {
            	//先定义一个下标
                int index = 0;
                //循环某月的所有天数
                for (int k = 0;k < labels.size();k++) {
                	//如果从数据库中查出的日期和从labels拿出的日期不同时
                    if(!list.get(index).getDateStat().equals(labels.get(k))){
                        maxList.add(null);
                    } else {
                    	//如果日期相同添加数据
                        maxList.add(list.get(index).getEconsValue());
                        //查找list数据的下一条,所以index++
                        index++;
                    }
                    //下标如果和list大小相等时,break,否则数组越界
                    if (index == list.size()) {
                        break;
                    }
                }
                //list执行完并且break了后,将其他的日期的数据也填为null
                int differenceDays = labels.size() - maxList.size();
                for(int j = 0;j < differenceDays;j++){
                    maxList.add(null);
                }
            }
        }
        map.put("labels",labels);
        map.put("maxList",maxList);
        return map;
    } catch (Exception e) {
        e.printStackTrace();
    }

    return null;
}

你可能感兴趣的:(java)