大家好,欢迎来到IT知识分享网。
前言
基于Java + Spring Boot的某公司薪酬管理系统是一款专为公司打造的高效、精准且安全的薪酬管理解决方案。它充分利用Java语言的稳定性和强大功能,以及Spring Boot框架的快速开发和易于维护的特性。该系统具备完善的员工信息管理模块,可详细记录员工的个人基本信息、职位、入职时间等,为薪酬计算提供准确的数据基础。在薪酬计算方面,它能根据公司设定的薪酬规则,如基本工资、绩效奖金、加班工资、补贴等各项因素,精确计算出每位员工的应发薪酬。同时,系统支持多种薪酬发放方式的设置和管理,确保薪酬按时、准确地发放到员工账户。还具备强大的报表生成功能,可生成各类薪酬报表,如工资条、薪酬汇总表、薪酬明细报表等,方便公司管理层进行薪酬数据分析和决策。此外,系统注重数据安全和权限管理,不同角色的用户(如管理员、财务人员、普通员工等)拥有不同的操作权限,保障了薪酬数据的保密性和完整性。通过该薪酬管理系统,公司能够提高薪酬管理的效率和准确性,降低人工成本和错误率,为公司的人力资源管理和运营发展提供有力支持。
详细视频演示
请联系我获取更详细的演示视频
具体实现截图
技术栈
后端框架SpringBoot
从本世纪开始Java的开发开始采用框架的模式进行,特别是在Web开发程序中,随着互联网项目的不断壮大,传统的Web开发模式不再匹配需求。SpringBoot,是基于Spring框架的,在SSH和SSM的基础上实现了简化、分层、优化Java的开发,通过框架开发Java项目改变了原有的项目结构,项目语法更加的优雅,结构更加的清晰,代码有利于阅读和分工开发。Springboot实现了对SpringMVC的进一步实现,是一个统一的高效的框架,基于MVC的开发,通过服务层的整合分层优化代码结构,Java的一些配置文件等都进行集中的管理,统一在一个配置文件中进行配置,默认的配置不需要重复定义,以此来加快开发效率,SpringBoot也是基于Maven的,可以在Maven中集成大量的第三方插件与框架,兼容性强。SpringBoot作为Spring项目组的微服务产品,正在大规模的占领软件市场,其简化的应用开发搭建过程,使得开发人员从繁琐的配置文件中解脱出来,大量的精力投入到项目逻辑研发当中。在现代JavaWeb开发中,SpringBoot越来越受欢迎,SpringBoot从效率、速率、难易等多方面实现了均衡。
前端框架Vue
前端开发技术是现代软件发展的重点,传统的html、jsp、php等模式前端开发速度快,但是在大型项目中开发效果不好,界面显示不够智能。传统的前端开发需要对Html、CSS和脚本语言进行整合,需要学习大量的开发知识。Vue是渐进式的前端框架。Vue实现了对所有前端技术的整合,利用框架实现了许多复杂难以实现的功能。Vue的核心库只关注视图层,并且非常容易学习,容易与其它库或已有项目整合。Vue能通过其自己的库实现数据双向绑定,对后端的数据进行请求和响应。Vue与后端技术能很好的结合在一起,Vue可以调用后端的SpringBoot开发的后台接口,Vue对接口数据进行数据响应,完成系统的前后端开发。Vue开发前端可维护性和可拓展性都得到了提升,它是轻量级的,加载速度快,能轻松拓展到移动端,适配不同的界面,能开发小程序、移动端APP程序等。
MySQL数据库
核心代码
package sac.mall.controller.admin; import sac.mall.common.ServiceResultEnum; import sac.mall.entity.AdminUser; import sac.mall.service.AdminUserService; import org.springframework.stereotype.Controller; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @Controller @RequestMapping("/admin") public class AdminController {
@Resource private AdminUserService adminUserService; @GetMapping({
"/login"}) public String login() {
return "admin/login"; } @GetMapping({
"/test"}) public String test() {
return "admin/test"; } @GetMapping({
"", "/", "/index", "/index.html"}) public String index(HttpServletRequest request) {
request.setAttribute("path", "index"); request.setAttribute("categoryCount", 0); request.setAttribute("blogCount", 0); request.setAttribute("linkCount", 0); request.setAttribute("tagCount", 0); request.setAttribute("commentCount", 0); request.setAttribute("path", "index"); return "admin/index"; } @PostMapping(value = "/login") public String login(@RequestParam("userName") String userName, @RequestParam("password") String password, @RequestParam("verifyCode") String verifyCode, HttpSession session) {
if (StringUtils.isEmpty(verifyCode)) {
session.setAttribute("errorMsg", "验证码不能为空"); return "admin/login"; } if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password)) {
session.setAttribute("errorMsg", "用户名或密码不能为空"); return "admin/login"; } String kaptchaCode = session.getAttribute("verifyCode") + ""; if (StringUtils.isEmpty(kaptchaCode) || !verifyCode.equals(kaptchaCode)) {
session.setAttribute("errorMsg", "验证码错误"); return "admin/login"; } AdminUser adminUser = adminUserService.login(userName, password); if (adminUser != null) {
session.setAttribute("loginUser", adminUser.getNickName()); session.setAttribute("loginUserId", adminUser.getAdminUserId()); //session过期时间设置为7200秒 即两小时 //session.setMaxInactiveInterval(60 * 60 * 2); return "redirect:/admin/index"; } else {
session.setAttribute("errorMsg", "登陆失败,请联系作者获得测试账号"); return "admin/login"; } } @GetMapping("/profile") public String profile(HttpServletRequest request) {
Integer loginUserId = (int) request.getSession().getAttribute("loginUserId"); AdminUser adminUser = adminUserService.getUserDetailById(loginUserId); if (adminUser == null) {
return "admin/login"; } request.setAttribute("path", "profile"); request.setAttribute("loginUserName", adminUser.getLoginUserName()); request.setAttribute("nickName", adminUser.getNickName()); return "admin/profile"; } @PostMapping("/profile/password") @ResponseBody public String passwordUpdate(HttpServletRequest request, @RequestParam("originalPassword") String originalPassword, @RequestParam("newPassword") String newPassword) {
if (StringUtils.isEmpty(originalPassword) || StringUtils.isEmpty(newPassword)) {
return "参数不能为空"; } Integer loginUserId = (int) request.getSession().getAttribute("loginUserId"); if (adminUserService.updatePassword(loginUserId, originalPassword, newPassword)) {
//修改成功后清空session中的数据,前端控制跳转至登录页 request.getSession().removeAttribute("loginUserId"); request.getSession().removeAttribute("loginUser"); request.getSession().removeAttribute("errorMsg"); return ServiceResultEnum.SUCCESS.getResult(); } else {
return "修改失败"; } } @PostMapping("/profile/name") @ResponseBody public String nameUpdate(HttpServletRequest request, @RequestParam("loginUserName") String loginUserName, @RequestParam("nickName") String nickName) {
if (StringUtils.isEmpty(loginUserName) || StringUtils.isEmpty(nickName)) {
return "参数不能为空"; } Integer loginUserId = (int) request.getSession().getAttribute("loginUserId"); if (adminUserService.updateName(loginUserId, loginUserName, nickName)) {
return ServiceResultEnum.SUCCESS.getResult(); } else {
return "修改失败"; } } @GetMapping("/logout") public String logout(HttpServletRequest request) {
request.getSession().removeAttribute("loginUserId"); request.getSession().removeAttribute("loginUser"); request.getSession().removeAttribute("errorMsg"); return "admin/login"; } }
源码获取
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/134521.html