patch:审核模块
审核模块代码部分解耦,增加可读性
This commit is contained in:
parent
cada75e210
commit
037b36bf3f
@ -62,6 +62,10 @@ public class ReviewDAO {
|
|||||||
return reviewMapper.selectReviewByUser(uid);
|
return reviewMapper.selectReviewByUser(uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<ReviewDO> getReviewByUserAndResult(Long uid, Short result) {
|
||||||
|
return reviewMapper.selectReviewByUserAndResult(uid, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void addReview(ReviewDO reviewDO) {
|
public void addReview(ReviewDO reviewDO) {
|
||||||
|
@ -47,4 +47,8 @@ public interface ReviewMapper {
|
|||||||
@Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND "
|
@Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND "
|
||||||
+ "is_delete = 0")
|
+ "is_delete = 0")
|
||||||
List<ReviewDO> selectReviewByUser(Long uid);
|
List<ReviewDO> selectReviewByUser(Long uid);
|
||||||
|
|
||||||
|
@Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND "
|
||||||
|
+ "is_delete = 0 AND review_result = #{result}")
|
||||||
|
List<ReviewDO> selectReviewByUserAndResult(Long uid, Short result);
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,13 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
private final ProjectMapper projectMapper;
|
private final ProjectMapper projectMapper;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 获取用户未审核的数据(只包括管理项目下未审核的数据)
|
||||||
|
* @Date: 2024/4/19
|
||||||
|
* @Param page: 当前页码
|
||||||
|
* @Param pageSize: 每页大小
|
||||||
|
* @Param request: request请求
|
||||||
|
**/
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse getUserPendingApprovalReview(Integer page,
|
public BaseResponse getUserPendingApprovalReview(Integer page,
|
||||||
Integer pageSize,
|
Integer pageSize,
|
||||||
@ -86,7 +93,6 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
reviewData.addAll(reviewDOS);
|
reviewData.addAll(reviewDOS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//根据id进行去重
|
//根据id进行去重
|
||||||
reviewData = reviewData.stream()
|
reviewData = reviewData.stream()
|
||||||
.collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
|
.collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
|
||||||
@ -94,7 +100,6 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
.stream()
|
.stream()
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
//按照申请时间降序排序
|
//按照申请时间降序排序
|
||||||
Collections.sort(reviewData, new Comparator<ReviewDO>() {
|
Collections.sort(reviewData, new Comparator<ReviewDO>() {
|
||||||
@Override
|
@Override
|
||||||
@ -113,6 +118,13 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 获取我的审核数据(用户管理项目下与自己的记录)
|
||||||
|
* @Date: 2024/4/19
|
||||||
|
* @Param page: 当前页码
|
||||||
|
* @Param pageSize: 每页大小
|
||||||
|
* @Param request: request请求
|
||||||
|
**/
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse getUserReview(Integer page,
|
public BaseResponse getUserReview(Integer page,
|
||||||
Integer pageSize,
|
Integer pageSize,
|
||||||
@ -124,42 +136,13 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
//存储审核数据的数组
|
//存储审核数据的数组
|
||||||
List<ReviewDO> reviewData = new ArrayList<>();
|
List<ReviewDO> reviewData = new ArrayList<>();
|
||||||
|
|
||||||
//先获取用户为项目负责人的项目列表
|
//先获取用户管理下的所有审核信息
|
||||||
projectDAO.getProjectByPrincipalUser(userId);
|
reviewData.addAll(getAllReviewFromProject(userId));
|
||||||
|
|
||||||
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
//获取自己的审核记录
|
||||||
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectAllReviewFromProject(projectDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
//在从用户为 子系统负责人 的项目中获取对应 审核信息
|
|
||||||
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectReviewFromSubsystem(projectChildDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//在从用户为 子模块负责人 的项目中获取对应 审核信息
|
|
||||||
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectReviewFromSubmodule(projectModuleDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取自己的审核记录
|
|
||||||
List<ReviewDO> myReviewDO = reviewDAO.getReviewByUser(userId);
|
List<ReviewDO> myReviewDO = reviewDAO.getReviewByUser(userId);
|
||||||
reviewData.addAll(myReviewDO);
|
reviewData.addAll(myReviewDO);
|
||||||
|
|
||||||
|
|
||||||
//根据id进行去重
|
//根据id进行去重
|
||||||
reviewData = reviewData.stream()
|
reviewData = reviewData.stream()
|
||||||
.collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
|
.collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
|
||||||
@ -185,6 +168,12 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 添加审核接口
|
||||||
|
* @Date: 2024/4/19
|
||||||
|
* @Param reviewAddVO: 审核添加实体类
|
||||||
|
* @Param request: request请求
|
||||||
|
**/
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request) {
|
public BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request) {
|
||||||
|
|
||||||
@ -289,10 +278,10 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
Integer page,
|
Integer page,
|
||||||
Integer pageSize) {
|
Integer pageSize) {
|
||||||
|
|
||||||
|
|
||||||
// 获取审核记录数据
|
// 获取审核记录数据
|
||||||
List<ReviewVO> reviewVOS = getReviewsByResult(request, statue);
|
List<ReviewVO> reviewVOS = getReviewsByResult(request, statue);
|
||||||
|
|
||||||
|
|
||||||
// 根据内容筛选
|
// 根据内容筛选
|
||||||
if (content == null || content.equals("")) {
|
if (content == null || content.equals("")) {
|
||||||
//封装结果类与数据总数
|
//封装结果类与数据总数
|
||||||
@ -318,36 +307,8 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
//存储审核数据的数组
|
//存储审核数据的数组
|
||||||
List<ReviewDO> reviewData = new ArrayList<>();
|
List<ReviewDO> reviewData = new ArrayList<>();
|
||||||
|
|
||||||
//先获取用户为项目负责人的项目列表
|
//获取用户管理的项目下的审核数据
|
||||||
projectDAO.getProjectByPrincipalUser(userId);
|
reviewData.addAll(getAllReviewFromProject(userId));
|
||||||
|
|
||||||
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
|
||||||
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectAllReviewFromProject(projectDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
//在从用户为 子系统负责人 的项目中获取对应 审核信息
|
|
||||||
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectReviewFromSubsystem(projectChildDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//在从用户为 子模块负责人 的项目中获取对应 审核信息
|
|
||||||
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectReviewFromSubmodule(projectModuleDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
//根据id进行去重
|
//根据id进行去重
|
||||||
reviewData = reviewData.stream()
|
reviewData = reviewData.stream()
|
||||||
@ -413,50 +374,58 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
public List<ReviewVO> getReviewsByResult(
|
public List<ReviewVO> getReviewsByResult(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
Short result) {
|
Short result) {
|
||||||
|
|
||||||
// 获取用户
|
// 获取用户
|
||||||
Long userId = Processing.getAuthHeaderToUserId(request);
|
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||||
|
|
||||||
//存储审核数据的数组
|
//存储审核数据的数组
|
||||||
List<ReviewDO> reviewData = new ArrayList<>();
|
List<ReviewDO> reviewData = new ArrayList<>();
|
||||||
|
|
||||||
//先获取用户为项目负责人的项目列表
|
//如果审核结果不为空,则根据审核结果进行审查
|
||||||
projectDAO.getProjectByPrincipalUser(userId);
|
if (result != null) {
|
||||||
|
|
||||||
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
||||||
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
||||||
//查询每个项目下所有的审核信息
|
//查询每个项目下所有的审核信息
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
selectApprovedResultReviewFromProject(projectDO.getId(),
|
selectApprovedResultReviewFromProject(projectDO.getId(),
|
||||||
result);
|
result);
|
||||||
//封装VO类
|
//封装VO类
|
||||||
reviewData.addAll(reviewDOS);
|
reviewData.addAll(reviewDOS);
|
||||||
}
|
}
|
||||||
|
|
||||||
//在从用户为 子系统负责人 的项目中获取对应 审核信息
|
//在从用户为 子系统负责人 的项目中获取对应 审核信息
|
||||||
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
|
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
|
||||||
//查询每个项目下状态为2的审核信息
|
//查询每个项目下状态为2的审核信息
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
selectApprovedResultReviewsFromSubsystem(projectChildDO.getId(),
|
selectApprovedResultReviewsFromSubsystem(projectChildDO.getId(),
|
||||||
result);
|
result);
|
||||||
//封装VO类
|
//封装VO类
|
||||||
reviewData.addAll(reviewDOS);
|
reviewData.addAll(reviewDOS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//在从用户为 子模块负责人 的项目中获取对应 审核信息
|
//在从用户为 子模块负责人 的项目中获取对应 审核信息
|
||||||
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
|
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
|
||||||
//查询每个项目下所有的审核信息
|
//查询每个项目下所有的审核信息
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
selectApprovedResultReviewsFromSubModule(projectModuleDO.getId(),
|
selectApprovedResultReviewsFromSubModule(projectModuleDO.getId(),
|
||||||
result);
|
result);
|
||||||
//封装VO类
|
//封装VO类
|
||||||
reviewData.addAll(reviewDOS);
|
reviewData.addAll(reviewDOS);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取自己的审核记录
|
// 获取自己的审核记录
|
||||||
List<ReviewDO> myReviewDO = reviewDAO.getReviewByUser(userId);
|
List<ReviewDO> myReviewDO = reviewDAO.getReviewByUserAndResult(userId, result);
|
||||||
reviewData.addAll(myReviewDO);
|
reviewData.addAll(myReviewDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果审核结果为空,获取全部
|
||||||
|
if (result == null) {
|
||||||
|
//获取用户管理项目下的所有审核数据
|
||||||
|
reviewData.addAll(getAllReviewFromProject(userId));
|
||||||
|
//获取用户自己的所有审核数据
|
||||||
|
reviewData.addAll(reviewDAO.getReviewByUser(userId));
|
||||||
|
}
|
||||||
|
|
||||||
//根据id进行去重
|
//根据id进行去重
|
||||||
reviewData = reviewData.stream()
|
reviewData = reviewData.stream()
|
||||||
@ -465,7 +434,6 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
.stream()
|
.stream()
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
//按照申请时间降序排序
|
//按照申请时间降序排序
|
||||||
Collections.sort(reviewData, new Comparator<ReviewDO>() {
|
Collections.sort(reviewData, new Comparator<ReviewDO>() {
|
||||||
@Override
|
@Override
|
||||||
@ -478,6 +446,13 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 审核数据分页处理
|
||||||
|
* @Date: 2024/4/19
|
||||||
|
* @Param allReviews: 审核数据
|
||||||
|
* @Param page: 当前页码
|
||||||
|
* @Param pageSize: 每页大小
|
||||||
|
**/
|
||||||
public ReviewDataVO getReviewsByPage(List<ReviewVO> allReviews, int page, int pageSize) {
|
public ReviewDataVO getReviewsByPage(List<ReviewVO> allReviews, int page, int pageSize) {
|
||||||
ReviewDataVO reviewDataVO = new ReviewDataVO();
|
ReviewDataVO reviewDataVO = new ReviewDataVO();
|
||||||
int total = allReviews.size();
|
int total = allReviews.size();
|
||||||
@ -496,6 +471,48 @@ public class ReviewServiceImpl implements ReviewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 获取用户管理项目下的所有审核数据
|
||||||
|
* @Date: 2024/4/19
|
||||||
|
* @Param userId:
|
||||||
|
**/
|
||||||
|
public List<ReviewDO> getAllReviewFromProject(Long userId) {
|
||||||
|
|
||||||
|
List<ReviewDO> reviewData = new ArrayList<>();
|
||||||
|
|
||||||
|
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
||||||
|
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
||||||
|
//查询每个项目下所有的审核信息
|
||||||
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
|
selectAllReviewFromProject(projectDO.getId());
|
||||||
|
//封装VO类
|
||||||
|
reviewData.addAll(reviewDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
//在从用户为 子系统负责人 的项目中获取对应 审核信息
|
||||||
|
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
|
||||||
|
//查询每个项目下所有的审核信息
|
||||||
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
|
selectReviewFromSubsystem(projectChildDO.getId());
|
||||||
|
//封装VO类
|
||||||
|
reviewData.addAll(reviewDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//在从用户为 子模块负责人 的项目中获取对应 审核信息
|
||||||
|
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
|
||||||
|
//查询每个项目下所有的审核信息
|
||||||
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
|
selectReviewFromSubmodule(projectModuleDO.getId());
|
||||||
|
//封装VO类
|
||||||
|
reviewData.addAll(reviewDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
return reviewData;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user