SpringBoot+Vue项目月度员工绩效考核管理系统

您所在的位置:网站首页 制作绩效考评表 SpringBoot+Vue项目月度员工绩效考核管理系统

SpringBoot+Vue项目月度员工绩效考核管理系统

2024-07-10 00:13| 来源: 网络整理| 查看: 265

文末获取源码 

开发语言:Java

框架:springboot

JDK版本:JDK1.8

服务器:tomcat7

数据库:mysql 5.7/8.0

数据库工具:Navicat11

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.3.9

浏览器:谷歌浏览器

一、前言介绍

科学时代的发展改变了人类的生活,促使网络与计算机技术深入人类的各个角落,得以普及到人类的具体生活中,为人类的时代文明掀开新的篇章。本系统为月度员工绩效考核管理系统,是专为企业开发的对员工考核的协助软件。可以帮助企业对于员工的绩效考核进行更为正规、规范的管理,使企业管理更加的轻松快捷。

本月度员工绩效考核管理系统采用java语言做为代码编写工具,采用mysql数据库进行系统中信息的存储与处理。框架采用springboot。本月度员工绩效考核管理系统调试环境为myeclipse,服务器为tomcat。主要包括的内容有部门方面、员工方面、绩效考核方面、绩效指标方面。员工可以查询绩效指标和绩效考核详情,管理员进行发布和管理。本系统结合了新时代的工作要求和获得了先进技术的支持,适应时代发展,为使用人员提供了极好的绩效考核途径。

二、系统开发功能分析

本系统的功能分为管理员和员工两个角色,管理员的功能有:

(1)个人中心管理功能,添加管理员账号和修改登录密码;

(2)部门信息管理功能,对企业中的部门进行合理安排;

(3)员工信息管理功能,对企业中的员工的基本资料进行维护;

(4)绩效考核管理功能,发布员工的绩效考核,修改和删除不正确的绩效考核;

(5)岗位信息管理功能,对员工的岗位进行分配;

(6)公告信息管理功能,发布公告和管理公告;

(7)绩效指标管理功能,需要考核的指标进行设置,

员工的功能有:

(1)个人资料管理功能,对本人基本信息进行维护;

(2)公告信息管理功能,实现在线查询公告;

(3)绩效考核管理功能,查询自己的考核信息;

(4)绩效指标管理功能,查询考核的指标。 

2.1系统功能结构设计

根据系统分析中分析出来的功能,本系统的主要功能包括部门管理、岗位管理、绩效指标管理、绩效考核管理、员工管理、通知管理等。本系统的功能结构设计如下图所示: 

三、管理员功能实现 3.1系统登录页面

3.2个人中心管理功能模块实现

本界面主要是对管理员账号和密码进行设置,是管理员角色的操作功能,员工不能添加管理员账号、个人中心管理功能实现界面如下图

3.3部门信息管理模块实现

部门信息是管理员角色的功能,管理员可以为企业添加新的部门,可以查询部门的创建时间,管理员添加部门信息的实现界面如下图

3.4员工信息管理模块实现

管理员可以在新员工招入时进行添加,对员工进行部门的安排和备注的添加。管理员 管理员添加员工信息界面如下图

3.5绩效指标管理模块实现

本功能是为了方便管理员对员工进行绩效考核,添加绩效指标的实现界面如下图所示

3.6公告信息管理模块的实现

本功能可以实现公告的发布,添加公告信息功能模块的实现界面如下图所示

3.7岗位管理模块的实现

管理员可以对员工分配岗位,管理员查询岗位的实现界面如下图所示

3.8绩效考核管理模块的实现

发布员工的绩效考核,绩效考核信息的实现界面如下图所示

 

四、员工功能的界面实现

员工可以查询公告和绩效指标、绩效考核信息,也可以修改个人资料和密码。实现界面如下图所示

五、部分核心代码

 

/** * 上传文件映射表 */ @RestController @RequestMapping("file") @SuppressWarnings({"unchecked","rawtypes"}) public class FileController{ @Autowired private ConfigService configService; /** * 上传文件 */ @RequestMapping("/upload") public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception { if (file.isEmpty()) { throw new EIException("上传文件不能为空"); } String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1); File path = new File(ResourceUtils.getURL("classpath:static").getPath()); if(!path.exists()) { path = new File(""); } File upload = new File(path.getAbsolutePath(),"/upload/"); if(!upload.exists()) { upload.mkdirs(); } String fileName = new Date().getTime()+"."+fileExt; File dest = new File(upload.getAbsolutePath()+"/"+fileName); file.transferTo(dest); /** * 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开 * 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径, * 并且项目路径不能存在中文、空格等特殊字符 */ // FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/ if(StringUtils.isNotBlank(type) && type.equals("1")) { ConfigEntity configEntity = configService.selectOne(new EntityWrapper().eq("name", "faceFile")); if(configEntity==null) { configEntity = new ConfigEntity(); configEntity.setName("faceFile"); configEntity.setValue(fileName); } else { configEntity.setValue(fileName); } configService.insertOrUpdate(configEntity); } return R.ok().put("file", fileName); } /** * 下载文件 */ @IgnoreAuth @RequestMapping("/download") public ResponseEntity download(@RequestParam String fileName) { try { File path = new File(ResourceUtils.getURL("classpath:static").getPath()); if(!path.exists()) { path = new File(""); } File upload = new File(path.getAbsolutePath(),"/upload/"); if(!upload.exists()) { upload.mkdirs(); } File file = new File(upload.getAbsolutePath()+"/"+fileName); if(file.exists()){ /*if(!fileService.canRead(file, SessionManager.getSessionUser())){ getResponse().sendError(403); }*/ HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData("attachment", fileName); return new ResponseEntity(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED); } } catch (IOException e) { e.printStackTrace(); } return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); } } RestController @RequestMapping("/kechengchengji") public class KechengchengjiController { @Autowired private KechengchengjiService kechengchengjiService; /** * 后端列表 */ @RequestMapping("/page") public R page(@RequestParam Map params,KechengchengjiEntity kechengchengji, HttpServletRequest request){ String tableName = request.getSession().getAttribute("tableName").toString(); if(tableName.equals("jiaoshi")) { kechengchengji.setJiaoshizhanghao((String)request.getSession().getAttribute("username")); } if(tableName.equals("xuesheng")) { kechengchengji.setXuehao((String)request.getSession().getAttribute("username")); } EntityWrapper ew = new EntityWrapper(); PageUtils page = kechengchengjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengchengji), params), params)); return R.ok().put("data", page); } /** * 前端列表 */ @IgnoreAuth @RequestMapping("/list") public R list(@RequestParam Map params,KechengchengjiEntity kechengchengji, HttpServletRequest request){ EntityWrapper ew = new EntityWrapper(); PageUtils page = kechengchengjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengchengji), params), params)); return R.ok().put("data", page); } /** * 列表 */ @RequestMapping("/lists") public R list( KechengchengjiEntity kechengchengji){ EntityWrapper ew = new EntityWrapper(); ew.allEq(MPUtil.allEQMapPre( kechengchengji, "kechengchengji")); return R.ok().put("data", kechengchengjiService.selectListView(ew)); } /** * 查询 */ @RequestMapping("/query") public R query(KechengchengjiEntity kechengchengji){ EntityWrapper< KechengchengjiEntity> ew = new EntityWrapper< KechengchengjiEntity>(); ew.allEq(MPUtil.allEQMapPre( kechengchengji, "kechengchengji")); KechengchengjiView kechengchengjiView = kechengchengjiService.selectView(ew); return R.ok("查询课程成绩成功").put("data", kechengchengjiView); } /** * 后端详情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ KechengchengjiEntity kechengchengji = kechengchengjiService.selectById(id); return R.ok().put("data", kechengchengji); } /** * 前端详情 */ @IgnoreAuth @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ KechengchengjiEntity kechengchengji = kechengchengjiService.selectById(id); return R.ok().put("data", kechengchengji); } /** * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody KechengchengjiEntity kechengchengji, HttpServletRequest request){ kechengchengji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(kechengchengji); kechengchengjiService.insert(kechengchengji); return R.ok(); } /** * 前端保存 */ @RequestMapping("/add") public R add(@RequestBody KechengchengjiEntity kechengchengji, HttpServletRequest request){ kechengchengji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(kechengchengji); kechengchengjiService.insert(kechengchengji); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody KechengchengjiEntity kechengchengji, HttpServletRequest request){ //ValidatorUtils.validateEntity(kechengchengji); kechengchengjiService.updateById(kechengchengji);//全部更新 return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ kechengchengjiService.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 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 wrapper = new EntityWrapper(); if(map.get("remindstart")!=null) { wrapper.ge(columnName, map.get("remindstart")); } if(map.get("remindend")!=null) { wrapper.le(columnName, map.get("remindend")); } String tableName = request.getSession().getAttribute("tableName").toString(); if(tableName.equals("jiaoshi")) { wrapper.eq("jiaoshizhanghao", (String)request.getSession().getAttribute("username")); } if(tableName.equals("xuesheng")) { wrapper.eq("xuehao", (String)request.getSession().getAttribute("username")); } int count = kechengchengjiService.selectCount(wrapper); return R.ok().put("count", count); } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3