/**
 * 
 */
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.CwGlSettle;
import com.dhcc.finance.main.model.CwGlSettleAndName;
import com.dhcc.finance.main.model.CwGlTransferWeb;
import com.github.pagehelper.PageInfo;

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

	/**
	 * @param periodLike
	 * @param pageNum
	 * @param pageSize
	 * @param navigatePages
	 * @return RestfulResponse<PageInfo<CwGlSettleAndName>,CurrencyMeta>
	 *@author huangpeng
	 * @param periodLike2 
	 *@date 2019年4月2日 下午1:41:02
	 *@修改日志：
	 */
	RestfulResponse<PageInfo<CwGlSettleAndName>, CurrencyMeta> searchCwGlSettleAndName(String nameLike, String periodLike, int pageNum,
			int pageSize, int navigatePages,String issettle,String settleUser,String settleTime);

	/**
	 * @param cwGlSettles
	 * @return RestfulResponse<Object,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年4月2日 下午1:54:36
	 *@修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> updateCwGlSettleForBatch(List<CwGlTransferWeb> cwGlSettles);

	/**
	 * @param nameLike
	 * @param periodLike
	 * @param pageNum
	 * @param pageSize
	 * @param navigatePages
	 * @return RestfulResponse<PageInfo<CwGlSettleAndName>,CurrencyMeta>
	 *@author huangpeng
	 * @param settleTime 
	 * @param settleUser 
	 * @param issettle 
	 *@date 2019年4月10日 上午9:26:34
	 *@修改日志：
	 */
	RestfulResponse<PageInfo<CwGlSettleAndName>, CurrencyMeta> searchCwGlSettleAndNameForReverse(String nameLike,
			String periodLike, int pageNum, int pageSize, int navigatePages, String issettle, String settleUser, String settleTime);

	/**
	 * @param cwGlSettles
	 * @return RestfulResponse<Object,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年4月10日 上午9:30:13
	 *@修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> updateCwGlSettleForBatchReverse(List<CwGlSettle> cwGlSettles);
	/**
	 * 功能描述：统计记账数
	 * @param nameLike
	 * @param periodLike
	 * @param issettle
	 * @param settleUser
	 * @param settleTime
	 * @return RestfulResponse<Object,CurrencyMeta>
	 * @author dml
	 * @date 2019年8月28日 下午9:22:07
	 * @修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> countSettleTotal(String nameLike,String periodLike
			,String issettle,String settleUser,String settleTime); 
    /** 功能描述：初始化结账数据
     * @return RestfulResponse<PageInfo<CwGlSettleAndName>,CurrencyMeta>
     * @author xuxiao
     * @date 2019年8月23日 上午11:18:01
     * @修改日志：
     */
    RestfulResponse<Object, CurrencyMeta> insertForSettle(String period);
}
