package com.brilliance.isc.mda.dao;

import com.brilliance.isc.bo.Fec;
import com.brilliance.isc.vo.manager.FecVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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

@Mapper
public interface FecMapper {

    int insert(Fec record);

    int insertSelective(Fec record);

    int updateByPrimaryKeySelective(Fec record);

    int updateByPrimaryKey(Fec record);

    int deleteByPrimaryKey(Fec record);

    int deleteByIds(Collection<Object> collection);

    Fec selectByPrimaryKey(Fec record);

    Fec selectByInr(String inr);

    Fec selectByFeeInrLowAmtHigAmt(String feeInr, BigDecimal amt, Date fecRefDat, String feePri);

    Date selectBegDat(String objInr, Date begdat1, Date begdat2);

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

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

    List<Fec> selectFecByObjtypAndObjinrAndFeeinrAndFeepri(@Param("objtyp") String objtyp, @Param("objinr") String objinr, @Param("feeinr") String feeinr, @Param("feepri") String feepri);

    List<Fec> selectFecByConditionSql(@Param(value = "conditionSql") String conditionSql);

    FecVo queryById(@Param("inr")String inr);
    FecVo queryById1(@Param("inr")String inr);

    List<FecVo> queryAllByLimit(@Param("entity") FecVo fecVo);

    int update(@Param("item") Fec fec);

    int deleteById(String inr);

    int getFeecodPriOnly(FecVo fecVo);

    int insertFec(@Param("item") Fec fec);

    int queryOitFecExt(String inr);

    FecVo queryOitFecMsg(String inr);

    int addOitFecMsg(@Param("oitinr") String oitinr, @Param("item") FecVo fecVo);

    int updateOitFecMsg(FecVo fecVo);

    int deleteOitFecMsg(String inr);

    String getFecInr();

    String getFeeInr(String feeCod);

    List<String> getFeeCodList();

    List<Fec> queryByRepeatCondition(Fec fec);

}