只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java SSM Mysql Maven HTML实现一个员工绩效管理系统,大家可以在过程中查缺补漏,提升水平
基于SSM Mysql Maven HTML实现的员工绩效管理系统。该系统只有后台页面,后台前端框架使用的是拉尤伊官网推荐后台界面。
角色分为管理员和员工
管理员功能有:员工管理、职位管理、部门管理、岗位管理、工资管理、工龄管理、考勤管理、工资项管理等。
员工功能有:考勤管理、工资管理、个人信息。
运行环境:jdk1.8、tomcat7.0\8.5、maven3.5\3.6、eclipse、mysql5.x。
后台员工管理控制器代码:
/**
* 后台员工管理控制器
* @作者管理员
*
*/
@RequestMapping('/admin/staff ')
@控制器
公共类员工控制员{
@自动连线
私人员工服务;
@自动连线
私有JobTitleService作业标题服务;
@自动连线
私有角色服务角色服务;
@自动连线
private PositionService PositionService;
@自动连线
私营部门服务部门服务;
@自动连线
私有OperaterLogService OperaterLogService;
@自动连线
私人出席服务出席服务;
/**
* 员工列表页面
* @param模型
* @param staff
* @param pageBean
* @返回
*/
@RequestMapping(value='/list ')
公共字符串列表(模型模型,Staff staff,PageBeanStaff pageBean){
model.addAttribute('title ','员工列表');
model.addAttribute('jobNumber ',staff.getJobNumber()==null?工作人员。getjobnumber());
model.addAttribute('pageBean ',staffService.findList(staff,page bean));
返回"管理/员工/列表";
}
/**
* 新增员工页面
* @param模型
* @返回
*/
@RequestMapping(value='/add ',method=RequestMethod .获取)
公共字符串添加(模型模型){
model.addAttribute('roles ',roleservice。find all());
模型。添加属性(“教育枚举”,教育枚举)。values());
模型。添加属性(“职务列表”,jobtitleservice)。find all());
模型。添加属性(“位置列表”,位置服务)。find all());
模型。添加属性(“部门列表”,部门服务)。find all());
返回admin/staff/add ';
}
/**
* 员工添加表单提交处理
* @param staff
* @返回
*/
@RequestMapping(value='/add ',method=RequestMethod .帖子)
@ResponseBody
公共结果布尔添加(员工人员){
//用统一验证实体方法验证是否合法
CodeMsg validate=validateentityutil。验证(人员);
if(validate.getCode()!=CodeMsg .SUCCESS.getCode()){
返回结果.错误(验证);
}
如果(工作人员。getrole()==null | | staff。getrole().getId()==null){
返回结果.错误(代码消息ADMIN _ STAFF _角色_错误);
}
如果(!string util。是移动(工作人员。获取手机()){
返回结果.错误(代码消息. ADMIN _ STAFF _ MOBILE _ ERROR);
}
如果(!string util。是移动(工作人员。getemergencymobile()){
返回结果.错误(代码消息. ADMIN _ STAFF _ EMERGENCY _ MOBILE _ ERROR);
}
//自动生成工号
int maxId=员工服务。查找maxId()1;
字符串作业编号=日期实用程序。getcurrentdatetime(' yyyyMMdd ');
if(maxId10){
作业编号=作业编号' 0 '最大Id
}否则{
工单编号=工单编号maxId
}
staff.setJobNumber(作业编号);
//到这说明一切符合条件,进行数据库新增
如果(员工服务。保存(人员)==空){
返回结果.错误(代码消息ADMIN _ STAFF _ ADD _错误);
}
operaterLogService.add('添加员工,员工名:‘工作人员。getname());
返回结果。成功(真);
}
@ request mapping(value='/edit _ self ',method=RequestMethod .帖子)
@ResponseBody
公共结果boolean edit _ self(Staff Staff,HttpServletRequest请求){
//用统一验证实体方法验证是否合法
CodeMsg validate=validateentityutil。验证(人员);
if(validate.getCode()!=CodeMsg .SUCCESS.getCode()){
返回结果.错误(验证);
}
如果(!string util。是移动(工作人员。获取手机()){
返回结果.错误(代码消息. ADMIN _ STAFF _ MOBILE _ ERROR);
}
如果(!string util。是移动(工作人员。getemergencymobile()){
返回结果.错误(代码消息. ADMIN _ STAFF _ EMERGENCY _ MOBILE _ ERROR);
}
如果(工作人员。getid()==null | | staff。getid().longValue()=0){
返回结果.错误(代码消息. ADMIN _ STAFF _ NOT _ EXIST _ ERROR);
}
//到这说明一切符合条件,进行数据库保存
人员查找byid=人员服务。找(工作人员。getid());
//讲提交的员工信息指定字段复制到已存在的员工对象中,该方法会覆盖新字段内容
BeanUtils.copyProperties(staff,findById,' Id ',' createTime ',' updateTime ',' jobNumber ',
角色','学历','职位,
职位','部门、‘进入时间’);
员工拯救员工=员工服务。保存(查找byid);
if(saveStaff==null){
返回结果.错误(代码消息ADMIN _ STAFF _编辑_错误);
}
人员登录人员=会话效用。getlogined staff();
如果(loginedStaff!=null){
if(loginedStaff.getId().longValue()==findById.getId().longValue()){
登录的员工。setheadpic(保存人员。getheadpic());
登录的员工。setname(保存五线谱。getname());
登录的员工。设置移动(节省人员。get mobile());
登录的员工。setemergencycontact(保存人员。getemergencycontact());
登录的员工。setemergencymobile(节省人员。getemergencymobile());
登录的员工。setage(节省人员。getage());
登录的员工。setsex(节省人员。getsex());
会话实用程序。set(会话常数.SESSION_STAFF_LOGIN_KEY,登录的人员);
}
}
operaterLogService.add('编辑员工,员工名:‘工作人员。getname());
返回结果。成功(真);
}
/**
* 员工编辑页面
* @param模型
* @返回
*/
@RequestMapping(value='/edit ',method=RequestMethod .获取)
公共字符串编辑(模型模型,@RequestParam(name='id ',required=true)Long id){
model.addAttribute('staff ',人员服务。find(id));
model.addAttribute('roles ',roleservice。find all());
模型。添加属性(“教育枚举”,教育枚举)。values());
模型。添加属性(“职务列表”,jobtitleservice)。find all());
模型。添加属性(“位置列表”,位置服务)。find all());
模型。添加属性(“部门列表”,部门服务)。find all());
返回"管理/员工/编辑";
}
/**
* 编辑员工信息表单提交处理
* @param staff
* @返回
*/
@RequestMapping(value='/edit ',method=RequestMethod .帖子)
@ResponseBody
公共结果布尔编辑(Staff staff,HttpServletRequest请求){
//用统一验证实体方法验证是否合法
CodeMsg validate=validateentityutil。验证(人员);
if(validate.getCode()!=CodeMsg .SUCCESS.getCode()){
返回结果.错误(验证);
}
如果(工作人员。getrole()==null | | staff。getrole().getId()==null){
返回结果.错误(代码消息ADMIN _ STAFF _角色_错误);
}
如果(!string util。是移动(工作人员。获取手机()){
返回结果.错误(代码消息. ADMIN _ STAFF _ MOBILE _ ERROR);
}
如果(!string util。是移动(工作人员。getemergencymobile()){
返回结果.错误(代码消息. ADMIN _ STAFF _ EMERGENCY _ MOBILE _ ERROR);
}
如果(工作人员。getid()==null | | staff。getid().longValue()=0){
返回结果.错误(代码消息. ADMIN _ STAFF _ NOT _ EXIST _ ERROR);
}
//到这说明一切符合条件,进行数据库保存
人员查找byid=人员服务。找(工作人员。getid());
//讲提交的员工信息指定字段复制到已存在的员工对象中,该方法会覆盖新字段内容
BeanUtils.copyProperties(staff,findById,' Id ',' createTime ',' updateTime ',' job number ');
员工拯救员工=员工服务。保存(查找byid);
if(saveStaff==null){
返回结果.错误(代码消息ADMIN _ STAFF _编辑_错误);
}
人员登录人员=会话效用。getlogined staff();
如果(loginedStaff!=null){
if(loginedStaff.getId().longValue()==findById.getId().longValue()){
登录的员工。setheadpic(保存人员。getheadpic());
登录的员工。setname(保存五线谱。getname());
登录的员工。设置移动(节省人员。get mobile());
登录的员工。setemergencycontact(保存人员。getemergencycontact());
登录的员工。setemergencymobile(节省人员。getemergencymobile());
登录的员工。setage(节省人员。getage());
登录的员工。setsex(节省人员。getsex());
会话实用程序。set(会话常数.SESSION_STAFF_LOGIN_KEY,登录的人员);
}
}
operaterLogService.add('编辑员工,员工名:‘工作人员。getname());
返回结果。成功(真);
}
/**
* 离职员工
* @param id
* @返回
*/
@RequestMapping(value='/delete ',method=RequestMethod .帖子)
@ResponseBody
公共结果布尔删除(@RequestParam(name='id ',required=true)Long id){
如果(员工服务。更新状态(员工状态.QUIT.getCode(),id)=0){
返回结果.错误(代码消息ADMIN _ STAFF _状态_错误);
}
operaterLogService.add('员工离职,员工ID:' ID);
返回结果。成功(真);
}
/**
* 修改个人信息
* @param模型
* @返回
*/
@RequestMapping('/self ')
公共字符串自我(模型模型){
人员登录人员=会话效用。getlogined staff();
员工服务。查找(登录的员工。getid());
model.addAttribute('roles ',roleservice。find all());
模型。添加属性(“教育枚举”,教育枚举)。values());
模型。添加属性(“职务列表”,jobtitleservice)。find all());
模型。添加属性(“位置列表”,位置服务)。find all());
模型。添加属性(“部门列表”,部门服务)。find all());
model.addAttribute('staff ',staff);
返回"管理员/员工/自己";
}
}
后台角色管理控制器:
/**
* 后台角色管理控制器
* @作者yy
*
*/
@RequestMapping('/admin/role ')
@控制器
公共类角色控制器{
私有记录器日志=记录器工厂。获取记录器(角色控制器。类);
@自动连线
私有菜单服务
@自动连线
私有OperaterLogService OperaterLogService;
@自动连线
私有角色服务角色服务;
/**
* 分页搜索角色列表
* @param模型
* @param角色
* @param pageBean
* @返回
*/
@RequestMapping(value='/list ')
公共字符串列表(模型模型,角色角色,页面豆角色页面Bean){
model.addAttribute('title ','角色列表');
model.addAttribute('name ',role。getname());
model.addAttribute('pageBean ',roleService.findByName(role,page bean));
返回"管理员/角色/列表";
}
/**
* 角色添加页面
* @param模型
* @返回
*/
@RequestMapping(value='/add ',method=RequestMethod .获取)
公共字符串添加(模型模型){
列表菜单查找全部=菜单服务。find all();
model.addAttribute('topMenus ',菜单实用程序。gettop菜单(查找全部));
模型。添加属性(“第二菜单”,菜单实用程序)。getsecondmenus(find all));
model.addAttribute('thirdMenus ',menu util。getthird menus(查找全部));
返回"管理/角色/添加";
}
/**
* 角色添加表单提交处理
* @param角色
* @返回
*/
@RequestMapping(value='/add ',method=RequestMethod .帖子)
@ResponseBody
公共结果布尔添加(角色role){
//用统一验证实体方法验证是否合法
CodeMsg validate=validateentityutil。验证(角色);
if(validate.getCode()!=CodeMsg .SUCCESS.getCode()){
返回结果.错误(验证);
}
如果(roleservice。保存(角色)==空){
返回结果.错误(代码消息。管理员_角色_添加_错误);
}
log.info('添加角色【'角色'】');
operaterLogService.add('添加角色【’的角色。getname()'】');
返回结果。成功(真);
}
/**
* 角色编辑页面
* @param id
* @param模型
* @返回
*/
@RequestMapping(value='/edit ',method=RequestMethod .获取)
公共字符串编辑(@RequestParam(name='id ',required=true)Long id,Model model){
列表菜单查找全部=菜单服务。find all();
model.addAttribute('topMenus ',菜单实用程序。gettop菜单(查找全部));
模型。添加属性(“第二菜单”,菜单实用程序)。getsecondmenus(find all));
model.addAttribute('thirdMenus ',menu util。getthird menus(查找全部));
角色role=roleservice。查找(id);
model.addAttribute('role ',role);
模型。添加属性(' authorities ',JSON数组。托吉森(角色。getauthorities()).toString());
返回"管理/角色/编辑";
}
/**
* 角色修改表单提交处理
* @param请求
* @param角色
* @返回
*/
@RequestMapping(value='/edit ',method=RequestMethod .帖子)
@ResponseBody
公共结果布尔编辑(角色角色){
//用统一验证实体方法验证是否合法
CodeMsg validate=validateentityutil。验证(角色);
if(validate.getCode()!=CodeMsg .SUCCESS.getCode()){
返回结果.错误(验证);
}
角色存在角色=角色服务。找(角色。getid());
if(existRole==null){
返回结果.错误(代码消息. ADMIN _ ROLE _ NO _ exit);
}
现有角色。设置名称(角色。getname());
现有角色。设置备注(角色。get remark());
现有角色。设置状态(角色。get status());
现有角色。设置权限(角色。getauthorities());
如果(roleservice。保存(现有角色)==空){
返回结果.错误(代码消息。管理_角色_编辑_错误);
}
log.info('编辑角色【'角色'】');
operaterLogService.add('编辑角色【’的角色。getname()'】');
返回结果。成功(真);
}
/**
* 删除角色
* @param请求
* @param id
* @返回
*/
@RequestMapping(value='delete ',method=RequestMethod .帖子)
@ResponseBody
公共结果布尔删除(@RequestParam(name='id ',required=true)Long id){
尝试{
角色服务。删除(id);
} catch(异常e) {
//TODO:处理异常
返回结果.错误(代码消息。管理_角色_删除_错误);
}
log.info('编辑角色ID【‘ID’】’);
operaterLogService.add('删除角色ID【‘ID’】’);
返回结果。成功(真);
}
}
后台工龄管理控制器:
/**
* 后台工龄管理控制器
*/
@控制器
@请求映射('/管理/工作年')
公共类工作年限控制器{
@自动连线
私有WorkingYearsService WorkingYearsService;
@自动连线
私有OperaterLogService OperaterLogService;
/**
* 分页查询工龄列表
* @param模型
* @param pageBean
* @param工作年限
* @返回
*/
@RequestMapping('/list ')
公共字符串列表(模型模型,页面豆工作年页面豆子,工作年工作年){
model.addAttribute('title ','工龄列表');
model.addAttribute('年',工作年限。获取年份());
model.addAttribute('pageBean ',workingyearsservice)。findlist(工作年限,页面bean));
返回"/admin/working _ years/list ";
}
/**
* 添加页面
* @返回
*/
@RequestMapping('/add ')
公共字符串add(){
return '/admin/working _ years/add ';
}
/**
* 工龄添加提交处理
* @param工作年限
* @返回
*/
@RequestMapping(value='/add ',method=RequestMethod .帖子)
@ResponseBody
公共结果布尔加法(工作年限工作年限){
//用统一验证实体方法验证是否合法
CodeMsg validate=validateentityutil。验证(工作年限);
if(validate.getCode()!=CodeMsg .SUCCESS.getCode()){
返回结果.错误(验证);
}
if(workingyearsservice。findbyears(工作年限。获取年份())!=null){
返回结果.错误(代码消息. ADMIN _ work _ YEARS _ EXIST _ ERROR);
}
如果(工作年限服务。保存(工作年限)==空){
返回结果.错误(代码消息. ADMIN _ WORKING _ YEARS _ ADD _ ERROR);
}
operaterLogService.add('添加工龄,工龄补贴为:'工作年限。get substance());
返回结果。成功(真);
}
/**
* 编辑页面
* @param模型
* @param id
* @返回
*/
@RequestMapping('/edit ')
公共字符串编辑(模型模型,@RequestParam(name='id ',required=true)Long id){
model.addAttribute('workYears ',workingyearsservice)。find(id));
return“/admin/working _ years/edit”;
}
/**
* 编辑表单提交处理
* @param工作年限
* @返回
*/
@RequestMapping(value='/edit ',method=RequestMethod .帖子)
@ResponseBody
公共结果布尔编辑(工作年工作年){
//用统一验证实体方法验证是否合法
CodeMsg validate=validateentityutil。验证(工作年限);
if(validate.getCode()!=CodeMsg .SUCCESS.getCode()){
返回结果.错误(验证);
}
如果(工作年限服务。是现有年份(工作年份。获得年限()、工作年限。getid()){
返回结果.错误(代码消息. ADMIN _ work _ YEARS _ EXIST _ ERROR);
}
//到这说明一切符合条件,进行数据库保存
工作年限查找byid=workingyearsservice。找(工作年限。getid());
//讲提交的用户信息指定字段复制到已存在的部门对象中,该方法会覆盖新字段内容
豆制品。复制属性(工作年限,findById,' Id ',' createTime ',' update time ');
if(workingyearsservice。save(findById)==null){
返回结果.错误(代码消息. ADMIN _ WORKING _ YEARS _ EDIT _ ERROR);
}
operaterLogService.add('编辑工龄,工龄补贴为:'工作年限。get substance());
返回结果。成功(真);
}
/**
* 工龄删除操作
* @param id
* @返回
*/
@RequestMapping(value='delete ',method=RequestMethod .帖子)
@ResponseBody
公共结果布尔删除(@RequestParam(name='id ',required=true)Long id){
尝试{
workingyearsservice。删除(id);
}catch(异常e){
返回结果.错误(代码消息. ADMIN _ WORKING _ YEARS _ DELETE _ ERROR);
}
operaterLogService.add('删除工龄补贴,工龄ID:' ID);
返回结果。成功(真);
}
}
到此这篇关于Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)实战员工绩效管理系统的实现流程的文章就介绍到这了,更多相关Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)员工绩效管理系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。