——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Node.js≥14
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
❗没学过node.js的不要搞前后端分离项目
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明








基于javaweb的SpringBoot员工绩效考核系统(java+springboot+maven+mybaits+vue+elementui+mysql)
项目介绍
基于Springboot+vue实现的员工绩效考核管理系统
系统包含员工和管理员两个角色
管理员:
部门管理:负责创建、修改和删除部门,以及为部门设置权限和角色。
岗位管理:定义和管理岗位信息,包括添加、修改和删除岗位,以及设置岗位的职责和要求。
员工管理:全面管理员工信息,包括基本信息、工作经历、培训记录以及绩效考核结果等。
绩效指标管理:根据公司的业务需求,设定、修改和删除绩效指标。
绩效考核管理:设定考核周期,制定评估标准和方法,对员工进行定期的绩效考核,并生成相应的评估报告。
公告信息管理:发布公司政策、通知、会议安排等公告信息,确保员工及时获取。
员工:
个人中心:查看和更新个人信息,如联系方式、工作经历等。
查看绩效考核:查看自己的绩效考核结果,包括目标完成情况、评估得分等。
接收反馈:查看系统或上级给出的绩效反馈和改进建议,了解自己的工作表现和不足。
公告查看:查看系统发布的公告信息,确保自己了解公司的最新政策和通知。
报表查看:查看并理解自己的绩效考核报表,了解自己的绩效趋势和改进方向。
技术栈
后端:SpringBoot+Mybaits
前端:Vue+elementui
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| * * @param face1 人脸1 * @param face2 人脸2 * @return */ @RequestMapping("/matchFace") public R matchFace(String face1, String face2) { if(client==null) { String APIKey = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "APIKey")).getValue(); String SecretKey = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "SecretKey")).getValue(); String token = BaiduUtil.getAuth(APIKey, SecretKey); if(token==null) { return R.error("请在配置管理中正确配置APIKey和SecretKey"); } client = new AipFace(null, APIKey, SecretKey); client.setConnectionTimeoutInMillis(2000); client.setSocketTimeoutInMillis(60000); } JSONObject res = null; try { File file1 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face1); File file2 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face2); String img1 = Base64Util.encode(FileUtil.FileToByte(file1)); String img2 = Base64Util.encode(FileUtil.FileToByte(file2)); MatchRequest req1 = new MatchRequest(img1, "BASE64"); MatchRequest req2 = new MatchRequest(img2, "BASE64"); ArrayList<MatchRequest> requests = new ArrayList<MatchRequest>(); requests.add(req1); requests.add(req2); res = client.match(requests); System.out.println(res.get("result")); } catch (FileNotFoundException e) { e.printStackTrace(); return R.error("文件不存在"); } catch (IOException e) { e.printStackTrace(); } return R.ok().put("data", com.alibaba.fastjson.JSONObject.parse(res.get("result").toString())); }
@IgnoreAuth @RequestMapping("/option/{tableName}/{columnName}") public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,String level,String parent) { Map<String, Object> params = new HashMap<String, Object>();
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
@RestController @RequestMapping("/gangwei") public class GangweiController { @Autowired private GangweiService gangweiService;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
@RestController @RequestMapping("/gonggaoxinxi") public class GonggaoxinxiController { @Autowired private GonggaoxinxiService gonggaoxinxiService;
@RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,GonggaoxinxiEntity gonggaoxinxi, HttpServletRequest request){ EntityWrapper<GonggaoxinxiEntity> ew = new EntityWrapper<GonggaoxinxiEntity>(); PageUtils page = gonggaoxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gonggaoxinxi), params), params));
return R.ok().put("data", page); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| 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()){
HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData("attachment", fileName); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED); } } catch (IOException e) { e.printStackTrace(); } return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR); } }
@Component
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
@RequestMapping("/save") public R save(@RequestBody GangweiEntity gangwei, HttpServletRequest request){ gangwei.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); gangweiService.insert(gangwei); return R.ok(); }
@RequestMapping("/add") public R add(@RequestBody GangweiEntity gangwei, HttpServletRequest request){ gangwei.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); gangweiService.insert(gangwei); return R.ok(); }
@RequestMapping("/update") public R update(@RequestBody GangweiEntity gangwei, HttpServletRequest request){ gangweiService.updateById(gangwei); return R.ok(); }
@RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ gangweiService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); }
@RequestMapping("/remind/{columnName}/{type}")
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=351524512608201ng
https://javayms.pages.dev?id=351524512608201ng