关于工作流的管理系统

前言

本文是基于《工作流引擎设计与实现》系列文章的基础上做的工作流的管理系统,目前还在迭代开发中,后续会有开源计划,敬请期待!

群体划分

业务人员

业务人员即针对使用工作流去发起审批、处理审批的人群。

技术人员

技术人员即根据业务流程转化成工作流,主要是使用流程设计器设计流程。

业务人员视角

我们先从业务人员视角,看其是如何使用工作流的。

发起申请

发起申请即发起技术人员已经制作好的流程,一般会有一个统一的发起入口列表,发起人只需要点击对应的审批流程,即可打开发起流程对应的表单。如下,当我们点击发起申请时,会看到如下列表。其中假期管理和智能账务为流程的分类,请假流程和补卡流程为假期管理下的审批流程,报销流程为智能账务下的审批流程。

当我们点击对应的审批,会弹出对应的申请表单页,申请表单页主要由两部门构成,一部分是要填写的申请表单,另一部分为该申请流程对应的审批流程图。只要填写完申请表单,点击右下角的确定按钮,即可发起一个审批流程。

请假流程

补卡流程

我发起的

我发起的即用户在发起申请那边发起的流程,会在该列表中显示,如下发起申请,确认提交。

提交成功,就会跳转到我发起的列表

点击列表操作的"详情",即可查看流程详情,流程详情共有三部分构成:表单、流程图、审批记录

  • 表单,即发起时填的表单,该表单禁止编辑
  • 流程图,其中,红色为已完成节点或边,绿色为正在进行的节点。
  • 审批记录,显示的是当前流程所有已完成的任务,有时间轴和表格两种呈现方式。

我的待办

用户待处理的任务列表,如上发起的流程处于部门经理审批节点,则在该部门经理审批节点的绑定的参与人就会参生一条待办。这里我们先不展开,等后续讲到技术人员模块时再详细讲解。

我们先登录该参与人账号,进入我的待办即看到如下列表

点击列表操作"办理",即可看到审批流程处理页,其主要包括表单、流程图、审批记录、操作区域四个部分。而操作又分为:同意、拒绝、退回上一步、退回发起人、跳转等五个操作。

  • 同意,即完成该任务,并使流程往下一个流程节点前进
  • 拒绝,也是完成任务,但会直接将流程结束
  • 退回上一步,也是完成任务,但是流程会回退到该节点的上一个节点
  • 退回发起人,也是完成任务,但是流程会回退到发起人
  • 跳转,也是完成任务,但是会跳转到前面已完成节点的任意节点。

这里的操作就先不一一演示了,我们可以选择退回发起人

当退回发起人时,发起人在我的待办中会产生一条待办,因为其是发起人,所以申请表单恢复到可编辑状态。

此时的审批记录为

再次提交

此时审批记录为

我的已办

已处理过的任务列表,如下:

点击操作列表中的"详情",即可查看审批流程详情,其包括如下部分:表单、流程图、审批记录、操作区域,都是只读模式。

表单

流程图

审批记录

技术人员视角

流程设计

新增

  • 显示名称,和流程定义的显示名称对应
  • 唯一编码,和流程定义的唯一编码对应
  • 流程分类,用于在发起申请列表那里分组
  • 图标,用于在发起申请列表那里显示
  • 备注

编辑

对新增时填写的基本信息进行编辑

设计

打开流程设计器,进行流程设计,右上角有保存按钮,点击保存,会提交到后端入库。

常规操作

  • 右键编辑流程基本信息
  • 点击节点编辑节点属性

关于流程节点属性和任务节点属性这里就不再多介绍,具体可看前面关于《工作流引擎设计与实现》的系列文章。

部署

将流程设计更新到流程定义表,该操作会产生一个新的流程定义版本

重新部署

将流程设计更新到流程定义表,该操作会覆盖原最新版本的流程定义

流程定义

主要就一个列表展示

当然,在这里也可以发起流程

小结

关于工作流的管理系统涉及到的大的功能点主要是这些,当然,这里只是补步演示,还有很多细节需要考虑。后续的细节会再根据需要出相应的文章或者录制相应的视频。如想了解更多,可加入组织。

相关推荐
李慕婉学姐4 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
XTTX1104 小时前
Vue3+Cesium教程(36)--动态设置降雨效果
前端·javascript·vue.js
奋进的芋圆5 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
sxlishaobin6 小时前
设计模式之桥接模式
java·设计模式·桥接模式
model20056 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端
荒诞硬汉6 小时前
JavaBean相关补充
java·开发语言
提笔忘字的帝国6 小时前
【教程】macOS 如何完全卸载 Java 开发环境
java·开发语言·macos
2501_941882486 小时前
从灰度发布到流量切分的互联网工程语法控制与多语言实现实践思路随笔分享
java·开发语言
華勳全栈7 小时前
两天开发完成智能体平台
java·spring·go
alonewolf_997 小时前
Spring MVC重点功能底层源码深度解析
java·spring·mvc