package com.ruoyi.system.service;

import com.ruoyi.system.entity.BpmProcess;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 流程定义Service接口
 *
 * @author hzh
 * @date 2023-10-10
 */
public interface IBpmProcessService {
    /**
     * 查询流程定义
     *
     * @param processId 流程定义主键
     * @return 流程定义
     */
    public BpmProcess selectBpmProcessByProcessId(Long processId);

    /**
     * 查询流程定义列表
     *
     * @param bpmProcess 流程定义
     * @return 流程定义集合
     */
    public List<BpmProcess> selectBpmProcessList(BpmProcess bpmProcess);

    /**
     * 新增流程定义
     *
     * @param bpmProcess 流程定义
     * @return 结果
     */
    public int insertBpmProcess(BpmProcess bpmProcess);

    /**
     * 修改流程定义
     *
     * @param bpmProcess 流程定义
     * @return 结果
     */
    public int updateBpmProcess(BpmProcess bpmProcess);

    /**
     * 批量删除流程定义
     *
     * @param processIds 需要删除的流程定义主键集合
     * @return 结果
     */
    public int deleteBpmProcessByProcessIds(Long[] processIds);

    /**
     * 删除流程定义信息
     *
     * @param processId 流程定义主键
     * @return 结果
     */
    public int deleteBpmProcessByProcessId(Long processId);

    /**
     * 备份流程
     *
     * @param bpmProcess
     * @return
     */
    public int bpmBackups(BpmProcess bpmProcess);

    /**
     * 导出流程文件
     */
    void export(Long processId,String fileType, HttpServletRequest request, HttpServletResponse response);

}
