From 3b9a7cfe5e335a446a2cdf3334df3627901c9047 Mon Sep 17 00:00:00 2001
From: xiangZr-hhh <“2774915446@qq.com”>
Date: Fri, 12 Apr 2024 08:20:28 +0800
Subject: [PATCH 01/11] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0=E6=96=B0?=
=?UTF-8?q?=E4=B8=9A=E5=8A=A1=E5=8A=9F=E8=83=BD=E8=8E=B7=E5=8F=96=E6=88=91?=
=?UTF-8?q?=E7=9A=84=E5=AE=A1=E6=A0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../oa/common/constant/ReviewConstants.java | 23 ++++++
.../jsl/oa/controllers/ReviewController.java | 22 ++++--
.../java/com/jsl/oa/mapper/ReviewMapper.java | 9 +++
.../com/jsl/oa/services/ReviewService.java | 4 +-
.../oa/services/impl/ReviewServiceImpl.java | 71 ++++++++++++++++++-
5 files changed, 122 insertions(+), 7 deletions(-)
create mode 100644 src/main/java/com/jsl/oa/common/constant/ReviewConstants.java
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);
}
--
2.43.0
From ff34595002669108e9eb8f589d37963006f1b0b2 Mon Sep 17 00:00:00 2001
From: xiangZr-hhh <“2774915446@qq.com”>
Date: Fri, 12 Apr 2024 09:20:51 +0800
Subject: [PATCH 02/11] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0=E6=96=B0?=
=?UTF-8?q?=E4=B8=9A=E5=8A=A1=E5=8A=9F=E8=83=BD=E6=96=B0=E5=A2=9E=E5=AE=A1?=
=?UTF-8?q?=E6=A0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../oa/common/constant/ReviewConstants.java | 8 ++-
.../jsl/oa/controllers/ReviewController.java | 29 +++++++++
src/main/java/com/jsl/oa/dao/ReviewDAO.java | 45 ++++++++++++-
.../java/com/jsl/oa/mapper/ReviewMapper.java | 1 +
.../com/jsl/oa/model/vodata/ReviewAddVO.java | 29 +++++++++
.../com/jsl/oa/services/ReviewService.java | 2 +
.../oa/services/impl/ReviewServiceImpl.java | 49 ++++++++++----
.../com/jsl/oa/mapper/ReviewMapper.xml | 64 +++++++++++++++++++
8 files changed, 212 insertions(+), 15 deletions(-)
create mode 100644 src/main/java/com/jsl/oa/model/vodata/ReviewAddVO.java
create mode 100644 src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
diff --git a/src/main/java/com/jsl/oa/common/constant/ReviewConstants.java b/src/main/java/com/jsl/oa/common/constant/ReviewConstants.java
index 42ffd47..029ff85 100644
--- a/src/main/java/com/jsl/oa/common/constant/ReviewConstants.java
+++ b/src/main/java/com/jsl/oa/common/constant/ReviewConstants.java
@@ -4,7 +4,7 @@ package com.jsl.oa.common.constant;
/**
* Review常量类
*
- * 用于存放审核信息的审批状态常量
+ * 用于存放审核信息的审批状态常量与类别常量
*
* @version v1.1.0
* @since v1.1.0
@@ -12,12 +12,18 @@ package com.jsl.oa.common.constant;
*/
public class ReviewConstants {
+// 审核状态 0:未通过;1:已通过;2:未审批
public static final int NOT_APPROVED = 0;
public static final int APPROVED = 1;
public static final int PENDING = 2;
+// 审核类型 0:子系统;1:子模块
+ public static final int SUBSYSTEM = 0;
+
+ public static final int SUBMODULE = 1;
+
}
diff --git a/src/main/java/com/jsl/oa/controllers/ReviewController.java b/src/main/java/com/jsl/oa/controllers/ReviewController.java
index 197462d..14f4f22 100644
--- a/src/main/java/com/jsl/oa/controllers/ReviewController.java
+++ b/src/main/java/com/jsl/oa/controllers/ReviewController.java
@@ -1,13 +1,21 @@
package com.jsl.oa.controllers;
+import com.jsl.oa.model.vodata.ReviewAddVO;
import com.jsl.oa.services.ReviewService;
import com.jsl.oa.utils.BaseResponse;
+import com.jsl.oa.utils.ErrorCode;
+import com.jsl.oa.utils.ResultUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
+import javax.validation.constraints.NotNull;
/**
* 审核控制器
@@ -48,6 +56,27 @@ public class ReviewController {
}
+ /**
+ * @Description: 新增审核申请
+ * @Date: 2024/4/12
+ * @Param null:
+ **/
+ @PostMapping("/review/add")
+ public BaseResponse addReview(@RequestBody @Validated ReviewAddVO reviewAddVO,
+ @NotNull BindingResult bindingResult,
+ HttpServletRequest request) {
+ log.info("请求接口[POST]: /review/add");
+
+ if (bindingResult.hasErrors()) {
+ return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR);
+ }
+
+ return reviewService.addReview(reviewAddVO, request);
+ }
+
+
+
+
}
diff --git a/src/main/java/com/jsl/oa/dao/ReviewDAO.java b/src/main/java/com/jsl/oa/dao/ReviewDAO.java
index 5309e98..85083bf 100644
--- a/src/main/java/com/jsl/oa/dao/ReviewDAO.java
+++ b/src/main/java/com/jsl/oa/dao/ReviewDAO.java
@@ -27,13 +27,54 @@ public class ReviewDAO {
private final ReviewMapper reviewMapper;
private final ProjectMapper projectMapper;
- public List getPrincipalUserReview(Long pid) {
- return reviewMapper.selectAllReviewFromProject(pid);
+
+ public List selectAllReviewFromProject(Long projectId) {
+ log.info("\t> 执行 DAO 层 ReviewDAO.selectAllReviewFromProject 方法");
+ log.info("\t\t> 从 MySQL 获取数据");
+ return reviewMapper.selectAllReviewFromProject(projectId);
}
+ public List selectApprovedResultReviewFromProject(Long projectId,
+ Integer result) {
+ log.info("\t> 执行 DAO 层 ReviewDAO.selectApprovedResultReviewFromProject 方法");
+ log.info("\t\t> 从 MySQL 获取数据");
+ return reviewMapper.selectApprovedResultReviewFromProject(projectId,
+ result);
+ }
+
+ public List selectReviewFromSubsystem(Long subsystemId) {
+ log.info("\t> 执行 DAO 层 ReviewDAO.selectReviewFromSubsystem 方法");
+ log.info("\t\t> 从 MySQL 获取数据");
+ return reviewMapper.selectReviewFromSubsystem(subsystemId);
+ }
+
+ public List selectApprovedResultReviewsFromSubsystem(Long subsystemId,
+ Integer result) {
+ log.info("\t> 执行 DAO 层 ReviewDAO.selectApprovedResultReviewsFromSubsystem 方法");
+ log.info("\t\t> 从 MySQL 获取数据");
+ return reviewMapper.selectApprovedResultReviewsFromSubsystem(subsystemId,
+ result);
+ }
+
+ public List selectReviewFromSubmodule(Long submoduleId) {
+ log.info("\t> 执行 DAO 层 ReviewDAO.selectReviewFromSubmodule 方法");
+ log.info("\t\t> 从 MySQL 获取数据");
+ return reviewMapper.selectReviewFromSubmodule(submoduleId);
+ }
+
+ public void addReview(ReviewDO reviewDO) {
+ log.info("\t> 执行 DAO 层 ReviewDAO.addReview 方法");
+ log.info("\t\t> 从 MySQL 插入数据");
+ reviewMapper.addReview(reviewDO);
+ }
+
+
public String getNameBySubproject(Long subId) {
+ log.info("\t> 执行 DAO 层 ReviewDAO.getNameBySubproject 方法");
+
if (subId != null) {
+ log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getProjectWorkById(subId).getName();
}
diff --git a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
index 604c048..541d3f5 100644
--- a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
+++ b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
@@ -32,5 +32,6 @@ public interface ReviewMapper {
@Select("SELECT * FROM organize_oa.oa_review WHERE id = #{id} AND is_delete = 0")
ReviewDO selectReviewById(Long id);
+ void addReview(ReviewDO reviewDO);
}
diff --git a/src/main/java/com/jsl/oa/model/vodata/ReviewAddVO.java b/src/main/java/com/jsl/oa/model/vodata/ReviewAddVO.java
new file mode 100644
index 0000000..640fcc3
--- /dev/null
+++ b/src/main/java/com/jsl/oa/model/vodata/ReviewAddVO.java
@@ -0,0 +1,29 @@
+package com.jsl.oa.model.vodata;
+
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class ReviewAddVO {
+
+ //申请名称
+ @NotBlank(message = "审核名称不能为空")
+ private String name;
+ //申请理由
+ @NotBlank(message = "申请理由不能为空")
+ private String content;
+ //申请的项目id
+ @NotNull(message = "项目id不能为空")
+ private Long projectId;
+ //申请的子系统id
+ @NotNull(message = "子系统id不能为空")
+ private Long projectSubsystemId;
+ //申请的子模块id
+ private Long projectSubmoduleId;
+
+}
+
+
diff --git a/src/main/java/com/jsl/oa/services/ReviewService.java b/src/main/java/com/jsl/oa/services/ReviewService.java
index acd3c04..606b3eb 100644
--- a/src/main/java/com/jsl/oa/services/ReviewService.java
+++ b/src/main/java/com/jsl/oa/services/ReviewService.java
@@ -1,6 +1,7 @@
package com.jsl.oa.services;
+import com.jsl.oa.model.vodata.ReviewAddVO;
import com.jsl.oa.utils.BaseResponse;
import javax.servlet.http.HttpServletRequest;
@@ -11,4 +12,5 @@ public interface ReviewService {
BaseResponse getUserReview(HttpServletRequest request);
+ BaseResponse addReview(ReviewAddVO reviewAddVO, 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 9ddcd42..04d3012 100644
--- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
@@ -5,11 +5,11 @@ 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;
-import com.jsl.oa.mapper.ReviewMapper;
import com.jsl.oa.mapper.UserMapper;
import com.jsl.oa.model.dodata.ProjectDO;
import com.jsl.oa.model.dodata.ProjectWorkDO;
import com.jsl.oa.model.dodata.ReviewDO;
+import com.jsl.oa.model.vodata.ReviewAddVO;
import com.jsl.oa.model.vodata.ReviewVO;
import com.jsl.oa.services.ReviewService;
import com.jsl.oa.utils.BaseResponse;
@@ -20,10 +20,7 @@ import lombok.extern.slf4j.Slf4j;
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;
+import java.util.*;
@Slf4j
@Service
@@ -35,7 +32,6 @@ public class ReviewServiceImpl implements ReviewService {
private final ProjectDAO projectDAO;
private final UserMapper userMapper;
- private final ReviewMapper reviewMapper;
@Override
@@ -54,7 +50,7 @@ public class ReviewServiceImpl implements ReviewService {
//先从用户为 项目负责人 的项目中获取对应 审核信息
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
//查询每个项目下所有的审核信息
- List reviewDOS = reviewMapper.
+ List reviewDOS = reviewDAO.
selectApprovedResultReviewFromProject(projectDO.getId(),
ReviewConstants.PENDING);
//封装VO类
@@ -64,7 +60,7 @@ public class ReviewServiceImpl implements ReviewService {
//在从用户为 子系统负责人 的项目中获取对应 审核信息
for (ProjectWorkDO projectWorkDO : projectDAO.getAllSubsystemByUserId(userId)) {
//查询每个项目下状态为2的审核信息
- List reviewDOS = reviewMapper.
+ List reviewDOS = reviewDAO.
selectApprovedResultReviewsFromSubsystem(projectWorkDO.getId(),
ReviewConstants.PENDING);
//封装VO类
@@ -75,7 +71,7 @@ public class ReviewServiceImpl implements ReviewService {
//在从用户为 子模块负责人 的项目中获取对应 审核信息
for (ProjectWorkDO projectWorkDO : projectDAO.getAllSubmoduleByUserId(userId)) {
//查询每个项目下所有的审核信息
- List reviewDOS = reviewMapper.
+ List reviewDOS = reviewDAO.
selectApprovedResultReviewsFromSubsystem(projectWorkDO.getId(),
ReviewConstants.PENDING);
//封装VO类
@@ -112,7 +108,7 @@ public class ReviewServiceImpl implements ReviewService {
//先从用户为 项目负责人 的项目中获取对应 审核信息
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
//查询每个项目下所有的审核信息
- List reviewDOS = reviewMapper.
+ List reviewDOS = reviewDAO.
selectAllReviewFromProject(projectDO.getId());
//封装VO类
reviewData.addAll(encapsulateArrayClass(reviewDOS));
@@ -121,7 +117,7 @@ public class ReviewServiceImpl implements ReviewService {
//在从用户为 子系统负责人 的项目中获取对应 审核信息
for (ProjectWorkDO projectWorkDO : projectDAO.getAllSubsystemByUserId(userId)) {
//查询每个项目下所有的审核信息
- List reviewDOS = reviewMapper.
+ List reviewDOS = reviewDAO.
selectReviewFromSubsystem(projectWorkDO.getId());
//封装VO类
reviewData.addAll(encapsulateArrayClass(reviewDOS));
@@ -131,7 +127,7 @@ public class ReviewServiceImpl implements ReviewService {
//在从用户为 子模块负责人 的项目中获取对应 审核信息
for (ProjectWorkDO projectWorkDO : projectDAO.getAllSubmoduleByUserId(userId)) {
//查询每个项目下所有的审核信息
- List reviewDOS = reviewMapper.
+ List reviewDOS = reviewDAO.
selectReviewFromSubmodule(projectWorkDO.getId());
//封装VO类
reviewData.addAll(encapsulateArrayClass(reviewDOS));
@@ -149,6 +145,35 @@ public class ReviewServiceImpl implements ReviewService {
}
+
+ @Override
+ public BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request) {
+ log.info("\t> 执行 Service 层 ReviewService.addReview 方法");
+
+ //获取用户
+ Long userId = Processing.getAuthHeaderToUserId(request);
+
+ //定义要添加的审核实体类
+ ReviewDO reviewDO = new ReviewDO();
+ //现将属性相同的值拷贝
+ Processing.copyProperties(reviewAddVO, reviewDO);
+
+ //定义审核的类型(子模块id为空则为 子系统类型,否则为子模块类型)
+ if (reviewAddVO.getProjectSubmoduleId() == null) {
+ reviewDO.setCategory(ReviewConstants.SUBSYSTEM);
+ } else if (reviewAddVO.getProjectSubmoduleId() != null) {
+ reviewDO.setCategory(ReviewConstants.SUBMODULE);
+ }
+
+ //定义申请者id
+ reviewDO.setSenderId(userId);
+ //添加数据
+ reviewDAO.addReview(reviewDO);
+
+ return ResultUtil.success("申请成功");
+ }
+
+
/**
* @Description: 封装审核的VO类
* @Date: 2024/4/11
diff --git a/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml b/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
new file mode 100644
index 0000000..2a59034
--- /dev/null
+++ b/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+ insert into organize_oa.oa_review
+
+
+
+ name = #{name},
+
+
+
+ content = #{content},
+
+
+
+ sender_id = #{sender_id},
+
+
+
+ recipient_id = #{recipient_id},
+
+
+
+ category = #{category},
+
+
+
+ project_id = #{project_id},
+
+
+
+ project_subsystem_id = #{project_subsystem_id},
+
+
+
+ project_submodule_id = #{project_submodule_id},
+
+
+
+ application_time = #{application_time},
+
+
+
+ review_time = #{review_time},
+
+
+
+ review_result = #{review_result},
+
+
+
+ is_delete = #{is_delete},
+
+
+
+ where id = #{id}
+
+
+
+
\ No newline at end of file
--
2.43.0
From ec45c0b233094e3de7fe0b4e8e0b7a1e7dd840d4 Mon Sep 17 00:00:00 2001
From: xiangZr-hhh <“2774915446@qq.com”>
Date: Fri, 12 Apr 2024 14:28:28 +0800
Subject: [PATCH 03/11] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0=E6=96=B0?=
=?UTF-8?q?=E4=B8=9A=E5=8A=A1=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9=E5=AE=A1?=
=?UTF-8?q?=E6=A0=B8=E7=8A=B6=E6=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../oa/common/constant/ReviewConstants.java | 10 ++--
.../jsl/oa/controllers/ReviewController.java | 21 +++++--
src/main/java/com/jsl/oa/dao/ReviewDAO.java | 16 +++++-
.../java/com/jsl/oa/mapper/ReviewMapper.java | 6 +-
.../com/jsl/oa/model/dodata/ReviewDO.java | 6 +-
.../oa/model/vodata/ReviewUpdateResultVO.java | 23 ++++++++
.../com/jsl/oa/services/ReviewService.java | 3 +
.../oa/services/impl/ReviewServiceImpl.java | 28 +++++++++
src/main/java/com/jsl/oa/utils/ErrorCode.java | 3 +-
.../java/com/jsl/oa/utils/Processing.java | 4 +-
.../com/jsl/oa/mapper/ReviewMapper.xml | 57 +++++++++++++++++++
11 files changed, 158 insertions(+), 19 deletions(-)
create mode 100644 src/main/java/com/jsl/oa/model/vodata/ReviewUpdateResultVO.java
diff --git a/src/main/java/com/jsl/oa/common/constant/ReviewConstants.java b/src/main/java/com/jsl/oa/common/constant/ReviewConstants.java
index 029ff85..3468ef4 100644
--- a/src/main/java/com/jsl/oa/common/constant/ReviewConstants.java
+++ b/src/main/java/com/jsl/oa/common/constant/ReviewConstants.java
@@ -13,16 +13,16 @@ package com.jsl.oa.common.constant;
public class ReviewConstants {
// 审核状态 0:未通过;1:已通过;2:未审批
- public static final int NOT_APPROVED = 0;
+ public static final short NOT_APPROVED = 0;
- public static final int APPROVED = 1;
+ public static final short APPROVED = 1;
- public static final int PENDING = 2;
+ public static final short PENDING = 2;
// 审核类型 0:子系统;1:子模块
- public static final int SUBSYSTEM = 0;
+ public static final short SUBSYSTEM = 0;
- public static final int SUBMODULE = 1;
+ public static final short SUBMODULE = 1;
}
diff --git a/src/main/java/com/jsl/oa/controllers/ReviewController.java b/src/main/java/com/jsl/oa/controllers/ReviewController.java
index 14f4f22..d0d1659 100644
--- a/src/main/java/com/jsl/oa/controllers/ReviewController.java
+++ b/src/main/java/com/jsl/oa/controllers/ReviewController.java
@@ -1,6 +1,7 @@
package com.jsl.oa.controllers;
import com.jsl.oa.model.vodata.ReviewAddVO;
+import com.jsl.oa.model.vodata.ReviewUpdateResultVO;
import com.jsl.oa.services.ReviewService;
import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode;
@@ -9,10 +10,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.NotNull;
@@ -76,6 +74,21 @@ public class ReviewController {
+ @PutMapping("/review/updateReview")
+ public BaseResponse updateReview(@RequestBody @Validated ReviewUpdateResultVO reviewUpdateResultVOVO,
+ @NotNull BindingResult bindingResult,
+ HttpServletRequest request) {
+ log.info("请求接口[PUT]: /review/updateReview");
+
+ if (bindingResult.hasErrors()) {
+ return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR);
+ }
+
+ return reviewService.updateReviewResult(reviewUpdateResultVOVO, request);
+ }
+
+
+
}
diff --git a/src/main/java/com/jsl/oa/dao/ReviewDAO.java b/src/main/java/com/jsl/oa/dao/ReviewDAO.java
index 85083bf..11f8989 100644
--- a/src/main/java/com/jsl/oa/dao/ReviewDAO.java
+++ b/src/main/java/com/jsl/oa/dao/ReviewDAO.java
@@ -35,7 +35,7 @@ public class ReviewDAO {
}
public List selectApprovedResultReviewFromProject(Long projectId,
- Integer result) {
+ short result) {
log.info("\t> 执行 DAO 层 ReviewDAO.selectApprovedResultReviewFromProject 方法");
log.info("\t\t> 从 MySQL 获取数据");
return reviewMapper.selectApprovedResultReviewFromProject(projectId,
@@ -49,7 +49,7 @@ public class ReviewDAO {
}
public List selectApprovedResultReviewsFromSubsystem(Long subsystemId,
- Integer result) {
+ short result) {
log.info("\t> 执行 DAO 层 ReviewDAO.selectApprovedResultReviewsFromSubsystem 方法");
log.info("\t\t> 从 MySQL 获取数据");
return reviewMapper.selectApprovedResultReviewsFromSubsystem(subsystemId,
@@ -68,6 +68,18 @@ public class ReviewDAO {
reviewMapper.addReview(reviewDO);
}
+ public ReviewDO selectReviewById(Long id) {
+ log.info("\t> 执行 DAO 层 ReviewDAO.selectReviewById 方法");
+ log.info("\t\t> 从 MySQL 获取数据");
+ return reviewMapper.selectReviewById(id);
+ }
+
+ public void updateReview(ReviewDO reviewDO) {
+ log.info("\t> 执行 DAO 层 ReviewDAO.updateReview 方法");
+ log.info("\t\t> 从 MySQL 更新数据");
+ reviewMapper.updateReview(reviewDO);
+ }
+
public String getNameBySubproject(Long subId) {
diff --git a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
index 541d3f5..f1ed6b8 100644
--- a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
+++ b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
@@ -14,7 +14,7 @@ public interface ReviewMapper {
@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);
+ List selectApprovedResultReviewFromProject(Long projectId, short result);
@Select("SELECT * FROM organize_oa.oa_review WHERE "
+ "project_subsystem_id = #{subsystemId} AND is_delete = 0")
@@ -23,7 +23,7 @@ public interface ReviewMapper {
@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);
+ List selectApprovedResultReviewsFromSubsystem(Long subsystemId, short result);
@Select("SELECT * FROM organize_oa.oa_review WHERE "
+ "project_submodule_id = #{subsystemId} AND is_delete = 0")
@@ -32,6 +32,8 @@ public interface ReviewMapper {
@Select("SELECT * FROM organize_oa.oa_review WHERE id = #{id} AND is_delete = 0")
ReviewDO selectReviewById(Long id);
+ void updateReview(ReviewDO reviewDO);
+
void addReview(ReviewDO reviewDO);
}
diff --git a/src/main/java/com/jsl/oa/model/dodata/ReviewDO.java b/src/main/java/com/jsl/oa/model/dodata/ReviewDO.java
index e4423d1..467c2e5 100644
--- a/src/main/java/com/jsl/oa/model/dodata/ReviewDO.java
+++ b/src/main/java/com/jsl/oa/model/dodata/ReviewDO.java
@@ -31,7 +31,7 @@ public class ReviewDO {
//审核者用户id
private Long recipientId;
//审核类别(0:子系统;1:子模块)
- private Integer category;
+ private Short category;
//申请的项目id
private Long projectId;
//申请的子系统id
@@ -43,9 +43,9 @@ public class ReviewDO {
//审核时间
private Date reviewTime;
//审核结果(0:未通过;1:通过;2:未审批)
- private Integer reviewResult;
+ private Short reviewResult;
//是否删除(0:未删除;1:已删除)
- private Integer isDelete;
+ private String isDelete;
}
diff --git a/src/main/java/com/jsl/oa/model/vodata/ReviewUpdateResultVO.java b/src/main/java/com/jsl/oa/model/vodata/ReviewUpdateResultVO.java
new file mode 100644
index 0000000..11d8741
--- /dev/null
+++ b/src/main/java/com/jsl/oa/model/vodata/ReviewUpdateResultVO.java
@@ -0,0 +1,23 @@
+package com.jsl.oa.model.vodata;
+
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class ReviewUpdateResultVO {
+
+ @NotNull
+ private Long id;
+
+ @NotNull
+ @Min(value = 0, message = "未通过:0,已通过:1,待审批:2")
+ @Max(value = 2, message = "未通过:0,已通过:1,待审批:2")
+ private Short result;
+
+
+}
+
+
diff --git a/src/main/java/com/jsl/oa/services/ReviewService.java b/src/main/java/com/jsl/oa/services/ReviewService.java
index 606b3eb..0457d36 100644
--- a/src/main/java/com/jsl/oa/services/ReviewService.java
+++ b/src/main/java/com/jsl/oa/services/ReviewService.java
@@ -2,6 +2,7 @@ package com.jsl.oa.services;
import com.jsl.oa.model.vodata.ReviewAddVO;
+import com.jsl.oa.model.vodata.ReviewUpdateResultVO;
import com.jsl.oa.utils.BaseResponse;
import javax.servlet.http.HttpServletRequest;
@@ -13,4 +14,6 @@ public interface ReviewService {
BaseResponse getUserReview(HttpServletRequest request);
BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request);
+
+ BaseResponse updateReviewResult(ReviewUpdateResultVO reviewUpdateResultVOVO, 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 04d3012..74b72c1 100644
--- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
@@ -10,9 +10,11 @@ import com.jsl.oa.model.dodata.ProjectDO;
import com.jsl.oa.model.dodata.ProjectWorkDO;
import com.jsl.oa.model.dodata.ReviewDO;
import com.jsl.oa.model.vodata.ReviewAddVO;
+import com.jsl.oa.model.vodata.ReviewUpdateResultVO;
import com.jsl.oa.model.vodata.ReviewVO;
import com.jsl.oa.services.ReviewService;
import com.jsl.oa.utils.BaseResponse;
+import com.jsl.oa.utils.ErrorCode;
import com.jsl.oa.utils.Processing;
import com.jsl.oa.utils.ResultUtil;
import lombok.RequiredArgsConstructor;
@@ -174,6 +176,32 @@ public class ReviewServiceImpl implements ReviewService {
}
+
+ @Override
+ public BaseResponse updateReviewResult(ReviewUpdateResultVO reviewUpdateResultVO, HttpServletRequest request) {
+
+ //获取当前用户
+ Long userId = Processing.getAuthHeaderToUserId(request);
+
+ //获取对应审核信息
+ ReviewDO reviewDO = reviewDAO.selectReviewById(reviewUpdateResultVO.getId());
+
+ if (reviewDO == null) {
+ return ResultUtil.error(ErrorCode.REVIEW_NOT_EXIST);
+ }
+
+ //设置对应属性
+ reviewDO.setReviewTime(new Date());
+ reviewDO.setRecipientId(userId);
+ reviewDO.setReviewResult(reviewUpdateResultVO.getResult());
+
+ //更新数据
+ reviewDAO.updateReview(reviewDO);
+
+ return ResultUtil.success();
+ }
+
+
/**
* @Description: 封装审核的VO类
* @Date: 2024/4/11
diff --git a/src/main/java/com/jsl/oa/utils/ErrorCode.java b/src/main/java/com/jsl/oa/utils/ErrorCode.java
index bb01d53..05e988d 100755
--- a/src/main/java/com/jsl/oa/utils/ErrorCode.java
+++ b/src/main/java/com/jsl/oa/utils/ErrorCode.java
@@ -52,7 +52,8 @@ public enum ErrorCode {
PROJECT_CUTTING_NOT_EXIST("ProjectCuttingNotExist", 40017, "项目分割模块不存在"),
PROJECT_USER_NOT_EXIST("ProjectUserNotExist", 40018, "用户项目表无对应记录"),
PROJECT_FILE_JSON_ERROR("ProjectFileJsonError", 40019, "项目文件json格式错误"),
- PROJECT_NOT_USER("ProjectNotUser", 40020, "项目无此用户");
+ PROJECT_NOT_USER("ProjectNotUser", 40020, "项目无此用户"),
+ REVIEW_NOT_EXIST("ReviewNotExit", 40101, "未找到对应审核信息");
private final String output;
diff --git a/src/main/java/com/jsl/oa/utils/Processing.java b/src/main/java/com/jsl/oa/utils/Processing.java
index ab81654..b588f47 100755
--- a/src/main/java/com/jsl/oa/utils/Processing.java
+++ b/src/main/java/com/jsl/oa/utils/Processing.java
@@ -434,7 +434,7 @@ public class Processing {
* @Date: 2024/4/11
* @Param category:
**/
- public static String turnReviewCategory(Integer category) {
+ public static String turnReviewCategory(short category) {
switch (category) {
case 0:
return "子系统";
@@ -445,7 +445,7 @@ public class Processing {
}
}
- public static String turnReviewResult(Integer result) {
+ public static String turnReviewResult(short result) {
switch (result) {
case 0:
return "已拒绝";
diff --git a/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml b/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
index 2a59034..492ae12 100644
--- a/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
+++ b/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
@@ -61,4 +61,61 @@
+
+ update organize_oa.oa_review
+
+
+
+ name = #{name},
+
+
+
+ content = #{content},
+
+
+
+ sender_id = #{sender_id},
+
+
+
+ recipient_id = #{recipient_id},
+
+
+
+ category = #{category},
+
+
+
+ project_id = #{project_id},
+
+
+
+ project_subsystem_id = #{project_subsystem_id},
+
+
+
+ project_submodule_id = #{project_submodule_id},
+
+
+
+ application_time = #{application_time},
+
+
+
+ review_time = #{review_time},
+
+
+
+ review_result = #{review_result},
+
+
+
+ is_delete = #{is_delete},
+
+
+
+ where id = #{id}
+
+
+
\ No newline at end of file
--
2.43.0
From 49247fd88fde72bdbecd77794923492f96c320f4 Mon Sep 17 00:00:00 2001
From: xiangZr-hhh <“2774915446@qq.com”>
Date: Fri, 12 Apr 2024 18:42:06 +0800
Subject: [PATCH 04/11] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=AE=A1=E6=A0=B8?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
修正xml文件的部分bug
---
.../java/com/jsl/oa/mapper/ProjectMapper.java | 13 +-
.../java/com/jsl/oa/mapper/ReviewMapper.java | 4 +-
.../oa/services/impl/ReviewServiceImpl.java | 17 +-
.../com/jsl/oa/mapper/ReviewMapper.xml | 182 ++++++++++--------
4 files changed, 124 insertions(+), 92 deletions(-)
diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java
index fd80579..7504948 100644
--- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java
+++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java
@@ -108,9 +108,18 @@ public interface ProjectMapper {
+ "where DATE(deadline) = DATE(#{threeDayLater}) and is_finish != 1")
List getProjectWorkByTime(LocalDateTime threeDayLater);
+ @Select("select * from organize_oa.oa_project_work where "
+ + "principal_id=#{uid} "
+ + "AND is_delete = 0 AND type = 1")
List getAllSubmoduleByUserId(Long uid);
- List getProjectByPrincipalUser(Long uid);
-
+ @Select("select * from organize_oa.oa_project_work where "
+ + "principal_id=#{uid} "
+ + "AND is_delete = 0 AND type = 0")
List getAllSubsystemByUserId(Long uid);
+
+ @Select("select * from organize_oa.oa_project where "
+ + "principal_id=#{uid} "
+ + "AND is_delete = 0")
+ List getProjectByPrincipalUser(Long uid);
}
diff --git a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
index f1ed6b8..144a832 100644
--- a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
+++ b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
@@ -8,11 +8,11 @@ import java.util.List;
@Mapper
public interface ReviewMapper {
- @Select("SELECT * FROM organize_oa.oa_review WHERE project_id = #{projectId}"
+ @Select("SELECT * FROM organize_oa.oa_review WHERE project_id = #{projectId} "
+ "AND is_delete = 0")
List selectAllReviewFromProject(Long projectId);
- @Select("SELECT * FROM organize_oa.oa_review WHERE project_id = #{projectId}"
+ @Select("SELECT * FROM organize_oa.oa_review WHERE project_id = #{projectId} "
+ "AND is_delete = 0 AND review_result = #{result}")
List selectApprovedResultReviewFromProject(Long projectId, short result);
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 74b72c1..4e7993b 100644
--- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
@@ -93,7 +93,6 @@ public class ReviewServiceImpl implements ReviewService {
}
-
@Override
public BaseResponse getUserReview(HttpServletRequest request) {
log.info("\t> 执行 Service 层 ReviewService.getUserReview 方法");
@@ -147,7 +146,6 @@ public class ReviewServiceImpl implements ReviewService {
}
-
@Override
public BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request) {
log.info("\t> 执行 Service 层 ReviewService.addReview 方法");
@@ -176,7 +174,6 @@ public class ReviewServiceImpl implements ReviewService {
}
-
@Override
public BaseResponse updateReviewResult(ReviewUpdateResultVO reviewUpdateResultVO, HttpServletRequest request) {
@@ -216,14 +213,19 @@ public class ReviewServiceImpl implements ReviewService {
ReviewVO reviewVO = new ReviewVO();
// 现将相同的属性赋值
Processing.copyProperties(reviewDO, reviewVO);
-// 赋值其他属性
+// 赋值其他非空属性
reviewVO.setCategory(Processing.turnReviewCategory(reviewDO.getCategory()))
.setSenderName(userMapper.getUserById(reviewDO.getSenderId()).getNickname())
- .setRecipientName(userMapper.getUserById(reviewDO.getRecipientId()).getNickname())
.setProjectName(projectDAO.getProjectById(reviewDO.getProjectId()).getName())
.setSubsystemName(reviewDAO.getNameBySubproject(reviewDO.getProjectSubsystemId()))
- .setSubmoduleName(reviewDAO.getNameBySubproject(reviewDO.getProjectSubmoduleId()))
.setResult(Processing.turnReviewResult(reviewDO.getReviewResult()));
+// 赋值可为空属性并进行判断
+ if (reviewDO.getRecipientId() != null) {
+ reviewVO.setRecipientName(userMapper.getUserById(reviewDO.getRecipientId()).getNickname());
+ }
+ if (reviewDO.getProjectSubmoduleId() != null) {
+ reviewVO.setSubmoduleName(reviewDAO.getNameBySubproject(reviewDO.getProjectSubmoduleId()));
+ }
// 将封装好的结果添加到结果集
resultData.add(reviewVO);
}
@@ -232,9 +234,6 @@ public class ReviewServiceImpl implements ReviewService {
}
-
-
-
}
diff --git a/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml b/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
index 492ae12..1d4c6ed 100644
--- a/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
+++ b/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
@@ -4,118 +4,142 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
- insert into organize_oa.oa_review
-
-
+
+ INSERT INTO organize_oa.oa_review
+
- name = #{name},
+ name,
-
- content = #{content},
+ content,
-
-
- sender_id = #{sender_id},
+
+ sender_id,
-
-
- recipient_id = #{recipient_id},
+
+ recipient_id,
-
- category = #{category},
+ category,
-
-
- project_id = #{project_id},
+
+ project_id,
-
-
- project_subsystem_id = #{project_subsystem_id},
+
+ project_subsystem_id,
-
-
- project_submodule_id = #{project_submodule_id},
+
+ project_submodule_id,
-
-
- application_time = #{application_time},
+
+ application_time,
-
-
- review_time = #{review_time},
+
+ review_time,
-
-
- review_result = #{review_result},
+
+ review_result,
-
-
- is_delete = #{is_delete},
+
+ is_delete,
-
-
- where id = #{id}
+
+
+
+ #{name},
+
+
+ #{content},
+
+
+ #{senderId},
+
+
+ #{recipientId},
+
+
+ #{category},
+
+
+ #{projectId},
+
+
+ #{projectSubsystemId},
+
+
+ #{projectSubmoduleId},
+
+
+ #{applicationTime},
+
+
+ #{reviewTime},
+
+
+ #{reviewResult},
+
+
+ #{isDelete},
+
+
update organize_oa.oa_review
-
+
+
+ name = #{name},
+
-
- name = #{name},
-
+
+ content = #{content},
+
-
- content = #{content},
-
+
+ sender_id = #{senderId},
+
-
- sender_id = #{sender_id},
-
+
+ recipient_id = #{recipientId},
+
-
- recipient_id = #{recipient_id},
-
+
+ category = #{category},
+
-
- category = #{category},
-
+
+ project_id = #{projectId},
+
-
- project_id = #{project_id},
-
+
+ project_subsystem_id = #{projectSubsystemId},
+
-
- project_subsystem_id = #{project_subsystem_id},
-
+
+ project_submodule_id = #{projectSubmoduleId},
+
-
- project_submodule_id = #{project_submodule_id},
-
+
+ application_time = #{applicationTime},
+
-
- application_time = #{application_time},
-
+
+ review_time = #{reviewTime},
+
-
- review_time = #{review_time},
-
+
+ review_result = #{reviewResult},
+
-
- review_result = #{review_result},
-
-
-
- is_delete = #{is_delete},
-
-
-
+
+ is_delete = #{isDelete},
+
+
where id = #{id}
+
+
\ No newline at end of file
--
2.43.0
From 36964d44475e3d3461289e1816b62f6c41c34577 Mon Sep 17 00:00:00 2001
From: xiangZr-hhh <“2774915446@qq.com”>
Date: Fri, 12 Apr 2024 19:07:27 +0800
Subject: [PATCH 05/11] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E6=B7=BB=E5=8A=A0?=
=?UTF-8?q?=E5=AE=A1=E6=A0=B8=E4=BF=A1=E6=81=AF=E3=80=81=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?=E5=AE=A1=E6=A0=B8=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
添加审核信息接口:增加判断审核名称是否重复
获取审核信息接口:在子模块名称为空时,返回无,而不是返回null
---
src/main/java/com/jsl/oa/mapper/ReviewMapper.java | 2 ++
.../java/com/jsl/oa/services/impl/ReviewServiceImpl.java | 7 +++++++
2 files changed, 9 insertions(+)
diff --git a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
index 144a832..16dac5c 100644
--- a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
+++ b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
@@ -36,4 +36,6 @@ public interface ReviewMapper {
void addReview(ReviewDO reviewDO);
+ @Select("SELECT * FROM organize_oa.oa_review WHERE name = #{name} AND is_delete = 0")
+ List selectReviewByName(String name);
}
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 4e7993b..e92f5e0 100644
--- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
@@ -153,6 +153,11 @@ public class ReviewServiceImpl implements ReviewService {
//获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
+ //检查审核事项名称是否重复
+ if (!reviewDAO.checkNameIsExist(reviewAddVO.getName())) {
+ return ResultUtil.error(ErrorCode.REVIEW_NAME_REPEAT);
+ }
+
//定义要添加的审核实体类
ReviewDO reviewDO = new ReviewDO();
//现将属性相同的值拷贝
@@ -225,6 +230,8 @@ public class ReviewServiceImpl implements ReviewService {
}
if (reviewDO.getProjectSubmoduleId() != null) {
reviewVO.setSubmoduleName(reviewDAO.getNameBySubproject(reviewDO.getProjectSubmoduleId()));
+ } else {
+ reviewVO.setSubsystemName("无");
}
// 将封装好的结果添加到结果集
resultData.add(reviewVO);
--
2.43.0
From cd51b261e14a36addfd71b9d780d286a62a22f31 Mon Sep 17 00:00:00 2001
From: xiangZr-hhh <“2774915446@qq.com”>
Date: Fri, 12 Apr 2024 19:24:24 +0800
Subject: [PATCH 06/11] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E7=94=B3=E8=AF=B7?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
修正部分查询逻辑
---
.../oa/services/impl/ReviewServiceImpl.java | 53 +++++++++++++------
1 file changed, 38 insertions(+), 15 deletions(-)
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 e92f5e0..1323ea6 100644
--- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
@@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
+import java.util.stream.Collectors;
@Slf4j
@Service
@@ -43,8 +44,9 @@ public class ReviewServiceImpl implements ReviewService {
//获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
+
//存储审核数据的数组
- List reviewData = new ArrayList<>();
+ List reviewData = new ArrayList<>();
//先获取用户为项目负责人的项目列表
projectDAO.getProjectByPrincipalUser(userId);
@@ -56,7 +58,7 @@ public class ReviewServiceImpl implements ReviewService {
selectApprovedResultReviewFromProject(projectDO.getId(),
ReviewConstants.PENDING);
//封装VO类
- reviewData.addAll(encapsulateArrayClass(reviewDOS));
+ reviewData.addAll(reviewDOS);
}
//在从用户为 子系统负责人 的项目中获取对应 审核信息
@@ -66,7 +68,7 @@ public class ReviewServiceImpl implements ReviewService {
selectApprovedResultReviewsFromSubsystem(projectWorkDO.getId(),
ReviewConstants.PENDING);
//封装VO类
- reviewData.addAll(encapsulateArrayClass(reviewDOS));
+ reviewData.addAll(reviewDOS);
}
@@ -77,19 +79,30 @@ public class ReviewServiceImpl implements ReviewService {
selectApprovedResultReviewsFromSubsystem(projectWorkDO.getId(),
ReviewConstants.PENDING);
//封装VO类
- reviewData.addAll(encapsulateArrayClass(reviewDOS));
+ reviewData.addAll(reviewDOS);
}
+ //根据id进行去重
+ reviewData = reviewData.stream()
+ .collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
+ .values()
+ .stream()
+ .collect(Collectors.toList());
+
+
//按照申请时间降序排序
- Collections.sort(reviewData, new Comparator() {
+ Collections.sort(reviewData, new Comparator() {
@Override
- public int compare(ReviewVO review1, ReviewVO review2) {
+ public int compare(ReviewDO review1, ReviewDO review2) {
return review2.getApplicationTime().compareTo(review1.getApplicationTime());
}
});
- return ResultUtil.success(reviewData);
+ //封装对应VO类
+ List result = encapsulateArrayClass(reviewData);
+
+ return ResultUtil.success(result);
}
@@ -101,7 +114,7 @@ public class ReviewServiceImpl implements ReviewService {
Long userId = Processing.getAuthHeaderToUserId(request);
//存储审核数据的数组
- List reviewData = new ArrayList<>();
+ List reviewData = new ArrayList<>();
//先获取用户为项目负责人的项目列表
projectDAO.getProjectByPrincipalUser(userId);
@@ -112,7 +125,7 @@ public class ReviewServiceImpl implements ReviewService {
List reviewDOS = reviewDAO.
selectAllReviewFromProject(projectDO.getId());
//封装VO类
- reviewData.addAll(encapsulateArrayClass(reviewDOS));
+ reviewData.addAll(reviewDOS);
}
//在从用户为 子系统负责人 的项目中获取对应 审核信息
@@ -121,7 +134,7 @@ public class ReviewServiceImpl implements ReviewService {
List reviewDOS = reviewDAO.
selectReviewFromSubsystem(projectWorkDO.getId());
//封装VO类
- reviewData.addAll(encapsulateArrayClass(reviewDOS));
+ reviewData.addAll(reviewDOS);
}
@@ -131,18 +144,28 @@ public class ReviewServiceImpl implements ReviewService {
List reviewDOS = reviewDAO.
selectReviewFromSubmodule(projectWorkDO.getId());
//封装VO类
- reviewData.addAll(encapsulateArrayClass(reviewDOS));
+ reviewData.addAll(reviewDOS);
}
+ //根据id进行去重
+ reviewData = reviewData.stream()
+ .collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
+ .values()
+ .stream()
+ .collect(Collectors.toList());
+
//按照申请时间降序排序
- Collections.sort(reviewData, new Comparator() {
+ Collections.sort(reviewData, new Comparator() {
@Override
- public int compare(ReviewVO review1, ReviewVO review2) {
+ public int compare(ReviewDO review1, ReviewDO review2) {
return review2.getApplicationTime().compareTo(review1.getApplicationTime());
}
});
- return ResultUtil.success(reviewData);
+ //封装对应VO类
+ List result = encapsulateArrayClass(reviewData);
+
+ return ResultUtil.success(result);
}
@@ -231,7 +254,7 @@ public class ReviewServiceImpl implements ReviewService {
if (reviewDO.getProjectSubmoduleId() != null) {
reviewVO.setSubmoduleName(reviewDAO.getNameBySubproject(reviewDO.getProjectSubmoduleId()));
} else {
- reviewVO.setSubsystemName("无");
+ reviewVO.setSubmoduleName("无");
}
// 将封装好的结果添加到结果集
resultData.add(reviewVO);
--
2.43.0
From 8ab59b5a1dfea85c7911655d8378fd6d426680fe Mon Sep 17 00:00:00 2001
From: xiangZr-hhh <“2774915446@qq.com”>
Date: Tue, 16 Apr 2024 16:07:06 +0800
Subject: [PATCH 07/11] =?UTF-8?q?patch:=E8=A1=A5=E4=B8=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
修正部分数据表字段,修正对应接口
---
.../jsl/oa/controllers/ReviewController.java | 18 +-
src/main/java/com/jsl/oa/dao/ProjectDAO.java | 15 +-
src/main/java/com/jsl/oa/dao/ReviewDAO.java | 13 +-
.../java/com/jsl/oa/mapper/ProjectMapper.java | 19 +-
.../java/com/jsl/oa/mapper/ReviewMapper.java | 16 +-
.../com/jsl/oa/model/dodata/ReviewDO.java | 4 +-
.../com/jsl/oa/model/vodata/ReviewAddVO.java | 4 +-
.../com/jsl/oa/model/vodata/ReviewDataVO.java | 16 ++
.../com/jsl/oa/services/ReviewService.java | 4 +-
.../oa/services/impl/ModuleServiceImpl.java | 2 +-
.../oa/services/impl/ReviewServiceImpl.java | 208 +++++++++++++++---
.../com/jsl/oa/mapper/ReviewMapper.xml | 24 +-
12 files changed, 271 insertions(+), 72 deletions(-)
create mode 100644 src/main/java/com/jsl/oa/model/vodata/ReviewDataVO.java
diff --git a/src/main/java/com/jsl/oa/controllers/ReviewController.java b/src/main/java/com/jsl/oa/controllers/ReviewController.java
index d0d1659..a7c229d 100644
--- a/src/main/java/com/jsl/oa/controllers/ReviewController.java
+++ b/src/main/java/com/jsl/oa/controllers/ReviewController.java
@@ -27,7 +27,7 @@ import javax.validation.constraints.NotNull;
@RequiredArgsConstructor
public class ReviewController {
-// 审核服务
+ // 审核服务
private final ReviewService reviewService;
/**
@@ -36,9 +36,12 @@ public class ReviewController {
* @Param request:
**/
@GetMapping("/review/getReviewRecords")
- public BaseResponse getUserReviewRecords(HttpServletRequest request) {
+ public BaseResponse getUserReviewRecords(
+ @RequestParam Integer page,
+ @RequestParam Integer pageSize,
+ HttpServletRequest request) {
log.info("请求接口[GET]: /review/getMyReview");
- return reviewService.getUserReview(request);
+ return reviewService.getUserReview(page, pageSize, request);
}
@@ -48,9 +51,11 @@ public class ReviewController {
* @Param request:
**/
@GetMapping("/review/getMyReview")
- public BaseResponse getMyReview(HttpServletRequest request) {
+ public BaseResponse getMyReview(@RequestParam Integer page,
+ @RequestParam Integer pageSize,
+ HttpServletRequest request) {
log.info("请求接口[GET]: /review/getMyReview");
- return reviewService.getUserPendingApprovalReview(request);
+ return reviewService.getUserPendingApprovalReview(page, pageSize, request);
}
@@ -73,7 +78,6 @@ public class ReviewController {
}
-
@PutMapping("/review/updateReview")
public BaseResponse updateReview(@RequestBody @Validated ReviewUpdateResultVO reviewUpdateResultVOVO,
@NotNull BindingResult bindingResult,
@@ -88,8 +92,6 @@ public class ReviewController {
}
-
-
}
diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java
index 6ffe0d0..80a6007 100644
--- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java
+++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java
@@ -1,6 +1,7 @@
package com.jsl.oa.dao;
import com.google.gson.Gson;
import com.jsl.oa.mapper.ProjectMapper;
+import com.jsl.oa.model.dodata.ProjectChildDO;
import com.jsl.oa.model.dodata.ProjectDO;
import com.jsl.oa.model.dodata.ProjectModuleDO;
import com.jsl.oa.model.dodata.info.ProjectShowDO;
@@ -193,19 +194,19 @@ public class ProjectDAO {
public List getProjectByPrincipalUser(Long uid) {
log.info("\t> 执行 DAO 层 ProjectDAO.getProjectFromUser 方法");
log.info("\t\t> 从 MySQL 获取数据");
- return projectMapper.getProjectByPrincipalUser(uid);
+ return projectMapper.getAllProjectByUserId(uid);
}
- public List getAllSubsystemByUserId(Long uid) {
- log.info("\t> 执行 DAO 层 ProjectDAO.getAllSubsystemByUserId 方法");
+ public List getAllProjectChildByUId(Long uid) {
+ log.info("\t> 执行 DAO 层 ProjectDAO.getAllProjectChildByUId 方法");
log.info("\t\t> 从 MySQL 获取数据");
- return projectMapper.getAllSubsystemByUserId(uid);
+ return projectMapper.getAllChildProjectByUserId(uid);
}
- public List getAllSubmoduleByUserId(Long uid) {
- log.info("\t> 执行 DAO 层 ProjectDAO.getAllSubmoduleByUserId 方法");
+ public List getAllModuleByUId(Long uid) {
+ log.info("\t> 执行 DAO 层 ProjectDAO.getAllModuleByUId 方法");
log.info("\t\t> 从 MySQL 获取数据");
- return projectMapper.getAllSubmoduleByUserId(uid);
+ return projectMapper.getAllModuleByUserId(uid);
}
}
diff --git a/src/main/java/com/jsl/oa/dao/ReviewDAO.java b/src/main/java/com/jsl/oa/dao/ReviewDAO.java
index 11f8989..78d44de 100644
--- a/src/main/java/com/jsl/oa/dao/ReviewDAO.java
+++ b/src/main/java/com/jsl/oa/dao/ReviewDAO.java
@@ -62,6 +62,15 @@ public class ReviewDAO {
return reviewMapper.selectReviewFromSubmodule(submoduleId);
}
+ public List selectApprovedResultReviewsFromSubModule(Long id,
+ short result) {
+ log.info("\t> 执行 DAO 层 ReviewDAO.selectApprovedResultReviewsFromSubModule 方法");
+ log.info("\t\t> 从 MySQL 获取数据");
+ return reviewMapper.selectApprovedResultReviewFromModule(id,
+ result);
+ }
+
+
public void addReview(ReviewDO reviewDO) {
log.info("\t> 执行 DAO 层 ReviewDAO.addReview 方法");
log.info("\t\t> 从 MySQL 插入数据");
@@ -81,13 +90,13 @@ public class ReviewDAO {
}
- public String getNameBySubproject(Long subId) {
+ public String getNameByModule(Integer subId) {
log.info("\t> 执行 DAO 层 ReviewDAO.getNameBySubproject 方法");
if (subId != null) {
log.info("\t\t> 从 MySQL 获取数据");
- return projectMapper.getProjectWorkById(subId).getName();
+ return projectMapper.getModuleById(subId).getName();
}
if (subId == null) {
diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java
index 82b67b0..404855e 100644
--- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java
+++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java
@@ -111,13 +111,26 @@ public interface ProjectMapper {
+ "where DATE(deadline) = DATE(#{threeDayLater}) and status = 0")
List getProjectWorkByTime(LocalDateTime threeDayLater);
- List getAllSubmoduleByUserId(Long uid);
- List getProjectByPrincipalUser(Long uid);
+ @Select("select * from organize_oa.oa_project_modules "
+ + "where is_delete = 0 and principal_id = #{uid}")
+ List getAllModuleByUserId(Long uid);
+
+ @Select("select * from organize_oa.oa_project_child "
+ + "where project_id = #{pid} and is_delete = 0 ")
+ List getAllChildProjectByUserId(Long uid);
+
+ @Select("select * from organize_oa.oa_project "
+ + "where is_delete = 0 and principal_id = #{uid}")
+ List getAllProjectByUserId(Long uid);
- List getAllSubsystemByUserId(Long uid);
@Select("select * from organize_oa.oa_project_child where "
+ "DATE (created_at) = DATE (#{threeDaysLater}) and status = 0")
List getProjectChildByTime(LocalDateTime threeDaysLater);
+
+
+ @Select("select * from organize_oa.oa_project_child where "
+ + "id = #{id} and is_delete = 0")
+ ProjectChildDO getProjectChildById(Integer id);
}
diff --git a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
index 2e53c93..0561dda 100644
--- a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
+++ b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java
@@ -18,17 +18,21 @@ public interface ReviewMapper {
List selectApprovedResultReviewFromProject(Long projectId, short result);
@Select("SELECT * FROM organize_oa.oa_review WHERE "
- + "project_subsystem_id = #{subsystemId} AND is_delete = 0")
- List selectReviewFromSubsystem(Long subsystemId);
+ + "project_child_id = #{childId} AND is_delete = 0")
+ List selectReviewFromSubsystem(Long childId);
@Select("SELECT * FROM organize_oa.oa_review WHERE "
- + "project_subsystem_id = #{subsystemId} "
+ + "project_child_id = #{childId} "
+ "AND is_delete = 0 AND review_result = #{result}")
- List selectApprovedResultReviewsFromSubsystem(Long subsystemId, short result);
+ List selectApprovedResultReviewsFromSubsystem(Long childId, short result);
@Select("SELECT * FROM organize_oa.oa_review WHERE "
- + "project_submodule_id = #{subsystemId} AND is_delete = 0")
- List selectReviewFromSubmodule(Long submoduleId);
+ + "project_module_id = #{moduleId} AND is_delete = 0")
+ List selectReviewFromSubmodule(Long moduleId);
+
+ @Select("SELECT * FROM organize_oa.oa_review WHERE review_result = #{result} and "
+ + "project_module_id = #{moduleId} AND is_delete = 0")
+ List selectApprovedResultReviewFromModule(Long moduleId, short result);
@Select("SELECT * FROM organize_oa.oa_review WHERE id = #{id} AND is_delete = 0")
ReviewDO selectReviewById(Long id);
diff --git a/src/main/java/com/jsl/oa/model/dodata/ReviewDO.java b/src/main/java/com/jsl/oa/model/dodata/ReviewDO.java
index 467c2e5..2280e81 100644
--- a/src/main/java/com/jsl/oa/model/dodata/ReviewDO.java
+++ b/src/main/java/com/jsl/oa/model/dodata/ReviewDO.java
@@ -35,9 +35,9 @@ public class ReviewDO {
//申请的项目id
private Long projectId;
//申请的子系统id
- private Long projectSubsystemId;
+ private Long projectChildId;
//申请的子模块id
- private Long projectSubmoduleId;
+ private Long projectModuleId;
//申请时间
private Date applicationTime;
//审核时间
diff --git a/src/main/java/com/jsl/oa/model/vodata/ReviewAddVO.java b/src/main/java/com/jsl/oa/model/vodata/ReviewAddVO.java
index 640fcc3..25114be 100644
--- a/src/main/java/com/jsl/oa/model/vodata/ReviewAddVO.java
+++ b/src/main/java/com/jsl/oa/model/vodata/ReviewAddVO.java
@@ -20,9 +20,9 @@ public class ReviewAddVO {
private Long projectId;
//申请的子系统id
@NotNull(message = "子系统id不能为空")
- private Long projectSubsystemId;
+ private Long projectChildId;
//申请的子模块id
- private Long projectSubmoduleId;
+ private Long projectModuleId;
}
diff --git a/src/main/java/com/jsl/oa/model/vodata/ReviewDataVO.java b/src/main/java/com/jsl/oa/model/vodata/ReviewDataVO.java
new file mode 100644
index 0000000..e22dacc
--- /dev/null
+++ b/src/main/java/com/jsl/oa/model/vodata/ReviewDataVO.java
@@ -0,0 +1,16 @@
+package com.jsl.oa.model.vodata;
+
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ReviewDataVO {
+
+ private Integer dataTotal;
+
+ private List data;
+}
+
+
diff --git a/src/main/java/com/jsl/oa/services/ReviewService.java b/src/main/java/com/jsl/oa/services/ReviewService.java
index 0457d36..89c2447 100644
--- a/src/main/java/com/jsl/oa/services/ReviewService.java
+++ b/src/main/java/com/jsl/oa/services/ReviewService.java
@@ -9,9 +9,9 @@ import javax.servlet.http.HttpServletRequest;
public interface ReviewService {
- BaseResponse getUserPendingApprovalReview(HttpServletRequest request);
+ BaseResponse getUserPendingApprovalReview(Integer page, Integer pageSize, HttpServletRequest request);
- BaseResponse getUserReview(HttpServletRequest request);
+ BaseResponse getUserReview(Integer page, Integer pageSize, HttpServletRequest request);
BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request);
diff --git a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java
index ac75a22..6dba1bf 100644
--- a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java
@@ -69,7 +69,7 @@ public class ModuleServiceImpl implements ModuleService {
Processing.copyProperties(projectWorkDO, projectWorkAndNameVO);
// 添加负责人和子系统名称
projectWorkAndNameVO.
- setChildSystemName(projectDAO.getProjectWorkerById(projectWorkDO.getPid()).getName())
+ setChildSystemName(projectDAO.getProjectWorkerById(projectWorkDO.getProjectChildId()).getName())
.setPrincipalUser(userDAO.getUserById(projectWorkDO.getPrincipalId()).getUsername());
projectWorkAndNameVOS.add(projectWorkAndNameVO);
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 7f8859b..5e3613a 100644
--- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
@@ -1,17 +1,22 @@
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;
-import com.jsl.oa.mapper.ReviewMapper;
+import com.jsl.oa.mapper.ProjectMapper;
import com.jsl.oa.mapper.UserMapper;
+import com.jsl.oa.model.dodata.ProjectChildDO;
import com.jsl.oa.model.dodata.ProjectDO;
import com.jsl.oa.model.dodata.ProjectModuleDO;
import com.jsl.oa.model.dodata.ReviewDO;
+import com.jsl.oa.model.vodata.ReviewAddVO;
+import com.jsl.oa.model.vodata.ReviewUpdateResultVO;
import com.jsl.oa.model.vodata.ReviewVO;
import com.jsl.oa.services.ReviewService;
import com.jsl.oa.utils.BaseResponse;
+import com.jsl.oa.utils.ErrorCode;
import com.jsl.oa.utils.Processing;
import com.jsl.oa.utils.ResultUtil;
import lombok.RequiredArgsConstructor;
@@ -19,8 +24,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
@Slf4j
@Service
@@ -32,18 +37,21 @@ public class ReviewServiceImpl implements ReviewService {
private final ProjectDAO projectDAO;
private final UserMapper userMapper;
- private final ReviewMapper reviewMapper;
+ private final ProjectMapper projectMapper;
@Override
- public BaseResponse getUserReview(Long projectId, HttpServletRequest request) {
- log.info("\t> 执行 Service 层 ReviewService.getUserReview 方法");
+ public BaseResponse getUserPendingApprovalReview(Integer page,
+ Integer pageSize,
+ HttpServletRequest request) {
+ log.info("\t> 执行 Service 层 ReviewService.getUserPendingApprovalReview 方法");
//获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
+
//存储审核数据的数组
- List reviewData = new ArrayList<>();
+ List reviewData = new ArrayList<>();
//先获取用户为项目负责人的项目列表
projectDAO.getProjectByPrincipalUser(userId);
@@ -51,32 +59,173 @@ public class ReviewServiceImpl implements ReviewService {
//先从用户为 项目负责人 的项目中获取对应 审核信息
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
//查询每个项目下所有的审核信息
- List reviewDOS = reviewMapper.
- selectAllReviewFromProject(projectDO.getId());
+ List reviewDOS = reviewDAO.
+ selectApprovedResultReviewFromProject(projectDO.getId(),
+ ReviewConstants.PENDING);
//封装VO类
- reviewData.addAll(encapsulateArrayClass(reviewDOS));
+ reviewData.addAll(reviewDOS);
}
//在从用户为 子系统负责人 的项目中获取对应 审核信息
- for (ProjectModuleDO projectWorkDO : projectDAO.getAllSubsystemByUserId(userId)) {
- //查询每个项目下所有的审核信息
- List reviewDOS = reviewMapper.
- selectReviewFromSubsystem(projectWorkDO.getId());
+ for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
+ //查询每个项目下状态为2的审核信息
+ List reviewDOS = reviewDAO.
+ selectApprovedResultReviewsFromSubsystem(projectChildDO.getId(),
+ ReviewConstants.PENDING);
//封装VO类
- reviewData.addAll(encapsulateArrayClass(reviewDOS));
+ reviewData.addAll(reviewDOS);
}
//在从用户为 子模块负责人 的项目中获取对应 审核信息
- for (ProjectModuleDO projectWorkDO : projectDAO.getAllSubmoduleByUserId(userId)) {
+ for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
//查询每个项目下所有的审核信息
- List reviewDOS = reviewMapper.
- selectReviewFromSubmodule(projectWorkDO.getId());
+ List reviewDOS = reviewDAO.
+ selectApprovedResultReviewsFromSubModule(projectModuleDO.getId(),
+ ReviewConstants.PENDING);
//封装VO类
- reviewData.addAll(encapsulateArrayClass(reviewDOS));
+ reviewData.addAll(reviewDOS);
}
- return ResultUtil.success(reviewData);
+
+ //根据id进行去重
+ reviewData = reviewData.stream()
+ .collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
+ .values()
+ .stream()
+ .collect(Collectors.toList());
+
+
+ //按照申请时间降序排序
+ Collections.sort(reviewData, new Comparator() {
+ @Override
+ public int compare(ReviewDO review1, ReviewDO review2) {
+ return review2.getApplicationTime().compareTo(review1.getApplicationTime());
+ }
+ });
+
+ //封装对应VO类
+ List result = encapsulateArrayClass(reviewData);
+
+ return ResultUtil.success(result);
+ }
+
+
+ @Override
+ public BaseResponse getUserReview(Integer page,
+ Integer pageSize,
+ HttpServletRequest request) {
+ log.info("\t> 执行 Service 层 ReviewService.getUserReview 方法");
+
+ //获取用户
+ Long userId = Processing.getAuthHeaderToUserId(request);
+
+ //存储审核数据的数组
+ List reviewData = new ArrayList<>();
+
+ //先获取用户为项目负责人的项目列表
+ projectDAO.getProjectByPrincipalUser(userId);
+
+ //先从用户为 项目负责人 的项目中获取对应 审核信息
+ for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
+ //查询每个项目下所有的审核信息
+ List reviewDOS = reviewDAO.
+ selectAllReviewFromProject(projectDO.getId());
+ //封装VO类
+ reviewData.addAll(reviewDOS);
+ }
+
+ //在从用户为 子系统负责人 的项目中获取对应 审核信息
+ for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
+ //查询每个项目下所有的审核信息
+ List reviewDOS = reviewDAO.
+ selectReviewFromSubsystem(projectChildDO.getId());
+ //封装VO类
+ reviewData.addAll(reviewDOS);
+ }
+
+
+ //在从用户为 子模块负责人 的项目中获取对应 审核信息
+ for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
+ //查询每个项目下所有的审核信息
+ List reviewDOS = reviewDAO.
+ selectReviewFromSubmodule(projectModuleDO.getId());
+ //封装VO类
+ reviewData.addAll(reviewDOS);
+ }
+
+ //根据id进行去重
+ reviewData = reviewData.stream()
+ .collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
+ .values()
+ .stream()
+ .collect(Collectors.toList());
+
+ //按照申请时间降序排序
+ Collections.sort(reviewData, new Comparator() {
+ @Override
+ public int compare(ReviewDO review1, ReviewDO review2) {
+ return review2.getApplicationTime().compareTo(review1.getApplicationTime());
+ }
+ });
+
+ //封装对应VO类
+ List result = encapsulateArrayClass(reviewData);
+
+ return ResultUtil.success(result);
+ }
+
+
+ @Override
+ public BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request) {
+ log.info("\t> 执行 Service 层 ReviewService.addReview 方法");
+
+ //获取用户
+ Long userId = Processing.getAuthHeaderToUserId(request);
+
+ //定义要添加的审核实体类
+ ReviewDO reviewDO = new ReviewDO();
+ //现将属性相同的值拷贝
+ Processing.copyProperties(reviewAddVO, reviewDO);
+
+ //定义审核的类型(子模块id为空则为 子系统类型,否则为子模块类型)
+ if (reviewAddVO.getProjectModuleId() == null) {
+ reviewDO.setCategory(ReviewConstants.SUBSYSTEM);
+ } else if (reviewAddVO.getProjectModuleId() != null) {
+ reviewDO.setCategory(ReviewConstants.SUBMODULE);
+ }
+
+ //定义申请者id
+ reviewDO.setSenderId(userId);
+ //添加数据
+ reviewDAO.addReview(reviewDO);
+
+ return ResultUtil.success("申请成功");
+ }
+
+
+ @Override
+ public BaseResponse updateReviewResult(ReviewUpdateResultVO reviewUpdateResultVO, HttpServletRequest request) {
+
+ //获取当前用户
+ Long userId = Processing.getAuthHeaderToUserId(request);
+
+ //获取对应审核信息
+ ReviewDO reviewDO = reviewDAO.selectReviewById(reviewUpdateResultVO.getId());
+
+ if (reviewDO == null) {
+ return ResultUtil.error(ErrorCode.REVIEW_NOT_EXIST);
+ }
+
+ //设置对应属性
+ reviewDO.setReviewTime(new Date());
+ reviewDO.setRecipientId(userId);
+ reviewDO.setReviewResult(reviewUpdateResultVO.getResult());
+
+ //更新数据
+ reviewDAO.updateReview(reviewDO);
+
+ return ResultUtil.success();
}
@@ -94,14 +243,22 @@ public class ReviewServiceImpl implements ReviewService {
ReviewVO reviewVO = new ReviewVO();
// 现将相同的属性赋值
Processing.copyProperties(reviewDO, reviewVO);
-// 赋值其他属性
+// 赋值其他非空属性
reviewVO.setCategory(Processing.turnReviewCategory(reviewDO.getCategory()))
.setSenderName(userMapper.getUserById(reviewDO.getSenderId()).getNickname())
- .setRecipientName(userMapper.getUserById(reviewDO.getRecipientId()).getNickname())
.setProjectName(projectDAO.getProjectById(reviewDO.getProjectId()).getName())
- .setSubsystemName(reviewDAO.getNameBySubproject(reviewDO.getProjectSubsystemId()))
- .setSubmoduleName(reviewDAO.getNameBySubproject(reviewDO.getProjectSubmoduleId()))
+ .setSubsystemName(projectMapper.getProjectChildById(
+ Math.toIntExact(reviewDO.getProjectChildId())).getName())
.setResult(Processing.turnReviewResult(reviewDO.getReviewResult()));
+// 赋值可为空属性并进行判断
+ if (reviewDO.getRecipientId() != null) {
+ reviewVO.setRecipientName(userMapper.getUserById(reviewDO.getRecipientId()).getNickname());
+ }
+ if (reviewDO.getProjectModuleId() != null) {
+ reviewVO.setSubmoduleName(reviewDAO.getNameByModule(Math.toIntExact(reviewDO.getProjectModuleId())));
+ } else {
+ reviewVO.setSubmoduleName("无");
+ }
// 将封装好的结果添加到结果集
resultData.add(reviewVO);
}
@@ -110,9 +267,6 @@ public class ReviewServiceImpl implements ReviewService {
}
-
-
-
}
diff --git a/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml b/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
index 1d4c6ed..23a6f09 100644
--- a/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
+++ b/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
@@ -25,11 +25,11 @@
project_id,
-
- project_subsystem_id,
+
+ project_child_id,
-
- project_submodule_id,
+
+ project_module_id,
application_time,
@@ -63,11 +63,11 @@
#{projectId},
-
- #{projectSubsystemId},
+
+ #{projectChildId},
-
- #{projectSubmoduleId},
+
+ #{projectModuleId},
#{applicationTime},
@@ -112,12 +112,12 @@
project_id = #{projectId},
-
- project_subsystem_id = #{projectSubsystemId},
+
+ project_child_id = #{projectChildId},
-
- project_submodule_id = #{projectSubmoduleId},
+
+ project_module_id = #{projectModuleId},
--
2.43.0
From 36bbaf09954ce6d86df762dd2662a1827fffe64e Mon Sep 17 00:00:00 2001
From: xiangZr-hhh <“2774915446@qq.com”>
Date: Tue, 16 Apr 2024 18:09:16 +0800
Subject: [PATCH 08/11] =?UTF-8?q?fix:=E4=BF=AE=E6=AD=A3=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
修正分页与查询接口
---
.../jsl/oa/controllers/ReviewController.java | 9 +
.../com/jsl/oa/model/vodata/ReviewDataVO.java | 2 +-
.../com/jsl/oa/services/ReviewService.java | 2 +
.../oa/services/impl/ReviewServiceImpl.java | 193 +++++++++++++++++-
4 files changed, 203 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/jsl/oa/controllers/ReviewController.java b/src/main/java/com/jsl/oa/controllers/ReviewController.java
index a7c229d..e5c225d 100644
--- a/src/main/java/com/jsl/oa/controllers/ReviewController.java
+++ b/src/main/java/com/jsl/oa/controllers/ReviewController.java
@@ -92,6 +92,15 @@ public class ReviewController {
}
+ @GetMapping("/review/search")
+ public BaseResponse searchReview(String content,
+ Short statue,
+ HttpServletRequest request,
+ @RequestParam Integer page,
+ @RequestParam Integer pageSize) {
+ log.info("请求接口[GET]: /review/search");
+ return reviewService.searchReview(content, statue, request, page, pageSize);
+ }
}
diff --git a/src/main/java/com/jsl/oa/model/vodata/ReviewDataVO.java b/src/main/java/com/jsl/oa/model/vodata/ReviewDataVO.java
index e22dacc..7700711 100644
--- a/src/main/java/com/jsl/oa/model/vodata/ReviewDataVO.java
+++ b/src/main/java/com/jsl/oa/model/vodata/ReviewDataVO.java
@@ -10,7 +10,7 @@ public class ReviewDataVO {
private Integer dataTotal;
- private List data;
+ private List reviews;
}
diff --git a/src/main/java/com/jsl/oa/services/ReviewService.java b/src/main/java/com/jsl/oa/services/ReviewService.java
index 89c2447..bbcfc39 100644
--- a/src/main/java/com/jsl/oa/services/ReviewService.java
+++ b/src/main/java/com/jsl/oa/services/ReviewService.java
@@ -16,4 +16,6 @@ public interface ReviewService {
BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request);
BaseResponse updateReviewResult(ReviewUpdateResultVO reviewUpdateResultVOVO, HttpServletRequest request);
+
+ BaseResponse searchReview(String content, Short statue, HttpServletRequest request, Integer page, Integer pageSize);
}
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 5e3613a..28d1f99 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,8 @@
package com.jsl.oa.services.impl;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
import com.jsl.oa.common.constant.ReviewConstants;
import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.ReviewDAO;
@@ -12,6 +14,7 @@ import com.jsl.oa.model.dodata.ProjectDO;
import com.jsl.oa.model.dodata.ProjectModuleDO;
import com.jsl.oa.model.dodata.ReviewDO;
import com.jsl.oa.model.vodata.ReviewAddVO;
+import com.jsl.oa.model.vodata.ReviewDataVO;
import com.jsl.oa.model.vodata.ReviewUpdateResultVO;
import com.jsl.oa.model.vodata.ReviewVO;
import com.jsl.oa.services.ReviewService;
@@ -107,7 +110,13 @@ public class ReviewServiceImpl implements ReviewService {
//封装对应VO类
List result = encapsulateArrayClass(reviewData);
- return ResultUtil.success(result);
+ //封装结果类与数据总数
+ int total = result.size();
+ ReviewDataVO reviewDataVO = new ReviewDataVO();
+ reviewDataVO.setReviews(result);
+ reviewDataVO.setDataTotal(total);
+
+ return ResultUtil.success(reviewDataVO);
}
@@ -172,7 +181,13 @@ public class ReviewServiceImpl implements ReviewService {
//封装对应VO类
List result = encapsulateArrayClass(reviewData);
- return ResultUtil.success(result);
+ //封装结果类与数据总数
+ int total = result.size();
+ ReviewDataVO reviewDataVO = new ReviewDataVO();
+ reviewDataVO.setReviews(result);
+ reviewDataVO.setDataTotal(total);
+
+ return ResultUtil.success(reviewDataVO);
}
@@ -229,6 +244,116 @@ public class ReviewServiceImpl implements ReviewService {
}
+
+ @Override
+ public BaseResponse searchReview(String content,
+ Short statue,
+ HttpServletRequest request,
+ Integer page, Integer pageSize) {
+
+ List reviewVOS = new ArrayList<>();
+
+// 根据判断结果筛选
+ if (statue == null || statue.equals("")) {
+ List reviewVOs = getReview(request);
+ reviewVOS.addAll(reviewVOs);
+ } else {
+ List reviewVOs = getReviewsByResult(request, statue);
+ reviewVOS.addAll(reviewVOs);
+ }
+
+// 根据内容筛选
+ if (content == null || content.equals("")) {
+ // 使用PageHelper进行分页
+ PageHelper.startPage(page, pageSize);
+ PageInfo pageInfo1 = new PageInfo<>(reviewVOS);
+ int total = reviewVOS.size();
+ ReviewDataVO reviewDataVO = new ReviewDataVO();
+ reviewDataVO.setReviews(pageInfo1.getList());
+ reviewDataVO.setDataTotal(total);
+ return ResultUtil.success(reviewDataVO);
+ } else {
+ reviewVOS = reviewVOS.stream()
+ .filter(reviewVO -> reviewVO.getName().contains(content) || reviewVO.getContent().contains(content))
+ .collect(Collectors.toList());
+ }
+
+ // 使用PageHelper进行分页
+ PageHelper.startPage(page, pageSize);
+ PageInfo pageInfo = new PageInfo<>(reviewVOS);
+
+
+ //封装结果类与数据总数
+ int total = (int) pageInfo.getTotal();
+ ReviewDataVO reviewDataVO = new ReviewDataVO();
+ reviewDataVO.setReviews(pageInfo.getList());
+ reviewDataVO.setDataTotal(total);
+
+ return ResultUtil.success(reviewDataVO);
+ }
+
+
+
+ private List getReview(HttpServletRequest request) {
+ //获取用户
+ Long userId = Processing.getAuthHeaderToUserId(request);
+
+ //存储审核数据的数组
+ List reviewData = new ArrayList<>();
+
+ //先获取用户为项目负责人的项目列表
+ projectDAO.getProjectByPrincipalUser(userId);
+
+ //先从用户为 项目负责人 的项目中获取对应 审核信息
+ for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
+ //查询每个项目下所有的审核信息
+ List reviewDOS = reviewDAO.
+ selectAllReviewFromProject(projectDO.getId());
+ //封装VO类
+ reviewData.addAll(reviewDOS);
+ }
+
+ //在从用户为 子系统负责人 的项目中获取对应 审核信息
+ for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
+ //查询每个项目下所有的审核信息
+ List reviewDOS = reviewDAO.
+ selectReviewFromSubsystem(projectChildDO.getId());
+ //封装VO类
+ reviewData.addAll(reviewDOS);
+ }
+
+
+ //在从用户为 子模块负责人 的项目中获取对应 审核信息
+ for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
+ //查询每个项目下所有的审核信息
+ List reviewDOS = reviewDAO.
+ selectReviewFromSubmodule(projectModuleDO.getId());
+ //封装VO类
+ reviewData.addAll(reviewDOS);
+ }
+
+ //根据id进行去重
+ reviewData = reviewData.stream()
+ .collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
+ .values()
+ .stream()
+ .collect(Collectors.toList());
+
+ //按照申请时间降序排序
+ Collections.sort(reviewData, new Comparator() {
+ @Override
+ public int compare(ReviewDO review1, ReviewDO review2) {
+ return review2.getApplicationTime().compareTo(review1.getApplicationTime());
+ }
+ });
+
+ //封装对应VO类
+ List result = encapsulateArrayClass(reviewData);
+
+ return result;
+ }
+
+
/**
* @Description: 封装审核的VO类
* @Date: 2024/4/11
@@ -267,6 +392,70 @@ public class ReviewServiceImpl implements ReviewService {
}
+ public List getReviewsByResult(
+ HttpServletRequest request,
+ Short result) {
+
+// 获取用户
+ Long userId = Processing.getAuthHeaderToUserId(request);
+
+ //存储审核数据的数组
+ List reviewData = new ArrayList<>();
+
+ //先获取用户为项目负责人的项目列表
+ projectDAO.getProjectByPrincipalUser(userId);
+
+ //先从用户为 项目负责人 的项目中获取对应 审核信息
+ for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
+ //查询每个项目下所有的审核信息
+ List reviewDOS = reviewDAO.
+ selectApprovedResultReviewFromProject(projectDO.getId(),
+ result);
+ //封装VO类
+ reviewData.addAll(reviewDOS);
+ }
+
+ //在从用户为 子系统负责人 的项目中获取对应 审核信息
+ for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
+ //查询每个项目下状态为2的审核信息
+ List reviewDOS = reviewDAO.
+ selectApprovedResultReviewsFromSubsystem(projectChildDO.getId(),
+ result);
+ //封装VO类
+ reviewData.addAll(reviewDOS);
+ }
+
+
+ //在从用户为 子模块负责人 的项目中获取对应 审核信息
+ for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
+ //查询每个项目下所有的审核信息
+ List reviewDOS = reviewDAO.
+ selectApprovedResultReviewsFromSubModule(projectModuleDO.getId(),
+ result);
+ //封装VO类
+ reviewData.addAll(reviewDOS);
+ }
+
+
+ //根据id进行去重
+ reviewData = reviewData.stream()
+ .collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
+ .values()
+ .stream()
+ .collect(Collectors.toList());
+
+
+ //按照申请时间降序排序
+ Collections.sort(reviewData, new Comparator() {
+ @Override
+ public int compare(ReviewDO review1, ReviewDO review2) {
+ return review2.getApplicationTime().compareTo(review1.getApplicationTime());
+ }
+ });
+
+ return encapsulateArrayClass(reviewData);
+ }
+
}
--
2.43.0
From cb1d61da88d8d10375213af6b5d9b555a468ec02 Mon Sep 17 00:00:00 2001
From: xiangZr-hhh <“2774915446@qq.com”>
Date: Tue, 16 Apr 2024 18:20:06 +0800
Subject: [PATCH 09/11] =?UTF-8?q?fix:=E4=BF=AE=E6=AD=A3=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
分页修正
---
.../oa/services/impl/ReviewServiceImpl.java | 44 ++++++++-----------
1 file changed, 19 insertions(+), 25 deletions(-)
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 28d1f99..ed22c1c 100644
--- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
@@ -1,8 +1,6 @@
package com.jsl.oa.services.impl;
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
import com.jsl.oa.common.constant.ReviewConstants;
import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.ReviewDAO;
@@ -111,10 +109,7 @@ public class ReviewServiceImpl implements ReviewService {
List result = encapsulateArrayClass(reviewData);
//封装结果类与数据总数
- int total = result.size();
- ReviewDataVO reviewDataVO = new ReviewDataVO();
- reviewDataVO.setReviews(result);
- reviewDataVO.setDataTotal(total);
+ ReviewDataVO reviewDataVO = getReviewsByPage(result, page, pageSize);
return ResultUtil.success(reviewDataVO);
}
@@ -182,10 +177,7 @@ public class ReviewServiceImpl implements ReviewService {
List result = encapsulateArrayClass(reviewData);
//封装结果类与数据总数
- int total = result.size();
- ReviewDataVO reviewDataVO = new ReviewDataVO();
- reviewDataVO.setReviews(result);
- reviewDataVO.setDataTotal(total);
+ ReviewDataVO reviewDataVO = getReviewsByPage(result, page, pageSize);
return ResultUtil.success(reviewDataVO);
}
@@ -264,13 +256,9 @@ public class ReviewServiceImpl implements ReviewService {
// 根据内容筛选
if (content == null || content.equals("")) {
- // 使用PageHelper进行分页
- PageHelper.startPage(page, pageSize);
- PageInfo pageInfo1 = new PageInfo<>(reviewVOS);
- int total = reviewVOS.size();
- ReviewDataVO reviewDataVO = new ReviewDataVO();
- reviewDataVO.setReviews(pageInfo1.getList());
- reviewDataVO.setDataTotal(total);
+ //封装结果类与数据总数
+ ReviewDataVO reviewDataVO = getReviewsByPage(reviewVOS, page, pageSize);
+
return ResultUtil.success(reviewDataVO);
} else {
reviewVOS = reviewVOS.stream()
@@ -278,16 +266,9 @@ public class ReviewServiceImpl implements ReviewService {
.collect(Collectors.toList());
}
- // 使用PageHelper进行分页
- PageHelper.startPage(page, pageSize);
- PageInfo pageInfo = new PageInfo<>(reviewVOS);
-
//封装结果类与数据总数
- int total = (int) pageInfo.getTotal();
- ReviewDataVO reviewDataVO = new ReviewDataVO();
- reviewDataVO.setReviews(pageInfo.getList());
- reviewDataVO.setDataTotal(total);
+ ReviewDataVO reviewDataVO = getReviewsByPage(reviewVOS, page, pageSize);
return ResultUtil.success(reviewDataVO);
}
@@ -456,6 +437,19 @@ public class ReviewServiceImpl implements ReviewService {
return encapsulateArrayClass(reviewData);
}
+
+ public ReviewDataVO getReviewsByPage(List allReviews, int page, int pageSize) {
+ ReviewDataVO reviewDataVO = new ReviewDataVO();
+ int total = allReviews.size();
+ int startIndex = (page - 1) * pageSize;
+ int endIndex = Math.min(startIndex + pageSize, total);
+ List reviewsOnPage = allReviews.subList(startIndex, endIndex);
+
+ reviewDataVO.setReviews(reviewsOnPage);
+ reviewDataVO.setDataTotal(total);
+
+ return reviewDataVO;
+ }
}
--
2.43.0
From cd65a5c6f8c3ea2b5eb576499b14e517f56ecf9c Mon Sep 17 00:00:00 2001
From: xiangZr-hhh <“2774915446@qq.com”>
Date: Tue, 16 Apr 2024 19:00:32 +0800
Subject: [PATCH 10/11] =?UTF-8?q?fix:=E8=B0=83=E6=95=B4=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
调整所有审核查询接口的部分字段名称
---
src/main/java/com/jsl/oa/model/vodata/ReviewVO.java | 8 ++++----
.../java/com/jsl/oa/services/impl/ReviewServiceImpl.java | 7 ++++---
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/jsl/oa/model/vodata/ReviewVO.java b/src/main/java/com/jsl/oa/model/vodata/ReviewVO.java
index a62beaf..9177701 100644
--- a/src/main/java/com/jsl/oa/model/vodata/ReviewVO.java
+++ b/src/main/java/com/jsl/oa/model/vodata/ReviewVO.java
@@ -30,13 +30,13 @@ public class ReviewVO {
//申请的项目名称
private String projectName;
//申请的子系统id
- private Long projectSubsystemId;
+ private Long projectChildId;
//申请的子系统名称
- private String subsystemName;
+ private String projectChildName;
//申请的子模块id
- private Long projectSubmoduleId;
+ private Long projectModuleId;
//申请的模块名称
- private String submoduleName;
+ private String projectModuleName;
//申请时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date applicationTime;
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 ed22c1c..5336f74 100644
--- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
@@ -353,7 +353,7 @@ public class ReviewServiceImpl implements ReviewService {
reviewVO.setCategory(Processing.turnReviewCategory(reviewDO.getCategory()))
.setSenderName(userMapper.getUserById(reviewDO.getSenderId()).getNickname())
.setProjectName(projectDAO.getProjectById(reviewDO.getProjectId()).getName())
- .setSubsystemName(projectMapper.getProjectChildById(
+ .setProjectChildName(projectMapper.getProjectChildById(
Math.toIntExact(reviewDO.getProjectChildId())).getName())
.setResult(Processing.turnReviewResult(reviewDO.getReviewResult()));
// 赋值可为空属性并进行判断
@@ -361,9 +361,10 @@ public class ReviewServiceImpl implements ReviewService {
reviewVO.setRecipientName(userMapper.getUserById(reviewDO.getRecipientId()).getNickname());
}
if (reviewDO.getProjectModuleId() != null) {
- reviewVO.setSubmoduleName(reviewDAO.getNameByModule(Math.toIntExact(reviewDO.getProjectModuleId())));
+ reviewVO.setProjectModuleName(
+ reviewDAO.getNameByModule(Math.toIntExact(reviewDO.getProjectModuleId())));
} else {
- reviewVO.setSubmoduleName("无");
+ reviewVO.setProjectModuleName("无");
}
// 将封装好的结果添加到结果集
resultData.add(reviewVO);
--
2.43.0
From 1a65d8ce8fcbb5471665acb3fdbad4865b2250da Mon Sep 17 00:00:00 2001
From: xiangZr-hhh <“2774915446@qq.com”>
Date: Tue, 16 Apr 2024 19:33:42 +0800
Subject: [PATCH 11/11] =?UTF-8?q?#patch:=E8=A1=A5=E4=B8=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
删除多余的log日志
---
.../jsl/oa/controllers/ReviewController.java | 1 -
src/main/java/com/jsl/oa/dao/ReviewDAO.java | 21 -------------------
.../oa/services/impl/ReviewServiceImpl.java | 4 ----
3 files changed, 26 deletions(-)
diff --git a/src/main/java/com/jsl/oa/controllers/ReviewController.java b/src/main/java/com/jsl/oa/controllers/ReviewController.java
index e5c225d..563249d 100644
--- a/src/main/java/com/jsl/oa/controllers/ReviewController.java
+++ b/src/main/java/com/jsl/oa/controllers/ReviewController.java
@@ -54,7 +54,6 @@ public class ReviewController {
public BaseResponse getMyReview(@RequestParam Integer page,
@RequestParam Integer pageSize,
HttpServletRequest request) {
- log.info("请求接口[GET]: /review/getMyReview");
return reviewService.getUserPendingApprovalReview(page, pageSize, request);
}
diff --git a/src/main/java/com/jsl/oa/dao/ReviewDAO.java b/src/main/java/com/jsl/oa/dao/ReviewDAO.java
index 78d44de..012825b 100644
--- a/src/main/java/com/jsl/oa/dao/ReviewDAO.java
+++ b/src/main/java/com/jsl/oa/dao/ReviewDAO.java
@@ -29,73 +29,52 @@ public class ReviewDAO {
public List selectAllReviewFromProject(Long projectId) {
- log.info("\t> 执行 DAO 层 ReviewDAO.selectAllReviewFromProject 方法");
- log.info("\t\t> 从 MySQL 获取数据");
return reviewMapper.selectAllReviewFromProject(projectId);
}
public List selectApprovedResultReviewFromProject(Long projectId,
short result) {
- log.info("\t> 执行 DAO 层 ReviewDAO.selectApprovedResultReviewFromProject 方法");
- log.info("\t\t> 从 MySQL 获取数据");
return reviewMapper.selectApprovedResultReviewFromProject(projectId,
result);
}
public List selectReviewFromSubsystem(Long subsystemId) {
- log.info("\t> 执行 DAO 层 ReviewDAO.selectReviewFromSubsystem 方法");
- log.info("\t\t> 从 MySQL 获取数据");
return reviewMapper.selectReviewFromSubsystem(subsystemId);
}
public List selectApprovedResultReviewsFromSubsystem(Long subsystemId,
short result) {
- log.info("\t> 执行 DAO 层 ReviewDAO.selectApprovedResultReviewsFromSubsystem 方法");
- log.info("\t\t> 从 MySQL 获取数据");
return reviewMapper.selectApprovedResultReviewsFromSubsystem(subsystemId,
result);
}
public List selectReviewFromSubmodule(Long submoduleId) {
- log.info("\t> 执行 DAO 层 ReviewDAO.selectReviewFromSubmodule 方法");
- log.info("\t\t> 从 MySQL 获取数据");
return reviewMapper.selectReviewFromSubmodule(submoduleId);
}
public List selectApprovedResultReviewsFromSubModule(Long id,
short result) {
- log.info("\t> 执行 DAO 层 ReviewDAO.selectApprovedResultReviewsFromSubModule 方法");
- log.info("\t\t> 从 MySQL 获取数据");
return reviewMapper.selectApprovedResultReviewFromModule(id,
result);
}
public void addReview(ReviewDO reviewDO) {
- log.info("\t> 执行 DAO 层 ReviewDAO.addReview 方法");
- log.info("\t\t> 从 MySQL 插入数据");
reviewMapper.addReview(reviewDO);
}
public ReviewDO selectReviewById(Long id) {
- log.info("\t> 执行 DAO 层 ReviewDAO.selectReviewById 方法");
- log.info("\t\t> 从 MySQL 获取数据");
return reviewMapper.selectReviewById(id);
}
public void updateReview(ReviewDO reviewDO) {
- log.info("\t> 执行 DAO 层 ReviewDAO.updateReview 方法");
- log.info("\t\t> 从 MySQL 更新数据");
reviewMapper.updateReview(reviewDO);
}
public String getNameByModule(Integer subId) {
- log.info("\t> 执行 DAO 层 ReviewDAO.getNameBySubproject 方法");
-
if (subId != null) {
- log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getModuleById(subId).getName();
}
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 5336f74..b537ee8 100644
--- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
+++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java
@@ -45,8 +45,6 @@ public class ReviewServiceImpl implements ReviewService {
public BaseResponse getUserPendingApprovalReview(Integer page,
Integer pageSize,
HttpServletRequest request) {
- log.info("\t> 执行 Service 层 ReviewService.getUserPendingApprovalReview 方法");
-
//获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
@@ -119,7 +117,6 @@ public class ReviewServiceImpl implements ReviewService {
public BaseResponse getUserReview(Integer page,
Integer pageSize,
HttpServletRequest request) {
- log.info("\t> 执行 Service 层 ReviewService.getUserReview 方法");
//获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
@@ -185,7 +182,6 @@ public class ReviewServiceImpl implements ReviewService {
@Override
public BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request) {
- log.info("\t> 执行 Service 层 ReviewService.addReview 方法");
//获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
--
2.43.0