基于javaweb的SpringBootoa办公管理系统oa管理系统(java+springboot+vue+maven+mybatis+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

590023442402

000023452402

010023452402

020023452402

030023452402

040023452402

基于javaweb的SpringBootoa办公管理系统oa管理系统(java+springboot+vue+maven+mybatis+mysql)

用户分为:经理(管理员)、主管、员工

一、项目运行 环境配置:

Jdk1.8 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。

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
                    PrintWriter out = response.getWriter();
out.write("{\"status\":\"error\",\"message\":\"授权已过期,请重新登录。\"}");
out.flush();
out.close();
})
.accessDeniedHandler((request, response, exception) -> {
response.setContentType("application/json;charset=utf-8");
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
PrintWriter out = response.getWriter();
out.write("{\"status\":\"error\",\"message\":\"您没有权限进行此操作!\"}");
out.flush();
out.close();
})
.and().logout()
.logoutUrl("/api/logout")
.logoutSuccessHandler((request, response, authentication) -> {
response.setContentType("application/json;charset=utf-8");
PrintWriter out = response.getWriter();
out.write("{\"status\":\"success\",\"message\":\"注销成功!\"}");
out.flush();
out.close();
})
.and().userDetailsService(userService)
.csrf().disable();
}
}
package cn.linter.oasys.controller;

@RestController
@RequestMapping("/api")
public class UserController {

private final UserService userService;

public UserController(UserService userService) {
this.userService = userService;
}

@GetMapping("/auth")
public Response<User> getAuthentication(@AuthenticationPrincipal User user) {
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

int result = userService.updateUser(user);
if (result == -1) {
return Response.error("用户名已存在!");
}
return Response.success("更新成功!");
}

@PreAuthorize("hasRole('经理')")
@PostMapping("/addUser")
public Response<?> addUser(@RequestBody User user) {

int result = userService.addUser(user);
if (result == -1) {
return Response.error("用户名已存在!");
}
return Response.success("添加成功!");
}

@PreAuthorize("hasRole('经理')")
@PostMapping("/deleteUser")
public Response<?> deleteUser(@RequestBody Integer[] ids) {
userService.deleteUser(ids);
return Response.success("删除成功!");
}

/**
* 修改密码
*/
@PostMapping("/updatePassword")
public Response<?> updatePassword(@RequestBody User user) {

System.out.println("执行了...");
int result = userService.updatePassword(user);
return Response.success("修改密码成功!");
}

/**
* 查询个人信息
*/
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


@RestController
@RequestMapping("/api")
public class AttendanceController {
private final AttendanceService attendanceService;

public AttendanceController(AttendanceService attendanceService) {
this.attendanceService = attendanceService;
}

@GetMapping("/getAttendanceTime")
public Response<List<String>> getAttendanceTime() {
Map<String, String> map = attendanceService.getAttendanceTime();
List<String> list = new ArrayList<>();
list.add(map.get("begin"));
list.add(map.get("end"));
return Response.success("获取成功!", list);
}

@GetMapping("/setAttendanceTime")
@PreAuthorize("hasAnyRole('主管','经理')")
public Response<?> setAttendanceTime(@RequestParam("begin") String begin, @RequestParam("end") String end) {
attendanceService.setAttendanceTime(begin, end);
return Response.success("设置成功!");
}

@GetMapping("/getAttendance")
public Response<Attendance> getAttendance(@AuthenticationPrincipal User user) {
Attendance attendance = attendanceService.getAttendance(user.getId());
return Response.success("获取成功!", attendance);
}

@GetMapping("/getAttendances")
public Response<List<String>> getAttendances(@AuthenticationPrincipal User user) {
List<String> attendances = attendanceService.getAttendances(user.getId());
return Response.success("获取成功!", attendances);
}

@GetMapping("/signIn")
public Response<?> signIn(@AuthenticationPrincipal User user) throws ParseException {
Map<String, String> map = attendanceService.getAttendanceTime();
LocalTime beginTime = LocalTime.parse(map.get("begin"));
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

@PostMapping("askLeave")
public Response<?> askLeave(@AuthenticationPrincipal User user, @RequestBody Leave leave) {
leave.setUser(user);
leaveService.askLeave(leave);
return Response.success("提交成功!");
}

@PostMapping("checkLeave")
@PreAuthorize("hasRole('经理')")
public Response<?> checkLeave(@RequestBody Leave leave) {
leaveService.checkLeave(leave);
return Response.success("提交成功!");
}


@GetMapping("getLeaves")
public Response<PageInfo<Leave>> getLeaves(@RequestParam(value = "pageNumber", defaultValue = "1") int pageNumber,
@RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
PageInfo<Leave> pageInfo = leaveService.getLeaves(pageNumber, pageSize);
return Response.success("获取成功!", pageInfo);
}
}
package cn.linter.oasys.controller;



@RestController
@RequestMapping("/api")
public class NoticeController {

private final NoticeService noticeService;

public NoticeController(NoticeService noticeService) {
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
public Response<User> getAuthentication(@AuthenticationPrincipal User user) {
user.setPassword(null);
return Response.success("获取成功!", user);
}

@GetMapping("/user/{id}")
public Response<User> getUser(@PathVariable("id") int id) {
User user = userService.getUserById(id);
if (user.getId() == 0) {
return Response.error("此用户不存在!");
}
return Response.success("获取成功!", user);
}

@PreAuthorize("hasRole('经理')")
@GetMapping("/getUsers")
public Response<PageInfo<User>> getUsers(@RequestParam(value = "pageNumber", defaultValue = "1") int pageNumber,
@RequestParam(value = "pageSize", defaultValue = "8") int pageSize) {

System.out.println("执行了...");
System.out.println("跳转到这个页数"+pageNumber);

PageInfo<User> pageInfo = userService.getUsers(pageNumber, pageSize);
return Response.success("获取成功!", pageInfo);
}

@PreAuthorize("hasRole('经理')")
@PostMapping("/updateUser")
public Response<?> updateUser(@RequestBody User user) {

int result = userService.updateUser(user);
if (result == -1) {
return Response.error("用户名已存在!");
}
return Response.success("更新成功!");
}

@PreAuthorize("hasRole('经理')")
@PostMapping("/addUser")
public Response<?> addUser(@RequestBody User user) {

int result = userService.addUser(user);
if (result == -1) {
return Response.error("用户名已存在!");
}
return Response.success("添加成功!");
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


@RestController
@RequestMapping("/api")
public class AttendanceController {
private final AttendanceService attendanceService;

public AttendanceController(AttendanceService attendanceService) {
this.attendanceService = attendanceService;
}

@GetMapping("/getAttendanceTime")
public Response<List<String>> getAttendanceTime() {
Map<String, String> map = attendanceService.getAttendanceTime();
List<String> list = new ArrayList<>();
list.add(map.get("begin"));
list.add(map.get("end"));
return Response.success("获取成功!", list);
}

@GetMapping("/setAttendanceTime")
@PreAuthorize("hasAnyRole('主管','经理')")
public Response<?> setAttendanceTime(@RequestParam("begin") String begin, @RequestParam("end") String end) {
attendanceService.setAttendanceTime(begin, end);
return Response.success("设置成功!");
}

@GetMapping("/getAttendance")


项目链接:
https://javayms.github.io?id=371122512008200mv
https://javayms.pages.dev?id=371122512008200mv