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

来源:互联网 发布:dfa算法 编辑:程序博客网 时间:2024/05/16 14:01

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

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

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


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

  首先,我们来看一张图:


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

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


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

  1. 流程表(tbl_flow)

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

  示例数据:

flow_idflow_noflow_nameremark15请假流程请假流程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_roleremark15提交请假单无提交请假单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_idremark1512提交部门经理审批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审批日期

0 0
原创粉丝点击