基于javaweb的企业员工绩效工资管理系统(java+springboot+freemarker+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+springboot的企业员工绩效工资管理系统(java+SpringBoot+FreeMarker+Mysql)

超级管理员等角色,除基础脚手架外,实现的功能有:

超级管理员:系统管理、用户管理(冻结等)、职称管理、部门管理(工资项)、岗位管理(考核指标管理,可指定部门)、工龄管理等。

普通员工:考勤管理(查看自己的考勤记录)、工资管理(查看自己的工资详情)。

HR人事:员工管理、考勤管理、工资管理。

部门经理:部门绩效考核管理、年度考核管理、考核指标管理。

运行环境:windows/Linux均可、jdk1.8、mysql5.7、idea/eclipse均可。

后台用户管理控制器:

/**

  • 后台用户管理控制器

  • @author yy

*/

@RequestMapping(“/admin/user”)

@Controller

public class UserController {

@Autowired

private UserService userService;

@Autowired

private RoleService roleService;

@Autowired

private OperaterLogService operaterLogService;

/**

  • 用户列表页面

  • @param model

  • @param user

  • @param pageBean

  • @return

*/

@RequestMapping(value=“/list”)

public String list(Model model,User user,PageBean pageBean){

model.addAttribute(“title”, “用户列表”);

model.addAttribute(“username”, user.getUsername());

model.addAttribute(“pageBean”, userService.findList(user, pageBean));

return “admin/user/list”;

/**

  • 新增用户页面

  • @param model

  • @return

*/

@RequestMapping(value=“/add”,method=RequestMethod.GET)

public String add(Model model){

model.addAttribute(“roles”, roleService.findAll());

return “admin/user/add”;

/**

  • 用户添加表单提交处理

  • @param user

  • @return

*/

@RequestMapping(value=“/add”,method=RequestMethod.POST)

@ResponseBody

public Result add(User user){

//用统一验证实体方法验证是否合法

CodeMsg validate = ValidateEntityUtil.validate(user);

if(validate.getCode() != CodeMsg.SUCCESS.getCode()){

return Result.error(validate);

if(user.getRole() == null || user.getRole().getId() == null){

return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY);

//判断用户名是否存在

if(userService.isExistUsername(user.getUsername(), 0l)){

return Result.error(CodeMsg.ADMIN_USERNAME_EXIST);

//到这说明一切符合条件,进行数据库新增

if(userService.save(user) == null){

return Result.error(CodeMsg.ADMIN_USE_ADD_ERROR);

operaterLogService.add(“添加用户,用户名:” + user.getUsername());

return Result.success(true);

/**

  • 用户编辑页面

  • @param model

  • @return

*/

@RequestMapping(value=“/edit”,method=RequestMethod.GET)

public String edit(Model model,@RequestParam(name=“id”,required=true)Long id){

model.addAttribute(“roles”, roleService.findAll());

model.addAttribute(“user”, userService.find(id));

return “admin/user/edit”;

/**

  • 编辑用户信息表单提交处理

  • @param user

  • @return

*/

@RequestMapping(value=“/edit”,method=RequestMethod.POST)

@ResponseBody

public Result edit(User user){

//用统一验证实体方法验证是否合法

CodeMsg validate = ValidateEntityUtil.validate(user);

if(validate.getCode() != CodeMsg.SUCCESS.getCode()){

return Result.error(validate);

if(user.getRole() == null || user.getRole().getId() == null){

return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY);

if(user.getId() == null || user.getId().longValue() <= 0){

return Result.error(CodeMsg.ADMIN_USE_NO_EXIST);

if(userService.isExistUsername(user.getUsername(), user.getId())){

return Result.error(CodeMsg.ADMIN_USERNAME_EXIST);

//到这说明一切符合条件,进行数据库保存

User findById = userService.find(user.getId());

//讲提交的用户信息指定字段复制到已存在的user对象中,该方法会覆盖新字段内容

BeanUtils.copyProperties(user, findById, “id”,“createTime”,“updateTime”);

if(userService.save(findById) == null){

return Result.error(CodeMsg.ADMIN_USE_EDIT_ERROR);

operaterLogService.add(“编辑用户,用户名:” + user.getUsername());

return Result.success(true);

/**

  • 删除用户

  • @param id

  • @return

*/

@RequestMapping(value=“/delete”,method=RequestMethod.POST)

@ResponseBody

public Result delete(@RequestParam(name=“id”,required=true)Long id){

try {

userService.delete(id);

} catch (Exception e) {

return Result.error(CodeMsg.ADMIN_USE_DELETE_ERROR);

operaterLogService.add(“删除用户,用户ID:” + id);

return Result.success(true);

后台工龄管理Controller:

/**

  • 后台工龄管理Controller

*/

@Controller

@RequestMapping(“/admin/work_years”)

public class WorkingYearsController {

@Autowired

private WorkingYearsService workingYearsService;

@Autowired

private OperaterLogService operaterLogService;

/**

  • 分页查询工龄列表

  • @param model

  • @param pageBean

  • @param workingYears

  • @return

*/

@RequestMapping(“/list”)

public String list(Model model, PageBean pageBean, WorkingYears workingYears){

model.addAttribute(“title”,“工龄列表”);

model.addAttribute(“years”,workingYears.getYears());

model.addAttribute(“pageBean”,workingYearsService.findList(workingYears, pageBean));

return “/admin/working_years/list”;

/**

  • 添加页面

  • @return

*/

@RequestMapping(“/add”)

public String add(){

return “/admin/working_years/add”;

/**

  • 工龄添加提交处理

  • @param workingYears

  • @return

*/

@RequestMapping(value = “/add”,method = RequestMethod.POST)

@ResponseBody

public Result add(WorkingYears workingYears){

//用统一验证实体方法验证是否合法

CodeMsg validate = ValidateEntityUtil.validate(workingYears);

if(validate.getCode() != CodeMsg.SUCCESS.getCode()){

return Result.error(validate);

if(workingYearsService.findByYears(workingYears.getYears())!=null){

return Result.error(CodeMsg.ADMIN_WORKING_YEARS_EXIST_ERROR);

if(workingYearsService.save(workingYears) == null){

return Result.error(CodeMsg.ADMIN_WORKING_YEARS_ADD_ERROR);

operaterLogService.add(“添加工龄,工龄补贴为:” + workingYears.getSubsidy());

return Result.success(true);

/**

  • 编辑页面

  • @param model

  • @param id

  • @return

*/

@RequestMapping(“/edit”)

public String edit(Model model,@RequestParam(name=“id”,required=true)Long id){

model.addAttribute(“workYears”,workingYearsService.find(id));

return “/admin/working_years/edit”;

/**

  • 编辑表单提交处理

  • @param workingYears

  • @return

*/

@RequestMapping(value = “/edit”,method = RequestMethod.POST)

@ResponseBody

public Result edit(WorkingYears workingYears){

//用统一验证实体方法验证是否合法

CodeMsg validate = ValidateEntityUtil.validate(workingYears);

if(validate.getCode() != CodeMsg.SUCCESS.getCode()){

return Result.error(validate);

if(workingYearsService.isExistYear(workingYears.getYears(),workingYears.getId())){

return Result.error(CodeMsg.ADMIN_WORKING_YEARS_EXIST_ERROR);

//到这说明一切符合条件,进行数据库保存

WorkingYears findById = workingYearsService.find(workingYears.getId());

//讲提交的用户信息指定字段复制到已存在的department对象中,该方法会覆盖新字段内容

BeanUtils.copyProperties(workingYears, findById, “id”,“createTime”,“updateTime”);

if(workingYearsService.save(findById) == null){

return Result.error(CodeMsg.ADMIN_WORKING_YEARS_EDIT_ERROR);

operaterLogService.add(“编辑工龄,工龄补贴为:” + workingYears.getSubsidy());

return Result.success(true);

/**

  • 工龄删除操作

  • @param id

  • @return

*/

@RequestMapping(value = “delete”,method = RequestMethod.POST)

@ResponseBody

public Result delete(@RequestParam(name=“id”,required=true)Long id){

try{

workingYearsService.delete(id);

}catch (Exception e){

return Result.error(CodeMsg.ADMIN_WORKING_YEARS_DELETE_ERROR);

operaterLogService.add(“删除工龄补贴,工龄ID:” + id);

return Result.success(true);

后台角色管理控制器:

/**

  • 后台角色管理控制器

  • @author yy

*/

@RequestMapping(“/admin/role”)

@Controller

public class RoleController {

private Logger log = LoggerFactory.getLogger(RoleController.class);

@Autowired

private MenuService menuService;

@Autowired

private OperaterLogService operaterLogService;

@Autowired

private RoleService roleService;

/**

  • 分页搜索角色列表

  • @param model

  • @param role

  • @param pageBean

  • @return

*/

@RequestMapping(value=“/list”)

public String list(Model model,Role role,PageBean pageBean){

model.addAttribute(“title”, “角色列表”);

model.addAttribute(“name”, role.getName());

model.addAttribute(“pageBean”, roleService.findByName(role, pageBean));

return “admin/role/list”;

/**

  • 角色添加页面

  • @param model

  • @return

*/

@RequestMapping(value=“/add”,method=RequestMethod.GET)

public String add(Model model){

List

findAll = menuService.findAll();

model.addAttribute(“topMenus”,MenuUtil.getTopMenus(findAll));

model.addAttribute(“secondMenus”,MenuUtil.getSecondMenus(findAll));

model.addAttribute(“thirdMenus”,MenuUtil.getThirdMenus(findAll));

return “admin/role/add”;

/**

  • 角色添加表单提交处理

  • @param role

  • @return

*/

@RequestMapping(value=“/add”,method=RequestMethod.POST)

@ResponseBody

public Result add(Role role){

//用统一验证实体方法验证是否合法

CodeMsg validate = ValidateEntityUtil.validate(role);

if(validate.getCode() != CodeMsg.SUCCESS.getCode()){

return Result.error(validate);

if(roleService.save(role) == null){

return Result.error(CodeMsg.ADMIN_ROLE_ADD_ERROR);

log.info(“添加角色【”+role+“】”);

operaterLogService.add(“添加角色【”+role.getName()+“】”);

return Result.success(true);

/**

  • 角色编辑页面

  • @param id

  • @param model

  • @return

*/

@RequestMapping(value=“/edit”,method=RequestMethod.GET)

public String edit(@RequestParam(name=“id”,required=true)Long id,Model model){

List

findAll = menuService.findAll();

model.addAttribute(“topMenus”,MenuUtil.getTopMenus(findAll));

model.addAttribute(“secondMenus”,MenuUtil.getSecondMenus(findAll));

model.addAttribute(“thirdMenus”,MenuUtil.getThirdMenus(findAll));

Role role = roleService.find(id);

model.addAttribute(“role”, role);

model.addAttribute(“authorities”,JSONArray.toJSON(role.getAuthorities()).toString());

return “admin/role/edit”;

/**

  • 角色修改表单提交处理

  • @param request

  • @param role

  • @return

*/

@RequestMapping(value=“/edit”,method=RequestMethod.POST)

@ResponseBody

public Result edit(Role role){

//用统一验证实体方法验证是否合法

CodeMsg validate = ValidateEntityUtil.validate(role);

if(validate.getCode() != CodeMsg.SUCCESS.getCode()){

return Result.error(validate);

Role existRole = roleService.find(role.getId());

if(existRole == null){

return Result.error(CodeMsg.ADMIN_ROLE_NO_EXIST);

existRole.setName(role.getName());

existRole.setRemark(role.getRemark());

existRole.setStatus(role.getStatus());

existRole.setAuthorities(role.getAuthorities());

if(roleService.save(existRole) == null){

return Result.error(CodeMsg.ADMIN_ROLE_EDIT_ERROR);

log.info(“编辑角色【”+role+“】”);

operaterLogService.add(“编辑角色【”+role.getName()+“】”);

return Result.success(true);

/**

  • 删除角色

  • @param request

  • @param id

  • @return

*/

@RequestMapping(value=“delete”,method=RequestMethod.POST)

@ResponseBody

public Result delete(@RequestParam(name=“id”,required=true)Long id){

try {

roleService.delete(id);

} catch (Exception e) {

// TODO: handle exception

return Result.error(CodeMsg.ADMIN_ROLE_DELETE_ERROR);

log.info(“编辑角色ID【”+id+“】”);

operaterLogService.add(“删除角色ID【”+id+“】”);

return Result.success(true);


基于javaweb的企业员工绩效工资管理系统(java+springboot+freemarker+mysql)相关推荐

  1. Java项目:企业员工绩效工资管理系统(java+SpringBoot+FreeMarker+Mysql)

    源码获取:博客首页 "资源" 里下载! 超级管理员等角色,除基础脚手架外,实现的功能有: 超级管理员:系统管理.用户管理(冻结等).职称管理.部门管理(工资项).岗位管理(考核指标 ...

  2. 基于javaweb的医院分诊挂号住院管理系统(java+springboot+freemarker+mysql)

    基于javaweb的医院分诊挂号住院管理系统(java+springboot+freemarker+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/mye ...

  3. 基于javaweb+springboot的医院分诊挂号住院管理系统(java+SpringBoot+FreeMarker+Mysql)

    基于javaweb+springboot的医院分诊挂号住院管理系统(java+SpringBoot+FreeMarker+Mysql) 主要实现了从挂号预约到分诊住院出诊等一些列医院基本操作流程的全部 ...

  4. 基于javaweb的课程信息管理系统(java+springboot+freemarker+mysql)

    基于javaweb的课程信息管理系统(java+springboot+freemarker+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclip ...

  5. 基于javaweb的电影售票系统设计和实现(java+springboot+ssm+mysql+jsp)

    基于javaweb的电影售票系统设计和实现(java+springboot+ssm+mysql+jsp) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclip ...

  6. Springboot+Mysql企业员工绩效工资管理系统

    此篇发布的是由[猿来入此]的优秀学员独立做的一个基于springboot脚手架的员工绩效工资考核管理系统 ​ 主要实现了企业员工绩效工资管理基本操作流程的全部功能,系统分HR人事.员工.部门经理.超级 ...

  7. Java项目:医院分诊挂号住院管理系统(java+SpringBoot+FreeMarker+Mysql)

    源码获取:博客首页 "资源" 里下载! 主要实现了从挂号预约到分诊住院出诊等一些列医院基本操作流程的全部功能,系统分医生.患者.管理员三个角色,除基础脚手架外,实现的功能有: 管理 ...

  8. Java项目:宿舍寝室维修上报管理系统(java+SpringBoot+FreeMarker+Mysql)

    源码获取:博客首页 "资源" 里下载! 管理员:校园管理(楼栋管理.宿舍管理).师生管理(学生管理.辅导员管理).维修管理(维修工管理.维修进度管理).阅览室管理(座位生成等).学 ...

  9. 基于javaweb的精美物流管理系统(java+springboot+vue+mysql)

    基于javaweb的精美物流管理系统(java+springboot+vue+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:eclipse/idea/ ...

  10. 基于javaweb的超市进销存管理系统(java+ssm+jsp+bootstrap+jquery+mysql)

    基于javaweb的超市进销存管理系统(java+ssm+jsp+bootstrap+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...

最新文章

  1. markdown编辑器语法——背景色
  2. JS类型判断、对象克隆、数组克隆
  3. python3 读取txt替换、n_从Python2迁移到Python3实战(一) pyupgrade
  4. php报错:找不到php_pdo_oci.dll模块
  5. OpenCV Mat数据类型像素操作
  6. ajax post提交特殊字符,如何利用jQuery post传递含特殊字符的数据
  7. JZYZOJ1140 飞船控制站
  8. (20120731)Android中的各种对话框总结(dialog)
  9. AOP拦截+权限验证+返回默认接口对象
  10. 【java笔记】静态static关键字
  11. 拓端tecdat|R语言MCMC的rstan贝叶斯回归模型和标准线性回归模型比较
  12. 前后端分离登录验证功能实现案例
  13. MATLAB 2020b版本发布,下载试用版并上手使用记录。
  14. 前端架构设计第四课 Babel构建公共库实战
  15. js实现中文简体繁体转换
  16. w ndows 10关机快捷键,windows关机快捷键winuu
  17. 代理服务器proxy server
  18. 深大uooc学术道德与学术规范教育第一章
  19. thinkadmin默认ckeditor富文本配置修改
  20. [渝粤教育] 首都师范大学 走进舞蹈艺术 参考 资料

热门文章

  1. C程序设计语言思维导图
  2. Verilog中reg和wire的区别
  3. 爬虫爬取知乎评论并利用flask框架做简单的可视化
  4. 四月一个晴朗的早晨,遇见一个百分之百的女孩
  5. DES算法的介绍和实现(转的,其实3des一样的原理就是加密解密加密而已)
  6. sqoop connect oracle,Sqoop从Oracle导出数据出错:The Network Adapter could not establish the connection...
  7. 阿姆斯特朗回旋加速喷气式阿姆斯特朗炮
  8. BBS.peidy.com版本
  9. ABAP 语法备忘 刘欣
  10. Python网络之数据库