Java基于SSM开发的企业员工管理系统技术文档

无敌的宇宙
无敌的宇宙
擅长邻域:Java,HTML,JavaScript,MySQL,支付,退款,图片上传

分类: Java ssm 专栏: java ssm 标签: ssm 企业员工管理系统

2023-10-23 12:25:24 190浏览

1申请审批功能的设计与实现员工提交自己的请假申请后,进入待审核状态。管理员登录自己的后台可进行审核,可选择审核通过,或者审核不通过,不通过需要输入不通过的原因。为了方便管理员可以快速处理页面,所以添加了对员工编号、员工姓名、部门、岗位、请假类型、审批状态进行查询。该页面主要采用分页展现数据。

1申请审批功能的设计与实现

员工提交自己的请假申请后,进入待审核状态。管理员登录自己的后台可进行审核,可选择审核通过,或者审核不通过,不通过需要输入不通过的原因。为了方便管理员可以快速处理页面,所以添加了对员工编号、员工姓名、部门、岗位、请假类型、审批状态进行查询。该页面主要采用分页展现数据。

1.1审批数据分页请求

(1)方法名:/admin/apply/page

(2)请求参数说明:realname员工姓名,uname员工编号,dep_id部门id,pid岗位id,type请假类型(事假、病假、产假),is_audit(0待申请、1通过申请、2不通过申请) ,pageNo(第几页),pageSize(一页多少条数据)

(3)调用方法说明:使用applyService.queryList(Apply) 调用applyDao.queryList(apply)从而调用ApplyMapper.xml里的查询sql语句,根据参数动态实现条件查询。最终执行sql如下: SELECT a.*, u.uname, s.realname, d.dname, p.pname, d.id AS dep_id, p.id AS pid FROM ss_apply a LEFT JOIN ss_staff s ON s.id = a.staff_id LEFT JOIN ss_users u ON s.id = u.id LEFT JOIN ss_position p ON s.pid = p.id LEFT JOIN ss_department d ON p.dep_id = d.id WHERE 1 = 1 order by cts asc LIMIT ?


Controller采用pageHelper进行分页,代码如下:

@RequestMapping("/page")
public String page(@RequestParam(value="pageNo",defaultValue="1")int pageNo
,Apply o,Model model,HttpSession session) {
Staff e= (Staff) session.getAttribute("adminU");
if(e.getRole().equals("staff")) {

o.setStaff_id(e.getId());
}

PageHelper.startPage(pageNo,Sys.Common.pageSize," cts asc ");
List<Apply> li=applyService.queryList(o);
PageInfo<Apply> pageInfo=new PageInfo<Apply>(li, Sys.Common.pageSize);
for(Apply a:li){
a.setStart_ts(a.getStart_ts().replace("T", " "));
a.setEnd_ts(a.getEnd_ts().replace("T", " "));
}
model.addAttribute("pageInfo", pageInfo);
model.addAttribute("o", o);

List<Department> deli=departmentService.queryList(null);
model.addAttribute("deli", deli);
return Sys.Common.admin +"/apply_page";
}


效果图如下:

请假审批.jpg

请假审批.jpg

请假审批.jpg

1.2审核通过请求

(1)方法名:/admin/apply/pass

(2)请求参数说明 :id(待审核数据id)

(3)调用方法说明:在applyController.pass(),将is_audit设置为1,并使用DateUtil方法设置审核时间。然后使用applyService.update(Apply) 进行数据保存,最终调用applyDao.upade(apply)从而调用ApplyMapper.xml里的查询update语句。最终执行上去了如下:update ss_apply set is_audit=1 , audit_ts=? where id=?

ApplyController.pass()代码如下

@RequestMapping("/pass")
public String pass(@RequestParam(value="pageNo",defaultValue="1")int pageNo,Apply o,Model model) {
o.setIs_audit("1");
o.setAudit_ts(DateUtils.DateTimeToString(new Date()));
applyService.update(o);
return "redirect:/admin/apply/page?pageNo="+pageNo;

}

1.2审核不通过请求

(1)方法名:/admin/apply/notpass

(2)请求参数说明 :id(待审核数据id),result(审核不通过的原因)

(3)调用方法说明:在applyController.notpass(),将is_audit设置为2,并使用DateUtil方法设置审核时间。然后使用applyService.update(Apply) 进行数据保存,最终调用applyDao.upade(apply)从而调用ApplyMapper.xml里的查询update语句。执行sql: update ss_apply set is_audit=2 , audit_ts=?,result=? where id=?

applyController.notpass()代码如下:

@RequestMapping("/notpass")
public String notpass(@RequestParam(value="pageNo",defaultValue="1")int pageNo,Apply o,Model model) {
o.setIs_audit("2");
o.setAudit_ts(DateUtils.DateTimeToString(new Date()));
applyService.update(o);
return "redirect:/admin/apply/page?pageNo="+pageNo;

}


2 员工工资管理的设计与实现

管理员可以在后台管理员工的工资,包括添加工资记录,编辑,删除,查询等。可根据员工姓名和年月进行筛选。

1.1工资数据分页请求

(1)方法名:/admin/wage/page

(2)请求参数说明:realname员工姓名,month 工资月份

(3)调用方法说明:使用wageService.queryList(Wage) 调用wageDao.queryList(Wage)从而调用WageMapper.xml里的查询sql语句,根据参数动态实现条件查询。最终执行sql如下: SELECT w.*, d.dname, p.pname, u.uname, s.realname, s.sex, s.age FROM ss_wages w LEFT JOIN ss_staff s ON w.uid = s.id LEFT JOIN ss_department d ON s.did = d.id LEFT JOIN ss_position p ON s.pid = p.id LEFT JOIN ss_users u ON s.id = u.id WHERE 1 = 1 order by cts desc LIMIT ?

wageControlle.Page()代码如下

@RequestMapping("/page")
public String page(@RequestParam(value="pageNo",defaultValue="1")int pageNo,HttpServletRequest request, HttpServletResponse response,HttpSession session,
Model model,Wages t) throws IOException {
Staff s= (Staff) session.getAttribute("adminU");
if(s.getRole().equals("staff"))t.setUid(s.getId());

PageHelper.startPage(pageNo,Sys.Common.pageSize," cts desc ");
List<Wages> li=wagesService.queryList(t);
PageInfo pageInfo = new PageInfo(li,Sys.Common.pageSize);
model.addAttribute("pageInfo", pageInfo);
model.addAttribute("t", t);
return Sys.Common.admin + "/wages_page";
}

效果图:

工资管理.jpg

工资管理.jpg

工资管理.jpg

1.2添加员工工资的实现

(1)方法名:/admin/wage/save

(2)请求参数说明:uid员工id,mointh月份,mdesc,total_money实际发放工资,traffic_monry交通补助,meal_money餐补,basic_money基本工资。

(3)调用方法说明:使用wageService.save(Wage) 调用wageDao.add(Wage)从而调用WageMapper.xml里的查询insert语句,最终执行sql如下: insert into ss_wage(uid,month,mdesc,total_money,traffic_money,meal_money,basic_money)values(?,?,?,?,?,?,?)

wageControlle.save()代码如下


/*
* 保存信息
* */
@ResponseBody
@RequestMapping("/save")
public MessUtil save(@RequestParam(value="pageNo",defaultValue="1")int pageNo,HttpServletRequest request, HttpServletResponse response,HttpSession session,
Model model,Wages a) throws IOException {
MessUtil mess=new MessUtil();


Wages o=wagesService.queryByMonth(a.getUid(),a.getMonth());

if(a.getId()!=null){

wagesService.update(a);


mess.setStatus(1);
mess.setMess("修改成功");
return mess;
}else{
if(o!=null){
mess.setStatus(0);
mess.setMess("该月的工资已添加,请勿重复添加");
return mess;
}
a.setCts(DateUtils.getNowDateString());
wagesService.add(a);

mess.setStatus(1);
mess.setMess("添加成功");
return mess;
}

1.2编辑员工工资的实现

在编辑页面之前需要从数据查询出该数据并回显在页面上,由于添加和编辑调用的都是wageController.save(wage),所以这里只写进入之前的方法。

(1)方法名:/admin/wage/toedit

(2)请求参数说明: id工资记录id

(3)调用方法说明:使用wageService.queryById(id) 调用wageDao.queryById(id)从而调用WageMapper.xml里的查询select语句,最终执行sql如下: SELECT w.*, d.dname, p.pname, u.uname, s.realname, s.sex, s.age FROM ss_wages w LEFT JOIN ss_staff s ON w.uid = s.id LEFT JOIN ss_department d ON s.did = d.id LEFT JOIN ss_position p ON s.pid = p.id LEFT JOIN ss_users u ON s.id = u.id WHERE w.id=?

wageContrller.toedit( )代码如下:

/*
* 跳转添加页面
* */
@RequestMapping("/toedit")
public String toedit(@RequestParam(value="pageNo",defaultValue="1")int pageNo,HttpServletRequest request, HttpServletResponse response,HttpSession session,
Model model,Wages t) throws IOException {
if(t.getId()!=null){
t=wagesService.queryById(t.getId() );
model.addAttribute("w", t);
}

List<Staff> sli=staffService.queryList(null);
model.addAttribute("sli",sli);

model.addAttribute("pageNo",pageNo);
return Sys.Common.admin + "/wages_add";
}

1.2删除员工工资的实现

(1)方法名:/admin/wage/del

(2)请求参数说明: id工资记录id

(3)调用方法说明:使用wageService.del(id) 调用wageDao.del(id)从而调用WageMapper.xml里的查询delet语句,最终执行sql如下: delete from ss_wage WHERE id=?

wageContrller.del( )代码如下:

/*
* 删除
* */
@RequestMapping("/del")
public String del(@RequestParam(value="pageNo",defaultValue="1")int pageNo,HttpServletRequest request, HttpServletResponse response,HttpSession session,
Model model,Wages a) throws IOException {
a=wagesService.queryById(a.getId() );
if(a!=null){

wagesService.deleteById(a.getId());
}



return "redirect:/admin/wages/page?pageNo="+pageNo;
}

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695