01-工作流 workflow

发布时间 2023-07-19 22:15:51作者: BNTang
title: 01-工作流 workflow
date: 2023-7-19 22:06:43
tags:
- Flowable

状态机解决流程问题

工作流:就是一个可以处理复杂情况的状态机。

例如,员工请假这个流程:首先员工提交请假申请,假设有项目经理进行审批,审批有两种结果:通过或者拒绝。

实现上面这个需求:

  1. 创建一张请假表,表中有员工的 id,请假的天数、请假的理由、项目经理的 id、请假的状态 status。
  2. 当员工请假的时候,就自动向这张表中添加一条记录。
  3. 然后,当项目经理登录到 OA 的时候,就来这张表中查询自己需要审批的请假申请,查到之后,可以选择批准或者拒绝。
  4. 接下来,员工登录之后,就可以查询到自己的请假申请的审批结果。

在这样的实现思路中,请假的流程我们是通过 status 这个字段来控制的。例如:

  • status=0:表示待审批
  • status=1:表示审批通过
  • status=2:表示拒绝

上面这个例子,status 就是状态码,通过这个字段的值来控制流程的状态,这种方式我们可以称之为使用状态机来解决流程问题,但是,这种思路,只能解决非常简单的流程问题。

一些复杂的流程

报销审批流程

img

在这个流程中,已经没法使用 status 去描述这个请假走到哪一步了。如果非要用 status,那么 status 可能会有很多取值:

  • 0:表示员工提交报销申请
  • 1:表示部门经理审批通过
  • 2:表示部门经理审批不通过,员工需要重新提交
  • 3:表示大区经理审批通过
  • 4:表示大区经理审批不通过
  • ...

笔记本电脑生产流程

img

这个流程中,不仅有串行任务,也有并行任务。虽然技术上来说,status 也还能做,但是,用 status 字段去描述这个流程,会非常非常复杂。

三大工作流