SpringBoot+Vue项目部门人事管理系统的设计与实现

news2024/9/25 7:25:37

文末获取源码

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue.js 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:Java jdk8

Maven:apache-maven 3.8.1-bin

目录

一、前言介绍

二、系统功能分析

2.1普通用户管理模块

2.2管理员管理模块

三、管理员功能模块

3.1系统登录页面

3.2管理员首页页面

3.3用户管理模块

3.4工资条管理模块

四、部门经理功能模块

4.1员工档案管理模块 

4.2迟到人员登记管理模块

4.3迟到警示管理模块 

五、用户功能模块

5.1上班打卡页面 

5.2工资条页面 

5.3通知栏页面 

六、部分核心代码 

6.1工资条管理界面关键代码 

6.2用户管理关键代码

6.3更多管理关键代码


一、前言介绍

本设计主要实现集人性化、高效率、便捷等优点于一身的海纳部门人事管理系统,完成用户管理、员工档案信息、上班打卡、迟到人员登记、迟到警示、工资条、通知栏等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。海纳部门人事管理系统使用Java语言,采用基于 MVC模式的springboot技术进行开发,使用 idea编译器编写,数据方面主要采用的是微软的MySQL关系型数据库来作为数据存储媒介,配合vue技术完成系统的开发。

二、系统功能分析

按照海纳部门人事管理系统的角色,我划分为了普通用户管理模块、部门经理管理模块和管理员管理模块这两大部分。

2.1普通用户管理模块

(1)用户注册登录:用户注册为用户并登录海纳部门人事管理系统;用户对个人信息的增删改查,比如个人资料,密码修改。

(2)查看海纳部门人事管理系统的首页信息:海纳部门人事管理系统的首页信息包含了首页、上班打卡、迟到警示、工资条、通知栏等。

(3)通知公告:用户在公告这一菜单下对用户提交的查看、同时也可以发布、评论。

(4)上班打卡:用户进行上班打卡的信息查询,查看管理者发布的上班打卡信息。

(5)工资条:用户进行工资条查询,查看管理者发布的工资条信息。

2.2管理员管理模块

(1)用户管理:管理员可以对注册过的用户信息、部门经理进行管控,也可以对管理员信息进行管控。

(4)更多管理:在“更多管理”这一菜单下,可以对管理人员用户操作的员工档案信息、上班打卡、迟到人员登记、迟到警示、工资条、通知栏进行管控。

(5)员工档案管理:管理员可以对海纳部门人事管理系统中现有的员工档案信息进行增删改查。

(6)上班打卡管理:管理员可以对海纳部门人事管理系统中现有的上班打卡进行增删改查。

(7)迟到人员登记管理:管理员可以对海纳部门人事管理系统中现有的迟到人员登记进行增删改查。

(8)工资条管理:管理员对用户提交的工资条进行管控。

三、管理员功能模块

3.1系统登录页面

3.2管理员首页页面

3.3用户管理模块

3.4工资条管理模块

四、部门经理功能模块

4.1员工档案管理模块 

4.2迟到人员登记管理模块

4.3迟到警示管理模块 

五、用户功能模块

5.1上班打卡页面 

5.2工资条页面 

5.3通知栏页面 

六、部分核心代码 

6.1工资条管理界面关键代码 

 @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

}

    public void insert(Map<String,Object> body){

        StringBuffer sql = new StringBuffer("INSERT INTO ");

        sql.append("`").append(table).append("`").append(" (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(") VALUES (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("'").append(entry.getValue()).append("'").append(",");

            }else {

                sql.append(entry.getValue()).append(",");

            }

        }

        sql.deleteCharAt(sql.length() - 1);

        sql.append(")");

        log.info("[{}] - 插入操作:{}",table,sql);

        Query query = runCountSql(sql.toString());

        query.executeUpdate();

    }

6.2用户管理关键代码

public String encryption(String plainText) {

        String re_md5 = new String();

        try {

            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(plainText.getBytes());

            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");

            for (int offset = 0; offset < b.length; offset++) {

                i = b[offset];

                if (i < 0)

                    i += 256;

                if (i < 16)

                    buf.append("0");

                buf.append(Integer.toHexString(i));

            }

            re_md5 = buf.toString();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return re_md5;

    }

6.3更多管理关键代码

@RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

}

    @Transactional

    public void delete(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

        sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

        log.info("[{}] - 删除操作:{}",table,sql);

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate();

    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/97847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vit 中的 Token 改进版本:Token Mreging: Your Vit But Faster 论文阅读笔记

Vit 中的 Token 改进版本&#xff1a;Token Mreging: Your Vit But Faster 论文阅读笔记一、Abstract二、引言三、相关工作3.1 有效的 Transformer3.2 Token 的减少3.3 Token 的联合四、Token 融合4.1 策略4.2 Token 相似性4.3 双边软匹配4.4 追踪 Token 的尺寸4.5 采用融合操作…

[附源码]计算机毕业设计Python餐馆点餐管理系统(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

非零基础自学Golang 第11章 文件操作 11.3 处理JSON文件 11.3.2 解码JSON 11.4 小结

非零基础自学Golang 文章目录非零基础自学Golang第11章 文件操作11.3 处理JSON文件11.3.2 解码JSON11.4 小结第11章 文件操作 11.3 处理JSON文件 11.3.2 解码JSON 解码JSON会使用到Unmarshal接口&#xff0c;也就是Marshal的反操作。 func Unmarshal(data []byte, v interf…

30岁零基础没学历学Python怎么样?30岁学习Python晚吗?

30岁零基础没学历学Python怎么样&#xff1f;30岁学习Python晚吗&#xff1f;任何时候开始都不晚。30岁开始学习Python听起来年纪有点大&#xff0c;大家认为编程上了年纪学习编程语言是一个劣势。想在三十岁的时候通过学习Python来谋求一份IT程序员工作&#xff0c;则需要有一…

SQL笔记

SQL笔记 基本概述 数据库&#xff1a;保存有组织的数据的容器&#xff08;通常是一个文件或一组文件&#xff09;。容易混淆&#xff1a;人们通常用数据库这个术语来代表他们使用的数据库软件&#xff0c;这是不正确的&#xff0c;也因此产生了许多混淆。确切地说&#xff0c…

抖音关键词排名优化技巧,手把手教你怎样优化抖音关键词

云南百收科技有限公司 1、标题中出现关键词是关键词排名靠前的基础。 一篇文章中标题中一定要出现你想做的关键词&#xff0c;因为搜索引擎是是匹配标题的&#xff0c;如果你标题中没有关键词&#xff0c;是不会有排名的。而且还有一点&#xff0c;关键词的位置要靠近标题最前面…

python+pyqt5+mysql设计图书管理系统(1)- 数据库

一、概述 前面学习了python,pyqt和mysql的一些基础知识,接下来运用学习的东西进行实操制作一个项目--图书管理系统。 项目介绍:图书管理系统对于我们的图书管理来说非常重要,管理图书者可以通过系统有效的管理书籍,用户可以通过系统快速有效的找到自己需要的书籍。相比人工…

【目标跟踪】Kalman滤波目标跟踪【含Matlab源码 388期】

⛄一、获取代码方式 获取代码方式1&#xff1a; 通过订阅紫极神光博客付费专栏&#xff0c;凭支付凭证&#xff0c;私信博主&#xff0c;可获得此代码。 获取代码方式2&#xff1a; 完整代码已上传我的资源&#xff1a;【目标跟踪】基于matlab Kalman滤波目标跟踪【含Matlab源…

聊一聊Unity的Test Framework应该怎么用

其实 Unity 很早就出了这个包&#xff0c;不过感觉基本上没什么人用&#xff0c;这么好的东西&#xff0c;本着让所有人都能了解的态度&#xff0c;今天就来聊聊它应该怎么使用。 第1步先安装它&#xff0c;或者给它升级到最新。 第2步打开工具的主窗口 支持分别在 PlayMode 或…

unity 2022大三期末大作业 3D立体魔方游戏(附下载链接)

unity 2022大三期末大作业 3D立体魔方游戏 这是本人的一个unity期末大作业&#xff0c;实现比较简单&#xff0c;unity版本是2018 的&#xff0c;导入即可运行无错误 下载链接 游戏可以一键打乱魔方的顺序&#xff0c;也可以一键还原等等功能&#xff0c;实现了魔方的使用功能…

手把手教你,从零开始搭建Spring Cloud Alibaba这份笔记太牛了

Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案&#xff0c;是阿里巴巴开源中间件与 Spring Cloud 体系的融合。 Springcloud 和 Srpingcloud Alibaba 区别&#xff1f; SpringCloud&#xff1a; 部分组件停止维护和更新&#xff0c;给开发带来不便;SpringCl…

[附源码]Nodejs计算机毕业设计基于推荐算法的鞋服代购平台Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

【代码规范】lombok注解使用

【代码规范】lombok注解使用一、前言二、常用注解三、使用示例一、前言 上一篇文章&#xff08;【JVM知识】插入式注解处理器实现java编程规范检测&#xff09;总结了一下插入式注解&#xff0c;我们知道lombok插件是通过插入式注解处理器实现的&#xff0c;并且lombok插件在工…

版本控制器Git的使用。

目录 一、分布式版本工具 1、基本介绍 2、Git 安装配置 3、本地仓库和基础指令 二、分支 1、分支概述 2、解决冲突 三、Git远程仓库 1、常用的托管服务[远程仓库] 2、配置SSH公钥 3、操作远程仓库 4、解决合并冲突 三、IDEA中使用Git 1、在Idea中配置Git 2、ID…

什么是用户标签体系?

一.概况 标签&#xff1a;对某一类特定群体或对象的某项特征进行抽象分类和概括 标签体系&#xff1a;根据用户的“基本属性”&#xff0c;“行为特征”&#xff0c;“社交网络”&#xff0c;“心理特征” 和 “兴趣爱好”等&#xff0c;把个性化的用户&#xff0c;打上标签化…

入门:认识容器镜像

要启动容器最关键的就是镜像&#xff0c;我们来看看镜像相关的介绍。 初识容器镜像 首先我们来了解一下镜像的相关操作&#xff0c;比如现在我们希望把某个镜像从仓库下载到本地&#xff0c;这里使用官方的hello-world镜像&#xff1a; docker pull hello-world 只需要输入pull…

【CANN训练营第三季】2022年度第三季进阶班之AI目标属性编辑应用-数据预处理

了解华为的生态已经两年有余&#xff0c;用CANN做过两个模型的转换&#xff0c;跑过推理测试&#xff0c;但是感觉还是对CANN框架一知半解&#xff0c;恰巧看到2022年度第三季度训练营开班&#xff0c;赶紧报名参与上车。 本次课程是进阶版第一节正式课&#xff0c;主要讲解的…

零基础自学Python要多久才能学会?

零基础自学Python要多久&#xff1f;学习Python开发的周期因人而异&#xff0c;由于基础、学习效率不同有的人学习进度快&#xff0c;需要六个月到一年不等&#xff0c;有的人自律性较差可能需要更久的时间才能学会&#xff0c;今天小编分享下6个月学习周期内的自学Python的学习…

数据结构---计数排序

计数排序计数排序JAVA实现计数排序优化存在的问题1&#xff1a;存在的问题2JAVA实现局限性冒泡排序&#xff0c;还是快速排序&#xff0c;都是基于元素之间的比较来进行排序 有一些特殊的排序并不基于元素比较&#xff0c;如计数排序、桶排序、基数排序。 计数排序&#xff1a…

0. Arthas的基本安装和使用

我们慢慢寻找&#xff0c;直到找到我们的方向。 选择了方向&#xff0c;便一往无前。 我们爱那少年&#xff0c;一如爱我们自己。 Arthas 的简介 Arthas 的官方文档: https://arthas.aliyun.com/doc/ Arthas的官方命令文档: https://arthas.aliyun.com/doc/advanced-use.html …