## 项目开发总结报告(GB8567——88)
# 1 引言
## 1.1 编写目的
随着企业的信息化和体制改革的步伐,人才竞争使企业的人力资源面临前所未有的挑战。越来越多的企业不断地加大对员工的投资,从而更好地吸引、保留和发展所需人才,使企业拥有持久的、强大的竞争优势。
我们将为企业提供全面的人力资管理解决方案,旨在满足快速成长的企业管理信息化需求,主要目的就是帮助客户快速持续和健康成长,并且使人力资源部门借助此管理系统从重复烦杂的日常管理事务中解脱出来,将更多精力投注于人力资源战略规划以支持和推动企业战略目标的实现,不断提升人力资源部对企业的价值,有效地提升企业的核心竞争力。
本说明书目的在于明确说明系统需求,界定系统实现功能的范围,指导系统设计以及编码。
本说明书的预期读者为:项目经理,系统分析员,系统设计人员,开发工程师,测试经理以及测试设计人员等。
## 1.2 背景
人力资源管理就是预测组织人力资源需求并作出人力需求计划、招聘选择人员并进行有效组织、考核绩效支付报酬并进行有效激励、结合组织与个人需要进行有效开发以便实现最优组织绩效的全过程。即运用现代化的科学方法,对与一定物力相结合的人力进行合理的培训、组织和调配,使人力、物力经常保持最佳比例,同时对人的思想、心理和行为进行恰当的诱导、控制和协调,充分发挥人的主观能动性,使人尽其才,事得其人,人事相宜,以实现组织目标。
## 1.3 定义
HRM : Human Resource Management 人力资源管理,这里指人力资源管理系统。 《 人力资源管理系统 》系统功能,目前共分为六大管理,分别是:部门管理、招聘管理、员工管理、培训管理、奖惩管理、薪资管理。
## 1.4 参考资料
无
# 2 实际开发结果
## 2.1 产品
Web:企业人力资源系统培训管理模块
数据库名:TR
![](https://www.writebug.com/myres/static/uploads/2021/11/23/5e6002959bf14502d0c88d7a61136759.writebug)
## 2.2 主要功能和性能
具备基本的培训发布,审核,反馈功能
## 2.3 基本流程
![](https://www.writebug.com/myres/static/uploads/2021/11/23/5c8e74699f5d2cb69d03313fd798c938.writebug)
## 2.4 进度
按时完成
## 2.5 费用
节余
# 3 开发工作评价
小组成员都完成了自己的任务。
# 4 经验与教训
1. 没有让界面设计工作第一时间开始进行,延缓了控制层的设局与开发
2. 没有给组员规定任务完成时间,只是给了任务开始时间
3. 没有按组员记录每日工作,只是记录了整体进度
4. 没有要求组员做设计计划书,只是要求了总结说明书
# 培训管理
概要设计说明:
1 引言
1.1 编写目的
有助于小组项目的开发,便于掌握开发进度。
1.2 背景
项目名称:企业人力资源系统之培训管理模块
开发者:软件工程 1602 班第四小组
1.3 定义
HRM : Human Resource Management 人力资源管理,这里指人力资源管理系统。 《 人力资源管理系统 》系统功能,目前共分为六大管理,分别是:部门管理、招聘管理、员工管理、培训管理、奖惩管理、薪资管理。
1.4 参考资料
无
系统业务流程图:
![](https://www.writebug.com/myres/static/uploads/2021/11/23/54bb34f105d8a3a5933b577f7c9924e9.writebug)
功能需求分析:
该系统包括培训计划,培训复核,培训考核。实现新增培训,对培训计划进行查询,修改,删除,审核。
各个页面功能:
系统功能:
![](https://www.writebug.com/myres/static/uploads/2021/11/23/bba2722a5a8e5e6a4be1e42f676fe35b.writebug)
培训计划:
![](https://www.writebug.com/myres/static/uploads/2021/11/23/837a8d712443ee902fdf903057d8a957.writebug)
培训复核:
![](https://www.writebug.com/myres/static/uploads/2021/11/23/4efa0f31aaf25a13090ca76d613785bf.writebug)
培训考核与反馈:
![](https://www.writebug.com/myres/static/uploads/2021/11/23/a0aa1240c8c5a1f4ace72f8446d78f54.writebug)
# 控制层与 JSP 页面的设计实现:
Controller 层:业务控制层,负责接收数据和请求,并且调用 Service 层实现这个业务逻辑。SpringMVC 中,控制器 Controller 负责处理由 DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个 Model ,然后再把该 Model 返回给对应的 View 进行展示。在 SpringMVC 中提供了一个非常简便的定义 Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是 Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义 URL 请求和 Controller 方法之间的映射,这样的 Controller 就能被外界访问到。此外 Controller 不会直接依赖于 HttpServletRequest 和 HttpServletResponse 等 HttpServlet 对象,它们可以通过 Controller 的方法参数灵活的获取到。
所需功能:
各个页面功能:
系统功能:
![](https://www.writebug.com/myres/static/uploads/2021/11/23/b4e8a11c755c285fb8fb368e24bb35ca.writebug)
培训计划:
![](https://www.writebug.com/myres/static/uploads/2021/11/23/85e45742489cce4caa3b5715709f8fbf.writebug)
培训复核:
![](https://www.writebug.com/myres/static/uploads/2021/11/23/5d2ff535ece080bf964dc61d0d36d494.writebug)
培训考核与反馈:
![](https://www.writebug.com/myres/static/uploads/2021/11/23/5e045ac45158d57e6f7a83c0e6b4cb3a.writebug)
Controller 层实现:
```c++
//修改
@Controller
@RequestMapping("ChangPlan")
public class ChangPlanController {
@Autowired
TrainService trainService;
@Autowired
private TrainPlusService trainPlusService;
@Autowired
RespService respService;
@RequestMapping("setPlan")
public String setPlan() {
return "updata";
}
@RequestMapping("upData")
public String upData(Map<String, Object> map, HttpServletRequest request) {
Train train = new Train();
train.setsId(1);
train.settName(request.getParameter("tName"));
train.settTeacher(request.getParameter("tTeacher"));
train.settStart(request.getParameter("tStart"));
train.settEnd(request.getParameter("tEnd"));
train.settGoal(request.getParameter("tGoal"));
train.settMember(request.getParameter("tMember"));
train.settIntroduction(request.getParameter("tIntroduction"));
trainService.SetTrainPlan(train);
Response response=new Response();
response.setPid(train.gettPid());
respService.insertResp(response);
return "redirect:/common/getAll";
}
@RequestMapping("set")
public String set(Map<String, Object> map, HttpServletRequest request) {
String pid=request.getParameter("pid");
Train trains=trainService.getOneTrain(Integer.parseInt(pid));
map.put("trains", trains);
return "set";
}
@RequestMapping("setData")
public String setData(Map<String, Object> map, HttpServletRequest request) {
Train train = new Train();
String pid=request.getParameter("pid");
train.settPid(Integer.parseInt(pid));
train.setsId(2);
train.settName(request.getParameter("tName"));
train.settTeacher(request.getParameter("tTeacher"));
train.settStart(request.getParameter("tStart"));
train.settEnd(request.getParameter("tEnd"));
train.settGoal(request.getParameter("tGoal"));
train.settMember(request.getParameter("tMember"));
train.settIntroduction(request.getParameter("tIntroduction"));
trainService.updateTrain(train);
return "redirect:/common/getAll";
}
//考核
@