同样是SpringBoot,为何她的《企业微信的工作考勤系统》评分高出同学20分?

71 阅读4分钟

💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目

工作考勤系统介绍 《企业微信的工作考勤系统》面向大四计算机专业毕业设计,是一套基于B/S架构、以SpringBoot+MyBatis为核心后端、uni-app跨端框架为前端、MySQL持久化的轻量级企业级考勤解决方案;系统首页聚合待办打卡、最新公告与快捷入口,用户管理模块实现管理员、部门负责人与普通员工的分级权限与批量导入,系统管理提供字典、日志与菜单可视化配置;考勤信息管理按日、周、月统计迟到早退并生成图表,打卡管理借助微信小程序地理位置与安卓原生相机完成上下班签到签退,请假信息管理展示流转记录,请假申请支持自定义流程与多级审批;工作汇报管理按项目汇总日报、周报、月报,工作汇报支持富文本、图片及附件上传,通知公告实现全员或指定部门推送,系统设置可动态维护节假日、班次与考勤规则,个人中心同步显示个人考勤曲线,修改密码采用旧密码+短信双验证;整体通过RESTful接口实现前后端解耦,SpringBoot的自动配置与MyBatis-Plus代码生成器降低开发门槛,uni-app一套代码同时编译为微信小程序与安卓APK,MySQL事务与视图保证数据一致性,既满足毕设功能完整性要求,又具备二次扩展与真实企业落地的技术深度。

工作考勤系统演示视频

[演示视频ilibili.com/video/BV1VTbXz8EqQ/?spm_id_from=333.1387.homepage.video_card.click)

工作考勤系统演示图片

首页界面.png

登陆界面.png

用户管理.png

打卡管理.png

个人中心.png

工作汇报管理.png

考勤信息管理.png

请假信息管理.png

工作考勤系统代码展示

2
public Result doClock(HttpServletRequest req){
3
String userId = req.getHeader("userId");
4
String location = req.getParameter("location");
5
String photo = req.getParameter("photo");
6
LocalDateTime now = LocalDateTime.now();
7
String today = now.toLocalDate().toString();
8
Map<String,Object> param = new HashMap<>();
9
param.put("userId",userId);
10
param.put("date",today);
11
Attendance todayRec = attendanceMapper.selectToday(param);
12
if(todayRec==null){
13
todayRec = new Attendance();
14
todayRec.setUserId(userId);
15
todayRec.setWorkDate(LocalDate.parse(today));
16
todayRec.setClockIn(now);
17
todayRec.setClockInLocation(location);
18
todayRec.setClockInPhoto(photo);
19
attendanceMapper.insert(todayRec);
20
return Result.ok("上班打卡成功");
21
}else{
22
if(todayRec.getClockOut()!=null){
23
return Result.fail("今日已签退,不可重复");
24
}
25
long minutes = Duration.between(todayRec.getClockIn(),now).toMinutes();
26
if(minutes<1){
27
return Result.fail("两次打卡间隔过短");
28
}
29
todayRec.setClockOut(now);
30
todayRec.setClockOutLocation(location);
31
todayRec.setClockOutPhoto(photo);
32
long workMinutes = Duration.between(todayRec.getClockIn(),now).toMinutes();
33
todayRec.setWorkMinutes((int)workMinutes);
34
attendanceMapper.updateById(todayRec);
35
return Result.ok("下班打卡成功");
36
}
37
}
38
/* 核心功能2:请假申请-多级审批流程 */
39
public Result createLeave(HttpServletRequest req){
40
String userId = req.getHeader("userId");
41
Leave leave = new Leave();
42
leave.setUserId(userId);
43
leave.setType(req.getParameter("type"));
44
leave.setStartTime(LocalDateTime.parse(req.getParameter("startTime")));
45
leave.setEndTime(LocalDateTime.parse(req.getParameter("endTime")));
46
leave.setReason(req.getParameter("reason"));
47
leave.setStatus("待审批");
48
leaveMapper.insert(leave);
49
List
50
<User><LeaveFlow>
51
/* 核心功能3:工作汇报-日报提交与统计 */
52
public Result submitReport(HttpServletRequest req){
53
String userId = req.getHeader("userId");
54
String content = req.getParameter("content");
55
String images = req.getParameter("images");
56
LocalDate today = LocalDate.now();
57
Report exist = reportMapper.selectByUserAndDate(userId,today);
58
if(exist!=null){
59
return Result.fail("今日日报已提交");
60
}
61
Report report = new Report();
62
report.setUserId(userId);
63
report.setReportDate(today);
64
report.setContent(content);
65
report.setImages(images);
66
report.setCreateTime(LocalDateTime.now());
67
reportMapper.insert(report);
68
return Result.ok("日报提交成功");
69
}
70
public List
71
<Report>

工作考勤系统文档展示

文档.png

💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目