完整资源获取
点击下载
1、资源项目源码均已通过严格测试验证,保证能够正常运行;
2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通;
3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;
4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
基于Spring Boot、MyBatis、HTML、Bootstrap和jQuery的请假审批管理系统是一个结合了现代Web开发技术的综合性解决方案。
一、系统背景与意义
随着信息化时代的到来,传统的请假审批流程显得繁琐且效率低下。学生或员工需要填写纸质请假单,经过多层审批,不仅耗时较长,还容易出现信息错误或遗漏。因此,开发一个基于Web的请假审批管理系统显得尤为重要。该系统通过自动化、信息化的方式,实现了请假申请的提交、审批、统计和查询等功能,大大提高了管理效率。
二、系统架构与技术选型
1. 系统架构
系统采用B/S(浏览器/服务器)架构,用户通过浏览器访问系统,服务器处理业务逻辑并存储数据。这种架构具有跨平台、易维护、易扩展等优点。
2. 技术选型
- Spring Boot:作为系统的核心框架,Spring Boot简化了Spring应用的初始搭建以及开发过程。它提供了大量的自动配置,使得开发者能够专注于业务逻辑的实现。
- MyBatis:作为持久层框架,MyBatis支持定制化SQL、存储过程以及高级映射。它消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索,从而降低了开发难度。
- HTML/CSS/JavaScript:用于前端页面的构建和样式设计。HTML提供页面结构,CSS负责样式美化,JavaScript则用于实现页面的动态交互。
- Bootstrap:一个前端框架,它提供了丰富的CSS样式和JavaScript插件,使得开发者能够快速构建响应式布局和美观的页面。
- jQuery:一个快速、小巧、功能丰富的JavaScript库,它简化了HTML文档遍历和操作、事件处理、动画和Ajax交互等任务。
三、系统功能模块
1. 用户管理
- 支持用户注册、登录、密码找回等功能。
- 用户角色分为普通用户(如学生、员工)、审批者(如辅导员、部门经理)和管理员。
2. 请假申请
- 用户可以在线填写请假申请,包括请假类型、起止时间、请假事由等信息。
- 支持上传附件,如病历证明等。
3. 审批流程
- 请假申请提交后,自动流转至相应的审批者。
- 审批者可以在线查看请假申请详情,并进行审批操作(同意/拒绝)。
- 支持多级审批,如先由辅导员审批,再由院系领导审批。
4. 统计查询
- 提供请假记录的统计和查询功能,包括按时间、按部门、按类型等多种查询方式。
- 支持导出查询结果到Excel文件。
5. 系统设置
- 管理员可以对系统参数进行设置,如审批流程配置、用户权限管理等。
- 支持系统日志的查看和管理,以便追踪问题。
四、系统优势
- 提高效率:自动化审批流程减少了人工干预,提高了审批效率。
- 减少错误:电子化记录减少了纸质文档的错误和遗漏。
- 便捷性:用户可以随时随地通过浏览器访问系统,进行请假申请和审批。
- 可扩展性:系统采用模块化设计,易于扩展新的功能模块。
- 安全性:系统采用多种安全措施,确保数据的安全性和稳定性。
五、结论
基于Spring Boot、MyBatis、HTML、Bootstrap和jQuery的请假审批管理系统是一个高效、便捷、可扩展的解决方案。它实现了请假审批流程的自动化和信息化,提高了管理效率,减少了人工错误,为用户提供了更好的使用体验。
SQL部分:
/*
Navicat MySQL Data Transfer
Source Server : zhangsenlin
Source Server Version : 50710
Source Host : localhost:3306
Source Database : leave_system
Target Server Type : MYSQL
Target Server Version : 50710
File Encoding : 65001
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for class
-- ----------------------------
DROP TABLE IF EXISTS `class`;
CREATE TABLE `class` (
`class_id` int(11) NOT NULL AUTO_INCREMENT,
`grade_id` int(11) DEFAULT NULL,
`class_name` varchar(30) NOT NULL,
PRIMARY KEY (`class_id`),
KEY `FK_Relationship_11` (`grade_id`),
CONSTRAINT `FK_Relationship_11` FOREIGN KEY (`grade_id`) REFERENCES `grade` (`grade_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11802 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of class
-- ----------------------------
INSERT INTO `class` VALUES ('11301', '113', '13级1班');
INSERT INTO `class` VALUES ('11302', '113', '13级2班');
INSERT INTO `class` VALUES ('11401', '114', '14级1班');
INSERT INTO `class` VALUES ('11402', '114', '14级2班');
INSERT INTO `class` VALUES ('11501', '115', '15级1班');
INSERT INTO `class` VALUES ('11601', '116', '16级1班');
INSERT INTO `class` VALUES ('11701', '117', '17级1班');
INSERT INTO `class` VALUES ('11801', '118', '18级1班');
-- ----------------------------
-- Table structure for grade
-- ----------------------------
DROP TABLE IF EXISTS `grade`;
CREATE TABLE `grade` (
`grade_id` int(11) NOT NULL AUTO_INCREMENT,
`grade_name` varchar(20) NOT NULL,
PRIMARY KEY (`grade_id`)
) ENGINE=InnoDB AUTO_INCREMENT=119 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of grade
-- ----------------------------
INSERT INTO `grade` VALUES ('113', '13级');
INSERT INTO `grade` VALUES ('114', '14级');
INSERT INTO `grade` VALUES ('115', '15级');
INSERT INTO `grade` VALUES ('116', '16级');
INSERT INTO `grade` VALUES ('117', '17级');
INSERT INTO `grade` VALUES ('118', '18级');
-- ----------------------------
-- Table structure for leader
-- ----------------------------
DROP TABLE IF EXISTS `leader`;
CREATE TABLE `leader` (
`leader_id` int(11) NOT NULL AUTO_INCREMENT,
`role_id` int(11) DEFAULT NULL,
`leader_name` varchar(30) NOT NULL,
`leader_password` varchar(30) NOT NULL,
PRIMARY KEY (`leader_id`),
KEY `FK_Relationship_9` (`role_id`),
CONSTRAINT `FK_Relationship_9` FOREIGN KEY (`role_id`) REFERENCES `role` (`role_id`)
) ENGINE=InnoDB AUTO_INCREMENT=134012 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of leader
-- ----------------------------
INSERT INTO `leader` VALUES ('134011', '3', '刘德华', '1234567');
-- ----------------------------
-- Table structure for leave
-- ----------------------------
DROP TABLE IF EXISTS `leave`;
CREATE TABLE `leave` (
`leave_id` int(11) NOT NULL AUTO_INCREMENT,
`student_id` bigint(20) NOT NULL,
`cause` varchar(500) NOT NULL,
`start_time` date NOT NULL,
`end_time` date NOT NULL,
`status` int(11) unsigned zerofill NOT NULL DEFAULT '00000000000' COMMENT '0待审核,1代表审核通过,2代表拒绝,3代表假条过期',
`total_day` int(11) NOT NULL,
`handler_name` varchar(11) DEFAULT NULL,
`handler_role` varchar(11) DEFAULT NULL,
`handler_time` date DEFAULT NULL,
PRIMARY KEY (`leave_id`),
KEY `FK_student_leave` (`student_id`),
CONSTRAINT `FK_student_leave` FOREIGN KEY (`student_id`) REFERENCES `student` (`student_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of leave
-- ----------------------------
INSERT INTO `leave` VALUES ('1', '11503080102', '生病', '2019-05-08', '2019-05-12', '00000000002', '7', null, null, null);
-- ----------------------------
-- Table structure for manager
-- ----------------------------
DROP TABLE IF EXISTS `manager`;
CREATE TABLE `manager` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`password` varchar(20) NOT NULL,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13453001 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of manager
-- ----------------------------
INSERT INTO `manager` VALUES ('13453000', '123456', '梁朝伟');
-- ----------------------------
-- Table structure for role
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (
`role_id` int(11) NOT NULL AUTO_INCREMENT,
`role_name` varchar(10) NOT NULL,
`msg` varchar(30) DEFAULT NULL,
PRIMARY KEY (`role_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of role
-- ----------------------------
INSERT INTO `role` VALUES ('1', '学生', '学生角色');
INSERT INTO `role` VALUES ('2', '班导', '教师角色');
INSERT INTO `role` VALUES ('3', '系领导', '领导角色');
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`student_id` bigint(20) NOT NULL AUTO_INCREMENT,
`role_id` int(11) DEFAULT NULL,
`class_id` int(11) DEFAULT NULL,
`student_name` varchar(30) NOT NULL,
`student_password` varchar(30) NOT NULL,
PRIMARY KEY (`student_id`),
KEY `FK_Relationship_5` (`role_id`),
KEY `FK_class_student` (`class_id`),
CONSTRAINT `FK_Relationship_5` FOREIGN KEY (`role_id`) REFERENCES `role` (`role_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11503080407 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('11503080102', '1', '11402', '学生101', '123456');
INSERT INTO `student` VALUES ('11503080103', '1', '11501', '学生145', '123456');
INSERT INTO `student` VALUES ('11503080104', '1', '11501', '学生146', '123456');
INSERT INTO `student` VALUES ('11503080105', '1', '11501', '学生147', '123456');
INSERT INTO `student` VALUES ('11503080106', '1', '11301', '学生1', '123456');
INSERT INTO `student` VALUES ('11503080107', '1', '11601', '学生191', '123456');
INSERT INTO `student` VALUES ('11503080108', '1', '11601', '学生192', '123456');
INSERT INTO `student` VALUES ('11503080109', '1', '11301', '学生2', '123456');
INSERT INTO `student` VALUES ('11503080110', '1', '11402', '学生102', '123456');
INSERT INTO `student` VALUES ('11503080111', '1', '11801', '学生271', '123456');
INSERT INTO `student` VALUES ('11503080112', '1', '11302', '学生40', '123456');
INSERT INTO `student` VALUES ('11503080113', '1', '11801', '学生272', '123456');
INSERT INTO `student` VALUES ('11503080114', '1', '11601', '学生193', '123456');
INSERT INTO `student` VALUES ('11503080116', '1', '11501', '学生148', '123456');
INSERT INTO `student` VALUES ('11503080117', '1', '11402', '学生103', '123456');
INSERT INTO `student` VALUES ('11503080118', '1', '11701', '学生229', '123456');
INSERT INTO `student` VALUES ('11503080119', '1', '11701', '学生230', '123456');
INSERT INTO `student` VALUES ('11503080120', '1', '11302', '学生41', '123456')