This commit is contained in:
parent
3b9a7cfe5e
commit
ff34595002
|
@ -4,7 +4,7 @@ package com.jsl.oa.common.constant;
|
|||
/**
|
||||
* <h1>Review常量类</h1>
|
||||
* <hr/>
|
||||
* 用于存放审核信息的审批状态常量
|
||||
* 用于存放审核信息的审批状态常量与类别常量
|
||||
*
|
||||
* @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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -27,13 +27,54 @@ public class ReviewDAO {
|
|||
private final ReviewMapper reviewMapper;
|
||||
private final ProjectMapper projectMapper;
|
||||
|
||||
public List<ReviewDO> getPrincipalUserReview(Long pid) {
|
||||
return reviewMapper.selectAllReviewFromProject(pid);
|
||||
|
||||
public List<ReviewDO> selectAllReviewFromProject(Long projectId) {
|
||||
log.info("\t> 执行 DAO 层 ReviewDAO.selectAllReviewFromProject 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return reviewMapper.selectAllReviewFromProject(projectId);
|
||||
}
|
||||
|
||||
public List<ReviewDO> selectApprovedResultReviewFromProject(Long projectId,
|
||||
Integer result) {
|
||||
log.info("\t> 执行 DAO 层 ReviewDAO.selectApprovedResultReviewFromProject 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return reviewMapper.selectApprovedResultReviewFromProject(projectId,
|
||||
result);
|
||||
}
|
||||
|
||||
public List<ReviewDO> selectReviewFromSubsystem(Long subsystemId) {
|
||||
log.info("\t> 执行 DAO 层 ReviewDAO.selectReviewFromSubsystem 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return reviewMapper.selectReviewFromSubsystem(subsystemId);
|
||||
}
|
||||
|
||||
public List<ReviewDO> selectApprovedResultReviewsFromSubsystem(Long subsystemId,
|
||||
Integer result) {
|
||||
log.info("\t> 执行 DAO 层 ReviewDAO.selectApprovedResultReviewsFromSubsystem 方法");
|
||||
log.info("\t\t> 从 MySQL 获取数据");
|
||||
return reviewMapper.selectApprovedResultReviewsFromSubsystem(subsystemId,
|
||||
result);
|
||||
}
|
||||
|
||||
public List<ReviewDO> 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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
29
src/main/java/com/jsl/oa/model/vodata/ReviewAddVO.java
Normal file
29
src/main/java/com/jsl/oa/model/vodata/ReviewAddVO.java
Normal file
|
@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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<ReviewDO> reviewDOS = reviewMapper.
|
||||
List<ReviewDO> 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<ReviewDO> reviewDOS = reviewMapper.
|
||||
List<ReviewDO> reviewDOS = reviewDAO.
|
||||
selectApprovedResultReviewsFromSubsystem(projectWorkDO.getId(),
|
||||
ReviewConstants.PENDING);
|
||||
//封装VO类
|
||||
|
@ -75,7 +71,7 @@ public class ReviewServiceImpl implements ReviewService {
|
|||
//在从用户为 子模块负责人 的项目中获取对应 审核信息
|
||||
for (ProjectWorkDO projectWorkDO : projectDAO.getAllSubmoduleByUserId(userId)) {
|
||||
//查询每个项目下所有的审核信息
|
||||
List<ReviewDO> reviewDOS = reviewMapper.
|
||||
List<ReviewDO> reviewDOS = reviewDAO.
|
||||
selectApprovedResultReviewsFromSubsystem(projectWorkDO.getId(),
|
||||
ReviewConstants.PENDING);
|
||||
//封装VO类
|
||||
|
@ -112,7 +108,7 @@ public class ReviewServiceImpl implements ReviewService {
|
|||
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
||||
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
||||
//查询每个项目下所有的审核信息
|
||||
List<ReviewDO> reviewDOS = reviewMapper.
|
||||
List<ReviewDO> 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<ReviewDO> reviewDOS = reviewMapper.
|
||||
List<ReviewDO> 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<ReviewDO> reviewDOS = reviewMapper.
|
||||
List<ReviewDO> 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
|
||||
|
|
64
src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
Normal file
64
src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml
Normal file
|
@ -0,0 +1,64 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.jsl.oa.mapper.ReviewMapper">
|
||||
<insert id="addReview">
|
||||
insert into organize_oa.oa_review
|
||||
<set>
|
||||
|
||||
<if test="name != null and name != ''">
|
||||
name = #{name},
|
||||
</if>
|
||||
|
||||
<if test="content != null and content != ''">
|
||||
content = #{content},
|
||||
</if>
|
||||
|
||||
<if test="sender_id != null">
|
||||
sender_id = #{sender_id},
|
||||
</if>
|
||||
|
||||
<if test="recipient_id != null">
|
||||
recipient_id = #{recipient_id},
|
||||
</if>
|
||||
|
||||
<if test="category != null">
|
||||
category = #{category},
|
||||
</if>
|
||||
|
||||
<if test="project_id != null">
|
||||
project_id = #{project_id},
|
||||
</if>
|
||||
|
||||
<if test="project_subsystem_id != null">
|
||||
project_subsystem_id = #{project_subsystem_id},
|
||||
</if>
|
||||
|
||||
<if test="project_submodule_id != null">
|
||||
project_submodule_id = #{project_submodule_id},
|
||||
</if>
|
||||
|
||||
<if test="application_time != null">
|
||||
application_time = #{application_time},
|
||||
</if>
|
||||
|
||||
<if test="review_time != null">
|
||||
review_time = #{review_time},
|
||||
</if>
|
||||
|
||||
<if test="review_result != null">
|
||||
review_result = #{review_result},
|
||||
</if>
|
||||
|
||||
<if test="is_delete != null">
|
||||
is_delete = #{is_delete},
|
||||
</if>
|
||||
|
||||
</set>
|
||||
where id = #{id}
|
||||
</insert>
|
||||
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user