基于SpringBoot的“人事管理系统”的设计与实现

基于SpringBoot的“人事管理系统”的设计与实现

基于SpringBoot的“人事管理系统”的设计与实现(源码 数据库 文档 PPT)

  • 开发语言:Java
  • 数据库:MySQL
  • 技术:SpringBoot
  • 工具:IDEA/Ecilpse、Navicat、Maven

系统展示

基于SpringBoot的“人事管理系统”的设计与实现

系统总体功能模块图

基于SpringBoot的“人事管理系统”的设计与实现

管理员登录界面图

基于SpringBoot的“人事管理系统”的设计与实现

管理员功能界面图

基于SpringBoot的“人事管理系统”的设计与实现

学生管理界面图

基于SpringBoot的“人事管理系统”的设计与实现

部门管理界面图

基于SpringBoot的“人事管理系统”的设计与实现

员工考勤管理界面图

基于SpringBoot的“人事管理系统”的设计与实现

请假申请管理界面图

基于SpringBoot的“人事管理系统”的设计与实现

员工工资管理界面图

基于SpringBoot的“人事管理系统”的设计与实现

招聘计划管理界面图

摘要

首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计。本项目软件架构选择B/S模式和java技术,总体功能模块运用自顶向下的分层思想。再然后就是实现系统并进行代码编写实现功能。论文的最后章节总结一下自己完成本论文和开发本项目的心得和总结。通过人事管理系统将会使人事管理各个方面的工作效率带来实质性的提升。

研究的背景

困扰管理层的许多问题当中,人事管理是一定不敢忽视的一块。但是管理好人事又面临很多麻烦需要解决,例如有几个方面:第一,公司往往员工人数都比较多,如何保证能够管理到每一员工;第二,如何在工作琐碎,记录繁多的情况下将人事变动的情况反应给公司领导相关部门决策,等等。在此情况下开发一款人事管理系统,于是乎变得非常合乎时宜。

经过网上调查和搜集数据,我们可以发现人事管理方面的系统在公司中并不是相当普及,公司在人事管理方面的可以有许多改进。实际上如今信息化成为一个未来的趋势或者可以说在当前现代化的城市典范中,信息化已经成为主流,开发一个人事管理系统一方面可能会更合乎时宜,另一方面来说也可以提高公司在人事管理方面的效率给相关部门人的工作带来一定的便利。

开发意义

人类的进步带动信息化的发展,使人们生活节奏越来越快,所以人们越来越重视信息的时效性。以往的管理方式已经满足不了人们对获得信息的方式、方便快捷的需求。即人事管理系统慢慢的被人们关注。首先,网上获取信息十分的实时、便捷,只要系统在线状态,无论在哪里都能第一时间查找到理想的信息。

研究内容与结构

本项目在开发和设计过程中涉及到原理和技术有: B/S、java技术和MySQL数据库等等;将按以下章节进行开发设计;

第一章绪论;剖析项目背景,说明研究的内容。

第二章开发技术;系统主要使用了java技术,b/s模式和myspl数据库,并对此做了介绍。

第三章系统分析;包罗了系统总体结构、对系统的性能、功能、流程图进行了分析。

第四章系统设计;对软件功能模块和数据库进行详细设计。

第五章系统总体设计;对系统管理员,教师和学生的功能进行描述。

第六章对系统进行测试。

第七章总结心得;在论文最后结束章节总结了开发这个系统和撰写论文时候自己的总结、感想,包括致谢。

部分源码

/** * 员工 * 后端接口 * @author * @email * @date 2022-03-22 17:13:54 */@RestController@RequestMapping("/yuangong")public class YuangongController { @Autowired private YuangongService yuangongService; @Autowired private TokenService tokenService; /** * 登录 */ @IgnoreAuth @RequestMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", username)); if(user==null || !user.getMima().equals(password)) { return R.error("账号或密码不正确"); } String token = tokenService.generateToken(user.getId(), username,"yuangong", "员工" ); return R.ok().put("token", token); } /** * 注册 */ @IgnoreAuth @RequestMapping("/register") public R register(@RequestBody YuangongEntity yuangong){ //ValidatorUtils.validateEntity(yuangong); YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", yuangong.getYuangonggonghao())); if(user!=null) { return R.error("注册用户已存在"); } Long uId = new Date().getTime(); yuangong.setId(uId); yuangongService.insert(yuangong); return R.ok(); } /** * 退出 */ @RequestMapping("/logout") public R logout(HttpServletRequest request) { request.getSession().invalidate(); return R.ok("退出成功"); } /** * 获取用户的session用户信息 */ @RequestMapping("/session") public R getCurrUser(HttpServletRequest request){ Long id = (Long)request.getSession().getAttribute("userId"); YuangongEntity user = yuangongService.selectById(id); return R.ok().put("data", user); } /** * 密码重置 */ @IgnoreAuth @RequestMapping(value = "/resetPass") public R resetPass(String username, HttpServletRequest request){ YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", username)); if(user==null) { return R.error("账号不存在"); } user.setMima("123456"); yuangongService.updateById(user); return R.ok("密码已重置为:123456"); } /** * 后端列表 */ @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,YuangongEntity yuangong, HttpServletRequest request){ EntityWrapper<YuangongEntity> ew = new EntityWrapper<YuangongEntity>(); PageUtils page = yuangongService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuangong), params), params)); return R.ok().put("data", page); } /** * 前端列表 */ @IgnoreAuth @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params,YuangongEntity yuangong, HttpServletRequest request){ EntityWrapper<YuangongEntity> ew = new EntityWrapper<YuangongEntity>(); PageUtils page = yuangongService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuangong), params), params)); return R.ok().put("data", page); } /** * 列表 */ @RequestMapping("/lists") public R list( YuangongEntity yuangong){ EntityWrapper<YuangongEntity> ew = new EntityWrapper<YuangongEntity>(); ew.allEq(MPUtil.allEQMapPre( yuangong, "yuangong")); return R.ok().put("data", yuangongService.selectListView(ew)); } /** * 查询 */ @RequestMapping("/query") public R query(YuangongEntity yuangong){ EntityWrapper< YuangongEntity> ew = new EntityWrapper< YuangongEntity>(); ew.allEq(MPUtil.allEQMapPre( yuangong, "yuangong")); YuangongView yuangongView = yuangongService.selectView(ew); return R.ok("查询员工成功").put("data", yuangongView); } /** * 后端详情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ YuangongEntity yuangong = yuangongService.selectById(id); return R.ok().put("data", yuangong); } /** * 前端详情 */ @IgnoreAuth @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ YuangongEntity yuangong = yuangongService.selectById(id); return R.ok().put("data", yuangong); } /** * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody YuangongEntity yuangong, HttpServletRequest request){ yuangong.setId(new Date().getTime() new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(yuangong); YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", yuangong.getYuangonggonghao())); if(user!=null) { return R.error("用户已存在"); } yuangong.setId(new Date().getTime()); yuangongService.insert(yuangong); return R.ok(); } /** * 前端保存 */ @RequestMapping("/add") public R add(@RequestBody YuangongEntity yuangong, HttpServletRequest request){ yuangong.setId(new Date().getTime() new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(yuangong); YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", yuangong.getYuangonggonghao())); if(user!=null) { return R.error("用户已存在"); } yuangong.setId(new Date().getTime()); yuangongService.insert(yuangong); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody YuangongEntity yuangong, HttpServletRequest request){ //ValidatorUtils.validateEntity(yuangong); yuangongService.updateById(yuangong);//全部更新 return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ yuangongService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } /** * 提醒接口 */ @RequestMapping("/remind/{columnName}/{type}") public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) { map.put("column", columnName); map.put("type", type); if(type.equals("2")) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); Date remindStartDate = null; Date remindEndDate = null; if(map.get("remindstart")!=null) { Integer remindStart = Integer.parseInt(map.get("remindstart").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart); remindStartDate = c.getTime(); map.put("remindstart", sdf.format(remindStartDate)); } if(map.get("remindend")!=null) { Integer remindEnd = Integer.parseInt(map.get("remindend").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindEnd); remindEndDate = c.getTime(); map.put("remindend", sdf.format(remindEndDate)); } } Wrapper<YuangongEntity> wrapper = new EntityWrapper<YuangongEntity>(); if(map.get("remindstart")!=null) { wrapper.ge(columnName, map.get("remindstart")); } if(map.get("remindend")!=null) { wrapper.le(columnName, map.get("remindend")); } int count = yuangongService.selectCount(wrapper); return R.ok().put("count", count); } }

结论

通过完成该人事管理和本论文的撰写让我更加明白了软件开发过程中软件工程思想的重要性。在项目的前期由于对需求分析做的不够谨慎和明确,导致了后面在设计甚至编码时候造成了许多不必要的麻烦。由此在今后的学习和工作开发之中必须要牢牢把握住软件工程的设计思想和方法,这样可以进一步保证项目开发的健壮性和准确性。

相关新闻

联系我们
联系我们
在线咨询
分享本页
返回顶部