package cn.com.countrygarden.bi.main.service.bigholderSatisfy;

import java.util.HashMap;
import java.util.List;

import org.springframework.web.multipart.MultipartFile;

import com.github.pagehelper.PageRowBounds;

import cn.com.countrygarden.bi.main.dto.AreaUser;
import cn.com.countrygarden.bi.main.dto.BigholderImportedDto;
import cn.com.countrygarden.bi.main.dto.BigholderProjectDto;
import cn.com.countrygarden.bi.main.dto.SatisfyInfo;
import cn.com.countrygarden.bi.main.dto.bigholder.UnsatisfyDto;
import cn.com.countrygarden.bi.main.model.BigholderRightManager;

public interface BigholderSatisfyService {

	/**
	 * 新增导入数据
	 * @param multipartFile
	 * @param fileName
	 * @param userCode
	 * @return
	 */
	HashMap<String, Object> addSatisfyList(MultipartFile multipartFile,String fileName,String userCode);

	/**
	 * 查询导入的项目总数据
	 * @param yearMonth
	 * @param pageRowBounds 
	 * @return
	 */
	List<BigholderImportedDto> findImportedList(String yearMonth, PageRowBounds pageRowBounds);
	
	/**
	 * 获取区域
	 * @param userCode
	 * @return
	 */
	List<BigholderRightManager> getAreas();

	/**
	 * 获取负责人
	 * @param pageRowBounds 
	 * @param userCode
	 * @return
	 */
	List<BigholderRightManager> getUsers(String user, PageRowBounds pageRowBounds);

	/**
	 * 添加区域，负责人权限列表
	 * @param userId 
	 * @param user2 
	 * @param param
	 * @return
	 */
	boolean addRightList(String area,String areaId, String user, String userId);

	/**
	 * 删除区域，负责人权限列表
	 * @param param
	 * @return
	 */
	boolean deleteRightList(String areaId, String userId);
	/**
	 * 查询区域，负责人权限列表
	 * @param pageRowBounds 
	 * @param userCode
	 * @return
	 */
	List<AreaUser> findRightList(String user,String area, PageRowBounds pageRowBounds);

	/**
	 * 修改区域
	 * @param estateArea
	 * @param area
	 * @return
	 */
	boolean updateArea(String estateArea, String area,String project);

	/**
	 * 新增 导入地产物业
	 * @param multipartFile
	 * @param fileName
	 * @param userCode
	 * @return
	 */
	HashMap<String, Object> addLandEstateList(MultipartFile multipartFile,String fileName,String userCode);

	/**
	 * 获取项目满意度排名列表
	 * @param userCode
	 * @return
	 */
	List<BigholderProjectDto> projectRankList(String userCode,String yearMonth,String yearMonthStart,String yearMonthEnd,String timeType,PageRowBounds pageRowBounds);

	/**
	 * 根据年月查询
	 * @param userCode
	 * @param yearMonth
	 * @param yearMonth 
	 * @return
	 */
	SatisfyInfo satisfyInfosByTime(String userCode, String area,String project, String yearMonthStart,String yearMonthEnd,String timeType);

	/**
	 * 总裁问卷列表
	 * @return
	 */
//	List<BigholderLandEstate> landEstateList();

	/**
	 * 不满意度统计
	 */
	List<UnsatisfyDto> unsatisfyInfo(String userCode, String area, String project, String yearMonthStart,String yearMonthEnd);

	/**
	 * 走势分析
	 * @param userCode
	 * @param area
	 * @param project
	 * @param yearMonthStart
	 * @return
	 */
	List<UnsatisfyDto> trendAnalysis(String userCode, String area, String project, String yearMonthStart,String yearMonthEnd,String type);

	/**
	 * 判断是否存在异常区域
	 * @return
	 */
	String isExistExceptionArea();

}
