package com.yeejoin.amos.boot.biz.common.service;

import java.util.Map;

public interface IWorkflowExcuteService{

	/**
	 * 启动流程，并执行完成任务
	 * @param key 流程定义的key
	 * @param condition 执行控制条件
	 */
	String startAndComplete(String key,String condition)throws Exception;	
	
	/**
	 * 检查当前登录人有没有流程操作权限
	 * @param processInstanceId 流程定义的ID
	 * @return true 可以执行，false 无执行权限
	 */
	boolean checkTaskAuth(String processInstanceId);
	
	/**
	 * 检查当前登录人有没有流程操作权限
	 * @param processInstanceId 流程定义的ID
	 * @return 包含是否执行的角色权限flag，以及当前任务的id
	 */
	Map<String, Object> checkTaskAuthMap(String processInstanceId);
	/**
	 * 设置当前任务的执行人，只支持当前节点流程拥有单个可执行任务的情况，不支持并行网关产生的多条任务设置人的任务情况
	 * @param processInstanceId
	 * @return
	 */
	Object setTaskAssign(String processInstanceId,String userId);
	/**
	 * 完成task节点任务
	 * @param processInstanceId
	 * @param condition
	 * @param userInfo
	 * @return
	 */
	boolean CompleteTask(String processInstanceId,String condition);
	
	
}
