public Map<CalendarDay, Map<Ryxx, BaseVo>> getEveryDayCameCustomersInOneMonth( FzxDto fzx, String yearMonthString) { List<Ryxx> tmks = ryxxDao.getRyxxsByRole(Role.ROLE_MARKET_TMK_WORKER, fzx); Map<CalendarDay, Map<Ryxx, BaseVo>> result = new TreeMap<CalendarDay, Map<Ryxx, BaseVo>>(); List<CalendarDay> days = DateUtils.getDaysInOneMonth(DateUtils.parseDate("yyyyMM", yearMonthString)); for (CalendarDay day : days) { result.put(day, new HashMap<Ryxx, BaseVo>()); for (Ryxx tmk : tmks) { result.get(day).put(tmk, null); } } for (Ryxx tmk : tmks) { RC rc = new RC(); rc.setRyxx(tmk); rc.setFzx(fzx); List<BaseVo> vs = tmkUtilsDao.getTmkCameCustomersInThisMonth(rc, yearMonthString); for (BaseVo v : vs) { CalendarDay cd = new CalendarDay(v.getSTime()); if (result.containsKey(cd)) { result.get(cd).put(tmk, v); } } } return result; }
@SuppressWarnings("unchecked") public Map<String, Map<String, BaseVo>> getThisTmkEverydayCameCustomers(Ryxx ryxx, FzxDto fzx) { String yearMonthString = DateUtils.getCurYearMonthString(); Map<String, Map<String, BaseVo>> result = new TreeMap<String, Map<String, BaseVo>>(); List<String> days = DateUtils.getMonthDays(DateUtils.parseDate("yyyyMM", yearMonthString)); for (String day : days) { result.put(day, new HashMap<String, BaseVo>()); result.get(day).put(TmkUtilsBaseVo.TMK_EVERYDAY_CAME_CUSTOMERS, new BaseVo()); result.get(day).put(TmkUtilsBaseVo.TMK_TOTAL, new BaseVo()); } RC rc = new RC(); rc.setRyxx(ryxx); rc.setFzx(fzx); Integer tmpTotal = 0; List<BaseVo> vs = tmkUtilsDao.getTmkCameCustomersInThisMonth(rc, yearMonthString); Integer monthTarget = tmkUtilsDao.getMyComeCustomerTargetInThisMonth(rc, yearMonthString); BaseVo target = new BaseVo(); target.setSValue(monthTarget); for (BaseVo v : vs) { BaseVo todayTotal = new BaseVo(); if (result.containsKey(v.getSTime())) { todayTotal.setSValue(tmpTotal + v.getSValue()); result.get(v.getSTime()).put(TmkUtilsBaseVo.TMK_EVERYDAY_CAME_CUSTOMERS, v); } else { todayTotal.setSValue(tmpTotal); } result.get(v.getSTime()).put(TmkUtilsBaseVo.TMK_TOTAL, todayTotal); result.get(v.getSTime()).put(TmkUtilsBaseVo.TMK_TARGET, target); tmpTotal = todayTotal.getSValue(); } Integer maxTotal = 0; for (Map.Entry<String, Map<String, BaseVo>> r : result.entrySet()) { if (r.getValue().get(TmkUtilsBaseVo.TMK_TOTAL).getSValue() <= maxTotal) { r.getValue().get(TmkUtilsBaseVo.TMK_TOTAL).setSValue(maxTotal); } else { maxTotal = r.getValue().get(TmkUtilsBaseVo.TMK_TOTAL).getSValue(); } } return result; // return (Map<String, Map<String, BaseVo>>) getObjectFromCache( // tmkUtilsListCache, this.getCacheKeyFromRyxxAndFzx(ryxx, fzx), // TmkUtilsBaseVo.TMK_EVERYDAY_CAME_CUSTOMERS); }
/** 供缓存使用 */ private void cacheEveryTmkEverydayCameCustomers(String yearMonthString) { List<RC> tmks = ryxxDao.getRyxxCenterByRole(Role.ROLE_MARKET_TMK_WORKER); for (RC rc : tmks) { Map<String, Map<String, BaseVo>> result = new TreeMap<String, Map<String, BaseVo>>(); List<String> days = DateUtils.getMonthDays(DateUtils.parseDate("yyyyMM", yearMonthString)); for (String day : days) { result.put(day, new HashMap<String, BaseVo>()); result.get(day).put(TmkUtilsBaseVo.TMK_EVERYDAY_CAME_CUSTOMERS, new BaseVo()); result.get(day).put(TmkUtilsBaseVo.TMK_TOTAL, new BaseVo()); } Integer tmpTotal = 0; List<BaseVo> vs = tmkUtilsDao.getTmkCameCustomersInThisMonth(rc, yearMonthString); Integer monthTarget = tmkUtilsDao.getMyComeCustomerTargetInThisMonth(rc, yearMonthString); BaseVo target = new BaseVo(); target.setSValue(monthTarget); for (BaseVo v : vs) { BaseVo todayTotal = new BaseVo(); if (result.containsKey(v.getSTime())) { todayTotal.setSValue(tmpTotal + v.getSValue()); result.get(v.getSTime()).put(TmkUtilsBaseVo.TMK_EVERYDAY_CAME_CUSTOMERS, v); } else { todayTotal.setSValue(tmpTotal); } result.get(v.getSTime()).put(TmkUtilsBaseVo.TMK_TOTAL, todayTotal); result.get(v.getSTime()).put(TmkUtilsBaseVo.TMK_TARGET, target); tmpTotal = todayTotal.getSValue(); } Integer maxTotal = 0; for (Map.Entry<String, Map<String, BaseVo>> r : result.entrySet()) { if (r.getValue().get(TmkUtilsBaseVo.TMK_TOTAL).getSValue() <= maxTotal) { r.getValue().get(TmkUtilsBaseVo.TMK_TOTAL).setSValue(maxTotal); } else { maxTotal = r.getValue().get(TmkUtilsBaseVo.TMK_TOTAL).getSValue(); } } putObjectInCache( tmkUtilsListCache, this.getCacheKeyFromRC(rc), TmkUtilsBaseVo.TMK_EVERYDAY_CAME_CUSTOMERS, result); } }