OA系统核心业务逻辑审批流程数据库是如何设计的 您所在的位置:网站首页 oa系统流程管理 OA系统核心业务逻辑审批流程数据库是如何设计的

OA系统核心业务逻辑审批流程数据库是如何设计的

2023-08-26 00:22| 来源: 网络整理| 查看: 265

office automation翻译成中文就是:办公自动化。所以常说的OA系统就是办公自动化系统。审批流程是OA系统应用的核心。大的划分为:财务类、人事管理类、行政事务类、业务相关类、客户管理类以及其它。 在这里插入图片描述 上图是钉钉OA审批管理后台,大家接触比较多的是人事流程。

在这里插入图片描述

大部分审批流程创建如下图:

在这里插入图片描述

分析: 上图前端这种效果可以让js来实现。业务流程上首先得有个提交人(或者叫发起人),接下来有四个选择:审批人、抄送人、办理人、条件分支。这里选择了两个审批人,分别定义为一级审批人、二级审批人。最终把这种数据结构传递给后端,存到数据库。

在这里插入图片描述

分析: 上图是用活动图来表示审批流程。

在这里插入图片描述

CREATE TABLE `leave_application` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `employee_id` bigint(20) unsigned NOT NULL COMMENT '员工主键', `type` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '请假类型:1-事假,2-调休,3-病假,4-年假', `start_time` int(10) unsigned NOT NULL COMMENT '开始时间', `end_time` int(10) unsigned NOT NULL COMMENT '结束时间', `duration` int(10) unsigned NOT NULL COMMENT '时长', `reason` varchar(255) NOT NULL COMMENT '请假事由', `create_time` int(10) unsigned NOT NULL COMMENT '创建时间', `status` tinyint(3) unsigned NOT NULL COMMENT '1-正在审批,2-审批已通过,3-审批被驳回', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='请假申请表';

在这里插入图片描述

CREATE TABLE `leave_approve` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `leave_application_id` bigint(20) unsigned NOT NULL COMMENT '请假申请表主键', `operator_id` bigint(20) unsigned NOT NULL COMMENT '经办人主键', `action` tinyint(3) unsigned NOT NULL COMMENT '1-审批人,2-抄送人', `result` tinyint(3) unsigned NOT NULL COMMENT '1-同意,2-驳回', `reason` varchar(255) DEFAULT NULL COMMENT '审批意见', `approve_order` tinyint(3) unsigned NOT NULL COMMENT '审批顺序', `is_last` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '是否为最后节点:1-是,0否', `status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '0-准备,1-正在处理,2-处理完成,3-取消', `create_time` int(10) unsigned NOT NULL COMMENT '创建时间', `update_time` int(10) unsigned DEFAULT NULL COMMENT '审批时间', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='请假审批表'; CREATE TABLE `leave_notice` ( `id` bigint(20) unsigned NOT NULL COMMENT '主键', `receiver_id` bigint(20) unsigned NOT NULL COMMENT '通知接收人', `content` varchar(255) NOT NULL COMMENT '消息内容', `create_time` int(10) unsigned NOT NULL COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='请假审批通知表';

分析: 请假申请表和请假审批表的业务是一个事务,请假审批通知表则在事务成功后提示申请人已提交。并把请假审批表里业务做成任务监听。OA系统审批流程业务逻辑差不多是这样子,再结合各自项目在这个基础上进行个性化完善。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有