@(一隻心中無碼的程序員)專欄程序員
- ~
/** * 銷售趨勢 * @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; }