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] =?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