BpmHttpService.java 2.79 KB
package com.hotent.sdk.service;

import com.hotent.sdk.commom.SDKResult;
import com.hotent.sdk.param.AssignParamObject;
import com.hotent.sdk.param.DoEndParamObject;
import com.hotent.sdk.param.DoNextParamObject;
import com.hotent.sdk.param.ForbiddenParamObject;
import com.hotent.sdk.param.StartFlowParamObject;
import org.springframework.validation.annotation.Validated;

/**
 * sdk功能 bpm相关定义
 *
 * @author liangjc
 * @company 广州宏天软件股份有限公司
 * @email liangjc@jee-soft.cn
 * @date 2023-07-18 14:26
 */
public interface BpmHttpService {

    /**
     * 流程启动
     *
     * @param account              操作账号
     * @param startFlowParamObject 流程启动参数
     * @return
     */
    SDKResult<String> start(String account, StartFlowParamObject startFlowParamObject);

    /**
     * 保存草稿
     *
     * @param account              操作账号
     * @param startFlowParamObject 流程保存参数
     * @return
     */
    SDKResult<String> saveDraft(String account, StartFlowParamObject startFlowParamObject);


    /**
     * 同意
     *
     * @param account           操作账号
     * @param doNextParamObject 流程向下执行参数
     * @return
     */
    SDKResult<String> agree(String account, DoNextParamObject doNextParamObject);

    /**
     * 驳回
     *
     * @param account           操作账号
     * @param doNextParamObject 流程向下执行参数
     * @return
     */
    SDKResult<String> back(String account, DoNextParamObject doNextParamObject);


    /**
     * 挂起
     *
     * @param account              操作账号
     * @param forbiddenParamObject 流程实例挂起入参
     * @return
     */

    @Validated(ForbiddenParamObject.class)
    SDKResult<String> forbiddenInstance(String account, ForbiddenParamObject forbiddenParamObject);

    /**
     * 取消挂起
     *
     * @param account              操作账号
     * @param forbiddenParamObject 流程实例取消挂起入参
     * @return
     */
    SDKResult<String> unForbiddenInstance(String account, ForbiddenParamObject forbiddenParamObject);

    /**
     * 反对
     *
     * @param account           操作账号
     * @param doNextParamObject 流程向下执行参数
     * @return
     */
    SDKResult<String> oppose(String account, DoNextParamObject doNextParamObject);

    /**
     * 终止流程
     *
     * @param account          操作账号
     * @param doEndParamObject 流程终止参数
     * @return
     */
    SDKResult<String> doEndProcess(String account, DoEndParamObject doEndParamObject);

    /**
     * 转办
     *
     * @param account           操作账号
     * @param assignParamObject 任务转办、加签参数对象
     * @return
     */
    SDKResult<String> delegate(String account, AssignParamObject assignParamObject);
}