JavaEE项目实战(OA系统)之十八_流程审批之一

  JavaEE项目实战(OA系统)之十八_流程审批之一

  下面介绍OA系统的另一模块:流程审批。

  OA系统推崇的是无纸化办公,因此各项事务的流程审批是OA系统的一大类应用。


  下面,我们来设计流程审批的数据库。

  首先,我们来看一张图:


  所谓的“流程审批”,就是一份数据,在设定好的节点之间流转。在流转过程中,数据可能发生变化。

  对于一个流程,它的节点和连线是固定的。通常是由用户公司的管理员通过二次开发工具设定流程。


  要做一个通用的流程系统,大概应建立如下数据表:

  1. 流程表(tbl_flow)

字段名数据类型备注
flow_idint流程编号,主键
flow_noint流程号,唯一列
flow_namevarchar2(100)流程名称
remarkvarchar2(500)备注

  示例数据:

flow_idflow_noflow_nameremark
15请假流程请假流程
210报销流程报销流程

  2. 流程节点表(tbl_flow_node)

字段名数据类型备注
flow_node_idint流程节点编号,主键
flow_noint流程号,与流程表对应
flow_node_namevarchar2(100)流程节点名称
flow_node_rolevarchar2(100)流程角色
remarkvarchar2(500)备注
  示例数据:

flow_node_idflow_noflow_node_nameflow_node_roleremark
15提交请假单提交请假单
25部门经理审批部门经理部门经理审批
35总经理审批总经理总经理审批

  3. 流程线表(tbl_flow_line)

字段名数据类型备注
flow_line_idint流程线编号,主键
flow_noint流程号,与流程表对应
prev_node_idint前一节点编号
next_node_idint后一节点编号
remarkvarchar2(500)备注
  示例数据:

flow_line_idflow_noprev_node_idnext_node_idremark
1512提交部门经理审批
2523提交总经理审批

  4. 流程角色_员工表(tbl_flow_role_user)

字段名数据类型备注
flow_role_namevarchar2(100)流程角色名称
user_idint员工编号
dept_idint部门编号
  示例数据:

flow_role_nameuser_iddept_id
部门经理132
部门经理264
总经理31

  以上就是一个通用的审批流程所需要的数据表。


  下面,我们来做一个简单的示例,就是请假审批。

  需要为请假审批额外增加两张表,其中一张表对应于请假单,但除了请假单的必需数据外,还增加了“流程号”和“当前节点编号”两个字段;另一张表用于记录审批过程中的审批意见。


  5. 请假表(tbl_leave)

字段名数据类型备注
leave_idint请假编号,主键
user_idint请假人编号
user_namevarchar2(100)请假人姓名
leave_typevarchar2(100)请假类型(病假、事假)
leave_reasonvarchar2(500)请假原因
start_datedate开始日期
end_datedate终止日期
add_datedate提交日期
flow_noint流程号
current_nodeint当前节点编号
  补充:再增加一个字段state,用于表示请假单状态,0表示草稿,1表示已提交审批,2表示审批结束。


  6. 请假审批表(tbl_leave_audit)

字段名数据类型备注
audit_idint审批编号,主键
leave_idint请假编号,与请假表对应
flow_node_idint节点编号
user_idint审批人编号
user_namevarchar2(100)审批人姓名
audit_infovarchar2(500)审批意见
audit_datedate审批日期

### 回答1: 好的,我可以回答这个问题。您可以使用Activiti或Camunda等流程引擎来实现Java审批流Demo。这些流程引擎提供了丰富的API和工具,可以帮助您快速构建和部署审批流程。您可以在GitHub等代码托管平台上找到许多开源的审批流Demo,可以作为您的参考。 ### 回答2: 审批流是一种常见的业务流程,通过该流程可以实现对某些操作的审批和控制。下面是一个基于Java的审批流Demo的实现思路。 首先,需要定义一个审批节点的类,该类包含节点的属性,如节点类型、节点名称、审批人等。节点可以分为开始节点、普通节点和结束节点。开始节点标识流程的开始,结束节点标识流程的结束。普通节点代表实际的审批环节。 然后,需要定义一个审批流程类,该类包含一个节点列表,表示整个流程的各个节点。审批流程类还需要提供添加节点、删除节点和执行审批流程的方法。添加节点方法用于向节点列表中添加新的节点,删除节点方法用于删除节点列表中的某个节点,执行审批流程方法用于按照节点列表的顺序执行各个节点的审批动作。 接下来,需要定义一个审批记录的类,该类包含记录的属性,如审批人、审批时间、审批结果等。在执行审批流程时,每个节点都会生成一条审批记录,记录该节点的审批结果。 最后,编写一个主程序,用于创建一个审批流程对象,并添加各个节点,然后执行该审批流程。主程序需要模拟用户的操作,如输入审批意见并进行节点之间的跳转。在执行过程中,会不断地生成审批记录,直到流程结束。 通过以上步骤,我们可以完成一个简单的Java审批流Demo。通过该Demo,我们可以清楚地了解审批流的工作原理,以及如何使用Java来实现一个审批流程。 ### 回答3: 审批流可以理解为一个流程,涉及到多个环节的审批过程。生成一个Java审批流Demo主要包括以下步骤: 1. 设计审批流实体类:定义一个ApprovalFlow类,包含审批流程的属性,如流程编号、流程名称、创建人、创建时间等。可以使用注解指定数据库表名和字段名,便于持久化操作。 2. 设计审批节点实体类:定义一个ApprovalNode类,包含节点的属性,如节点编号、节点名称、审批人、审批结果等。节点需要与审批流进行关联,可以使用外键关联审批流的编号。 3. 设计审批流服务接口:创建一个ApprovalFlowService接口,定义相关的方法,如创建审批流、添加审批节点、获取审批流程信息等。可以使用注解声明该接口为Spring的服务组件。 4. 实现审批流服务接口:创建一个ApprovalFlowServiceImpl类,实现ApprovalFlowService接口。在具体的方法中,通过调用相关的持久化操作,实现对审批流程和节点的增删改查等功能。 5. 创建审批流Demo:在主类中,实例化ApprovalFlowServiceImpl对象,并调用相关方法,模拟审批流程的操作,如创建审批流程、添加节点、获取审批流程信息等。 6. 运行Demo:将代码编译并运行,观察输出结果,验证审批流Demo的功能是否符合预期。可以通过用户输入、数据库查询等方式动态操作审批流程。 通过以上步骤,就可以生成一个简单的Java审批流Demo。可以根据实际需求进行扩展,如增加权限控制、审批通知等功能,提升Demo的实用性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值