diff --git a/src/main/java/com/jsl/oa/common/constant/ReviewConstants.java b/src/main/java/com/jsl/oa/common/constant/ReviewConstants.java new file mode 100644 index 0000000..42ffd47 --- /dev/null +++ b/src/main/java/com/jsl/oa/common/constant/ReviewConstants.java @@ -0,0 +1,23 @@ +package com.jsl.oa.common.constant; + + +/** + *

Review常量类

+ *
+ * 用于存放审核信息的审批状态常量 + * + * @version v1.1.0 + * @since v1.1.0 + * @author zrx_hhh + */ +public class ReviewConstants { + + public static final int NOT_APPROVED = 0; + + public static final int APPROVED = 1; + + public static final int PENDING = 2; + +} + + diff --git a/src/main/java/com/jsl/oa/controllers/ReviewController.java b/src/main/java/com/jsl/oa/controllers/ReviewController.java index dff99f8..197462d 100644 --- a/src/main/java/com/jsl/oa/controllers/ReviewController.java +++ b/src/main/java/com/jsl/oa/controllers/ReviewController.java @@ -5,7 +5,6 @@ import com.jsl.oa.utils.BaseResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; @@ -26,16 +25,29 @@ public class ReviewController { private final ReviewService reviewService; /** - * @Description: 获取我的审核列表 + * @Description: 获取审核记录列表 * @Date: 2024/4/11 * @Param request: **/ - @GetMapping("/review/getMyReview") - public BaseResponse getUserReview(@RequestParam Long projectId, HttpServletRequest request) { + @GetMapping("/review/getReviewRecords") + public BaseResponse getUserReviewRecords(HttpServletRequest request) { log.info("请求接口[GET]: /review/getMyReview"); - return reviewService.getUserReview(projectId, request); + return reviewService.getUserReview(request); } + + /** + * @Description: 获取我的审核数据 + * @Date: 2024/4/12 + * @Param request: + **/ + @GetMapping("/review/getMyReview") + public BaseResponse getMyReview(HttpServletRequest request) { + log.info("请求接口[GET]: /review/getMyReview"); + return reviewService.getUserPendingApprovalReview(request); + } + + } diff --git a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java index ea2613e..604c048 100644 --- a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java @@ -12,10 +12,19 @@ public interface ReviewMapper { + "AND is_delete = 0") List selectAllReviewFromProject(Long projectId); + @Select("SELECT * FROM organize_oa.oa_review WHERE project_id = #{projectId}" + + "AND is_delete = 0 AND review_result = #{result}") + List selectApprovedResultReviewFromProject(Long projectId, Integer result); + @Select("SELECT * FROM organize_oa.oa_review WHERE " + "project_subsystem_id = #{subsystemId} AND is_delete = 0") List selectReviewFromSubsystem(Long subsystemId); + @Select("SELECT * FROM organize_oa.oa_review WHERE " + + "project_subsystem_id = #{subsystemId} " + + "AND is_delete = 0 AND review_result = #{result}") + List selectApprovedResultReviewsFromSubsystem(Long subsystemId, Integer result); + @Select("SELECT * FROM organize_oa.oa_review WHERE " + "project_submodule_id = #{subsystemId} AND is_delete = 0") List selectReviewFromSubmodule(Long submoduleId); diff --git a/src/main/java/com/jsl/oa/services/ReviewService.java b/src/main/java/com/jsl/oa/services/ReviewService.java index af5b9a2..acd3c04 100644 --- a/src/main/java/com/jsl/oa/services/ReviewService.java +++ b/src/main/java/com/jsl/oa/services/ReviewService.java @@ -7,6 +7,8 @@ import javax.servlet.http.HttpServletRequest; public interface ReviewService { - BaseResponse getUserReview(Long projectId, HttpServletRequest request); + BaseResponse getUserPendingApprovalReview(HttpServletRequest request); + + BaseResponse getUserReview(HttpServletRequest request); } diff --git a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java index 2157ff6..9ddcd42 100644 --- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java @@ -1,6 +1,7 @@ package com.jsl.oa.services.impl; +import com.jsl.oa.common.constant.ReviewConstants; import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.ReviewDAO; import com.jsl.oa.dao.UserDAO; @@ -20,6 +21,8 @@ import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; @Slf4j @@ -36,7 +39,65 @@ public class ReviewServiceImpl implements ReviewService { @Override - public BaseResponse getUserReview(Long projectId, HttpServletRequest request) { + public BaseResponse getUserPendingApprovalReview(HttpServletRequest request) { + log.info("\t> 执行 Service 层 ReviewService.getUserPendingApprovalReview 方法"); + + //获取用户 + Long userId = Processing.getAuthHeaderToUserId(request); + + //存储审核数据的数组 + List reviewData = new ArrayList<>(); + + //先获取用户为项目负责人的项目列表 + projectDAO.getProjectByPrincipalUser(userId); + + //先从用户为 项目负责人 的项目中获取对应 审核信息 + for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) { + //查询每个项目下所有的审核信息 + List reviewDOS = reviewMapper. + selectApprovedResultReviewFromProject(projectDO.getId(), + ReviewConstants.PENDING); + //封装VO类 + reviewData.addAll(encapsulateArrayClass(reviewDOS)); + } + + //在从用户为 子系统负责人 的项目中获取对应 审核信息 + for (ProjectWorkDO projectWorkDO : projectDAO.getAllSubsystemByUserId(userId)) { + //查询每个项目下状态为2的审核信息 + List reviewDOS = reviewMapper. + selectApprovedResultReviewsFromSubsystem(projectWorkDO.getId(), + ReviewConstants.PENDING); + //封装VO类 + reviewData.addAll(encapsulateArrayClass(reviewDOS)); + } + + + //在从用户为 子模块负责人 的项目中获取对应 审核信息 + for (ProjectWorkDO projectWorkDO : projectDAO.getAllSubmoduleByUserId(userId)) { + //查询每个项目下所有的审核信息 + List reviewDOS = reviewMapper. + selectApprovedResultReviewsFromSubsystem(projectWorkDO.getId(), + ReviewConstants.PENDING); + //封装VO类 + reviewData.addAll(encapsulateArrayClass(reviewDOS)); + } + + + //按照申请时间降序排序 + Collections.sort(reviewData, new Comparator() { + @Override + public int compare(ReviewVO review1, ReviewVO review2) { + return review2.getApplicationTime().compareTo(review1.getApplicationTime()); + } + }); + + return ResultUtil.success(reviewData); + } + + + + @Override + public BaseResponse getUserReview(HttpServletRequest request) { log.info("\t> 执行 Service 层 ReviewService.getUserReview 方法"); //获取用户 @@ -76,6 +137,14 @@ public class ReviewServiceImpl implements ReviewService { reviewData.addAll(encapsulateArrayClass(reviewDOS)); } + //按照申请时间降序排序 + Collections.sort(reviewData, new Comparator() { + @Override + public int compare(ReviewVO review1, ReviewVO review2) { + return review2.getApplicationTime().compareTo(review1.getApplicationTime()); + } + }); + return ResultUtil.success(reviewData); }