package com.brilliance.isc.mda.dao;

import com.brilliance.isc.bo.Cbb;
import com.brilliance.isc.bo.Pte;
import com.brilliance.isc.vo.lg.CbbCbeInfoVo;
import com.brilliance.isc.vo.lg.LiasumVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.poi.hpsf.Decimal;

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

@Mapper
public interface CbbMapper {

    int insert(Cbb record);

    int insertSelective(Cbb record);

    int updateByPrimaryKeySelective(Cbb record);

    int updateByPrimaryKey(Cbb record);

    int deleteByPrimaryKey(Cbb record);

    int deleteByIds(Collection<Object> collection);

    Cbb selectByPrimaryKey(Cbb record);

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

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

    List<Cbb> getCbbListByCbeInr(@Param(value = "cbeInr") String cbeInr);

    List<Cbb> getCbbListByObjTypeAndInr(@Param(value = "objTyp") String objTyp,@Param(value = "objInr") String objInr);

    List<Cbb> getCbbByContiditionSql(@Param(value = "conditionSql") String conditionSql);
int selectCntByInr(String pntInr);

    List<Cbb> getCbbListByObjTypeAndInrAndCbcByOrder(@Param("objTyp") String objTyp, @Param("objInr") String objInr, @Param("cbc") String cbc);


    String[] getCbbTyp( @Param("objtyp") String objtyp, @Param("objinr") String objinr,@Param("pteList") List<Pte> pteList);

    List<Cbb> queryCbbByCbc(@Param("objtyp") String objtyp, @Param("objinr") String objinr, @Param("cbc") String cbc,@Param("pteList") List<Pte> pteList);

    Cbb queryCbbByGcd(@Param("gidinr") String gidinr,@Param("cbbsql") String cbbsql);

    Cbb queryCbbByCcv(@Param("objtyp") String objtyp, @Param("objinr") String objinr,@Param("extid") String extid, @Param("cbc") String cbc);

    Cbb queryTotalAmt(@Param("objtyp") String objtyp, @Param("objinr") String objinr);

    List<CbbCbeInfoVo> queryCcv(@Param("objtyp") String objtyp, @Param("objinr") String objinr);

    List<LiasumVo> selectLiasumList(@Param("objtyp") String objtyp, @Param("objinr") String objinr);

    List<BigDecimal> selectAmtByPtninr(@Param("pntINR") String pntINR,@Param("objtyp") String objtyp);

    List<BigDecimal> selectAmtByParams(@Param("cbtpfx") String cbtpfx, @Param("objtyp") String objtyp, @Param("objinr") String objinr, @Param("rol") String rol);

    int selectByObjinrAndObjtypInt(@Param("objinr") String objinr,@Param("objtyp") String objtyp, @Param("today") String today,@Param("cbc") String cbc,@Param("extid") String extid);

    int selectByBpdObjinrAndObjtypInt(@Param("objinr") String objinr,@Param("pnttyp") String pnttyp,@Param("objtyp") String objtyp, @Param("today") String today,@Param("cbc") String cbc,@Param("extid") String extid);

    Cbb selectCbbbyObjtypandObjinr(@Param("objtyp")String objtyp,@Param("objinr")String objinr);

    List<Cbb> queryCbbByPte(@Param("pteLst") List<String> pteLst);

    List<Cbb> queryCbbByPteinr(@Param("pteLst") List<String> pteLst);

    List<Cbb> queryCbbByObjinr(@Param("objLst") List<String> objLst,@Param("objtyp")String objtyp);

    List<Cbb> queryCbbByCbe(@Param("objLst") List<String> objLst,@Param("objtyp")String objtyp);

    List<LiasumVo> selectLiasumListByObjtypAndObjinr(@Param("objtyp") String objtyp, @Param("objinr") String objinr);

    Cbb queryCbbByCbeobjinr(@Param("objinr") String objinr,@Param("objtyp")String objtyp,@Param("part1") String part1,@Param("part2") String part2);

    Cbb queryCbbByPteObjinr(@Param("objinr") String objinr,@Param("objtyp")String objtyp);

    Cbb queryCbbByCbeinr(@Param("objinr") String objinr,@Param("objtyp")String objtyp,@Param("part1") String part1,@Param("part2") String part2);
}