package com.palmnest.service.repair;

import com.palmnest.application.bean.AppResultDto;
import com.palmnest.application.bean.Page;
import com.palmnest.application.dto.WebPageResultDto;
import com.palmnest.application.dto.output.RepairBillBoardDto;
import com.palmnest.application.dto.output.RepairBillStateStatisticsDto;
import com.palmnest.application.dto.output.RepairBillTypeStatisticsDto;
import com.palmnest.model.repair.RepairBill;
import com.palmnest.service.GenericManager;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 服务之窗1L- RepairBillAccountManager
 *
 * @Description TODO
 * @author: jiangyong
 * @since: 2020/9/2 10:05
 */
public interface RepairBillStatisticsManager  {

    Page getRepairBillBoard(String orgIds, Integer pageSize, Integer pageNo);

    List<RepairBillStateStatisticsDto> getRepairBillStatisticsByStatus(Integer orgId, Integer type, String date,String endDate);

    WebPageResultDto getRepairStateListExcel(List<RepairBillStateStatisticsDto> data) throws IOException;

    RepairBillStateStatisticsDto getRepairBoardTotal(String orgIds);
    
	
	/**
	 * 获取微信端创建的所有工单数、收费数、费用
	 * @return
	 */
	Page getAllWxOrder(Map<String, Object> conditions,int type,int pageNo,int pageSize);
	
	/**
	 * 获取订单明细
	 * @param isFree  ==1获取所有工单数的明细 ==0获取收费工单数的明细
	 * @return
	 */
	Page getWxAmountOrder(Map<String, Object> conditions,int isFree,int type,int pageNo,int pageSize);
	
	/**
	 * 导出工单信息
	 * @param conditions
	 * @return
	 */
	AppResultDto exportAllWxOrderStatistics(Map<String, Object> conditions,int type);
	
	/**
	 * 导出工单明细
	 * @param conditions
	 * @param isFree
	 * @return
	 */
	AppResultDto exportWxAmountOrderStatistics(Map<String, Object> conditions,int isFree,int type);


	Page getPeoplecOrderList(Map<String, Object> conditions,int type,int pageNo,int pageSize);

	WebPageResultDto getPeoplecOrderListExcel(List<Map<String, Object>> list) throws IOException;

	WebPageResultDto getBillCommentListExcel(List<Map<String, Object>> list) throws IOException;


	Page getBillCommentList(Map<String, Object> conditions,int type,int pageNo,int pageSize);
}
