package com.sinosig.activiti.service;

import com.alibaba.fastjson.JSONObject;
import org.activiti.api.task.model.Task;
import org.activiti.bpmn.model.SequenceFlow;
import java.util.List;

public interface IWFCoreService {

    /**
     * 工作流启动
     */
    JSONObject wfStart(JSONObject et);

    /**
     * 工作流提交处理
     */
    JSONObject wfSubmit(JSONObject et);

    /**
     * 工作流跳转
     */
    String wfGoto(JSONObject et);

    /**
     * 工作流关闭
     */
    JSONObject wfClose(JSONObject et);

    /**
     * 工作流重新启动
     */
    String wfRestart(JSONObject et);

    /**
     * 工作流撤回
     */
    String wfRollback(JSONObject et);

    /**
     * 工作流退回
     */
    String wfSendBack(JSONObject et);

    /**
     * 工作流重新分配（处理人）
     */
    String wfReassign(JSONObject et);

    /**
     * 工作流标记为已读
     */
    void wfMarkRead(JSONObject et);

    /**
     * 工作流部署
     */
    JSONObject wfDeploy( JSONObject et);

    /**
     * 获取流程当前步骤
     */
    List<Task> getWFCurStep(JSONObject et);

    /**
     * 获取流程历史步骤
     */
    List<Task> getWFHisStep(JSONObject et);

    /**
     * 获取下一步骤
     */
    List<SequenceFlow> getWFNextStep(JSONObject et);
}
