package com.zkqy.execution.produce.dispersed.mapper;

import com.zkqy.execution.produce.dispersed.entity.BpmExecuteNodeMiddle;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 执行流程用户、节点关联脚本中间Mapper接口
 *
 * @author hzh
 * @date 2023-11-01
 */
public interface BpmExecuteNodeMiddleMapper {
    /**
     * 查询执行流程用户、节点关联脚本中间
     *
     * @param id 执行流程用户、节点关联脚本中间主键
     * @return 执行流程用户、节点关联脚本中间
     */
    public BpmExecuteNodeMiddle selectBpmExecuteNodeMiddleById(Long id);

    /**
     * 查询执行流程用户、节点关联脚本中间列表
     *
     * @param bpmExecuteNodeMiddle 执行流程用户、节点关联脚本中间
     * @return 执行流程用户、节点关联脚本中间集合
     */
    public List<BpmExecuteNodeMiddle> selectBpmExecuteNodeMiddleList(BpmExecuteNodeMiddle bpmExecuteNodeMiddle);

    /**
     * 新增执行流程用户、节点关联脚本中间
     *
     * @param bpmExecuteNodeMiddle 执行流程用户、节点关联脚本中间
     * @return 结果
     */
    public int insertBpmExecuteNodeMiddle(BpmExecuteNodeMiddle bpmExecuteNodeMiddle);

    /**
     * 新增执行流程用户、节点关联脚本中间
     *
     * @param bpmExecuteNodeMiddleList 执行流程用户、节点关联脚本中间
     * @return 结果
     */
    public int insertBpmExecuteNodeMiddleList(List<BpmExecuteNodeMiddle> bpmExecuteNodeMiddleList);

    /**
     * 修改执行流程用户、节点关联脚本中间
     *
     * @param bpmExecuteNodeMiddle 执行流程用户、节点关联脚本中间
     * @return 结果
     */
    public int updateBpmExecuteNodeMiddle(BpmExecuteNodeMiddle bpmExecuteNodeMiddle);

    /**
     * 删除执行流程用户、节点关联脚本中间
     *
     * @param id 执行流程用户、节点关联脚本中间主键
     * @return 结果
     */
    public int deleteBpmExecuteNodeMiddleById(Long id);

    /**
     * 批量删除执行流程用户、节点关联脚本中间
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBpmExecuteNodeMiddleByIds(Long[] ids);

    /**
     * 根据执行的节点key得到当前节点的关联用户、脚本信息
     *
     * @param taskNodeKey 执行节点key
     * @return
     */
    public BpmExecuteNodeMiddle queryBpmExecuteNodeMiddleByTaskNodeKey(@Param("taskProcessKey") String taskProcessKey, @Param("taskNodeKey") String taskNodeKey);

}
