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