请假审批系统 -毕设

请假系统模块

管理员拥有,角色,用户,申请单类型,申请单的管理权限
在这里插入图片描述
普通开发,或者组长,都可创建申请单,查看自己申请单,审批下级申请单
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

功能模块

请假审批系统具有以下主要功能:

  1. 用户管理:系统支持多种用户角色,如员工、部门经理、总经理等,并提供相应的权限管理功能。管理员可以添加、删除和编辑用户信息。
  2. 请假申请:用户可以提交请假申请,包括请假类型、请假时间段和请假事由等信息。用户还可以附加相关文件或备注。
  3. 审批流程:请假申请将根据用户角色逐级提交给上级进行审批。每个级别的上级可以审核、批准或拒绝申请,并提供相应的审批意见。
  4. 请假记录:系统将保留所有请假申请的历史记录,包括申请状态、审批意见和申请时间等

image

other:

(超级管理员:拥有最高权限,可以进行用户,职位,请假类型,请假单管理)

(非管理员:请假申请单模块)

目前权限设计,硬编码实现,并未进行权限,角色,设计

数据库设计

字段中NOT NULL ,代码进行数据校验

职位模块

职位表

CREATE TABLE `dict_role` (
  `ID` varchar(32) NOT NULL COMMENT '主键',
  `NAME` varchar(64) NOT NULL COMMENT '职位名称',
  `LEVEL` decimal(2,0) NOT NULL COMMENT '职位级别',
  `REMARK` varchar(128) DEFAULT NULL COMMENT '备注',
  `CREATE_USER_ID` varchar(32) NOT NULL COMMENT '创建人',
  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
  `MODIFY_USER_ID` varchar(32) NOT NULL COMMENT '修改人',
  `MODIFY_TIME` datetime NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='职位表';

测试角色数据

image

用户模块

用户表

CREATE TABLE `dict_user` (
  `ID` varchar(32) NOT NULL COMMENT '主键',
  `NAME` varchar(64) NOT NULL COMMENT '用户姓名',
  `PASSWORD` varchar(64) NOT NULL COMMENT 'ID+password的md5加密形式',
  `ROLE_ID` varchar(32) NOT NULL COMMENT '职位',
  `SUPERIOR_ID` varchar(32) NOT NULL COMMENT '直接上级',
  `LAST_LOGIN_TIME` datetime DEFAULT NULL COMMENT '最近登录时间',
  `REMARK` varchar(128) DEFAULT NULL COMMENT '备注',
  `CREATE_USER_ID` varchar(32) NOT   NULL COMMENT '创建人',
  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
  `MODIFY_USER_ID` varchar(32) NOT NULL COMMENT '修改人',
  `MODIFY_TIME` datetime NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户基本信息';

用户数据(用来验证系统)

image
注:所有用户角色即登录名,密码为123456

请假类型模块

请假类型表

CREATE TABLE `dict_leave_style` (
  `ID` varchar(32) NOT NULL COMMENT '主键',
  `NAME` varchar(64) NOT NULL COMMENT '名称',
  `REMARK` varchar(128) DEFAULT NULL COMMENT '备注',
  `CREATE_USER_ID` varchar(32) NOT NULL COMMENT '创建人',
  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
  `MODIFY_USER_ID` varchar(32) NOT NULL COMMENT '修改人',
  `MODIFY_TIME` datetime NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='请假类型表';

模拟测试数据

image

申请单模块

请假申请单表结构

CREATE TABLE `leave_bill` (
  `ID` varchar(32) NOT NULL COMMENT '主键',
  `LEAVE_TIME` datetime NOT NULL COMMENT '请假时间',
  `START_TIME` datetime NOT NULL COMMENT '开始时间',
  `END_TIME` datetime NOT NULL COMMENT '结束时间',
  `DAYS` decimal(5,2) NOT NULL COMMENT '请假时长',
  `STYLE_ID` varchar(32) NOT NULL COMMENT '假期类型',
  `CAUSE` varchar(256) NOT NULL COMMENT '事由',
  `USER_ID` varchar(32) NOT NULL COMMENT '请假人',
  `BILL_STATUS` tinyint(2) NOT NULL COMMENT '0:保存;1:同意;2:等待审批;-1:驳回',
  `LEVEL_NOW` decimal(2,0) NOT NULL COMMENT '当前层级',
  `LEVEL_TOTAL` decimal(2,0) NOT NULL COMMENT '需要审批层级',
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='请假单表';

表关系

image

解决方案

1 根据pd构建数据库,以及相应表 并观察表结构 (非空验证,公用字段 --> logic column)

2 构建后端项目,实现简单crud,postman自测对应接口

3 token实现认证登录,线程变量数据处理

4 构建前端项目,进行接口对接 ,自测系统优化业务流程,并记录缺陷

5 确定部署方案

6 整理流程图,相应文档

后端实现

springboot +jwt +mybatis-plus+mysql+pagehelper

项目结构划分

image

模块划分数据走向轮廓

image

模块功能

登录模块

1 根据 name ,secret,explaintime 生成对应token

2 拦截器对请求进行拦截,如果登录请求直接通过,登录成功后保存相关用户线程数据,

非登录请求,进行token验证,token无效则抛出异常

image

请假审批流程

申请单中设置有 LEVEL_NOW 当前层级 LEVEL_TOTAL需要审批层级 字段

审批是通过传参status(1同意 -1驳回) 根据逻辑来实现更新申请单相应层级变化已经状态改变

image

前端实现

vue+element+vuex+axios+vue-router

前端项目采用npm管理报,webpack进行打包处理

项目结构划分

image

技术实现

后端使用了Spring Boot框架构建RESTful API,提供了与前端交互的数据接口。系统使用JWT(JSON Web Token)进行身份验证和用户授权,保证了数据的安全性。

数据库方面,系统采用了关系型数据库(如MySQL)来存储用户信息、请假申请和审批记录等数据

请假审批系统采用前后端分离的架构,其中前端使用Vue.js框架开发,后端使用Java语言和Spring Boot框架。下面是项目的仓库链接:

  • 前端代码:https://gitee.com/wudeape/leave-system-ui
  • 后端代码:https://gitee.com/wudeape/leave-system.git

快速开始

如果你对该系统感兴趣并希望进行部署和测试,可以按照以下步骤进行:

  1. 首先,克隆前端代码仓库到本地机器:

    git clone https://gitee.com/wudeape/leave-system-ui.git
    
  2. 进入前端代码目录,并安装相关依赖:

    cd leave-system-ui
    npm install
    
  3. 修改前端配置文件,将API地址指向你部署的后端服务器。

  4. 启动前端开发服务器:

    npm run start
    
  5. 克隆后端代码仓库到本地机器:

    git clone https://gitee.com/wudeape/leave-system.git
    
  6. 使用IDE(如IntelliJ IDEA)打开后端代码目录,并配置数据库连接等相关配置。

  7. 启动后端服务器。

项目部署

部署方案 Docker+Nginx 部署前后端项目

dockerfile 编写mysql,nginx, leavesystem 进行构建容器

编写docker-compose构建脚本

version: "1"
services:
  enjoyornginx:
    container_name: enjoyornginx
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - /root/nginx/html:/usr/share/nginx/html
    privileged: true
  enjoyormysql:
    container_name: enjoyormysql
    image: mysql:5.7
    ports:
      - 3306:3306
    environment:
      - MYSQL_DATABASE=learn_base
      - MYSQL_ROOT_PASSWORD=learn_base123456
  enjoyorleavesystem:
    container_name: enjoyorleavesystem
    image: enjoyorleavesystem:latest
    build: .
    ports:
      - 8088:8088
    depends_on:
      - enjoyormysql
    links:
      - enjoyormysql

编写dockerfile

FROM openjdk:8

EXPOSE 8081

ADD LeaveSystem-0.0.1-SNAPSHOT.jar enjoyorleavesystem.jar
RUN bash -c 'touch /enjoyorleavesystem.jar'

ENTRYPOINT ["java", "-jar", "/enjoyorleavesystem.jar"]

vue 打包项目挂载到nginx制定路径,修改nigx.conf

后端项目直接打包称容器 进行链接mysql

image

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值