package com.ruoyi.cs.mapper;

import java.util.List;
import com.ruoyi.cs.domain.CsAnnex;
import com.ruoyi.cs.domain.vo.CsAnnexApplyVO;
import org.apache.ibatis.annotations.Param;

/**
 * 附件Mapper接口
 *
 * @author ruoyi
 * @date 2024-04-30
 */
public interface CsAnnexMapper
{
    /**
     * 查询附件
     *
     * @param annexId 附件主键
     * @return 附件
     */
    public CsAnnex selectCsAnnexByAnnexId(String annexId);

    /**
     * 查询附件列表
     *
     * @param csAnnex 附件
     * @return 附件集合
     */
    public List<CsAnnex> selectCsAnnexList(CsAnnex csAnnex);

    /**
     * 新增附件
     *
     * @param csAnnex 附件
     * @return 结果
     */
    public int insertCsAnnex(CsAnnex csAnnex);

    /**
     * 修改附件
     *
     * @param csAnnex 附件
     * @return 结果
     */
    public int updateCsAnnex(CsAnnex csAnnex);

    /**
     * 删除附件
     *
     * @param annexId 附件主键
     * @return 结果
     */
    public int deleteCsAnnexByAnnexId(String annexId);

    /**
     * 批量删除附件
     *
     * @param annexIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCsAnnexByAnnexIds(String[] annexIds);

    /**
     * 批量新增附件
     *
     * @param list 附件列表
     * @return
     */
    public int batchInsertCsAnnexList(@Param("list") List<CsAnnex> list);

    /**
     * 查询资源/工单申请附件列表
     * @param resId 资源/工单Id
     * @param resType 类型（0-资源，1-工单）
     * @return
     */
    public List<CsAnnexApplyVO> selectApplyCsAnnexList(@Param("resId") String resId, @Param("resType") String resType);

    /**
     * 删除申请表列表
     * @param resId 资源/工单 id
     * @param resType 类型（0-资源，1-工单）
     * @return
     */
    public int deleteAnnexListByApply(@Param("resId") String resId, @Param("resType") String resType);

    /**
     * 批量修改件
     *
     * @param list 附件列表
     * @return
     */
    public int batchUpdateCsAnnexList(@Param("list") List<CsAnnex> list);

    /**
     * 删除附件
     *
     * @param resId 相关资源ID
     * @return 结果
     */
    public int batchDeleteCsAnnexByResId(String resId);
}
