首页 > 数据库 >OA系统核心业务逻辑审批流程数据库是如何设计的 leave_application请假内容表 leave_approve 抄送人 经办人同意拒绝表 leave_notice 同意/拒绝通知接收人表

OA系统核心业务逻辑审批流程数据库是如何设计的 leave_application请假内容表 leave_approve 抄送人 经办人同意拒绝表 leave_notice 同意/拒绝通知接收人表

时间:2023-06-15 20:14:38浏览次数:49  
标签:COMMENT 请假 拒绝 unsigned leave 同意 审批 NULL

OA系统核心业务逻辑审批流程数据库是如何设计的 leave_application请假内容表 leave_approve 抄送人 经办人同意拒绝表 leave_notice 同意/拒绝通知接收人表
https://blog.csdn.net/rulaixiong/article/details/124688056

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='请假申请表';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

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='请假审批表';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
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='请假审批通知表';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

标签:COMMENT,请假,拒绝,unsigned,leave,同意,审批,NULL
From: https://www.cnblogs.com/sunny3158/p/17483976.html

相关文章

  • 一个线程池拒绝策略引发的问题
    extends:严选库存稳定性治理系列:一个线程池拒绝策略引发的血案(qq.com),  虽然是我遇到的一个棘手的生产问题,但是我写出来之后,就是你的了。-why技术-博客园(cnblogs.com) 你好呀,是歪歪。前几天,就在大家还沉浸在等待春节到来的喜悦氛围的时候,在一个核心链路上的核心系......
  • qt6.5.0使用windeployqt发布程序提示Creating qt_ar_qm... Cannot open. : 拒绝访问
    报错内容如下图这是一个软件bug,qt社区的解决办法是,使用新版本6.5.1或6.6.0 ......
  • 为了拒绝 Windows 所有可移动存储类的权限,请使用以下批处理脚本
    为了拒绝Windows所有可移动存储类的权限,请使用以下批处理脚本:CopyCoderegadd"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR"/v"Start"/tREG_DWORD/d4/fregadd"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor&qu......
  • RSA之拒绝套路(2)
    前言话不多说,接着前一期RSA之拒绝套路(1) ,继续探讨RSA的相关问题,上一期,我们讨论了,如果泄露了(n,e,dp,c)可以导致密文被解密的危害。这一次,我们探讨如果泄露(dp,dq,q,p,c)会带来什么严重影响?题干dp=904944869732431047562983111757050028871554401210259466642757905486949557996614......
  • 最高院--当事人在催收通知签字并注明“收到”的行为不能解释成其已经同意还款;但仅签字
    (2020)最高法民申4676号  江西省金融资产管理股份有限公司、江西省进出口公司金融不良债权追偿纠纷再审审查与审判监督民事裁定书申请人主张:1.依据《最高人民法院关于超过诉讼时效期间借款人在催款通知单上签字或者盖章的法律效力问题的批复》,进出口公司签收《债务逾期催收通知......
  • 阿里云对象存储OSS————跨域资源共享(CORS)(m3u8 无法加载m3u8:跨域访问被拒绝)...
    今天在做视频直播录像的时候,添加一个录制APP的.M3U8文件到OSS的一个test文件中存储,结果是访问不到了:提示:无法加载m3u8:跨域访问被拒绝!!!!!项目代码测试地址:https://github.com/Tinywan/ThinkPhpStudy阿里云帮助文档:https://help.aliyun.com/document_detail/31928.html......
  • Linux SSH服务器拒绝了密码,请再输入一次(解决方法)
    1.在Linux终端输入sudovim/etc/ssh/sshd_config2.按i进入编辑模式,修改配置文件,找到Authentication所在位置,修改成如下所示取消这四条的注释LoginGraceTime2m            #登陆时间PermitRootLoginyes           #允许roo......
  • Uva--699 The Falling Leaves,(二叉树的递归遍历)
    记录10:462023-5-20http://uva.onlinejudge.org/external/6/699.htmlreference:《算法竞赛入门经典第二版》例题6-10二叉树的层次遍历,边读边写(这些题给我感觉是非常灵活),对每个节点需要的数据就是在sum数组的位置#include<cstdio>#include<iostream>#include<sstream>#d......
  • Java线程池中的四种拒绝策略
    CallerRunsPolicy:这是默认的拒绝策略,当线程池队列已满并且无法处理新任务时,将由提交任务的线程来执行该任务。这种策略可以降低新任务的流量,但也会增加提交任务的线程的负载。AbortPolicy:当线程池队列已满并且无法处理新任务时,将抛出RejectedExecutionException异常,阻止新任......
  • PAT Advanced 1004. Counting Leaves
    PATAdvanced1004.CountingLeaves1.ProblemDescription:Afamilyhierarchyisusuallypresentedbyapedigreetree.Yourjobistocountthosefamilymemberswhohavenochild.2.InputSpecification:Eachinputfilecontainsonetestcase.Eachcases......