package com.dhcc.finance.main.dao;

import com.dhcc.finance.main.domain.CwGlTransferExec;
import com.dhcc.finance.main.domain.CwGlTransferExecExample;
import com.dhcc.finance.main.model.CwGlTransferExecAndName;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

public interface CwGlTransferExecMapper {

	long countByExample(CwGlTransferExecExample example);

	int deleteByExample(CwGlTransferExecExample example);

	int deleteByPrimaryKey(String pkTransferExec);

	int insert(CwGlTransferExec record);

	int insertSelective(CwGlTransferExec record);

	List<CwGlTransferExec> selectByExample(CwGlTransferExecExample example);

	CwGlTransferExec selectByPrimaryKey(String pkTransferExec);

	int updateByExampleSelective(@Param("record") CwGlTransferExec record,
			@Param("example") CwGlTransferExecExample example);

	int updateByExample(@Param("record") CwGlTransferExec record, @Param("example") CwGlTransferExecExample example);

	int updateByPrimaryKeySelective(CwGlTransferExec record);

	int updateByPrimaryKey(CwGlTransferExec record);

	/**
	 * @param nameLike
	 * @return List<CwGlTransferExecAndName>
	 *@author huangpeng
	 * @param pkAccperiodLike 
	 *@date 2019年4月1日 下午8:41:41
	 *@修改日志：
	 */
	List<CwGlTransferExecAndName> selectAllDateByNameLike(@Param("nameLike") String nameLike,@Param("pkAccperiodLike") String pkAccperiodLike,
			@Param("istransfer") String istransfer,
			@Param("transferUser") String transferUser,@Param("transferTime") String transferTime);
	/**
	 * @param nameLike
	 * @return List<CwGlTransferExecAndName>
	 *@author huangpeng
	 * @date 2019年4月1日 下午8:41:41
	 *@修改日志：
	 */
	List<CwGlTransferExecAndName> selectAllDateByglorgbook(@Param("nameLike") String nameLike);
	/**
	 * 功能描述：查询是否结转
	 * @param map
	 * @return Map<String,Integer>
	 * @author dml
	 * @date 2019年4月25日 下午2:24:55
	 * @修改日志：
	 */
	Map<String, Long> selectIstransfer(Map<String, Object> map);
	/**
	 * 功能描述：查询账套下最近一次结转期间
	 * @param pkGlorgbook
	 * @return String
	 * @author dml
	 * @date 2019年6月24日 下午3:27:40
	 * @修改日志：
	 */
	String selectMaxPeriod(@Param("pkGlorgbook") String pkGlorgbook);
	/**
	 * 功能描述：结转统计
	 * @param nameLike
	 * @param pkAccperiodLike
	 * @param istransfer
	 * @param transferUser
	 * @param transferTime
	 * @return long
	 * @author dml
	 * @date 2019年8月28日 下午9:57:30
	 * @修改日志：
	 */
	long countTransferTotal(@Param("nameLike") String nameLike,@Param("pkAccperiodLike") String pkAccperiodLike,
			@Param("istransfer") String istransfer,
			@Param("transferUser") String transferUser,@Param("transferTime") String transferTime);
    /** 功能描述：初始化结转数据
     * @return object
     * @author xuxiao
     * @date 2019年8月23日 上午11:53:37
     * @修改日志：
     */
    int insertForTransfer(Map<String, Object> map);
    /**
     * 功能描述 查询账套期间的结转信息
     *@param pkGlorgbook
     *@param period void
     *@author huangpeng
     *@date 2019年10月13日 上午11:23:02
     *修改日志:
     */
    List<CwGlTransferExec> selectPkTransfer(@Param("pkGlorgbook") String pkGlorgbook,@Param("period") String period);
    
}