package com.zkqy.system.service;

import com.zkqy.system.entity.BpmProcessConfiguration;
import com.zkqy.system.entity.vo.NodeVo;

import java.util.List;

/**
 * 流程配置Service接口
 *
 * @author hzh
 * @date 2023-10-20
 */
public interface IBpmProcessConfigurationService {
    /**
     * 查询流程配置
     *
     * @param id 流程配置主键
     * @return 流程配置
     */
    public BpmProcessConfiguration selectBpmProcessConfigurationById(Long id);

    /**
     * 查询流程配置列表
     *
     * @param bpmProcessConfiguration 流程配置
     * @return 流程配置集合
     */
    public List<BpmProcessConfiguration> selectBpmProcessConfigurationList(BpmProcessConfiguration bpmProcessConfiguration);

    /**
     * 新增流程配置
     *
     * @param bpmProcessConfigurationList 流程配置
     * @return 结果
     */
    public int insertBpmProcessConfiguration(List<BpmProcessConfiguration> bpmProcessConfigurationList);

    /**
     * 修改流程配置
     *
     * @param bpmProcessConfigurationList 流程配置
     * @return 结果
     */
    public int updateBpmProcessConfiguration(BpmProcessConfiguration bpmProcessConfigurationList);

    /**
     * 批量删除流程配置
     *
     * @param ids 需要删除的流程配置主键集合
     * @return 结果
     */
    public int deleteBpmProcessConfigurationByIds(Long[] ids);

    /**
     * 删除流程配置信息
     *
     * @param id 流程配置主键
     * @return 结果
     */
    public int deleteBpmProcessConfigurationById(Long id);

    /**
     * 新增流程节点配置详细信息
     *
     * @param nodeVo
     * @return
     */
    public int insertBpmProcessNodeConfig(NodeVo nodeVo);

    /**
     * 修改流程节点配置详细信息
     *
     * @param nodeVo
     * @return
     */
    public int updateBpmProcessNodeConfig(NodeVo nodeVo);

    /**
     * 查询流程节点的详细信息
     *
     * @param nodeProcessKey  流程别名
     * @return
     */
    public NodeVo selectByProcessByKey(String nodeProcessKey);
}
