package com.ruoyi.flowable.service;


import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;

import java.util.Map;


public interface IFlowService {


    /**
     * 根据任务Id获取流程实例信息
     */
    public ProcessInstance getProcessInstance(String taskId);
    
    /**
     * 根据任务对象获取流程实例信息
     */
    public ProcessInstance getProcessInstance(Task task);
    
    /**
     * 获取节点的formkey值
     */
    /*public String getFormKey(String pInstId, String taskId, String opType);*/
    
    /**
     * 获取表单信息, 如果 taskId 不为空则获取指定taskId的表单，否则就根据pDefId获取流程开始节点定义的表单
     */

	public Map<String, Object> getFormProperties(String pDefId, String taskId);
    
    /**
     * 给指定的表单map赋值,并返回 表单form的字符串表示形式
     */

	public String getFormProperties(Map<String, Object> fpMap, Map<String, String[]> mapParams);

	public Map<String, Object> taskComplete(String taskId, boolean isOk, Map<String, Object> map, String loginId) throws Exception ;
	/**
	 *
	 * @Description (跳转任意目标节点)
	 * @author liuwei
	 * @Date 2021年11月3日上午10:23:00
	 * @version 1.0.0
	 * @param map
	 *            taskId，destTaskKey，rejectMessage，outcome
	 */
/*	public void skipStipulationTask(Map<String, Object> map) ;*/

	/**
	 *
	 * @Description (通过任务key,获取对应的节点信息)
	 * @author liuwei
	 * @Date 2021年11月3日下午1:53:29
	 * @version 1.0.0
	 * @param destTaskKey
	 * @param processDefinitionId
	 * @return
	 */
	//public ActivityImpl getActivityImpl(String destTaskKey, String processDefinitionId) ;
}
