@(一只心中无码的程序员)专栏程序员
- ~
/** * 销售趋势 * @param year * @return */ public List<Map<String,Object>> trendReport(int year){ //保存每月份的销售额 List<Map<String, Object>> result = new ArrayList<Map<String,Object>>(12); //获取当年每个月销售额 List<Map<String,Object>> yearData = reportDao.getSumMoney(year); //把从DB中获得的当年每个月销售额转换成map集合,用于下面的查缺补漏,由于可能存在某些月份没有销售额的状况 Map<String, Map<String,Object>> map = new HashMap<String,Map<String,Object>>(); for(Map<String,Object> m : yearData){ map.put((String)m.get("month"), m); } Map<String,Object> data = null; //按12个月,对每月份的数据进行封装,最终以List<Map<String,Object>>形式返回 for(int i = 1; i <= 12; i++){ data = map.get(i + "月"); if(null == data){ //若是当月没有销售额,则补上当月的月份和数据0 data = new HashMap<String,Object>(); data.put("month", i+"月"); data.put("y", 0); } result.add(data); } return result; }