Java毕业设计项目实战篇|Java项目:企业人事系统(java+SpringBoot+Vue+ElementUI+maven+mysql)

源码获取:博客首页 "资源" 里下载!
项目介绍
人事管理系统功能包括人事通讯,员工信息,人事考评,奖惩,培训管理,薪资管理,统计分析,和系统管理六大模块,对应人事工作基本流程:新员工入职档案建立,调动,辞职,员工信息的查询及工资管理等方面.系统管理可以根据不同的角色分配菜单权限设置,不同的用户授予不同角色,对人事结构,单位结构进行整体调配设置.在线聊天可以实现操作员之间讯息的及时通讯.
项目基于MVVM的前后端分离开发模式进行开发.MVVM即模型(Model)-视图(View)-视图模型(View Model),实现了数据视图的双向绑定.相对于MVC模式和MVP来说,MVVM是一个比较新的开发架构,它是一种将MVP模式与WPF相结合应用方式发展演变而成的新型开发架.
前后端分离是指将前端和后端从之前的全部由后端负责中分离开来,不再共用一个Server,前端作为一个独立Serve存在.前后端通过接口使用HTTP协议交互,本项目使用vu实体属性outer做前端路由处理.页面跳转不在由后端处理,前后端只是数据的交互.前后端分离的好处在于降低了前后端的耦合性.当面对不同的硬件场景时,需要构建不同的界面,前后端分离之后,只需要扩展前端项目即可,不需要修改后端服务.
在动态权限处理方面,使用安全框架Spring Security,基于RBAC(Role-Based Access Control )角色的访问控制模型,由该模型主要由鉴权和授权构成,鉴权基于Servlet中Filter原理处理,授权由系统管理员操作.RBAC 的主要思想是:权限是和角色相关的,而用户则被分配相应的角色作为其成员,这样就大大简化了权限的管理 .
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7版本;
技术栈
1. 后端:Spring Boot,Spring Security, MyBatis
2. 前端:Vue, ElementUI, axios,Web Socket
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中applicationContext.xml配置文件中的数据库配置改为自己的配置;
3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean; maven install命令,配置tomcat,然后运行;
4. 运行项目,输入localhost:8080/indext.html 登录
5. 管理员用户名:admin 密码:123
【Java毕业设计项目实战篇|Java项目:企业人事系统(java+SpringBoot+Vue+ElementUI+maven+mysql)】Java毕业设计项目实战篇|Java项目:企业人事系统(java+SpringBoot+Vue+ElementUI+maven+mysql)
文章图片

Java毕业设计项目实战篇|Java项目:企业人事系统(java+SpringBoot+Vue+ElementUI+maven+mysql)
文章图片

Java毕业设计项目实战篇|Java项目:企业人事系统(java+SpringBoot+Vue+ElementUI+maven+mysql)
文章图片

Java毕业设计项目实战篇|Java项目:企业人事系统(java+SpringBoot+Vue+ElementUI+maven+mysql)
文章图片


Java毕业设计项目实战篇|Java项目:企业人事系统(java+SpringBoot+Vue+ElementUI+maven+mysql)
文章图片


Java毕业设计项目实战篇|Java项目:企业人事系统(java+SpringBoot+Vue+ElementUI+maven+mysql)
文章图片

Java毕业设计项目实战篇|Java项目:企业人事系统(java+SpringBoot+Vue+ElementUI+maven+mysql)
文章图片

Java毕业设计项目实战篇|Java项目:企业人事系统(java+SpringBoot+Vue+ElementUI+maven+mysql)
文章图片

用户管理控制层:
@Controller public class UserController { @Autowired @Qualifier("RainService") private RainService rainservice; // 如果在目录下输入为空,则跳转到指定链接 @RequestMapping(value="https://www.it610.com/user/") public ModelAndView index2(ModelAndView mv){ mv.setViewName("/user/list"); return mv; } //退出功能 @RequestMapping(value="https://www.it610.com/user/logout") public ModelAndView logout(ModelAndView mv, HttpSession session){ session.setAttribute(Constants.USER_SESSION, null); session.setAttribute("tip", null); mv.setViewName("redirect:/index"); return mv; } @RequestMapping(value="https://www.it610.com/login") public ModelAndView login(@RequestParam("loginname") String loginname, @RequestParam("password") String password,@RequestParam("tip") String tip, HttpSession session, ModelAndView mv){ // 调用业务逻辑组件判断用户是否可以登录 boolean flag = false; if("1".equals(tip)) { User user = rainservice.login(loginname, password); if(user!=null){ // 将用户保存到HttpSession当中 System.out.println("HttpSession"); session.setAttribute(Constants.USER_SESSION, user); session.setAttribute("tip", "1"); // 客户端跳转到main页面 mv.setViewName("redirect:/index"); }else{ // 设置登录失败提示信息 System.out.println("设置登录失败提示信息"); mv.addObject("message", "登录名或密码错误!请重新输入"); // 服务器内部跳转到登录页面 mv.setViewName("forward:/loginForm"); } }else { Employee user = rainservice.login2(loginname, password); if(user!=null){ // 将用户保存到HttpSession当中 System.out.println("HttpSession"); session.setAttribute(Constants.USER_SESSION, user); session.setAttribute("tip", "2"); // 客户端跳转到main页面 mv.setViewName("redirect:/indexcustomer/"); }else{ // 设置登录失败提示信息 System.out.println("设置登录失败提示信息"); mv.addObject("message", "登录名或密码错误!请重新输入"); // 服务器内部跳转到登录页面 mv.setViewName("forward:/loginForm"); }} return mv; } // 如果在目录下输入任何不存在的参数,则跳转到list @RequestMapping(value="https://www.it610.com/user/{formName}") public String index2(@PathVariable String formName){ String blank = "/user/list"; return blank; } @RequestMapping(value="https://www.it610.com/user/list",method=RequestMethod.GET) public String index(Model model,String content){ List job_list = rainservice.get_UserList(); if (content!=null){ job_list = rainservice.get_UserLikeList(content); } model.addAttribute("list",job_list); return "user/list"; } @RequestMapping(value="https://www.it610.com/user/add",method=RequestMethod.GET) public String add(Model model,Integer id){ if(id!=null){ User job = rainservice.get_UserInfo(id); model.addAttribute("job",job); } return "/user/add"; } @RequestMapping(value="https://www.it610.com/user/add",method=RequestMethod.POST) public ModelAndView add(ModelAndView mv,@ModelAttribute User notice ,Integer id){ System.out.println(id); if(id!=null){ rainservice.update_UserInfo(notice); }else{ rainservice.insert_UserInfo(notice); } mv.setViewName("redirect:/user/list"); return mv; } @RequestMapping(value="https://www.it610.com/user/delete",method=RequestMethod.GET) public void delete(Integer id){ System.out.println(id); if(id!=null){ rainservice.delete_UserInfo(id); } } //管理员自己修改密码时跳转的页面 @RequestMapping(value="https://www.it610.com/user/myupdate",method=RequestMethod.GET) public String update(Model model,HttpSession session){ User user = (User) session.getAttribute(Constants.USER_SESSION); model.addAttribute("job",user); return "/user/myupdate"; } @RequestMapping(value="https://www.it610.com/user/myupdate",method=RequestMethod.POST) public ModelAndView update(ModelAndView mv,Model model,HttpSession session,User notice){ User user = (User) session.getAttribute(Constants.USER_SESSION); //如果是自己修改自己的密码,则更新session user.setLoginname(notice.getLoginname()); user.setPassword(notice.getPassword()); user.setUsername(notice.getUsername()); rainservice.update_UserInfo(user); session.setAttribute(Constants.USER_SESSION, user); mv.setViewName("redirect:/user/myupdate"); return mv; } }

部门管理控制层:
@Controller public class DeptController { @Autowired @Qualifier("RainService") private RainService rainservice; // 如果在目录下输入为空,则跳转到指定链接 @RequestMapping(value="https://www.it610.com/dept/") public ModelAndView index2(ModelAndView mv){ mv.setViewName("dept/list"); return mv; } // 如果在目录下输入任何不存在的参数,则跳转到list @RequestMapping(value="https://www.it610.com/dept/{formName}") public String index2(@PathVariable String formName){ //return formName; String blank = "/dept/list"; return blank; } @RequestMapping(value="https://www.it610.com/dept/list",method=RequestMethod.GET) public String index(Model model,String content){ //System.out.println("4234"); List dept_list = rainservice.findAllDept(); if (content!=null){ dept_list = rainservice.findAllDept(content); }model.addAttribute("list",dept_list); //for(Dept attribute : dept_list) { //System.out.println(attribute.getName()); //} return "dept/list"; } @RequestMapping(value="https://www.it610.com/dept/add",method=RequestMethod.GET) public String add(Model model,Integer id){ //System.out.println(id); if(id!=null){ Dept dept = rainservice.get_Info(id); model.addAttribute("dept",dept); //System.out.println(dept.getName()); } return "/dept/add"; } @RequestMapping(value="https://www.it610.com/dept/add",method=RequestMethod.POST) public ModelAndView add(ModelAndView mv,@ModelAttribute Dept dept ,Integer id){ System.out.println(id); //System.out.println(dept.getId()); if(id!=null){ rainservice.update_Info(dept); System.out.println(dept.getId()); }else{ rainservice.addDept(dept); } //System.out.println(dept.getName()); mv.setViewName("redirect:/dept/list"); return mv; } @RequestMapping(value="https://www.it610.com/dept/delete",method=RequestMethod.GET) public void delete(Integer id){ System.out.println(id); if(id!=null){ rainservice.delete_Info(id); } } }

角色管理控制层:
@Controller public class EmployeeController { @Autowired @Qualifier("RainService") private RainService rainservice; // 如果在目录下输入为空,则跳转到指定链接 @RequestMapping(value="https://www.it610.com/employee/") public ModelAndView index2(ModelAndView mv){ mv.setViewName("employee/list"); return mv; } // 如果在目录下输入任何不存在的参数,则跳转到list @RequestMapping(value="https://www.it610.com/employee/{formName}") public String index2(@PathVariable String formName){ String blank = "/employee/list"; return blank; } @RequestMapping(value="https://www.it610.com/employee/list",method=RequestMethod.GET) public String index(Model model,String content){ List job_list = rainservice.get_EmployeeList(); if (content!=null){ job_list = rainservice.get_EmployeeLikeList(content); } model.addAttribute("list",job_list); return "employee/list"; } @RequestMapping(value="https://www.it610.com/employee/add",method=RequestMethod.GET) public String add(Model model,Integer id){ if(id!=null){ Employee employee = rainservice.get_EmployeeInfo(id); model.addAttribute("job",employee); } List dept_list = rainservice.findAllDept(); List job_list = rainservice.findAllJob(); model.addAttribute("job_list", job_list); model.addAttribute("dept_list",dept_list); return "/employee/add"; } @RequestMapping(value="https://www.it610.com/employee/add",method=RequestMethod.POST) public ModelAndView add(ModelAndView mv,@ModelAttribute Employee job ,Integer id){ //System.out.println(id); if(id!=null){ rainservice.update_EmployeeInfo(job); }else{ rainservice.insert_EmployeeInfo(job); } mv.setViewName("redirect:/employee/list"); return mv; } @RequestMapping(value="https://www.it610.com/employee/delete",method=RequestMethod.GET) public void delete(Integer id){ //System.out.println(id); if(id!=null){ rainservice.delete_EmployeeInfo(id); } } }

源码获取:博客首页 "资源" 里下载!

    推荐阅读