package cn.axzo.workflow.core.service;

import cn.axzo.workflow.common.model.request.bpmn.task.BpmnActivitySetAssigneeDTO;
import org.flowable.job.service.impl.persistence.entity.JobEntity;

/**
 * 流程活动的 Service
 *
 * @author wangli
 * @since 2023/11/17 16:37
 */
public interface BpmnProcessActivityService {

    /**
     * 执行异步任务
     *
     * @param job 需要执行的任务
     */
    void executeAsyncJob(JobEntity job);

    /**
     * 唤醒业务节点
     *
     * @param executionId 活动 ID
     */
    void trigger(String executionId);

    /**
     * 唤醒业务节点-异步
     *
     * @param executionId 活动 ID
     */
    void triggerAsync(String executionId);

    /**
     * 给指定实例的指定节点重设审批人
     *
     * @param dto
     */
    void setAssignee(BpmnActivitySetAssigneeDTO dto);

    /**
     * 给指定实例的指定节点重设审批人
     *
     * @param dto
     */
    void setAssigneeAsync(BpmnActivitySetAssigneeDTO dto);
}
