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

2023-10-28

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

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

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


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

  首先,我们来看一张图:


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

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


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

  1. 流程表(tbl_flow)

字段名 数据类型 备注
flow_id int 流程编号,主键
flow_no int 流程号,唯一列
flow_name varchar2(100) 流程名称
remark varchar2(500) 备注

  示例数据:

flow_id flow_no flow_name remark
1 5 请假流程 请假流程
2 10 报销流程 报销流程

  2. 流程节点表(tbl_flow_node)

字段名 数据类型 备注
flow_node_id int 流程节点编号,主键
flow_no int 流程号,与流程表对应
flow_node_name varchar2(100) 流程节点名称
flow_node_role varchar2(100) 流程角色
remark varchar2(500) 备注
  示例数据:

flow_node_id flow_no flow_node_name flow_node_role remark
1 5 提交请假单 提交请假单
2 5 部门经理审批 部门经理 部门经理审批
3 5 总经理审批 总经理 总经理审批

  3. 流程线表(tbl_flow_line)

字段名 数据类型 备注
flow_line_id int 流程线编号,主键
flow_no int 流程号,与流程表对应
prev_node_id int 前一节点编号
next_node_id int 后一节点编号
remark varchar2(500) 备注
  示例数据:

flow_line_id flow_no prev_node_id next_node_id remark
1 5 1 2 提交部门经理审批
2 5 2 3 提交总经理审批

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

字段名 数据类型 备注
flow_role_name varchar2(100) 流程角色名称
user_id int 员工编号
dept_id int 部门编号
  示例数据:

flow_role_name user_id dept_id
部门经理 13 2
部门经理 26 4
总经理 3 1

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


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

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


  5. 请假表(tbl_leave)

字段名 数据类型 备注
leave_id int 请假编号,主键
user_id int 请假人编号
user_name varchar2(100) 请假人姓名
leave_type varchar2(100) 请假类型(病假、事假)
leave_reason varchar2(500) 请假原因
start_date date 开始日期
end_date date 终止日期
add_date date 提交日期
flow_no int 流程号
current_node int 当前节点编号
  补充:再增加一个字段state,用于表示请假单状态,0表示草稿,1表示已提交审批,2表示审批结束。


  6. 请假审批表(tbl_leave_audit)

字段名 数据类型 备注
audit_id int 审批编号,主键
leave_id int 请假编号,与请假表对应
flow_node_id int 节点编号
user_id int 审批人编号
user_name varchar2(100) 审批人姓名
audit_info varchar2(500) 审批意见
audit_date date 审批日期

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaEE项目实战(OA系统)之十八_流程审批之一 的相关文章

  • 2023最新版本Activiti7系列-网关服务

    网关篇 网关可控制流程的执行流向 常用于拆分或合并复杂的流程场景 在Activiti7中 有以下几种类型的网关 排他网关 Exclusive Gateway 用于在流程中进行条件判断 根据不同的条件选择不同的分支路径 只有满足条件的分支会被
  • OA 系统工作流引擎 Camunda 实践(1)

    审核人员看清楚再审核 我是把自己公司的案例分析一下 这哪是广告 Camunda是Activiti最大的贡献者之一 除Alfresco以外 同时也是它一个主 要的执行咨询合作伙伴 camunda表示Activiti可能太拘束于Alfresco
  • Flowable 之事件和网关

    文章目录 一 网关 1 1 排他网关 1 2 并行网关 1 3 包容网关 1 4 事件网关 二 事件 2 1 定时器事件 2 1 1 定时器启动事件 2 1 2 中间计时器捕获事件 2 1 3 边界计时器事件 2 2 消息事件 2 2 1
  • Activiti7 监听器【十四】

    Activiti 7系列文章目录 文章代码下载 Activiti7 工作流设计器 一 Activiti7 创建表 二 Activiti7 表结构介绍 三 Activiti7 设计器创建流程 四 Activiti7 部署流程 五 Activi
  • Activiti6.0学习实践(1)-基础和部署

    工作流是现在信息化建设过程中经常用于解决业务流程管理问题的工具 因此工作流是一个比较专业化的话题 当前流行的工作流主要有JBPM和activiti 本系列学习实践的目的就是掌握activiti的部署 开发和应用 重要说明 本系列学习实践都是
  • Zotero6.0时代来临!新的文献阅读生态

    zotero迎来6 0正式版的更新 内置PDF阅读器与笔记编辑器极大重构了我的文献阅读生态 本文记载了基于6 0版本的zotero配置过程 本文相干的软件与插件如下 相关软件 Zotero SumatraPDF Obsidian Subli
  • Camunda流程引擎笔记(四):Send Task,Receive Task

    流程引擎中 Send Task和 Service Task拥有相同的行为 都是通过回调Java代码完成相应逻辑 通常 Send Task和 Receive Task配合使用 一 Send Task 绘制一个Send Task流程 配置过程和
  • Activiti源码分析

    Activiti是业界很流行的java工作流引擎 关于Activiti与JBPM5的关系和如何选择不是本文要讨论的话题 相关内容可以baidu一下 Activiti从架构角度看是比较优秀的 是很面向对象的 是我所阅读过的代码结构很棒的开源软
  • Flowable 用户问题

    Flowable用户和系统用户问题 springboot集成flowable modeler 实现免登 权限管理 Flowable引擎使用统一权限管理
  • 多团队协作开发的大型项目Git工作流设计分享

    一 项目简介 文章内容以我自己实际负责的项目前端代码的管理为例 每个公司的git工作流设计应以公司的实际为准 该分享仅做参考 1 项目架构设计 采用基于qiankun的前端微应用 基座应用 业务模块应用 架构设计 项目所管理的供应商达400
  • 关于工作流应用的思考

    我今天在学习的过程中突然思考了一个问题 即工作流在多数企业中用不起来主要有两个原因 1 信息化程度不够 2 工作流不够灵活 下面我以大学业务管理为例 对以上两个原因进行说明 由于各个学院各个单位的系统相互独立 所以学院内部的工作通常由内部系
  • vue怎么制作甘特图——dhtmlx-gantt

    引入 7 0不支持中文 npm i dhtmlx gantt 6 0 0 s 封装组件gantt
  • 2023最新版本Activiti7系列-源码篇-初始化过程

    源码分析 1 设计模式 1 1 命令模式 https dpb bobokaoya sm blog csdn net article details 89115420 1 2 责任链模式 https dpb bobokaoya sm blog
  • Activiti 学习(二)—— Activiti 流程定义和部署

    概述 在这一节 我们将创建一个 Activit 工作流 并启动这个流程 主要包含以下几个步骤 定义流程 按照 BPMN 的规范 使用流程定义工具 用流程符号把整个流程描述出来 部署流程 把画好的流程定义文件 加载到数据库中 生成表的数据 流
  • 2023最新版本Activiti7系列-身份服务

    身份服务 在流程定义中在任务结点的 assignee 固定设置任务负责人 在流程定义时将参与者固定设置在 bpmn 文件中 如果临时任务负责人变更则需要修改流程定义 系统可扩展性差 针对这种情况可以给任务设置多个候选人或者候选人组 可以从候
  • Spring的两种代理方式:JDK动态代理和CGLIB动态代理

    代理模式 代理模式的英文叫做Proxy或Surrogate 中文都可译为 代理 所谓代理 就是一个人或者一个机构代表另一个人或者另一个机构采取行动 在一些情况下 一个客户不想或者不能够直接引用一个对象 而代理对象可以在客户端和目标对象之间起
  • JavaEE项目实战(OA系统)之十九_流程审批之二

    JavaEE项目实战 OA系统 之十九 流程审批之二 这部分的程序界面原型如下 1 请假页面 员工如需请假 在登录系统后 点击请假功能 填写各项数据后 提交审批 也可以暂时不提交 将内容保存为草稿 以后可以加入功能 查看我的请假 和 草稿箱
  • SSH框架相关准备与入门学习

    最近开始学习java web开发 记录一下学习的过程 主要分为三个步骤 1 基础 java Mysql入门学习 2 中级 html css javascipt servlet jsp入门学习 推荐韩顺平相关视频 w3cshool在线教程 一
  • 【工作流Activiti】了解工作流

    1 什么是工作流 工作流 Workflow 就是通过计算机对业务流程自动化执行管理 它主要解决的是 使在多个参与者之间按照某种预定义的规则自动进行传递文档 信息或任务的过程 从而实现某个预期的业务目标 或者促使此目标的实现 通俗来讲 就是业
  • 【工作流Activiti】Activiti的使用

    1 数据库支持 Activiti 运行必须要有数据库的支持 支持的数据库有 mysql oracle postgres mssql db2 h2 2 Activiti环境 我们直接在当前项目 guigu oa parent做Activiti

随机推荐

  • packet capture抓取抖音

    这是一款安卓端的抓包工具 我们打算使用它来抓取抖音 首先得安装好着两款软件 1 配置app 至此 软件可以进行使用 2 打开抖音APP 玩一会抖音 然后打开packet capture 会显示出这里有13条数据 点击有数据的 得到如下 这块
  • Databend 借助对象存储帮你实现降本增效

    本篇文章围绕着 什么是对象存储 当 Databend 遇到对象存储 2022 年 Databend 利用对象存储降本的案例 国内优秀的对象存储产品 基于对象存储创业的产品 什么是对象存储 对象存储是一种可以非结构化存储和管理数据的技术 可以
  • eclipse启动参数

    eclipse 启动参数 arch processor architecture 描述 指定所使用的处理器的类别 举例 eclipse arch x86或eclipse arch sparc application 描述 指定要运行的应用
  • adspower是做什么用的,adspower费用,adspower类似软件有哪些?

    adspower费用 通过价格表 我们可以看出 美元报价表对国内用户不够友好 而且环境数量还是太少了 对于长期做相关业务的朋友 可能远远不够 候鸟浏览器 候鸟浏览器官网 防关联超级指纹浏览器系统工具 费用 候鸟浏览器相对价格更低 包括创建环
  • #if defined() 含义

    文章出处 http www blogjava net tinysun archive 2010 07 27 327215 html 看到内核代码中有很多地方都使用了 if defined 可是却找不到这个东东的定义 主要是define 它和
  • 【C语言】指针进阶(二)

    个人主页 阿然成长日记 点击可跳转 个人专栏 数据结构与算法 C语言进阶 不能则学 不知则问 耻于问人 决无长进 目录 四 数组名详解 1 数组名的理解 2 案例分析1 案例分析2 五 函数指针 1 其声明形式如下所示 2 函数指针的初始化
  • 起亚汽车RFID定位管理系统提升了物流运输效率

    1 应用背景 英国物流提供商Paragon Automotive部署RFID定位管理解决方案跟踪伊明赫姆港口附近的起亚汽车 这些汽车都在这个港口喷漆 存储并运送到其他零售地点 RFID定位管理系统使用了Paragon自己的管理软件 移动及固
  • python怎么获取免费代理IP

    什么是免费代理IP 免费代理IP是指可以免费使用的代理服务器的IP地址 代理服务器充当客户端和目标服务器之间的中间人 通过转发请求和响应来实现网络数据的传输 使用代理IP可以隐藏真实的客户端IP地址 实现匿名访问网络资源 免费代理IP通常由
  • 减轻剪辑工作必备——Python实现让视频自动打码,再也不怕出现少儿不宜的画面了

    我们在观看视频的时候 有时候会出现一些奇怪的马赛克 影响我们的观影体验 那么这些马赛克是如何精确的加上去的呢 有什么python相关报错解答自己不会的 或者源码资料 模块安装 女装大佬精通技巧 都可以来这里 https jq qq com
  • ffmpeg多个流画面合并

    首先这个是两路视频流的合并 要实现将两个视频一左一右同时播放的效果 可以使用FFmpeg的hstack和vstack滤镜来实现 以下是一种常见的方法 ffmpeg i input1 mp4 i input2 mp4 filter compl
  • sed命令详解

    简介 sed是非交互式的编辑器 它不会修改文件 除非使用shell重定向来保存结果 默认情况下 所有的输出行都被打印到屏幕上 sed编辑器逐行处理文件 或输入 并将结果发送到屏幕 具体过程如下 首先sed把当前正在处理的行保存在一个临时缓存
  • 技术人员如何形成差异化竞争力让自己活下去

    随着大的经济环境的影响 我看到很多人开始变得焦虑 技术人员也开始焦虑 其实我也会焦虑 从宏观角度来看 国内很多企业一直走不出国门 难以进一步做增长 导致需求减少 而互联网行业也整体进入稳定期 对新业务不再像以前那样不计成本 导致需要的人也大
  • 如何快速入门深度学习目标检测?

    学习目标 了解目标检测的任务 知道目标检测的常用数据集 知道目标检测算法的评价指标 掌握非极大值NMS算法的应用 了解常用的目标检测算法分类 1 目标检测 目标检测 Object Detection 的任务是找出图像中所有感兴趣的目标 并确
  • 打包jar到maven本地仓库

    有时候时间打包的sdk需要集成到其他工程里面 然后需要把sdk打包到工程的仓库里面 命令如下 mvn install install file Dfile jar所在的路径 DgroupId groupId名字 自己随便取 Dartifac
  • PID算法C语言模拟演示

    由于暂时没有硬件平台 网上找到一篇 用C语言实现PID控制代码 写的非常好 参照其文章 自己也动手实验了一下 下面通过几张 Execl 截屏说明下 Kp Ki Kd 三个参数不同取值时的输出效果 感谢CSDN博主 生活不易到处是坑 的原创文
  • 华为面试算法题

    华为面试算法题1 给定一个n 2的二维数组 表示有n个任务 一个信息是任务能够开始做的时间 另一个信息是任务的结束期限 后者一定大于前者 且数值上都是正数 你作为单线程的人 不能并行处理任务 但是每个任务都只需要一个单位时间完成 你需耍将所
  • vue3+vite+ts--watch和watchEffect监听使用

    目录 一 watch的使用方法 二 watchEffect的使用方法 三 watch和watchEffect的区别 一 watch的使用方法 watch 监听的数据 监听数据的函数 监听配置对象 是否立即执行 是否开启深度监听 watch
  • R语言课后习题

    R安装 1 输入命令 B 在浏览器中显示帮助文档 并学会使用帮助文档 A help solve B help start C help D data 2 函数 D 可在当前会话中执行一个脚本 A demo test B rm test C
  • el-table选中数据后echarts数据更新

    项目场景 在做后台管理系统中 数据分析模块必不可少 所以要用到echarts来实现此功能 例如 在el table中选中某条数据后echarts会更新数据 初始化的时候echarts数据是后端返回的默认数据 常规数据操作 提示 在这里记录一
  • JavaEE项目实战(OA系统)之十八_流程审批之一

    JavaEE项目实战 OA系统 之十八 流程审批之一 下面介绍OA系统的另一模块 流程审批 OA系统推崇的是无纸化办公 因此各项事务的流程审批是OA系统的一大类应用 下面 我们来设计流程审批的数据库 首先 我们来看一张图 所谓的 流程审批