• SpringBoot+Vue实现前后端分离的企业人事管理系统


    文末获取源码

    开发语言: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培训信息管理模块

    4.4部门管理模块 

    4.5离职信息管理模块 

    五、员工功能模块 

    5.1考勤信息管理模块 

    5.2薪资信息管理模块 

    六、部分核心代码 

    6.1员工管理的逻辑代码 

    6.2考勤信息界面逻辑代码 

    6.3合同信息管理界面逻辑代码

    6.4薪资信息管理界面关键代码

    6.5用户登录的逻辑代码


    一、前言介绍 

    企业人事管理系统主要功能模块包括员工管理、考勤管理、工资管理、离职管理、培训管理等,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用Springboot框架、B/S架构进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对企业人事管理系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现企业人事管理系统的部署与运行。

    二、功能需求分析

    企业人事管理系统的功能主要分为前台用户根据自己的需求进行注册登录:培训信息、合同信息、考勤信息、薪资信息、离职信息、奖罚信息查询操作。后台系统管理员主要对注册用户,员工管理,薪资管理,考勤管理,奖惩管理,离职管理等。 

    2.1前台用户功能 

    注册登录:用户填写个人信息,并验证手机号码进行账户注册,注册成功后方可登录系统。

    考勤信息:员工可以在线上查看日常考勤信息。

    薪资信息:员工的薪资发放明细。

    培训信息:查看培训安排信息等。

    企业资讯:可以进行企业资讯浏览。

    个人信息:用户可以修改个人信息。

    2.2后台管理员功能

    修改密码:管理员可以随时修改自己进入系统的登录密码,以保证系统的安全性。

    员工管理:对企业员工信息进行维护管理等。

    部门管理:对部门信息进行维护,添加、删除、修改信息。

    考勤信息管理:对员工考勤数据项进行维护管理。

    奖惩信息管理:对员工奖惩信息项进行维护管理。

    培训信息管理:对员工培训信息进行维护管理。

    企业资讯进行发布。

    三、前台员工功能

    3.1前台登录模块

    3.2企业资讯模块

    3.3培训信息详细模块

    3.4个人信息模块 

     

    四、管理员功能模块

    4.1员工管理模块

    4.2企业资讯管理模块

    4.3培训信息管理模块

    4.4部门管理模块 

    4.5离职信息管理模块 

    五、员工功能模块 

    5.1考勤信息管理模块 

    5.2薪资信息管理模块 

    六、部分核心代码 

    6.1员工管理的逻辑代码 

    1. <%
    2. String lb=request.getParameter("lb");
    3. HashMap ext = new HashMap();
    4. new CommDAO().insert(request,response,"xinwentongzhi",ext,true,false,"xinwentongzhi_add.jsp?lb="+lb);
    5. %>

    6.2考勤信息界面逻辑代码 

    1. <mapper namespace="com.project.demo.dao.base.BaseMapper">
    2. <select id="selectBaseList" resultType="java.util.LinkedHashMap">
    3. ${select}
    4. </select>
    5. <select id="selectBaseCount" resultType="Integer">
    6. ${count}
    7. </select>
    8. <select id="selectBaseOne" resultType="Object">
    9. ${select}
    10. </select>
    11. <update id="updateBaseSql">
    12. ${sql}
    13. </update>
    14. <delete id="deleteBaseSql">
    15. ${sql}
    16. </delete>
    17. </mapper>

    6.3合同信息管理界面逻辑代码

    1. @RequestMapping("/get_list")
    2. public Map<String, Object> getList(HttpServletRequest request) {
    3. Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
    4. return success(map);
    5. }

    6.4薪资信息管理界面关键代码

    1. @RequestMapping("/get_obj")
    2. public Map<String, Object> obj(HttpServletRequest request) {
    3. List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
    4. if (resultList.size() > 0) {
    5. JSONObject jsonObject = new JSONObject();
    6. jsonObject.put("obj",resultList.get(0));
    7. return success(jsonObject);
    8. } else {
    9. return success(null);
    10. }
    11. }

    6.5用户登录的逻辑代码

    1. * 登录
    2. * @param data
    3. * @param httpServletRequest
    4. * @return
    5. */
    6. @PostMapping("login")
    7. public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
    8. log.info("[执行登录接口]");
    9. String username = data.get("username");
    10. String email = data.get("email");
    11. String phone = data.get("phone");
    12. String password = data.get("password");
    13. List resultList = null;
    14. QueryWrapper wrapper = new QueryWrapper<User>();
    15. Map<String, String> map = new HashMap<>();
    16. if(username != null && "".equals(username) == false){
    17. map.put("username", username);
    18. resultList = service.selectBaseList(service.select(map, new HashMap<>()));
    19. }
    20. else if(email != null && "".equals(email) == false){
    21. map.put("email", email);
    22. resultList = service.selectBaseList(service.select(map, new HashMap<>()));
    23. }
    24. else if(phone != null && "".equals(phone) == false){
    25. map.put("phone", phone);
    26. resultList = service.selectBaseList(service.select(map, new HashMap<>()));
    27. }else{
    28. return error(30000, "账号或密码不能为空");
    29. }
    30. if (resultList == null || password == null) {
    31. return error(30000, "账号或密码不能为空");
    32. }
    33. //判断是否有这个用户
    34. if (resultList.size()<=0){
    35. return error(30000,"用户不存在");
    36. }
    37. User byUsername = (User) resultList.get(0);
    38. Map<String, String> groupMap = new HashMap<>();
    39. groupMap.put("name",byUsername.getUserGroup());
    40. List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
    41. if (groupList.size()<1){
    42. return error(30000,"用户组不存在");
    43. }
    44. UserGroup userGroup = (UserGroup) groupList.get(0);
    45. //查询用户审核状态
    46. if (!StringUtils.isEmpty(userGroup.getSourceTable())){
    47. String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
    48. if (res==null){
    49. return error(30000,"用户不存在");
    50. }
    51. if (!res.equals("已通过")){
    52. return error(30000,"该用户审核未通过");
    53. }
    54. }
    55. //查询用户状态
    56. if (byUsername.getState()!=1){
    57. return error(30000,"用户非可用状态,不能登录");
    58. }
    59. String md5password = service.encryption(password);
    60. if (byUsername.getPassword().equals(md5password)) {
    61. // 存储Token到数据库
    62. AccessToken accessToken = new AccessToken();
    63. accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
    64. accessToken.setUser_id(byUsername.getUserId());
    65. tokenService.save(accessToken);
    66. // 返回用户信息
    67. JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
    68. user.put("token", accessToken.getToken());
    69. JSONObject ret = new JSONObject();
    70. ret.put("obj",user);
    71. return success(ret);
    72. } else {
    73. return error(30000, "账号或密码不正确");
    74. }
    75. }
    76. public String select(Map<String,String> query,Map<String,String> config){
    77. StringBuffer sql = new StringBuffer("select ");
    78. sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
    79. sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
    80. if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
    81. sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
    82. }
    83. if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
    84. sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
    85. }
    86. if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
    87. int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
    88. int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
    89. sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
    90. }
    91. log.info("[{}] - 查询操作,sql: {}",table,sql);
    92. return sql.toString();
    93. }
    94. public List selectBaseList(String select) {
    95. List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
    96. List<E> list = new ArrayList<>();
    97. for (Map<String,Object> map:mapList) {
    98. list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
    99. }
    100. return list;
    101. }
  • 相关阅读:
    Maven compile时报错 系统资源不足,出现OOM:GC overhead limit exceeded
    【毕业设计】基于情感分析的网络舆情热点评估系统 - 大数据 python可视化 数据分析
    Android 从带有html标签的String字符串中提取网页链接url
    20230830工作心得:巧用标记位和For循环遍历
    【从头构筑C#知识体系】2.1 泛型
    生产者消费者模型(linux下c语言实现)
    git初级
    深入理解HTTP的基础知识:请求-响应过程解析
    接口基础知识1:认识接口
    linux环境下安装运行环境JDK、Docker、Maven、MySQL、RabbitMQ、Redis、nacos、Elasticsearch
  • 原文地址:https://blog.csdn.net/m0_49113107/article/details/127775238