若依(RuoYi-Vue)+Flowable工作流前后端整合教程

这篇具有很好参考价值的文章主要介绍了若依(RuoYi-Vue)+Flowable工作流前后端整合教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此教程适合若依前后端分离项目,其他项目可以在扩展列表中进行查找。若依(RuoYi-Vue)+Flowable工作流前后端整合教程

近期公司里需要对很久以前的RuoYi-Vue前后端分离项目扩展出flowable的功能,当然这个重任也是落在了我的身上(不然也不会有这篇文章),然后我在官网看到了RuoYi-Vue-Flowable这个项目,按照文档提供的迁移方式对于我们这个老版本的项目来说无法正常运行,所以我联系了作者并更新了一下文档,打算在网上在发布一篇(毕竟有的人懒得看官方文档)。

官方项目地址:https://gitee.com/tony2y/RuoYi-flowable

把项目拉到本地后下面开始整合教程,整合教程分为前端和后端两个模块。

前端迁移流程

1.flowale功能页面相关内容迁移

1.1 把目录ruoyi-ui/src/views/下的flowable文件夹移动到你自己前端项目中的/src/views/文件下。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

1.2 移动页面配套的js文件,将ruoyi-ui/src/api/下的flowable文件夹移动到自己项目中的/src/api/文件下。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

2.flowale流程设计器相关内容迁移

ruoyi-ui/src/components目录下的customBpmn,flow,parser,Process,render,tinymce文件夹移动到自己项目中的/src/components文件下。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

3.表单设计器与人员选择模块相关文件迁移

3.1ruoyi-ui/src/views/tool中的build文件夹移动到自己项目中的/src/views/tool文件下,存在则覆盖。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

3.2 迁移表单设计器相关样式,将ruoyi-ui/src下的styles文件移动到自己项目中的/src文件夹下。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

3.3 修改ruoyi-ui/src/utils/index.js中的deepClone函数。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

修改为如下内容,存在该函数做修改,不存在做新增。

// 深拷贝对象
export function deepClone(obj) {
  const _toString = Object.prototype.toString

  // null, undefined, non-object, function
  if (!obj || typeof obj !== 'object') {
    return obj
  }

  // DOM Node
  if (obj.nodeType && 'cloneNode' in obj) {
    return obj.cloneNode(true)
  }

  // Date
  if (_toString.call(obj) === '[object Date]') {
    return new Date(obj.getTime())
  }

  // RegExp
  if (_toString.call(obj) === '[object RegExp]') {
    const flags = []
    if (obj.global) { flags.push('g') }
    if (obj.multiline) { flags.push('m') }
    if (obj.ignoreCase) { flags.push('i') }

    return new RegExp(obj.source, flags.join(''))
  }

  const result = Array.isArray(obj) ? [] : obj.constructor ? new obj.constructor() : {}

  for (const key in obj) {
    result[key] = deepClone(obj[key])
  }

  return result
}

3.4 迁移或替换相关js文件,存在则替换,不存在则新增,将ruoyi-ui/src/utils/generatorruoyi-ui/src/utils文件夹中对应下图红框的js文件移动到自己项目中对应的文件夹中。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

3.5 迁移表单设计器相关图标,将ruoyi-ui/src下的icons文件移动到自己项目中的/src文件夹下。​

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

4. 流程表达式、流程监听器相关内容迁移

4.1 相关页面迁移,将ruoyi-ui/src/views/system下的expression,listener文件夹移动到自己项目中的/src/views/system文件夹下。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

4.2 相关js文件迁移,将ruoyi-ui/src/api/system下的expression.js,listener.js文件移动到自己项目中的/src/api/system文件夹下。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

5. main.js中引入组件

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

main.js中结合上图添加如下代码。

import Tinymce from '@/components/tinymce/index.vue'
  
Vue.component('tinymce', Tinymce)

6. package.json中新增依赖

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

package.json中结合上图添加如下依赖。

"bpmn-js": "^11.1.0",
"diagram-js": "^11.4.1",
"xcrud": "^0.4.19",
"vkbeautify": "^0.99.3",

7. 新增路由配置

ruoyi-ui/src/router/index.js文件中添加路由配置,不同的ruoyi版本路由写法不一致,请参照自己项目路由进行添加。

参考如下:

  {
    path: '/flowable',
    component: Layout,
    hidden: true,
    children: [
      {
        path: 'definition/model/',
        component: () => import('@/views/flowable/definition/model'),
        name: 'Model',
        meta: { title: '流程设计', icon: '' }
      }
    ]
  },
  {
    path: '/flowable',
    component: Layout,
    hidden: true,
    children: [
      {
        path: 'task/finished/detail/index',
        component: () => import('@/views/flowable/task/finished/detail/index'),
        name: 'FinishedRecord',
        meta: { title: '流程详情', icon: '' }
      }
    ]
  },
  {
    path: '/flowable',
    component: Layout,
    hidden: true,
    children: [
      {
        path: 'task/myProcess/detail/index',
        component: () => import('@/views/flowable/task/myProcess/detail/index'),
        name: 'MyProcessRecord',
        meta: { title: '流程详情', icon: '' }
      }
    ]
  },
  {
    path: '/flowable',
    component: Layout,
    hidden: true,
    children: [
      {
        path: 'task/myProcess/send/index',
        component: () => import('@/views/flowable/task/myProcess/send/index'),
        name: 'SendRecord',
        meta: { title: '流程发起', icon: '' }
      }
    ]
  },
  {
    path: '/flowable',
    component: Layout,
    hidden: true,
    children: [
      {
        path: 'task/todo/detail/index',
        component: () => import('@/views/flowable/task/todo/detail/index'),
        name: 'TodoRecord',
        meta: { title: '流程处理', icon: '' }
      }
    ]
  },
  {
    path: '/tool',
    component: Layout,
    hidden: true,
    children: [
      {
        path: 'build/index',
        component: () => import('@/views/tool/build/index'),
        name: 'FormBuild',
        meta: { title: '表单配置', icon: '' }
      }
    ]
  }

8. 启动项目

删除node_modules文件夹,控制台执行npm install下载完毕后启动项目即可。

由于加入了流程校验器,迁移项目后启动错误请执行以下命令

npm install create-bpmnlint-plugin -D

后端迁移流程

1. 在父级pom文件中加入如下依赖

<!-- properties -->
<properties>
  <flowable.version>6.7.2</flowable.version>
</properties>
<!-- dependency -->
<dependency>
  <groupId>com.ruoyi</groupId>
  <artifactId>ruoyi-flowable</artifactId>
  <version>${ruoyi.version}</version>
</dependency>
<dependency>
  <groupId>io.swagger</groupId>
  <artifactId>swagger-annotations</artifactId>
  <version>1.5.21</version>
  <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-spring-boot-starter</artifactId>
    <version>${flowable.version}</version>
</dependency>
<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.4.0</version>
</dependency>
<!--el表达式计算-->
<dependency>
  <groupId>com.googlecode.aviator</groupId>
  <artifactId>aviator</artifactId>
  <version>5.3.3</version>
</dependency>

<!--modules -->
 <modules>
    <module>ruoyi-flowable</module>
</modules>

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

2. 把RuoYi-flowable项目中的ruoyi-flowable文件夹整个迁移到自己项目中

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

3. 在admin项目的pom文件中引入ruoyi-flowable项目

<dependency>
    <groupId>com.ruoyi</groupId>
    <artifactId>ruoyi-flowable</artifactId>
</dependency>

4. 迁移flowable相关类

根据若依项目的版本不同,缺少的实体类,mapper,service也会有所不同,所以需要根据flowable项目中所提示缺少的类进行针对性的拷贝,如果为service接口记得补全对应的controller。

5. 在admin项目的yml配置文件中新增如下配置

application.yml文件中添加如下配置

# flowable相关表
flowable:
  # true 会对数据库中所有表进行更新操作。如果表不存在,则自动创建(建议开发时使用)
  database-schema-update: false
  # 关闭定时任务JOB
  async-executor-activate: false

数据源地址后需要加上nullCatalogMeansCurrent=true,保证自动创建flowable表时不会报错。

6. 迁移数据库表

新建一个库执行tony-flowable.sql文件,flowable项目中少什么表就将对应的表导入到自己的数据库中,mysql数据库版本要用5.7。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

7. 数据迁移

sys_menu对应下图红框中的菜单数据加入到自己的表中。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

 将sys_dict_type对应下图红框中的字典类型数据添加到自己的表中。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

 将sys_dict_data对应下图红框中的字典数据添加到自己的表中。

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

8. 启动项目

第一次启动时需要把yml配置文件中的database-schema-update设置为true,这样会自动创建flowable中所需要的全部表。

完成上述操作后就可以在自己项目中正常使用了。 

若依(RuoYi-Vue)+Flowable工作流前后端整合教程文章来源地址https://www.toymoban.com/news/detail-420513.html

到了这里,关于若依(RuoYi-Vue)+Flowable工作流前后端整合教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • flowable工作流--实操篇

    flowable工作流--实操篇

    本文通过申请发工资的业务场景来介绍使用工作流的全流程,包括画流程图,设置属性,以及代码编写 使用工作流大致分为四步 第一步:根据自己的业务画好流程图 第二步:设置流程图的属性和变量,保存模型 第三步:部署画好的流程图(发布) 第四步:根据业务和流程图写一些服务和

    2024年02月11日
    浏览(5)
  • 工作流flowable实现撤回

    Flowable是一个开源的工作流引擎,可以实现工作流程的自动化管理,包括任务分配、流转、审批等。如果需要实现撤回功能,可以考虑以下方案: 在流程定义中添加一个撤回节点,允许任务的发起人在任务未被处理前撤回任务。当发起人选择撤回任务时,任务将被撤回至撤回

    2024年02月09日
    浏览(10)
  • SpringBoot集成Flowable工作流

    SpringBoot集成Flowable工作流

    官方文档: https://tkjohn.github.io/flowable-userguide/#_introduction Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等

    2024年02月15日
    浏览(13)
  • Flowable工作流入门&完整SpringBoot案例

    Flowable工作流入门&完整SpringBoot案例

    工作流(Workflow),是指对于一项业务,按照规定的流程,逐级传递、申请、执行等,并且受到了严格控制的一种业务过程。 BPM(Business Process Management)是指对于某项业务的整个生命周期进行全面管理的一种模式,最核心的内容包括了工作流、决策、交互等。在这些管理过程

    2024年02月12日
    浏览(6)
  • 【学习笔记】Flowable - 01 - 工作流 快速上手

    【学习笔记】Flowable - 01 - 工作流 快速上手

    JDK8 Flowable6 (6.3 or 6.7.2) Postgresql (MySQL同样支持) 波哥:2023年Flowable详细讲解 波哥:2022年Flowable教程-基础篇 Flowable BPMN 用户手册 中文 官方网站 官方github源码 IDEA低版本提供一个BPMN解析插件: 但是并没有很好的支持流程的绘制。 存在几个工具: 古老的Eclipse(太老的不推荐 官

    2024年01月19日
    浏览(9)
  • Spring Boot 中动态创建 Flowable 工作流

    在 Spring Boot 中动态创建 Flowable 工作流可以通过以下步骤实现: 1. 创建 Flowable 配置:首先,您需要在 Spring Boot 应用程序中配置 Flowable。您可以使用 Spring Boot 的配置文件或注解来配置 Flowable。 2. 创建工作流定义:接下来,您需要创建工作流定义。您可以使用 Flowable 的 API 来

    2024年02月10日
    浏览(8)
  • 若依框架SpringBoot+Activiti工作流的使用

    若依框架SpringBoot+Activiti工作流的使用

    使用简介:本技术点主要是针对类审批的业务流程的建模,可以有:任务发布(即流程开始)到一级一级的审批到最终结束(即流程结束)一整套完备的模型 1、idea下载activiti插件 ider以前版本下载actiBPM,但是新版ider这个插件已经被淘汰,已经被下面这个替代     2、单独起

    2024年02月11日
    浏览(10)
  • 若依低代码平台(带工作流引擎版本)使用记录

    若依低代码平台(带工作流引擎版本)使用记录

    目录 0 平台介绍 1 创建数据库 2 Redis缓存数据库 3 修改配置文件 4 修改maven依赖 5 运行后台 6 运行前端 7 运行效果 带工作流引擎的开源低代码平台并不常有,这是基于若依开发的工作流版本低代码平台,MIT开源协议,前后端分离,前端使用Vue框架,后端SpringBoot。 本文引用的

    2024年02月12日
    浏览(17)
  • 工作流Flowable入门教程:flowableUI的安装使用,RepositoryService、RuntimeService、TaskService、HistoryService的使用

    工作流Flowable入门教程:flowableUI的安装使用,RepositoryService、RuntimeService、TaskService、HistoryService的使用

    Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等。这个章节将用一个可以在你自己的开发环境中使用的例

    2024年01月18日
    浏览(9)
  • 若依Ruoyi-Vue生成代码使用

    若依Ruoyi-Vue生成代码使用

    目录 一、效果一览: 二、详细步骤: ①登录若依----点击系统工具--点击代码生成模块 ②使用Navicat在若依数据库里面新建一张表单,我这示例创建了my_students表单 并为表设计字段添加数据  ③在代码生成栏导入刚才创建的my_students表 并编辑这张表  ④完成这些操作之后,点

    2024年02月05日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包