基于javaweb的企业员工绩效工资管理系统(java+springboot+freemarker+mysql)
创始人
2024-01-17 15:18:02

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

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

20220519001045

20220519001046

20220519001048

20220519001049

20220519001050

20220925155201

基于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);


上一篇:SpringCloud-Hystrix服务治理

下一篇:矛和盾

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
怎么样消灭臭虫 臭虫用什么药消... 奔奔虫控|被吸血臭虫骚扰的滋味,你体会过吗?相信被臭虫骚扰过的人都不想再体验一次了吧?那么臭虫应该怎...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
苁蓉的食用方法 鲜苁蓉的吃法有... 肉苁蓉号称“温而不热,补而不峻,暖而不燥,滑而不泄,故有从容之名。”历来也是传统药食同源的滋补佳品。...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...