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

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import com.github.pagehelper.PageRowBounds;

import cn.com.countrygarden.bi.main.controller.microSatisfy.vo.UpdateQualityVO;
import cn.com.countrygarden.bi.main.model.microSatisfy.MicroSatisfyOrganDetailModel;
import cn.com.countrygarden.bi.main.model.microSatisfy.MicroSatisfyRankModel;

/**
 * 小业主满意度
 * @author shitong
 *
 */
public interface MicroSatisfyService {
	
	/**
	 * @描述 批量新增原始调研数据
	 * @作者 张世通
	 * @时间 2018年6月21日
	 * @版本 
	 * @param list
	 */
    Map<String,Object> addSatisfyListOrgin(MultipartFile multipartFile,String fileName,String identifying,String flag,HttpServletResponse response);
	/**
	 * @描述 批量新增调研数据
	 * @作者 张世通
	 * @时间 2018年6月21日
	 * @版本 
	 * @param list
	 */
	Map<String, Object> addSatisfyList(MultipartFile multipartFile,String fileName,String userCode,String timeStr);
	
	/**
	 * @描述 按批次号查询数据
	 * @作者 张世通
	 * @时间 2018年6月22日
	 * @版本 
	 * @param pid
	 * @param timeStr
	 * @return
	 */
	List<Map<String, Object>> queryImportData(String pid,String timeStr,PageRowBounds pageRowBounds);
	
	/**
	 * @描述 查询批次号
	 * @作者 张世通
	 * @时间 2018年6月22日
	 * @版本 
	 * @return
	 */
	List<Map<String,String>> queryPid();
	
	/**
	 * @描述 查询当月管家满意度
	 * @作者 张世通
	 * @时间 2018年6月22日
	 * @版本 
	 * @param pageRowBounds
	 * @return
	 */
	List<Map<String,String>> queryManagerSatisfy(PageRowBounds pageRowBounds,String timeStr,String organId );
	
	/**
	 * @描述 查询当月管家满意度排名
	 * @作者 张世通
	 * @时间 2018年6月22日
	 * @版本 
	 * @param pageRowBounds
	 * @return
	 */
	List<Map<String,String>> queryManagerSatisfyRank(PageRowBounds pageRowBounds,String timeStr,String organId,String commId);
	/**
	 * @描述 查询管家满意度折线图
	 * @作者 张世通
	 * @时间 2018年6月28日
	 * @版本 
	 * @param timeStr
	 * @param organId
	 * @param commId
	 * @return
	 */
	Map<String,String> queryManagerScore(String timeStr,String organId,String commId);
	/**
	 * @描述 查询区域当月满意度排名
	 * @作者 张世通
	 * @时间 2018年6月23日
	 * @版本 
	 * @param pageRowBounds
	 * @return
	 */
	List<MicroSatisfyRankModel> queryOrganRank(PageRowBounds pageRowBounds,String beginDate,String endDate,String flag,String cruentDate,String organId,String regionId);
	/**
	 * @描述 查询项目当月满意度排名
	 * @作者 张世通
	 * @时间 2018年6月23日
	 * @版本 
	 * @param pageRowBounds
	 * @return
	 */
	List<MicroSatisfyRankModel> queryCommRank(PageRowBounds pageRowBounds,String beginDate,String endDate,String flag,String cruentDate,String organId,String regionId,String projectId);
	
	/**
	 * @描述 查询区域项目满意度基本信息(数据处理)
	 * @作者 张世通
	 * @时间 2018年6月26日
	 * @版本 
	 * @return
	 */
	List<MicroSatisfyOrganDetailModel> queryOrganSatisfyDetail(String timeStr,String userCode,String pid);
	
	/**
	 * @描述 豁免并锁定
	 * @作者 张世通
	 * @时间 2018年6月26日
	 * @版本 
	 * @param list
	 */
	void updateOragnCommDetail(List<Map<String,Object>> list,String userCode,String falg);
	/**
	 * @描述 查询区域项目详情
	 * @作者 张世通
	 * @时间 2018年6月26日
	 * @版本 
	 * @param pageRowBounds
	 * @param organId
	 * @param timeStr
	 * @return
	 */
	List<MicroSatisfyOrganDetailModel> queryOrganSatisfyDetailByOrganId(PageRowBounds pageRowBounds,String organId,String beginDate,String endDate);
	/**
	 * @描述 查询项目详情
	 * @作者 张世通
	 * @时间 2018年6月26日
	 * @版本 
	 * @param commId
	 * @param organId
	 * @param timeStr
	 * @return
	 */
	MicroSatisfyOrganDetailModel queryCommDetail(String organId,String commId,String timeStr,String pid);

	/**
	 * @描述 查询当月批次统计信息
	 * @作者 张世通
	 * @时间 2018年6月28日
	 * @版本 
	 * @return
	 */
	Map<String,Object> queryDataCount(String beginDate,String endDate,String flag,String organId);
	/**
	 * @描述 查询区域批次统计信息
	 * @作者 张世通
	 * @时间 2018年6月28日
	 * @版本 
	 * @return
	 */
	Map<String,Object> queryOrganCount(String timeStr,String organId,String pid);
	/**
	 * @描述 查询区域批次统计信息
	 * @作者 张世通
	 * @时间 2018年6月28日
	 * @版本 
	 * @return
	 */
	Map<String,Object> queryCommCount(String beginDate,String endDate,String organId,String commId);
	
	/**
	 * @描述 查询全国走势图
	 * @作者 张世通
	 * @时间 2018年6月28日
	 * @版本 
	 * @param timeStr
	 * @return
	 */
	Map<String,Object> queryCountryScore(String beginDate,String endDate,String flag,String organId);
	/**
	 * @描述 查询区域走势图
	 * @作者 张世通
	 * @时间 2018年6月28日
	 * @版本 
	 * @param timeStr
	 * @return
	 */
	Map<String,Object> queryOrganScore(String timeStr,String organId,String pid);
	/**
	 * @描述 查询项目走势图
	 * @作者 张世通
	 * @时间 2018年6月28日
	 * @版本 
	 * @param timeStr
	 * @return
	 */
	Map<String,Object> queryCommScore(String beginDate,String endDate,String organId,String commId,String flag);
	/**
	 * @描述 修改项目类型
	 * @作者 李子民
	 * @时间 2018年7月17日
	 * @版本
	 */
	void updateQuality(UpdateQualityVO vo);
	/**
	 * @描述 得分统计
	 * @作者 李子民
	 * @时间 2018年7月17日
	 * @版本
	 */
	public MicroSatisfyOrganDetailModel scoreStatistics(String beginDate,String endDate,String organId,String commId);
	/**
	 * @描述  业主心声
	 * @作者 李子民
	 * @时间 2018年7月17日
	 * @版本
	 */
	public List<Map<String, Object>> selectVoice(String beginDate,String endDate,String organId,String commId);
	
	
	public  boolean getMsg(Map<String, Object> msgMap);
	
	   /**
     * 获取问卷明细
     * @param 
     * @return
     */
	public List<MicroSatisfyOrganDetailModel> queryQuestionnaire(String beginDate,String endDate,String organId,String commId,PageRowBounds pageRowBounds);
	
	//根据用户角色 控制展示的内容
	public String getUser(String userCode);
	
	   //项目分析
    public MicroSatisfyOrganDetailModel querySatisfyDetailByCommId(String organId,String commId, String beginDate,String endDate);
  
    //区域详细--折线图
    public Map<String, Object> queryRegionScore(String beginDate,String endDate, String organId,String flag);
    
    //区域详细--统计
    public Map<String, Object> queryRegionCount(String beginDate,String endDate,String flag,String organId);
    
    //区域详情 --不满意统计
    public MicroSatisfyOrganDetailModel scoreStatisticsRegion(String beginDate,String endDate,String flag,String organId);
    
  //区域详情 --业主心声
    public List<Map<String, Object>> selectVoiceRegion(String beginDate,String endDate,String organId,String flag);
   
    Boolean exportCrmData(String identifierId, HttpServletResponse response,HttpServletRequest request);
    
    public Boolean ImportAnswerCode(MultipartFile multipartFile,String fileName,String userCode);
    
    public Map<String,Object> ImportRegionalObjectives(MultipartFile multipartFile,String fileName,String userCode) ;
    
    public Workbook getTemplate(String fileName);
    
    public boolean downLoad(HttpServletResponse response, Workbook wb, String fileName,HttpServletRequest request);
    
    List<Map<String,String>> querySatisfyQuestionnaireByType(String userCode);
    
    public List<Map<String, Object>> comA1();
    
    
    public List<Map<String, Object>> getProjectName(String area);
    public Map<String, Object> ImportCommObjectives(MultipartFile commonsMultipartFile,
            String fileName, String string);
}
