BpmNodeService.java 3.95 KB
package com.hotent.bpmModel.manager;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.hotent.base.model.CommonResult;
import com.hotent.bpmModel.params.DefConfSaveVo;
import com.hotent.bpmModel.params.NodeConfCopyVo;
import com.hotent.bpmModel.params.NodeConfSaveVo;
import com.hotent.bpmModel.params.VarTreeGetVo;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 流程节点设置管理接口
 */
public interface BpmNodeService {

    /**
     * 保存表单权限配置
     * @param nodeId
     * @param defId
     * @param parentDefKey
     * @return
     */
    CommonResult<String> saveSub(String nodeId, String defId, String parentDefKey, HttpServletRequest request) throws Exception;

    /**
     *
     * @param definitionId
     * @param nodeId
     * @return
     */
    Map<String, Object> ruleEdit(String definitionId, String nodeId) throws Exception;

    /**
     * 获取分支设置信息
     * @param nodeId
     * @param defId
     * @return
     */
    Map<String, Object> branchConditionEdit(String nodeId, String defId) throws Exception;

    /**
     * 节点事件脚本保存
     * @param vo
     * @return
     */
    CommonResult<String> eventScriptSave(NodeConfSaveVo vo);


    /**
     * 会签规则特权配置
     * @param vo
     * @return
     */
    Object signConfigSave(NodeConfSaveVo vo);

    /**
     * 流程变量对话框的树 其中包含:bodef的字段,流程变量,流程常量(发起人,当前用户,...)
     * @param vo
     * @return
     */
    Object varTree(VarTreeGetVo vo) throws Exception;

    /**
     * 流程定义节点配置页面json数据
     * @param defId
     * @param topDefKey
     * @return
     */
    Map<String, Object> nodeDefSetting(String defId, String topDefKey) throws Exception;


    /**
     * 保存流程配置
     * @param vo
     * @return
     */
    CommonResult<String> saveDefConf(DefConfSaveVo vo) throws Exception;

    /**
     * 保存节点的跳转规则
     * @param nodeId
     * @param defId
     * @param nodeList
     * @return
     */
    CommonResult<String> ruleSave(String nodeId, String defId, List<JsonNode> nodeList) throws IOException;

    CommonResult<Boolean> isSubFirstNode( String defId,String nodeId, String parentKey) throws Exception;

    /**
     * 保存节点json 配置
     * @param vo
     * @return
     */
    CommonResult<String> nodeUserConditionSave(NodeConfSaveVo vo);

    /**
     * 分支节点规则脚本保存
     * @param vo
     * @return
     */
    CommonResult<String> branchConditionSave(NodeConfSaveVo vo);

    /**
     * 自动节点,获取插件数据
     * @param defId
     * @param nodeId
     * @param pluginType
     * @return
     */
    Map<String, Object> autoTaskPluginGet(String defId, String nodeId, String pluginType) throws Exception;

    /**
     * 验证handler。 输入格式为 serviceId +"." + 方法名。
     * @param handler
     * @return
     */
    Object validHandler(String handler);

    /**
     * 获取流程节点的列表 一些基本信息而已
     * @param defId
     * @return
     */
    Object getNodes(String defId) throws Exception;

    /**
     * 取得当前节点的所有出口节点集合
     * @param defId
     * @param nodeId
     * @return
     */
    Map<String, Object> getNodeOutcomes(String defId, String nodeId) throws Exception;


    Object getNodeAutoTask(String defId, String nodeId) throws Exception;

    /**
     * 根据流程定义ID获取全局表单
     * @param defId
     * @param type
     * @return
     */
    ObjectNode getGlobalForm(String defId, String type) throws Exception;

    /**
     * 节点配置复制
     * @param vo
     * @return
     * @throws Exception 
     */
	CommonResult<String> copyNodeConf(NodeConfCopyVo vo) throws Exception;
	
	Map<String, Object> getDefSettingByDefKey(String defKey, String topDefKey) throws Exception;

}