package cn.com.countrygarden.bi.main.service.twerp.hm;

import java.util.List;
import java.util.Map;

import cn.com.countrygarden.bi.main.core.Service;
import cn.com.countrygarden.bi.main.model.twerp.hm.TbDeskTopFeesDaily;

/**
 * 日收费统计接口
 * 
 * @author huangzhengjun
 *
 */
public interface TbDeskTopFeesDailyService extends Service<TbDeskTopFeesDaily> {

	/**
	 * 从缓存中获取昨天第一笔及最大一笔缴纳费用
	 * 
	 * @return
	 */
	Map<String, Object> getFirstFeesAndMaxFeesOfLastDayFromCache();

	/**
	 * 从缓存中获取今天第一笔及最大一笔缴纳费用
	 * 
	 * @return
	 */
	Map<String, Object> getFirstFeesAndMaxFeesOfTodayFromCache();

	/**
	 * 从数据库中获取昨天第一笔缴纳费用
	 * 
	 * @return
	 */
	TbDeskTopFeesDaily getFirstFeesOfLastDayFromMapper();

	/**
	 * 从数据库中获取昨天最大一笔缴纳费用
	 * 
	 * @return
	 */
	TbDeskTopFeesDaily getMaxFeesOfLastDayFromMapper();

	/**
	 * 从数据库中获取今天第一笔缴纳费用
	 * 
	 * @return
	 */
	TbDeskTopFeesDaily getFirstFeesOfTodayFromMapper();

	/**
	 * 从数据库中获取今天最大一笔缴纳费用
	 * 
	 * @return
	 */
	TbDeskTopFeesDaily getMaxFeesOfTodayFromMapper();

	/**
	 * 从缓存中获取昨天缴纳费用最多的区域和项目
	 * 
	 * @return
	 */
	Map<String, Object> getMaxFeesOfOrganAndCommInLastDayFromCache();

	/**
	 * 从数据库中获取昨天缴纳费用最多的区域
	 * 
	 * @return
	 */
	TbDeskTopFeesDaily getMaxFeesOfOrganInLastDayFromMapper();

	/**
	 * 从数据库中获取昨天缴纳费用最多的项目
	 * 
	 * @return
	 */
	TbDeskTopFeesDaily getMaxFeesOfCommInLastDayFromMapper();

	/**
	 * 本月和上月的收费面积
	 *
	 * @return
	 */
	List<Map<String, Object>> thisAndLastMonthChargeArea();


	/**
	 * 季度实际收费面积
	 *
	 * @return
	 */
	Map<String,Object> seasonRealChargeArea();
}
