/** * 缓存分中心级别的统计数据 * * @param yearMonthString */ private void cacheCenterCount(String yearMonthString) { // 取得所有 有效的分中心 List<Fzx> fzxs = fzxDao.getAllValid(true); for (Fzx center : fzxs) { FzxDto fzx = center.getFzxDto(); // 分中心本月新增客户数 Integer centerAdded = tmkUtilsDao.getThisCenterAddedCustomerCountInThisMonth(fzx, yearMonthString); this.putObjectInCache( tmkUtilsCountCache, fzx.getZdbm(), TmkUtilsBaseVo.CENTER_ADDED, centerAdded); // 分中心客户总数 Integer centerTotal = tmkUtilsDao.getAllCustomerCountInThisCenter(fzx); this.putObjectInCache( tmkUtilsCountCache, fzx.getZdbm(), TmkUtilsBaseVo.CENTER_TOTAL, centerTotal); // 分中心本月到访客户数 Integer centerCame = tmkUtilsDao.getThisCenterCustomerHasComeCountInThisMonth(fzx, yearMonthString); this.putObjectInCache( tmkUtilsCountCache, fzx.getZdbm(), TmkUtilsBaseVo.CENTER_CAME, centerCame); // 分中心到访目标 Integer centerTarget = tmkUtilsDao.getThisCenterCameCustomerTargetInThisMonth(fzx, yearMonthString); this.putObjectInCache( tmkUtilsCountCache, fzx.getZdbm(), TmkUtilsBaseVo.CENTER_TARGET, centerTarget); } }
/** 供缓存使用 */ private void cacheCenterEverydayCameCustomers(String yearMonthString) { List<Fzx> centers = fzxDao.getAllValid(true); for (Fzx center : centers) { 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.CENTER_EVERYDAY_CAME_CUSTOMERS, new BaseVo()); result.get(day).put(TmkUtilsBaseVo.CENTER_TOTAL, new BaseVo()); } Integer tmpTotal = 0; List<BaseVo> vs = tmkUtilsDao.getCenterComeInThisMonth(center.getFzxDto(), yearMonthString); Integer monthTarget = tmkUtilsDao.getThisCenterCameCustomerTargetInThisMonth( center.getFzxDto(), 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.CENTER_EVERYDAY_CAME_CUSTOMERS, v); } else { todayTotal.setSValue(tmpTotal); } result.get(v.getSTime()).put(TmkUtilsBaseVo.CENTER_TOTAL, todayTotal); result.get(v.getSTime()).put(TmkUtilsBaseVo.CENTER_TARGET, target); tmpTotal = todayTotal.getSValue(); } Integer maxTotal = 0; for (Map.Entry<String, Map<String, BaseVo>> r : result.entrySet()) { if (r.getValue().get(TmkUtilsBaseVo.CENTER_TOTAL).getSValue() <= maxTotal) { r.getValue().get(TmkUtilsBaseVo.CENTER_TOTAL).setSValue(maxTotal); } else { maxTotal = r.getValue().get(TmkUtilsBaseVo.CENTER_TOTAL).getSValue(); } } putObjectInCache( tmkUtilsListCache, center.getId(), TmkUtilsBaseVo.CENTER_EVERYDAY_CAME_CUSTOMERS, result); } }
/** 供缓存使用 */ private void cacheCenterEverydayAddedCustomers(String yearMonthString) { List<Fzx> centers = fzxDao.getAllValid(true); for (Fzx center : centers) { 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.CENTER_EVERYDAY_ADDED_CUSTOMERS, new BaseVo()); } List<BaseVo> vs = tmkUtilsDao.getCenterAddInThisMonth(center.getFzxDto(), yearMonthString); for (BaseVo v : vs) { if (result.containsKey(v.getSTime())) { result.get(v.getSTime()).put(TmkUtilsBaseVo.CENTER_EVERYDAY_ADDED_CUSTOMERS, v); } } putObjectInCache( tmkUtilsListCache, center.getId(), TmkUtilsBaseVo.CENTER_EVERYDAY_ADDED_CUSTOMERS, result); } }