package com.ruoyi.cs.mapper;

import com.ruoyi.cs.domain.CsApprovalRecord;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 审核记录Mapper接口
 *
 * @author cc
 * @date 2024-04-30
 */
public interface CsApprovalRecordMapper
{
    /**
     * 查询审核记录
     *
     * @param approvalRecordId 审核记录主键
     * @return 审核记录
     */
    public CsApprovalRecord selectCsApprovalRecordByApprovalRecordId(String approvalRecordId);

    /**
     * 查询审核记录列表
     *
     * @param csApprovalRecord 审核记录
     * @return 审核记录集合
     */
    public List<CsApprovalRecord> selectCsApprovalRecordList(CsApprovalRecord csApprovalRecord);

    /**
     * 新增审核记录
     *
     * @param csApprovalRecord 审核记录
     * @return 结果
     */
    public int insertCsApprovalRecord(CsApprovalRecord csApprovalRecord);

    /**
     * 修改审核记录
     *
     * @param csApprovalRecord 审核记录
     * @return 结果
     */
    public int updateCsApprovalRecord(CsApprovalRecord csApprovalRecord);

    /**
     * 删除审核记录
     *
     * @param approvalRecordId 审核记录主键
     * @return 结果
     */
    public int deleteCsApprovalRecordByApprovalRecordId(String approvalRecordId);

    /**
     * 批量删除审核记录
     *
     * @param approvalRecordIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCsApprovalRecordByApprovalRecordIds(String[] approvalRecordIds);

    /**
     * 覆盖删除 申请单的审核记录
     * @param formId 资源/工单 ID
     * @param formType 申请单类型(0-资源, 1-工单)
     * @return 结果
     */
    public int deleteCoverApprovalRecordByApplyIdType(@Param("formId") String formId, @Param("formType") String formType);

    /**
     * 查询审核记录（根据审批流程ID）
     *
     * @param approvalInfoId 审批流程ID
     * @return 审核记录
     */
    public CsApprovalRecord selectCsApprovalRecordByApprovalInfoId(String approvalInfoId);

    /**
     * 删除审核记录信息（根据审批流程ID）
     *
     * @param approvalInfoId 审批流程ID
     * @return 结果
     */
    public int deleteCsApprovalRecordByApprovalInfoId(String approvalInfoId);
    public int deleteCsApprovalRecordByFormId(String formId);

    /**
     * 查询最后一条审核记录（根据资源/工单 ID）
     *
     * @param formId 资源/工单 ID
     * @return 审核记录
     */
    public CsApprovalRecord selectEndCsApprovalRecordByFormId(String formId);
}
