package com.brilliance.isc.mda.dao;

import com.brilliance.isc.bo.Atp;
import com.brilliance.isc.bo.Stb;
import com.brilliance.isc.vo.component.atp.AtpInfoVo;
import com.brilliance.isc.vo.lg.BchlistVo;
import com.brilliance.isc.vo.lg.CodlistVo;
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 AtpMapper {

    //int insert(Atp record);

    int insertSelective(Atp record);

    int updateByPrimaryKeySelective(Atp record);

    int updateByPrimaryKey(Atp record);

    int deleteByPrimaryKey(Atp record);

    int deleteByIds(Collection<Object> collection);

    Atp selectByPrimaryKey(Atp record);

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

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

    Atp getAtpByCod(String cod);

    String selectLnkobjByCod(String cod);

    /**
     * 通过ID查询单条数据
     *
     * @param inr 主键
     * @return 实例对象
     */
    Atp queryById(@Param("inr") String inr);

    /**
     * 查询指定行数据
     *
     * @param
     * @param
     * @return 对象列表
     */
    List<Atp> queryAllByLimit(Atp atp);

    /**
     * 查询指定行数据
     *
     * @param
     * @param
     * @return 对象列表
     */
    List<Atp> queryAllByRoleId(@Param("roleid") String roleid);

    /**
     * 新增数据
     *
     * @param atp 实例对象
     * @return 影响行数
     */
    int insert(Atp atp);

    /**
     * 修改数据
     *
     * @param atp 实例对象
     * @return 影响行数
     */
    int update(Atp atp);

    /**
     * 通过主键删除数据
     *
     * @param inr 主键
     * @return 影响行数
     */
    int deleteById(String inr);

    /**
     * @description: 查询cod是否存才
     * @author: hewei
     * @date: 2022/12/15 16:10
     */
    int queryCod(String cod);


    List<Stb> selectAllByCod(@Param("cod") String cod);

    List<AtpInfoVo> selectTreeAllByCod(@Param("cod") String cod);

    List<AtpInfoVo> selectFirstCodList(@Param("cod") String cod);

    List<AtpInfoVo> selectSecondCodList(@Param("cod") String cod);

    List<AtpInfoVo> selectGuanateeSecondCod(@Param("cod") String cod,@Param("branch") String branch,@Param("bustyp") List<String> bustyp);

    List<AtpInfoVo> selectSecondCodAndBustypList(@Param("cod") String cod,@Param("branch") String branch,@Param("bustyp") List<String> bustyp);

    List<AtpInfoVo> selectInifrmByBranch(@Param("branch") String branch);

    List<CodlistVo> queryCodlist();

    List<CodlistVo> queryCodslist();

}