package com.dhcc.finance.main.dao;

import com.dhcc.finance.main.domain.CwBdAccass;
import com.dhcc.finance.main.domain.CwBdAccassExample;
import com.dhcc.finance.main.domain.CwBdSubjscheme;
import com.dhcc.finance.main.model.CwBdSubjschemeAdd;

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

import org.apache.ibatis.annotations.Param;

public interface CwBdAccassMapper {
    long countByExample(CwBdAccassExample example);

    int deleteByExample(CwBdAccassExample example);

    int deleteByPrimaryKey(String pkAccass);

    int insert(CwBdAccass record);

    int insertSelective(CwBdAccass record);

    List<CwBdAccass> selectByExample(CwBdAccassExample example);

    CwBdAccass selectByPrimaryKey(String pkAccass);

    int updateByExampleSelective(@Param("record") CwBdAccass record, @Param("example") CwBdAccassExample example);

    int updateByExample(@Param("record") CwBdAccass record, @Param("example") CwBdAccassExample example);

    int updateByPrimaryKeySelective(CwBdAccass record);

    int updateByPrimaryKey(CwBdAccass record);
    /**
     * 功能描述：逻辑删除某版本下的会计科目下的全部辅助配置
     * @param pkSubjscheme
     * @return int
     * @author dml
     * @date 2019年3月22日 下午3:19:48
     * @修改日志：
     */
    int updateByPkSubjscheme(CwBdSubjscheme cwBdSubjscheme);
    /**
     * 功能描述：逻辑删除某会计科目下的所有辅助信息 
     * @param map
     * @return int
     * @author dml
     * @date 2019年3月22日 下午3:19:48
     * @修改日志：
     */
    int updateBypPkAccsubj(Map<String, Object> map);
    /**
     * 功能描述：会计科目辅助项复制
     * @param cwBdSubjschemeAdd
     * @return int
     * @author dml
     * @date 2019年3月25日 下午7:37:35
     * @修改日志：
     */
    int insertCpCwBdAccass(CwBdSubjschemeAdd cwBdSubjschemeAdd);
    /**
     * 功能描述：批量新增数据
     * @param listCwBdAccass
     * @return int
     * @author dml
     * @date 2019年3月26日 下午7:53:30
     * @修改日志：
     */
    int insertCwBdAccassBatch(List<CwBdAccass> listCwBdAccass);
    /**
     * 功能描述：查询此辅助项下的凭证数
     * @param pkAccassitem
     * @return long
     * @author xuxiao
     * @date 2019年8月20日 下午17:06:30
     * @修改日志：
     */
    Long selectIsExistsFreeForVoucher(@Param("pkAccass")String pkAccass);

}