1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > OA系统核心业务逻辑审批流程数据库是如何设计的

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

时间:2019-02-23 06:25:41

相关推荐

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

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系统审批流程业务逻辑差不多是这样子,再结合各自项目在这个基础上进行个性化完善。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。