/**
 * 
 */
package com.dhcc.finance.main.service;

import java.util.List;

import com.dhcc.common.model.CurrencyMeta;
import com.dhcc.common.model.response.RestfulResponse;
import com.dhcc.finance.main.domain.CwGlTransferExec;
import com.dhcc.finance.main.model.CwGlTransferExecAndName;
import com.dhcc.finance.main.model.CwGlTransferExecDetail;
import com.dhcc.finance.main.model.CwGlTransferWeb;
import com.github.pagehelper.PageInfo;

/**
 * @author hp
 *
 */
public interface CwGlTransferExecService {

	/**
	 * @param nameLike
	 * @param pageNum
	 * @param pageSize
	 * @param navigatePages
	 * @return RestfulResponse<PageInfo<CwGlTransferExecAndName>,CurrencyMeta>
	 *@author huangpeng
	 * @date 2019年4月1日 下午8:37:26
	 *@修改日志：
	 */
	RestfulResponse<PageInfo<CwGlTransferExecAndName>, CurrencyMeta> searchCwGlTransferExecAndName(String nameLike,
			int pageNum, int pageSize, int navigatePages);


	/**
	 * @param cwGlTransferExecs
	 * @return RestfulResponse<Object,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年4月2日 上午10:16:52
	 *@修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> updateCwGlTransferExecForBatch(List<CwGlTransferWeb> cwGlTransferExecs);

	/**
	 * @param nameLike
	 * @param pkAccperiodLike
	 * @param pageNum
	 * @param pageSize
	 * @param navigatePages
	 * @return RestfulResponse<PageInfo<CwGlTransferExecAndName>,CurrencyMeta>
	 *@author huangpeng
	 * @param transferTime 
	 * @param transferUser 
	 * @param istransfer 
	 *@date 2019年4月9日 下午8:54:41
	 *@修改日志：
	 */
	RestfulResponse<PageInfo<CwGlTransferExecAndName>, CurrencyMeta> searchCwGlTransferExecAndNameForReverse(
			String nameLike, String pkAccperiodLike, int pageNum, int pageSize, int navigatePages, String istransfer, String transferUser, String transferTime);

	/**
	 * @param cwGlTransferExecs
	 * @return RestfulResponse<Object,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年4月9日 下午10:18:46
	 *@修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> updateCwGlTransferExecForBatchReverse(
			List<CwGlTransferExec> cwGlTransferExecs);

	/**
	 * 功能描述：结转统计
	 * @param nameLike
	 * @param pkAccperiodLike
	 * @param istransfer
	 * @param transferUser
	 * @param transferTime
	 * @return RestfulResponse<Object,CurrencyMeta>
	 * @author dml
	 * @date 2019年8月28日 下午9:55:39
	 * @修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> countTransferTotal(String nameLike,
			String pkAccperiodLike, String istransfer,String transferUser,String transferTime);
    /** 功能描述：初始化结转数据
     * @return RestfulResponse<object,CurrencyMeta>
     * @author xuxiao
     * @date 2019年8月23日 上午10:14:54
     * @修改日志：
     */
    RestfulResponse<Object, CurrencyMeta> insertForTransfer(String period);

    /**
     * 功能描述
     *@param pkGlorgbook
     *@param period
     *@param pageNum
     *@param pageSize
     *@param navigatePages
     *@return RestfulResponse<PageInfo<CwGlTransferExecDetail>,CurrencyMeta>
     *@author huangpeng
     *@date 2019年10月9日 下午2:12:10
     *修改日志:
     */
	RestfulResponse<List<CwGlTransferExecDetail>, CurrencyMeta> searchTransferForIncome(String pkGlorgbook,
			String periods);

	/**
	 * 功能描述  利润结转
	 *@param cwGlTransferExecs
	 *@return RestfulResponse<Object,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年10月13日 上午10:55:13
	 *修改日志:
	 */
	RestfulResponse<Object, CurrencyMeta> updateCwGlTransferExecForProfit(List<CwGlTransferWeb> cwGlTransferExecs);

}
