package com.tofly.qualitycontrol.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tofly.qualitycontrol.dto.CollectionNumberSummaryClientDTO;
import com.tofly.qualitycontrol.dto.CollectionNumberSummaryDTO;
import com.tofly.qualitycontrol.entity.CollectionNumberDetail;
import com.tofly.qualitycontrol.entity.CollectionNumberSummary;
import com.tofly.qualitycontrol.vo.CollectionNumberClientVO;
import com.tofly.qualitycontrol.vo.CollectionNumberSummaryGraphVO;
import com.tofly.qualitycontrol.vo.CollectionNumberSummaryVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 归集管理
 *
 * @author B
 */
public interface ICollectionNumberSummaryService extends IService<CollectionNumberSummary> {

	/**
	 * 归集汇总分析分页
	 *
	 * @param startDate
	 * @param endDate
	 * @param collectionInfo
	 * @param clientNumber
	 * @param clientName
	 * @param page
	 * @return com.baomidou.mybatisplus.core.metadata.IPage<com.tofly.qualitycontrol.vo.CollectionNumberSummaryVO>
	 **/
	IPage<CollectionNumberSummaryVO> getList(String startDate,String endDate,String collectionInfo,String clientNumber,String clientName,Page<CollectionNumberSummary> page);

	void exportData(HttpServletResponse response,String filename,String sheetName,List datas,Class cla);
	/**
	 * 导出当前归集汇总分析列表excel
	 *
	 * @param response
	 * @param collectionNumberSummaryDTO
	 * @return void
	 **/
	void export(HttpServletResponse response,CollectionNumberSummaryDTO collectionNumberSummaryDTO);

	/**
	 * 导出归集号中客户的统计信息
	 *
	 * @param response
	 * @param collectionNumberSummaryDTO
	 * @return void
	 **/
	void exportClientDetail(HttpServletResponse response,CollectionNumberSummaryClientDTO collectionNumberSummaryDetailDTO);

	/**
	 * 汇总分析里的详情分页,查询
	 *
	 * @param collectionNumber
	 * @param startDate
	 * @param endDate
	 * @param page
	 * @return com.baomidou.mybatisplus.core.metadata.IPage<com.tofly.qualitycontrol.vo.CollectionNumberClientVO>
	 **/
	IPage<CollectionNumberClientVO> getDetailList(String collectionNumber,String startDate,String endDate,Page<CollectionNumberDetail> page);

	/**
	 * 归集月份水量波动图
	 *
	 * @param collectionNumber
	 * @param startDate
	 * @param endDate
	 * @return java.util.List<com.tofly.qualitycontrol.vo.CollectionNumberSummaryGraphVO>
	 **/
	List<CollectionNumberSummaryGraphVO> getCollectionMonthGraph(String collectionNumber,String startDate,String endDate);

	/**
	 * 客户月份水量波动图
	 *
	 * @param clientNumber
	 * @param startDate
	 * @param endDate
	 * @return java.util.List<com.tofly.qualitycontrol.vo.CollectionNumberSummaryGraphVO>
	 **/
	List<CollectionNumberSummaryGraphVO> getClientMonthGraph(String clientNumber,String startDate,String endDate);

	/**
	 * 客户历史三月水量波动图
	 *
	 * @param clientNumber
	 * @return java.util.List<com.tofly.qualitycontrol.vo.CollectionNumberSummaryGraphVO>
	 **/
	List<CollectionNumberSummaryGraphVO> getClientHistoryGraph(String clientNumber);

}
