package com.dhcc.finance.main.dao;

import com.dhcc.finance.main.domain.CwBdVouchtempF;
import com.dhcc.finance.main.domain.CwGlFreevalue;
import com.dhcc.finance.main.domain.CwGlFreevalueExample;
import com.dhcc.finance.main.model.CwGlFreevalueInfo;
import com.dhcc.finance.main.model.CwGlVoucherTempRequest;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CwGlFreevalueMapper {
    long countByExample(CwGlFreevalueExample example);

    int deleteByExample(CwGlFreevalueExample example);

    int deleteByPrimaryKey(String pkFreevalue);

    int insert(CwGlFreevalue record);

    int insertSelective(CwGlFreevalue record);

    List<CwGlFreevalue> selectByExample(CwGlFreevalueExample example);

    CwGlFreevalue selectByPrimaryKey(String pkFreevalue);

    int updateByExampleSelective(@Param("record") CwGlFreevalue record, @Param("example") CwGlFreevalueExample example);

    int updateByExample(@Param("record") CwGlFreevalue record, @Param("example") CwGlFreevalueExample example);

    int updateByPrimaryKeySelective(CwGlFreevalue record);

    int updateByPrimaryKey(CwGlFreevalue record);

    /**
     * 功能描述：查询ASSID
     *
     * @param pkFreevalue
     * @return CwGlFreevalue
     * @author dml
     * @date 2019年4月13日 下午3:28:49
     * @修改日志：
     */
    CwGlFreevalue selectAssid(@Param("checkTypes") String checkTypes, @Param("checkValues") String checkValues, @Param("checkValue") String checkValue);

    /**
     * 功能描述：批量新增数据
     *
     * @param cwGlFreevalueList
     * @return int
     * @author dml
     * @date 2019年4月13日 下午4:13:26
     * @修改日志：
     */
    int insertCwGlFreevalueBatch(List<CwGlFreevalue> cwGlFreevalueList);

    /**
     * 功能描述 反结转删除
     *
     * @param assidList
     * @return int
     * @author huangpeng
     * @date 2019年8月10日 下午5:04:09
     * 修改日志:
     */
    int updateUserStateByAssid(@Param("list") List<String> assidList);

    /**
     * 功能描述
     *
     * @param assid
     * @return List<CwGlFreevalue>
     * @author huangpeng
     * @date 2019年8月19日 下午3:36:05
     * 修改日志:
     */
    List<CwGlFreevalue> searchCwGlFreevalueByassid(@Param("assid") String assid);

    /**
     * 功能描述：根据saaid查询
     *
     * @param assid
     * @return List<CwGlFreevalueInfo>
     * @author dml
     * @date 2019年8月19日 下午8:48:26
     * @修改日志：
     */
    List<CwGlFreevalueInfo> searchByAssid(@Param("assid") String assid);

    /**
     * 功能描述  根据assid删除
     *
     * @param assid
     * @return int
     * @author huangpeng
     * @date 2019年8月27日 下午2:17:51
     * 修改日志:
     */
    int deleteByAssid(@Param("list") List<String> list);

    /**
     * @description: 联查凭证辅助项
     * @param [cwBdVouchtempF, cwGlVoucherTempRequest]
     * @return java.util.List<com.dhcc.finance.main.domain.CwGlFreevalue>
     * @author lxj
     * @date 2020-06-19 14:52
     * @modify
     */
    List<CwGlFreevalue>  selectCwGlFreevalueBatchByTemp(@Param("cwBdVouchtempF") CwBdVouchtempF cwBdVouchtempF, @Param("cwGlVoucherTempRequest") CwGlVoucherTempRequest cwGlVoucherTempRequest);

    void updateCheckType(@Param("pkGlorgbook") String pkGlorgbook, @Param("subjcodeO") String subjcodeO, @Param("checkTypeO") String checkTypeO, @Param("checkTypeN") String checkTypeN);
}