package com.njcn.process.service.flowable;



import com.njcn.common.pojo.response.HttpResult;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.runtime.ProcessInstance;

import java.util.Map;

/**
 * @author Tony
 * @date 2021-04-03 14:41
 */
public interface IFlowDefinitionService {

    /**
     * 根据流程定义ID启动流程实例
     *
     * @param procDefId 流程模板ID
     * @param variables 流程变量
     * @return
     */
    String startProcessInstanceById(String procDefId,String thsIndex, Map<String, Object> variables);



    /**
     * 删除流程定义
     *
     * @param deployId 流程部署ID act_ge_bytearray 表中 deployment_id值
     */
    void delete(String deployId);


    /**
     * 删除流程实例ID
     *
     * @param instanceId   流程实例ID
     * @param deleteReason 删除原因
     */
    void deleteInstance(String instanceId, String deleteReason);


    /**
     * 根据实例ID查询历史实例数据
     *
     * @param processInstanceId
     * @return
     */
    HistoricProcessInstance getHistoricProcessInstanceById(String processInstanceId);


}
