package com.chinaweal.aiccs.aiccs.force.cancel.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaweal.aiccs.aiccs.force.cancel.entity.CancelRevoke;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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

/**
 * 撤销吊销业务Mapper
 */
@Mapper
public interface CancelRevokeMapper extends BaseMapper<CancelRevoke> {

    /**
     * 新增撤销吊销业务
     */
    int insert(CancelRevoke cancelRevoke);

    /**
     * 更新撤销吊销业务
     */
    int update(CancelRevoke cancelRevoke);

    /**
     * 根据ID查询撤销吊销业务
     */
    CancelRevoke selectById(@Param("bizId") String bizId);

    /**
     * 根据业务编号查询撤销吊销业务
     */
    CancelRevoke selectByBizSeq(@Param("bizSeq") String bizSeq);

    /**
     * 分页查询撤销吊销业务列表
     */
    List<CancelRevoke> selectList(Map<String, Object> params);

    /**
     * 分页查询撤销吊销业务数量
     */
    int selectCount(Map<String, Object> params);

    /**
     * 查询待审批列表
     */
    List<CancelRevoke> selectApproveList(Map<String, Object> params);

    /**
     * 查询待审批数量
     */
    int selectApproveCount(Map<String, Object> params);

    /**
     * 分页查询吊销主体列表
     */
    IPage<Map<String, Object>> selectRevokedEntPage(Page<?> page, @Param("params") Map<String, Object> params);

    /**
     * 查询吊销主体列表
     */
    List<Map<String, Object>> selectRevokedEntList(Map<String, Object> params);

    /**
     * 查询吊销主体数量
     */
    int selectRevokedEntCount(Map<String, Object> params);

    /**
     * 更新业务状态
     */
    int updateStatus(@Param("bizId") String bizId, @Param("status") String status, @Param("currentNode") String currentNode);
}
