简单的Activiti Modoler 流程在线编辑器

简单的Activiti Modoler 流程在线编辑器

1.需求

我们公司使用的流程是activiti5.22.0,版本有些老了,然后使用的编辑器都是eclipse的流程编辑器插件,每次编辑流程需要打开eclipse进行编辑,然后再导入到项目里面,不是特别方便,所以我们决定使用官方提供的 Activiti Modoler,实现项目集成在线编辑器,方便流程的发布编辑以及部署。

2.具体实现步骤

整体的实现步骤就是从官网下载对应的activiti5.22.0 或者版本相近的包,然后找到对应的前端需要集成的文件以及controller等文件,添加到自己的项目中,我使用的springboot项目,然后需要配置静态资源的对应的地址信息,便可以进行简单的使用了。

2.1 添加pom需要jar包

我们此处就只列举了流程所需包,其他包简略

	<!-- activiti 5.22.0启动器,排除mybatis依赖 -->
	<dependency>
	    <groupId>org.activiti</groupId>
	    <artifactId>activiti-spring-boot-starter-basic</artifactId>
	    <version>5.22.0</version>
	    <exclusions>
	        <exclusion>
	            <groupId>org.mybatis</groupId>
	            <artifactId>mybatis</artifactId>
	        </exclusion>
	    </exclusions>
	</dependency>
	<dependency>
	    <groupId>org.activiti</groupId>
	    <artifactId>activiti-diagram-rest</artifactId>
	    <version>5.22.0</version>
	</dependency>
	<!-- Activiti在线设计 -->
	<dependency>
	    <groupId>org.activiti</groupId>
	    <artifactId>activiti-modeler</artifactId>
	    <version>5.22.0</version>
	</dependency>

2.2 下载包

我们下载的地址为 activiti5.x.x 官方包
在这里插入图片描述

2.3 解压复制文件到项目中

替换文件主要是两部分,一部分为java文件,一部分为静态资源文件,首先替换java文件
activiti-webexplore\Activiti-5.x\modules\activiti-modeler\src\main\java\org\activiti\rest\editor 向下的所有java文件到自己项目中
在这里插入图片描述

注意,ModelSaveRestResource 对应的请求方式修改为 POST。

在之后我们需要添加一个发起流程图编辑或新增的入口 ModelerController,发起以及修改全部从此方法进入,最后导入后台文件效果如下
在这里插入图片描述
最后添加的几个controller代码如下:

  • ModelEditorJsonRestResource

    package cn.git.workflow.modeler;
    
    import cn.git.common.exception.ServiceException;
    import cn.git.common.util.LogUtil;
    import cn.hutool.core.util.ObjectUtil;
    import cn.hutool.core.util.StrUtil;
    import com.alibaba.fastjson.JSONObject;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.node.ObjectNode;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import lombok.extern.slf4j.Slf4j;
    import org.activiti.editor.constants.ModelDataJsonConstants;
    import org.activiti.engine.RepositoryService;
    import org.activiti.engine.repository.Model;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.nio.charset.StandardCharsets;
    
    
    /**
     * @description: 通过modelId获取流程model json数据
     * @program: bank-credit-sy
     * @author: lixuchun
     * @create: 2024-11-21
     */
    @Api(value = "model流程设计器获取json数据", tags = "model流程设计器获取json数据")
    @Slf4j
    @RestController
    public class ModelEditorJsonRestResource implements ModelDataJsonConstants {
         
         
    
        @Autowired
        private RepositoryService repositoryService;
    
        @Autowired
        private ObjectMapper objectMapper;
    
        /**
         * 获取流程图json数据
         *
         * @param modelId
         * @return
         */
        @ApiOperation(value = "获取流程图json数据", notes = "获取流程图json数据")
        @RequestMapping(value = "/model/{modelId}/json", method = RequestMethod.GET, produces = "application/json")
        public Object getEditorJson(@PathVariable String modelId) {
         
         
            // 最终响应数据
            ObjectNode modelNode = null;
            Model model = repositoryService.getModel(modelId);
    
            // 获取流程定义
            if (ObjectUtil.isNotNull(model)) {
         
         
                try {
         
         
                    // 获取流程定义的JSON数据
                    if (StrUtil.isNotBlank(model.getMetaInfo())) {
         
         
                        modelNode = (ObjectNode) objectMapper.readTree(model.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值