赞
踩
目录
个人菜鸟,接触不久,接受批评,有些许地方还不够规范,仅仅解决了简单的业务问题,目前没有去增加高并发处理,我做的是《校园请销假小程序管理系统》它有小程序端、小程序后端服务、PC前端、PC后端服务。具体请假操作是在小程序端,后端的话是当时需求是可全部管理(也就是全校都可管理),也做了分类查询处理。
这里我先讲解PC端的,小程序会在不久更新。(留意评论区)
也希望大佬能给出PC端的优化建议。
校园请销假管理系统是一种使用信息化技术来管理学生请假和销假的系统。该系统可以提供学生请假的申请、审批以及销假的记录和统计功能,以提高请销假的效率和准确性,同时减轻相关工作人员的工作负担。
IDEA2020.1
maven3.6.3
redis
chrome
mysql8.0.31
leave_user(用户表)
leave_limit(请假限制表)
leave_info(请假信息表)
注:因为由个人隐私问题我这里就只公开数据库结构,用户信息需自行创建一些实例!(后面有讲解)
- /*
- Navicat Premium Data Transfer
- Source Server : localhost_3306
- Source Server Type : MySQL
- Source Server Version : 80031
- Source Host : localhost:3306
- Source Schema : leavepro
- Target Server Type : MySQL
- Target Server Version : 80031
- File Encoding : 65001
- Date: 14/07/2023 10:11:53
- */
-
- SET NAMES utf8mb4;
- SET FOREIGN_KEY_CHECKS = 0;
-
- -- ----------------------------
- -- Table structure for leave_user
- -- ----------------------------
- DROP TABLE IF EXISTS `leave_user`;
- CREATE TABLE `leave_user` (
- `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键id',
- `user_snum` bigint(0) NULL DEFAULT NULL COMMENT '学号/工号',
- `user_password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码',
- `user_name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
- `user_phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
- `user_sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '性别',
- `user_college` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学院',
- `user_major` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '专业',
- `user_class` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '班级',
- `user_email` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户邮箱',
- `user_status` int(0) NULL DEFAULT 0 COMMENT '用户状态(0正常 1申请中 2待销假)',
- `user_role` int(0) NULL DEFAULT 0 COMMENT '角色(0学生 1教师)',
- `user_del` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '是否被删除(0存在 1已删除)',
- `create_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
- `update_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '无' COMMENT '备注',
- PRIMARY KEY (`id`) USING BTREE
- ) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '学生信息表' ROW_FORMAT = Dynamic;
-
- SET FOREIGN_KEY_CHECKS = 1;
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
- /*
- Navicat Premium Data Transfer
- Source Server : localhost_3306
- Source Server Type : MySQL
- Source Server Version : 80031
- Source Host : localhost:3306
- Source Schema : leavepro
- Target Server Type : MySQL
- Target Server Version : 80031
- File Encoding : 65001
- Date: 14/07/2023 10:12:59
- */
-
- SET NAMES utf8mb4;
- SET FOREIGN_KEY_CHECKS = 0;
-
- -- ----------------------------
- -- Table structure for leave_limit
- -- ----------------------------
- DROP TABLE IF EXISTS `leave_limit`;
- CREATE TABLE `leave_limit` (
- `id` varchar(22) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '请假限制条件',
- `leave_limiting` int(0) NULL DEFAULT NULL COMMENT '请假限制人数',
- PRIMARY KEY (`id`) USING BTREE
- ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-
- SET FOREIGN_KEY_CHECKS = 1;
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
- /*
- Navicat Premium Data Transfer
- Source Server : localhost_3306
- Source Server Type : MySQL
- Source Server Version : 80031
- Source Host : localhost:3306
- Source Schema : leavepro
- Target Server Type : MySQL
- Target Server Version : 80031
- File Encoding : 65001
- Date: 14/07/2023 10:13:54
- */
-
- SET NAMES utf8mb4;
- SET FOREIGN_KEY_CHECKS = 0;
-
- -- ----------------------------
- -- Table structure for leave_info
- -- ----------------------------
- DROP TABLE IF EXISTS `leave_info`;
- CREATE TABLE `leave_info` (
- `id` int(0) NOT NULL AUTO_INCREMENT,
- `leave_reviewid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假审批号',
- `leave_removeid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '销假审批号',
- `leave_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假类型(0病假 1事假 2其他)',
- `leave_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '请假表状态(0申请中 1请假通过 2请假驳回 3已完成)',
- `leave_snum` bigint(0) NULL DEFAULT NULL COMMENT '请假学生学号',
- `leave_notes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '无' COMMENT '请假事由',
- `leave_address` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假去往地址',
- `leave_starttime` datetime(0) NULL DEFAULT NULL COMMENT '请假开始时间',
- `leave_endtime` datetime(0) NULL DEFAULT NULL COMMENT '请假结束时间',
- `leave_uegent` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '紧急联系电话',
- `leave_respeople` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假负责人',
- `leave_criticize` datetime(0) NULL DEFAULT NULL COMMENT '请假审批时间',
- `leave_idea` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假审批意见',
- `leave_del` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
- `create_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
- `update_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
- `remove_overdue` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '逾期状态(0未逾期 1逾期)',
- `remove_time` datetime(0) NULL DEFAULT NULL COMMENT '销假时间',
- `remove_lng` double NULL DEFAULT NULL COMMENT '销假经度',
- `reomve_lat` double NULL DEFAULT NULL COMMENT '销假纬度',
- `remove_criticize` datetime(0) NULL DEFAULT NULL COMMENT '销假审批时间',
- `reomve_advice` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '销假审批意见',
- `remove_user` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '销假审批人',
- `remove_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '销假人',
- `remove_show` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '是否显示(0不显示 1显示)',
- `remove_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '销假审核状态(0驳回,1通过)',
- PRIMARY KEY (`id`) USING BTREE,
- INDEX `info_snum`(`leave_snum`) USING BTREE
- ) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '请假信息表' ROW_FORMAT = Dynamic;
-
- SET FOREIGN_KEY_CHECKS = 1;
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
这里我就不多说了,前面有文章介绍,链接放到这里,自行去看不用做二次开发,这里只需要一个初始化好的前后端分离了项目。
若依框架二次开发(一)(项目搭建)(Windows)_Version update的博客-CSDN博客
看完上面的这个教程并跟着做完,然后看一下下面的教程,了解一下新增模块怎么做(下面步骤我会省略这部分的讲解)
若依框架二次开发(二)(进入主题)(Windows)_若依开发文档_Version update的博客-CSDN博客
若依框架二次开发(三)_Version update的博客-CSDN博客
按照我之前的教程文档创建两个模块(ruoyi-leaveuser ruoyi-leaveview)
根据原型图可以得到以下字典里类型:
我啰嗦一句 0.0 字典的作用。如图所示,便于分类区分
以下是上述字典的详细设置
信息管理
请假人数限制
审核管理
这里我也不多啰嗦,生成好的代码文件怎么放置,之前的教程链接都有讲到,自行去查看,链接依旧放到下面自行去看。
若依框架二次开发(二)(进入主题)(Windows)_若依开发文档_Version update的博客-CSDN博客
若依框架二次开发(三)_Version update的博客-CSDN博客
下面我列上详细编辑的截图,对照的进行更改,更改好了后,生成代码,然后根据之前教程的步骤进行CV
这三个地方都会有更改
基本信息
字段信息
这里的行可以进行拖拽排序!
这里我没有做保留字段,所以我就用别的没有列出来的字段进行了查询/编辑,我会附上我的xml文件的代码
注意!仔细对比,不要拉下任何细节哦
生成信息
这里销假信息表、和请假信息表我的是一张数据库表进行实现的,所以,需要改两边,意思就是:同一张表,用代码生成器更改编辑两次,生成两个代码压缩包,然后进行CV,我在这里就只展示销假信息表的编辑详情,请假信息的我会放到最后。
基本信息
字段信息
生成信息
基本信息
字段信息
生成信息
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.ruoyi.leaveuser.mapper.LeaveUserMapper">
-
- <resultMap type="LeaveUser" id="LeaveUserResult">
- <result property="id" column="id" />
- <result property="userSnum" column="user_snum" />
- <result property="userPassword" column="user_password" />
- <result property="userName" column="user_name" />
- <result property="userSex" column="user_sex" />
- <result property="userPhone" column="user_phone" />
- <result property="userCollege" column="user_college" />
- <result property="userMajor" column="user_major" />
- <result property="userClass" column="user_class" />
- <result property="userEmail" column="user_email" />
- <result property="userStatus" column="user_status" />
- <result property="userRole" column="user_role" />
- <result property="userDel" column="user_del" />
- <result property="createUser" column="create_user" />
- <result property="createTime" column="create_time" />
- <result property="updateUser" column="update_user" />
- <result property="updateTime" column="update_time" />
- <result property="remark" column="remark" />
- </resultMap>
-
- <sql id="selectLeaveUserVo">
- select id, user_snum, user_password, user_name, user_sex, user_phone, user_college, user_major, user_class, user_email, user_status, user_role, user_del, create_user, create_time, update_user, update_time, remark from leave_user
- </sql>
-
- <select id="selectLeaveUserList" parameterType="LeaveUser" resultMap="LeaveUserResult">
- <include refid="selectLeaveUserVo"/>
- <where>
- <if test="userSnum != null "> and user_snum = #{userSnum}</if>
- <if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
- <if test="userCollege != null and userCollege != ''"> and user_college = #{userCollege}</if>
- <if test="userMajor != null and userMajor != ''"> and user_major = #{userMajor}</if>
- <if test="userClass != null and userClass != ''"> and user_class = #{userClass}</if>
- <if test="userStatus != null "> and user_status = #{userStatus}</if>
- </where>
- </select>
-
- <select id="selectLeaveUserById" parameterType="Long" resultMap="LeaveUserResult">
- <include refid="selectLeaveUserVo"/>
- where id = #{id}
- </select>
-
- <select id="selectLeaveUserBySnum" parameterType="Long" resultMap="LeaveUserResult">
- <include refid="selectLeaveUserVo"/>
- where user_snum = #{userSnum}
- </select>
-
- <insert id="insertLeaveUser" parameterType="LeaveUser" useGeneratedKeys="true" keyProperty="id">
- insert into leave_user
- <trim prefix="(" suffix=")" suffixOverrides=",">
- <if test="userSnum != null">user_snum,</if>
- <if test="userPassword != null and userPassword != ''">user_password,</if>
- <if test="userName != null and userName != ''">user_name,</if>
- <if test="userSex != null">user_sex,</if>
- <if test="userPhone != null">user_phone,</if>
- <if test="userCollege != null and userCollege != ''">user_college,</if>
- <if test="userMajor != null and userMajor != ''">user_major,</if>
- <if test="userClass != null and userClass != ''">user_class,</if>
- <if test="userEmail != null">user_email,</if>
- <if test="userStatus != null">user_status,</if>
- <if test="userRole != null">user_role,</if>
- <if test="userDel != null">user_del,</if>
- <if test="createUser != null">create_user,</if>
- <if test="createTime != null">create_time,</if>
- <if test="updateUser != null">update_user,</if>
- <if test="updateTime != null">update_time,</if>
- <if test="remark != null">remark,</if>
- </trim>
- <trim prefix="values (" suffix=")" suffixOverrides=",">
- <if test="userSnum != null">#{userSnum},</if>
- <if test="userPassword != null and userPassword != ''">#{userPassword},</if>
- <if test="userName != null and userName != ''">#{userName},</if>
- <if test="userSex != null">#{userSex},</if>
- <if test="userPhone != null">#{userPhone},</if>
- <if test="userCollege != null and userCollege != ''">#{userCollege},</if>
- <if test="userMajor != null and userMajor != ''">#{userMajor},</if>
- <if test="userClass != null and userClass != ''">#{userClass},</if>
- <if test="userEmail != null">#{userEmail},</if>
- <if test="userStatus != null">#{userStatus},</if>
- <if test="userRole != null">#{userRole},</if>
- <if test="userDel != null">#{userDel},</if>
- <if test="createUser != null">#{createUser},</if>
- <if test="createTime != null">#{createTime},</if>
- <if test="updateUser != null">#{updateUser},</if>
- <if test="updateTime != null">#{updateTime},</if>
- <if test="remark != null">#{remark},</if>
- </trim>
- </insert>
-
- <update id="updateLeaveUser" parameterType="LeaveUser">
- update leave_user
- <trim prefix="SET" suffixOverrides=",">
- <if test="userSnum != null">user_snum = #{userSnum},</if>
- <if test="userPassword != null and userPassword != ''">user_password = #{userPassword},</if>
- <if test="userName != null and userName != ''">user_name = #{userName},</if>
- <if test="userSex != null">user_sex = #{userSex},</if>
- <if test="userPhone != null">user_phone = #{userPhone},</if>
- <if test="userCollege != null and userCollege != ''">user_college = #{userCollege},</if>
- <if test="userMajor != null and userMajor != ''">user_major = #{userMajor},</if>
- <if test="userClass != null and userClass != ''">user_class = #{userClass},</if>
- <if test="userEmail != null">user_email = #{userEmail},</if>
- <if test="userStatus != null">user_status = #{userStatus},</if>
- <if test="userRole != null">user_role = #{userRole},</if>
- <if test="userDel != null">user_del = #{userDel},</if>
- <if test="createUser != null">create_user = #{createUser},</if>
- <if test="createTime != null">create_time = #{createTime},</if>
- <if test="updateUser != null">update_user = #{updateUser},</if>
- <if test="updateTime != null">update_time = #{updateTime},</if>
- <if test="remark != null">remark = #{remark},</if>
- </trim>
- where id = #{id}
- </update>
-
- <delete id="deleteLeaveUserById" parameterType="Long">
- delete from leave_user where id = #{id}
- </delete>
-
- <delete id="deleteLeaveUserByIds" parameterType="String">
- delete from leave_user where id in
- <foreach item="id" collection="array" open="(" separator="," close=")">
- #{id}
- </foreach>
- </delete>
- </mapper>
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
链接:https://pan.baidu.com/s/19Sd326ptLLrrRCfUfp4jXw
提取码:6666
根据elementui的相关组件可以进行更改
下面是具体步骤:
在这里进行设置,去调节宽度
在IDE中按住 Ctrl+Shift+R (前后端都要)
然后全部替换
大家可以直接参考我的源码
在这里放入图片地址
如果想设计的更好的话,大家可以去翻阅elementui去使用更加丰富的组件
别的地方就大同小异了,几乎都是这个步骤,我就不做重复的工作了,我没有讲到的地方,就可以直接去CV源码喽。
小程序端的话如果大家会运行大家也可以去用,不太懂的话等我出教程吧。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。