package com.njcn.bpm.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.bpm.pojo.dto.BpmInstanceInfo;

import java.util.Set;


/**
 * 统筹流程实例的公共方案
 * @author hongawen
 * @version 1.0.0
 * @date 2024年06月12日 18:14
 */
public interface IBpmReasonService<T> extends IService<T> {

    /**
     * 根据业务id实时更新当前业务流程状态
     * @param businessId 实际业务id
     * @param status 流程实例当前状态，具体参考BpmTaskStatusEnum枚举
     */
    void updateProcessStatus(String businessId,String reason, Integer status);

    /**
     * 根据业务id获取历史审批id以及该任务的重要信息
     * @param businessId 业务流程id
     */
    BpmInstanceInfo  getInstanceInfo(String businessId);

    /**
     * 注意数据权限！！！！非本人的无需获取
     * 获取所有当前流程实例为不通过的 具体参考BpmTaskStatusEnum.REJECT枚举的流程Id
     */
    Set<String> getAllRejectInstanceIds();
}
