package com.brilliance.isc.mda.dao;

import com.brilliance.isc.bo.Spt;
import com.brilliance.isc.bo.SptVo;
import com.brilliance.isc.vo.PendingCheckVo;
import com.brilliance.isc.vo.lg.SwfsehVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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

@Mapper
public interface SptMapper {

    int insert(Spt record);

    int insertSelective(Spt record);

    int updateByPrimaryKeySelective(Spt record);

    int updateByPrimaryKey(Spt record);

    int deleteByPrimaryKey(Spt record);

    int deleteByIds(Collection<Object> collection);

    Spt selectByPrimaryKey(Spt record);

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

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

    List<Spt> selectList(@Param("selobj") String selobj, @Param("inidatfro") String inidatfro,
                         @Param("inidattil") String inidattil, @Param("seltxt") String seltxt,
                         @Param("dflg") String dflg);

    List<String> selectUsg(@Param("usrInr") String usrInr, @Param("extKey") String extKey);

    List<String> selectUsr(@Param("usrInr") String usrInr, @Param("extKey") String extKey);

    List<String> selectExtKey(@Param("usrInr") String usrInr, @Param("extKey") String extKey);

    int updateHldflgByCreobjinr(@Param("inr") String inr);

    Spt selectByCreobjtypAndCreobjinrAndHldflg(@Param("creobjtyp") String creobjtyp, @Param("creobjinr") String creobjinr, @Param("hldflg") String hldflg);

    Spt selectByCreobjtypAndCreobjinrAndHldflgAndFrm(@Param("creobjtyp") String creobjtyp, @Param("creobjinr") String creobjinr, @Param("hldflg") String hldflg, @Param("frm") String frm);

    int countOwnref(@Param("ownref") String ownref, @Param("pntInr") String pntInr);

    int countOwnrefFromSptBrd(@Param("ownref") String ownref, @Param("pntInr") String pntInr);

    int countOwnrefFromSptBdd(@Param("ownref") String ownref, @Param("pntInr") String pntInr);

    List<String> getInrListByCreobjinr(@Param("creobjinr") String creobjinr);

    List<Spt> selectByObjtypAndObjinr(@Param("objtyp") String objtyp, @Param("objinr") String objinr);

    String selectInftxtByObjinr(@Param("objinr") String objinr);

    List<Spt> selectSptCondition(Spt spt);

    List<Map<String, Object>> selectSpt(@Param("argref") String argref, @Param("ref") String ref);

    int selectCount(String inr);

    Spt getSptByInr(@Param("inr") String inr);

    List<Spt> selectByOrdinr(@Param("ordinr") String ordinr);

    List<Spt> getPenSptList(PendingCheckVo module);

    List<Spt> getAmeSptList(PendingCheckVo module);

    List<Spt> getCanSptList(PendingCheckVo module);

    List<SptVo> getSwfsehList(@Param("vo") SwfsehVo swfsehVo);

    int getCountByRefBchkeyinr(@Param("ref") String ref, @Param("bchinr") String bchinr);

    Spt getSptByCpdAndSpt(Spt spt);

    Spt getSptOfIncomingByInifrmAndObjinr(@Param("objinr") String objinr, @Param("frm") String frm);

    List<Spt> selectByCreobjtypAndCreobjinr(@Param("creobjtyp") String creobjtyp, @Param("creobjinr") String creobjinr);

    Spt selectSptByobjref(@Param("objref") String objref);

    Spt selectSptBychnref(@Param("chnref") String chnref);

    Spt selectBySmhinrOrdinr(@Param("smhinr") String smhinr, @Param("ordinr") String ordinr);

    String selectBySmhinr(@Param("smhinr") String smhinr);

    int updateEciflgByInr(@Param("eciflg") String eciflg, @Param("inr") String inr);

    Spt selectByDfref(@Param("dfref") String dfref);

    Spt selectSptBySmhinr(@Param("smhinr") String smhinr);
}