springboot 工作流引擎

Java精选面试题 (微信小程序):5000+ 道面试题和选择题,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计、大厂真题等,在线随时刷题! 1 流程设计 1.1新增

Java精选面试题 (微信小程序):5000+道面试题和选择题,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计、大厂真题等,在线随时刷题!

1 流程设计

1.1新增

点击列表左上角“新增”按钮,可新增流程设计,这里只需要填写基本信息。

08b0f02917a57100ce77fd57bbe20808.jpeg

字段说明

  • 显示名称,流程显示的名称,相当于中文标题

  • 唯一编码,流程编码的唯一编码,通过该编码一流程定义的name相匹配

  • 流程分类,假期管理、人事管理、智能财务、法务管理、行政管理、业务管理、其他等,可通过数据字典的流程分类进行配置。

  • 图标,系统图标,可通过下拉选择获取

  • 备注

1.2.查看

点击行操作右边的“查看”按钮

88d7b257d5149c88f12dfa59e3f4397b.jpeg

一共用两个tab,可以查看流程图和流程数据

  • 流程图

1e236c785fa5fcd1524e68379bd4209d.jpeg

  • 流程数据

a4e1ba65a30287a28edfba8f5d98321b.jpeg

1.3.编辑

点击行操作右边的“编辑”按钮,可对流程设计的基本信息进行编辑

b87f9c441b99420465ace3d31470c48d.jpeg

1.4.设计

点击行操作右边的“设计”按钮,可打开流程设计器进行流程的设计

8ba1c259a8207a3c813cc672a66c5eb4.jpeg

e3bb2a26484294c152603fddf0d22d5b.jpeg

1.5.流程设计器

流程设计器主要由三部分组成:拖拽面板、画布、属性面板、控制面板。

1.5.1.拖拽面板

拖拽面板对应的就是左侧菜单,菜单的每一项对应的是流程节点模型,通过点击拖拽到画布的方式使用。

c291a6db93dcfa5cecf1a69a35876819.jpeg

菜单项说明:

  • 开始节点,对应流程的开始节点模型StartModel

  • 用户任务,对应流程的任务节点模型TaskModel

  • 自定义任务,对应流程的自定义节点模型CustomModel

  • 条件判断,对应流程的决策节点模型DecisionModel

  • 分支,对应流程的分支节点模型ForkModel

  • 合并,对应流程的合并节点模型JoinModel

  • 结束节点,对应流程的结束节点模型EndModel

  • snaker子流程,对应流程的子流程模型SubProcessModel,该子流程是独立定义的方式

  • 子流程,对应流程的子流程模型SubProcessModel,该子流程定义是包含在父流程的定义中

1.5.2.画布

画布就是所见即所得,有放大缩小、拖拽、移动、连线、编辑节点、编辑边、右键菜单等操作。

  • 放大缩小,可通过ctrl+鼠标滚轮进行放大缩小

  • 拖拽,可点击画布节点拖拽

  • 移动,可通过鼠标滚轮或点击画布移动鼠标移动画布

  • 连线,两节点可通过拖拽方式连线

  • 编辑节点,可打开节点属性面板进行节点的属性编辑

  • 编辑边,可打开边属性面板进行边的属性编辑

  • 右键菜单,画布中右键,打开流程属性面板编辑流程属性,节点或边中右键,主要是删除节点和边。

1.6.属性面板

当鼠标点击节点、点击边或画布中右键时,会打开对应的属性面板进行属性编辑,因为不同节点,面板属性不一样,这里做个简单说明。

6.1.开始节点

630dbe35e7a48feec6ce07c9ae0b5e96.jpeg

1.6.2.任务节点

30e0ff743924af579f555ffc7cf54ebd.jpeg

1.6.3.自定义任务节点

5a49c80af83d3bacb1c8dfcfec7a887d.jpeg

1.6.4.决策节点

0770d548cd9fba33e5a8f7396171d0d4.jpeg

1.6.5.分支节点

bfce50bb444f8ee3843885c5ab815d51.jpeg

1.6.6.合并节点

50d1a383e2b9ae37cf71c09c28d92c9a.jpeg

1.6.7.结束节点

1f500a26fa01dbd07f583211f6783071.jpeg

6.8.子流程节点

f201fbfcd5adcbaa3cf83ddfffbe1e2a.jpeg

1.7.控制面板

控制面板对应的是右上角菜单

e81bf205d94d3d365f265cca529e6e0e.jpeg

菜单项说明:

  • 缩小,可对画布进行缩小操作

  • 放大,可对画布进行放大操作

  • 适应,可对画布进行自适应操作

  • 上一步,可返回画布上一步

  • 下一步,返回画布后再回退

  • 清空,清空画布内容

  • 查看,查看流程数据,一共两个tab,分别查看json和xml数据,其中json为logicflow的数据结构,xml为snakerflow工作流引擎的流程定义文件的数据结构。

  • 导入,可导入json/xml流程数据,生成流程

  • 设置高亮,可导入高亮数据,设置流程图高亮

  • 保存,点击保存后,数据会同步到后端

1.8.表单设计

点击行操作右边的“…”更多“表单设计”按钮,可进行表单设计。

3a136ccef14bd013c31113529db3eedc.jpeg

需要注意的是,只有元数据表单才能进行在线设计,如果是自定义开发的表单,则只是显示预览。

1.8.1.自定义开发表单

由开发人员使用传统开发方式开发的表单,会对应某个.vue文件。

6612c2d805336af46bf88f582638e4a8.jpeg

1.8.2.元数据表单

通过配置元数据,生成json,然后解析json去渲染表单。

b0f9255bf1288d26aad3cc224a8d70cd.jpeg

1.8.2.1.表单属性

用于配置表单的属性,如标题、布局方式等

65452df95aea4633baf3b017dc3bfa1b.jpeg

1.8.2.2.新增

新增表单页

9f98e7428eddc29063479dc68fd0f485.jpeg

1.8.2.3.排序

可通过“上移”“下移”对字段进行排序

a48f966f7df929b4738dde991d886e8b.jpeg

1.8.2.4.编辑

编辑表单项

ef0489cfd53ad417b301df76913f3a4e.jpeg

1.8.2.5.删除

删除表单项

a4c8e36268f6c6624efa691b394df9d9.jpeg

1.8.2.6.保存

右下解“确定”按钮,点击后会提交到后端进行保存

cf6e53e95ed4327e68a9a6355f8e033c.jpeg

1.8.2.7.部署

点击行操作右边的“…”更多“部署”按钮,可部署流程,该操作会生成新的流程定义版本。

70c376259b37c8fcdf0511337030b5db.jpeg

d1139593b3e2c170b3e7cd0ab6a213a7.jpeg

1.8.2.8.重新部署

点击行操作右边的“…”更多“重新部署”按钮,可部署流程,该操作会覆盖最新的流程定义版本。

0cc6f8b74108de8dd5229b3dc0047513.jpeg

7b0277f5d634c42de2a1e78ffe604556.jpeg

1.8.2.9.删除

点击行操作右边的“…”更多“删除”按钮,可删除流程设计。

4fe82c34ef8dd5d267f62d72105b06d6.jpeg

b74e04f526260151a3fd6bf2b82d5f44.jpeg

注:删除流程设计不会影响已部署的流程。

2 流程定义

流程定义用于存放工作流引擎的流程定义文件数据,本系统中,该流程定义数据是通过流程设计同步过来的,对应的是流程设计的“部署”和“重新部署”操作。

168056e90b324984267a2230acf97e99.jpeg

字段说明:

  • 显示名称

  • 唯一编码

  • 流程分类

  • 版本号,当为”部署“操作时,版本会自增1,当为”重新部署“时,版本号不变。

  • 状态,启用和禁用,禁用后不允许发起流程。

2.1.查看

点击行操作右边的“查看”按钮,这里的查看和流程设计一样,可以查看流程图和流程数据

  • 流程图

3f979713a923cf16a6fd90c047985c4d.jpeg

  • 流程图

d5351e531f464b05f12bdecccdef50cd.jpeg

2.2.发起

点击行操作右边的“…”更多“发起”按钮,会弹出发起表单,填写后提交即可发起流程。

84629798d92bd6668309970c1065bebd.jpeg

677f972bd26a7293c53703d125d9f955.jpeg

注意:不同的流程,发起的表单会略有不同,可通过流程属性的”实例启动表单“字段去控制。

2.3.启用/禁用

点击行操作右边的“…”更多“启用”按钮,可启用流程定义。

53667c8ce4a0c0158de6384a9e9118bc.jpeg

点击行操作右边的“…”更多“禁用”按钮,可禁用流程定义。

3714b176c4c454e38dd45cde56746e4f.jpeg

2.4.删除

点击行操作右边的“…”更多“删除”按钮,可删除流程定义。

25b817acc41d188fce62dd490339ebfd.jpeg

6461980f14134645bf805ba04b0411a0.jpeg

3 发起申请

发起申请列表是对流程定义列表的优化,这里会对流程定义进行分组,且只显示最新版本的流程定义。

4c28a0820cdbae4869c49aeb5bf556a0.jpeg

点击图标或标题,会弹出发起表单,填写后提交即可发起流程

fb610727cfe8acb719ce8c606a49cc77.jpeg

4 我发起的

发起流程后,点击“我发起的”菜单项,可看到对应的我发起的列表数据。

推荐程序员摸鱼地址:

https://www.yoodb.com/slack-off/home.html

2f5f9c12d1c4354f3e3d6d032891d236.jpeg

4.1.详情

点击行操作右边的“详情”按钮,可查看流程详情,流程详情由三部分构成:表单、流程图、审批记录,分别对应三个tab。

4.1.1.表单

表单区域是只读模式,对应发起审批时的表单

a251d6c384e56883790460f3bd3f90f3.jpeg

4.1.2.流程图

流程图会存在高亮数据,区分已完成、正在进行、未开始节点。

1139759a85215b1b189ea91b8f8755d1.jpeg

4.1.3.审批记录

审批记录有两种呈现方式,时间轴和表格。

  • 时间轴

13d4d85d53fa330909ba3e640760ee65.jpeg

  • 表格

8480aa4d94d4a5f935bb9274cff092b5.jpeg

4.2.撤回

撤回有两种方式,但都只能撤回正在进行中的流程

  • 点击行操作右边的“…”更多“撤回”按钮,可撤回流程。

d8cdc2043e8a7900d0cf179e4a685dc8.jpeg

b13a9c0220c51ff979704de3a16f526b.jpeg

  • 勾选左边复选框,也可进行“撤回”操作

e5faa21cbd04b941e9132bf63f79f18d.jpeg

cb22498936f88814802b18674a7c34b7.jpeg

5 我的待办

我的待办对应的是参与者的任务,当流程执行到对应的节点会产生对应的阻塞任务,该阻塞任务就形成“我的待办”。

9ac8351457964958835fe31e031044aa.jpeg

5.1.办理

点击行操作右边的“办理”按钮,会弹出审批流程详情

9d523b61f31e47065af86a64c0e43813.jpeg

审批流程详情主要分为两大区域:流程详情和操作区域,其中流程详情包含表单、流程图、审批记录三大板块。

4a5671b4fbd833d6a3ba43a69d6c024d.jpeg

5.1.1.表单

同“我发起的”->“详情”->“表单”

5.1.2.流程图

同“我发起的”->“详情”->“流程图”

5.1.3.审批记录

同“我发起的”->“详情”->“审批记录”

5.1.4.操作区域

在详情底部,增加了操作区域,该操作区域分为两部门,一部分是填写区,一部分是提供按钮。

f68bf29878dd4b762ef4098c8c5b8007.jpeg

普通任务操作区

df3008f9e0d97c1df5b54dd3fa5db342.jpeg

会签任务操作区

a2e3ddd5f1531039bdf26c5c7c58f13a.jpeg

填写表单字段说明:

  • 审批意见,必填项

  • 上传附件

  • 指定下一节点处理人(勾选时会出现选人操作),注:会签任务无该操作

  • 是否抄送(勾选时会出现选人操作)

普通任务提交按钮说明:

  • 同意,提交类型为同意,会驱动流程往下一个节点进行

  • 拒绝,提交类型为拒绝,会将流程跳转到结束节点,驱动流程结束

  • 退回上一步,提交类型为退回上一步,会跳转到上一个节点

  • 退回发起人,提交类型为退回发起人,会跳转到发起人节点

  • 跳转,提交类型为跳转,可跳转到已完成的历史节点(弹窗选择)

会签任务提交按钮说明:

  • 同意,提交类型为同意,表示会签操作为“同意”

  • 不同意,提交类型为不同意,表示会签操作为“不同意”

  • 加签,增加会签参与人,该操作不会驱动流程向前行进

5.2.委托

点击行操作右边的“委托”按钮,会弹出选择代理人操作,选择后点击“确定”即委托成功,此时代理人会看到相应的待办任务。

40e53aec683438ea628dd36318b66acd.jpeg

76cb79ab011ca109e1c3892cf4d56e03.jpeg

5.3.我的已办

我的已办对应的是参与者已经完成的任务列表。

acae00c33ea42415460f248405569462.jpeg

5.4.详情

同“我发起的”->“详情”

6 我的抄送

在待办处理页中抄送过来的流程,只有查看权限

a4418284cbe2e9c77772d0335aa1c006.jpeg

6.1.详情

同“我发起的”->“详情”

7 相关代码

[1] 后端工程: https://gitee.com/mldong/mldong

[2] 前端工程: https://gitee.com/mldong/mldong-vue

[3] 演示地址: https://flow.mldong.com

账号密码:admin/123456

作者:mldong

https://juejin.cn/post/7313242093031276554

公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!
最近有很多人问,有没有读者交流群!加入方式很简单,公众号Java精选,回复“加群”,即可入群!

Java精选面试题(微信小程序):3000+道面试题,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计等,在线随时刷题!
------ 特别推荐 ------
特别推荐:专注分享最前沿的技术与资讯,为弯道超车做好准备及各种开源项目与高效率软件的公众号,「大咖笔记」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片关注。

点击“阅读原文”,了解更多精彩内容!文章有帮助的话,点在看,转发吧!
知秋君
上一篇 2024-08-24 19:12
下一篇 2024-08-24 18:48

相关推荐