package com.brilliance.isc.mda.dao;

import com.brilliance.isc.bo.Bpd;
import com.brilliance.isc.vo.finance.BpdQueryVo;
import com.brilliance.isc.vo.finance.BpdWithPtsCbbResponseVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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

@Mapper
public interface BpdMapper {

    int insert(Bpd record);

    int insertSelective(Bpd record);

    int updateByPrimaryKeySelective(Bpd record);

    int updateByPrimaryKey(Bpd record);

    int deleteByPrimaryKey(Bpd record);

    int deleteByIds(Collection<Object> collection);

    Bpd selectByPrimaryKey(Bpd record);

    int dyncDelete(Map<String, Object> dyncMap);

    List<Bpd> dyncRead(Map<String, Object> dyncMap);

    Bpd selectByOwnref(String ownref);

    Bpd getBpdByInr(String inr);

    List<BpdWithPtsCbbResponseVo> queryBpd(BpdQueryVo bpdQueryVo);

    List<Bpd> getBpdByPntinrAndPnttyp(@Param("pntinr") String pntinr, @Param("pnttyp") String pnttyp);

    String selectLoannoByOwnref(String ownref);

    int getBpdByPntinrAndPnttypClsdat(@Param("pntinr") String pntinr, @Param("pnttyp") String pnttyp);

    Bpd selectByWhere(Bpd record);

    Bpd selectByFincod(@Param("fincod") String fincod);

    Map<String, String> selectForWhj(@Param("inr") String inr);

    Map<String, String> selectBptopnForWhj(@Param("inr") String inr);

    Map<String, String> selectBptsetForWhj(@Param("inr") String inr);

    Bpd selectByPnttypAndPntinr(@Param("pnttyp") String pnttyp, @Param("pntinr") String pntinr);

    List<BpdWithPtsCbbResponseVo> queryBpdInfo(BpdQueryVo bpdQueryVo);

    String selectByClsdatAndBchKeyInr(@Param("bchkeyinr") String bchkeyinr);

    Bpd selectByBpdInr(@Param("inr") String inr);

    Bpd selectByOwnrefFintypFortyp(@Param("ownref") String ownref, @Param("fintyp") String fintyp, @Param("fortyp") String fortyp);

    Bpd selectByAnyref(@Param("objtyp") String objtyp, @Param("ref") String ref, @Param("rol") String rol);

    String selectBenNam(@Param("ownref") String ownref);

    Bpd selectBchByFincod(@Param("fincod") String fincod);

    int getBpdCntByPnttypAndPntinr(@Param("pntinr") String pntinr, @Param("pnttyp") String pnttyp);

}