package com.dhcc.finance.main.service;

import com.dhcc.common.model.CurrencyMeta;
import com.dhcc.common.model.response.RestfulResponse;
import com.dhcc.finance.main.model.ChroAccountExportParam;
import com.dhcc.finance.main.model.FileUploadRequest;

import java.text.ParseException;

import org.springframework.core.io.FileSystemResource;
import org.springframework.http.ResponseEntity;

/**
 * 功能描述：财务报表
 * @author dml
 * @date 2019年7月28日 下午3:34:40
 * @修改日志：
 */
public interface FinancialStatementsService {
	/**
	 * 功能描述：初始化资产负债表
	 * @param reportDate
	 * @param pkGlorgbook
	 * @param reportType
	 * @return RestfulResponse<Object,CurrencyMeta>
	 * @author dml
	 * @date 2019年7月28日 下午3:36:35
	 * @修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> insertInitBalanceSheet(String reportDate,String searchType,String param,
			String reportType);
	/**
	 * 功能描述：初始化/查询加权信息
	 * @param endDate
	 * @param beginDate
	 * @param isInit
	 * @return RestfulResponse<Object,CurrencyMeta>
	 * @author dml
	 * @date 2020年1月7日 上午9:49:49
	 * @修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> initJqDetail(String endDate,String beginDate,Boolean isInit);

	/**
	 * @param [reportDate]
	 * @return com.dhcc.common.model.response.RestfulResponse<java.lang.String,com.dhcc.common.model.CurrencyMeta>
	 * @description: 校验报表信息
	 * @author lxj
	 * @date 2020-07-20 14:26
	 * @modify
	 */
    RestfulResponse<String, CurrencyMeta> checkReport(String reportDate);

    ResponseEntity<FileSystemResource> exportExcelInfo(String param,String reportDate, String reportType,String searchType);

    RestfulResponse<Object, CurrencyMeta> importExcelInfo(FileUploadRequest fileUploadRequest, String param,String reportDate, String reportType,String searchType);
    
    /**
	 * 功能描述：序时账数据导出excel
	 * @param chroAccountExportParam
	 * @return ResponseEntity<FileSystemResource>
	 * @throws ParseException
	 * @author leiyu
	 * @date 2020年7月17日 上午10:18:50
	 */
	ResponseEntity<FileSystemResource> exportChroAccountInfo(ChroAccountExportParam chroAccountExportParam) throws ParseException;

}
