From 63619c389bd87ce3cbf2578f796928109e121fa6 Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Fri, 19 Apr 2024 13:45:21 +0800 Subject: [PATCH 1/9] =?UTF-8?q?fix:=E5=AE=A1=E6=A0=B8=E6=A8=A1=E5=9D=97=20?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/ReviewController.java | 17 ++++++-- .../com/jsl/oa/services/ReviewService.java | 8 +++- .../oa/services/impl/ReviewServiceImpl.java | 42 +++++++++++++------ 3 files changed, 50 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/jsl/oa/controllers/ReviewController.java b/src/main/java/com/jsl/oa/controllers/ReviewController.java index 563249d..7432a56 100644 --- a/src/main/java/com/jsl/oa/controllers/ReviewController.java +++ b/src/main/java/com/jsl/oa/controllers/ReviewController.java @@ -91,14 +91,23 @@ public class ReviewController { } - @GetMapping("/review/search") + @GetMapping("/review/searchMyReview") 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); + log.info("请求接口[GET]: /review/searchMyReview"); + return reviewService.searchReview(content, request, page, pageSize); + } + + @GetMapping("/review/searchReviewRecords") + public BaseResponse searchReviewRecords(String content, + Short statue, + HttpServletRequest request, + @RequestParam Integer page, + @RequestParam Integer pageSize) { + log.info("请求接口[GET]: /review/searchReviewRecords"); + return reviewService.searchReviewRecords(content, statue, request, page, pageSize); } } diff --git a/src/main/java/com/jsl/oa/services/ReviewService.java b/src/main/java/com/jsl/oa/services/ReviewService.java index bbcfc39..11fb825 100644 --- a/src/main/java/com/jsl/oa/services/ReviewService.java +++ b/src/main/java/com/jsl/oa/services/ReviewService.java @@ -17,5 +17,11 @@ public interface ReviewService { BaseResponse updateReviewResult(ReviewUpdateResultVO reviewUpdateResultVOVO, HttpServletRequest request); - BaseResponse searchReview(String content, Short statue, HttpServletRequest request, Integer page, Integer pageSize); + BaseResponse searchReview(String content, HttpServletRequest request, Integer page, Integer pageSize); + + BaseResponse searchReviewRecords(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 c7b6700..d3a6abb 100644 --- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java @@ -257,20 +257,11 @@ 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); - } +// 获取我的审核数据 + List reviewVOS = getReview(request); // 根据内容筛选 if (content == null || content.equals("")) { @@ -291,6 +282,33 @@ public class ReviewServiceImpl implements ReviewService { return ResultUtil.success(reviewDataVO); } + @Override + public BaseResponse searchReviewRecords(String content, + Short statue, + HttpServletRequest request, + Integer page, + Integer pageSize) { + +// 获取审核记录数据 + List reviewVOS = getReviewsByResult(request, statue); + + +// 根据内容筛选 + if (content == null || content.equals("")) { + //封装结果类与数据总数 + ReviewDataVO reviewDataVO = getReviewsByPage(reviewVOS, page, pageSize); + return ResultUtil.success(reviewDataVO); + } else { + reviewVOS = reviewVOS.stream() + .filter(reviewVO -> reviewVO.getName().contains(content) || reviewVO.getContent().contains(content)) + .collect(Collectors.toList()); + } + + //封装结果类与数据总数 + ReviewDataVO reviewDataVO = getReviewsByPage(reviewVOS, page, pageSize); + + return ResultUtil.success(reviewDataVO); + } private List getReview(HttpServletRequest request) { @@ -436,7 +454,7 @@ public class ReviewServiceImpl implements ReviewService { reviewData.addAll(reviewDOS); } - // 获取自己的审核记录 +// 获取自己的审核记录 List myReviewDO = reviewDAO.getReviewByUser(userId); reviewData.addAll(myReviewDO); -- 2.43.0 From 037b36bf3f5adeb105ec3f8b90c318605e7112a2 Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Fri, 19 Apr 2024 14:21:48 +0800 Subject: [PATCH 2/9] =?UTF-8?q?patch:=E5=AE=A1=E6=A0=B8=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 审核模块代码部分解耦,增加可读性 --- src/main/java/com/jsl/oa/dao/ReviewDAO.java | 4 + .../java/com/jsl/oa/mapper/ReviewMapper.java | 4 + .../oa/services/impl/ReviewServiceImpl.java | 213 ++++++++++-------- 3 files changed, 123 insertions(+), 98 deletions(-) diff --git a/src/main/java/com/jsl/oa/dao/ReviewDAO.java b/src/main/java/com/jsl/oa/dao/ReviewDAO.java index 90f4055..8b1d8d7 100644 --- a/src/main/java/com/jsl/oa/dao/ReviewDAO.java +++ b/src/main/java/com/jsl/oa/dao/ReviewDAO.java @@ -62,6 +62,10 @@ public class ReviewDAO { return reviewMapper.selectReviewByUser(uid); } + public List getReviewByUserAndResult(Long uid, Short result) { + return reviewMapper.selectReviewByUserAndResult(uid, result); + } + public void addReview(ReviewDO reviewDO) { diff --git a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java index aa6a2e9..f8468ac 100644 --- a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java @@ -47,4 +47,8 @@ public interface ReviewMapper { @Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND " + "is_delete = 0") List selectReviewByUser(Long uid); + + @Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND " + + "is_delete = 0 AND review_result = #{result}") + List selectReviewByUserAndResult(Long uid, 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 d3a6abb..f0d505b 100644 --- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java @@ -41,6 +41,13 @@ public class ReviewServiceImpl implements ReviewService { private final ProjectMapper projectMapper; + /** + * @Description: 获取用户未审核的数据(只包括管理项目下未审核的数据) + * @Date: 2024/4/19 + * @Param page: 当前页码 + * @Param pageSize: 每页大小 + * @Param request: request请求 + **/ @Override public BaseResponse getUserPendingApprovalReview(Integer page, Integer pageSize, @@ -86,7 +93,6 @@ public class ReviewServiceImpl implements ReviewService { reviewData.addAll(reviewDOS); } - //根据id进行去重 reviewData = reviewData.stream() .collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing)) @@ -94,7 +100,6 @@ public class ReviewServiceImpl implements ReviewService { .stream() .collect(Collectors.toList()); - //按照申请时间降序排序 Collections.sort(reviewData, new Comparator() { @Override @@ -113,6 +118,13 @@ public class ReviewServiceImpl implements ReviewService { } + /** + * @Description: 获取我的审核数据(用户管理项目下与自己的记录) + * @Date: 2024/4/19 + * @Param page: 当前页码 + * @Param pageSize: 每页大小 + * @Param request: request请求 + **/ @Override public BaseResponse getUserReview(Integer page, Integer pageSize, @@ -124,42 +136,13 @@ public class ReviewServiceImpl implements ReviewService { //存储审核数据的数组 List reviewData = new ArrayList<>(); - //先获取用户为项目负责人的项目列表 - projectDAO.getProjectByPrincipalUser(userId); + //先获取用户管理下的所有审核信息 + reviewData.addAll(getAllReviewFromProject(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); - } - -// 获取自己的审核记录 + //获取自己的审核记录 List myReviewDO = reviewDAO.getReviewByUser(userId); reviewData.addAll(myReviewDO); - //根据id进行去重 reviewData = reviewData.stream() .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 public BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request) { @@ -289,10 +278,10 @@ public class ReviewServiceImpl implements ReviewService { Integer page, Integer pageSize) { + // 获取审核记录数据 List reviewVOS = getReviewsByResult(request, statue); - // 根据内容筛选 if (content == null || content.equals("")) { //封装结果类与数据总数 @@ -318,36 +307,8 @@ public class ReviewServiceImpl implements ReviewService { //存储审核数据的数组 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); - } + //获取用户管理的项目下的审核数据 + reviewData.addAll(getAllReviewFromProject(userId)); //根据id进行去重 reviewData = reviewData.stream() @@ -413,50 +374,58 @@ public class ReviewServiceImpl implements ReviewService { public List getReviewsByResult( HttpServletRequest request, Short result) { - // 获取用户 Long userId = Processing.getAuthHeaderToUserId(request); //存储审核数据的数组 List reviewData = new ArrayList<>(); - //先获取用户为项目负责人的项目列表 - projectDAO.getProjectByPrincipalUser(userId); + //如果审核结果不为空,则根据审核结果进行审查 + if (result != null) { - //先从用户为 项目负责人 的项目中获取对应 审核信息 - for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) { - //查询每个项目下所有的审核信息 - List reviewDOS = reviewDAO. - selectApprovedResultReviewFromProject(projectDO.getId(), - result); - //封装VO类 - reviewData.addAll(reviewDOS); - } + //先从用户为 项目负责人 的项目中获取对应 审核信息 + 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 (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); - } + //在从用户为 子模块负责人 的项目中获取对应 审核信息 + for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) { + //查询每个项目下所有的审核信息 + List reviewDOS = reviewDAO. + selectApprovedResultReviewsFromSubModule(projectModuleDO.getId(), + result); + //封装VO类 + reviewData.addAll(reviewDOS); + } // 获取自己的审核记录 - List myReviewDO = reviewDAO.getReviewByUser(userId); - reviewData.addAll(myReviewDO); + List myReviewDO = reviewDAO.getReviewByUserAndResult(userId, result); + reviewData.addAll(myReviewDO); + } + +// 如果审核结果为空,获取全部 + if (result == null) { + //获取用户管理项目下的所有审核数据 + reviewData.addAll(getAllReviewFromProject(userId)); + //获取用户自己的所有审核数据 + reviewData.addAll(reviewDAO.getReviewByUser(userId)); + } //根据id进行去重 reviewData = reviewData.stream() @@ -465,7 +434,6 @@ public class ReviewServiceImpl implements ReviewService { .stream() .collect(Collectors.toList()); - //按照申请时间降序排序 Collections.sort(reviewData, new Comparator() { @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 allReviews, int page, int pageSize) { ReviewDataVO reviewDataVO = new ReviewDataVO(); int total = allReviews.size(); @@ -496,6 +471,48 @@ public class ReviewServiceImpl implements ReviewService { } + + /** + * @Description: 获取用户管理项目下的所有审核数据 + * @Date: 2024/4/19 + * @Param userId: + **/ + public List getAllReviewFromProject(Long userId) { + + List reviewData = new ArrayList<>(); + + //先从用户为 项目负责人 的项目中获取对应 审核信息 + 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); + } + + return reviewData; + } + + } -- 2.43.0 From 04f179881107f9b75d38e683b65ada62deb6c3d3 Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Fri, 19 Apr 2024 15:07:08 +0800 Subject: [PATCH 3/9] =?UTF-8?q?feat:=E6=97=A5=E6=8A=A5=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=20=E6=97=A5=E6=8A=A5=E6=90=9C=E7=B4=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加日报搜索接口 --- .../controllers/ProjectDailyController.java | 16 +++++-- .../java/com/jsl/oa/dao/ProjectDailyDAO.java | 47 +++++++++++++++++-- .../com/jsl/oa/mapper/ProjectDailyMapper.java | 4 ++ .../jsl/oa/services/ProjectDailyService.java | 3 +- .../impl/ProjectDailyServiceImpl.java | 31 ++++++++++-- .../java/com/jsl/oa/utils/Processing.java | 29 ++++++++++-- .../com/jsl/oa/mapper/ProjectDailyMapper.xml | 15 ++++++ 7 files changed, 127 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java index 330cf47..550e1f1 100644 --- a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java @@ -16,7 +16,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; -import java.util.Date; + /** @@ -65,10 +65,18 @@ public class ProjectDailyController { @GetMapping("/daily/search") public BaseResponse searchMyDaily(@RequestParam Integer page, @RequestParam Integer pageSize, - Date beginTime, - Date endTime, + Integer projectId, + String beginTime, + String endTime, HttpServletRequest request) { - return projectDailyService.searchMyDaily(page, pageSize, beginTime, endTime, request); + + + return projectDailyService.searchMyDaily(projectId, + page, + pageSize, + Processing.convertStringToDate(beginTime), + Processing.convertStringToDate(endTime), + request); } diff --git a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java index ad6805d..40bee4e 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java @@ -12,6 +12,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.ArrayList; +import java.util.Comparator; +import java.util.Date; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors; @@ -58,6 +60,42 @@ public class ProjectDailyDAO { List myProjectDaily = projectDailyMapper.getProjectDailyByUser(userId); projectDailyDOList.addAll(myProjectDaily); +// 排序并去重 + projectDailyDOList = sortaAndNotRepeatDailyDO(projectDailyDOList); + + return projectDailyDOList; + } + + + public List getMyProjectDailyByTime(Long userId, Date beginTime, Date endTime) { + +// 日报数据数组 + List projectDailyDOList = new ArrayList<>(); + +// 先获取我负责的项目下的日报数据 + //获取我负责的项目 + List projectDOS = projectMapper.getAllProjectByUserId(userId); + //获取项目下对应日报,并根据时间筛选 + for (ProjectDO projectDO:projectDOS) { + List dailyFromProject = projectDailyMapper.getProjectDailyByProjectAndTime(projectDO.getId(), + beginTime, endTime); + projectDailyDOList.addAll(dailyFromProject); + } + +// 在获取本人的发布日报,并根据时间筛选 + List myProjectDaily = projectDailyMapper. + getProjectDailyByUserAndTime(userId, beginTime, endTime); + projectDailyDOList.addAll(myProjectDaily); + +// 排序并去重 + projectDailyDOList = sortaAndNotRepeatDailyDO(projectDailyDOList); + + return projectDailyDOList; + } + + + public List sortaAndNotRepeatDailyDO(List projectDailyDOList) { + // 去除重复的日报信息 projectDailyDOList = projectDailyDOList.stream() // 根据 id 属性进行去重 @@ -66,12 +104,13 @@ public class ProjectDailyDAO { .values().stream() .collect(Collectors.toList()); +// 根据时间进行排序 + projectDailyDOList = projectDailyDOList.stream() + .sorted(Comparator.comparing(ProjectDailyDO::getCreatedAt).reversed()) + .collect(Collectors.toList()); + return projectDailyDOList; } - - - - } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java index 3425a7e..e4076de 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java @@ -4,6 +4,7 @@ package com.jsl.oa.mapper; import com.jsl.oa.model.dodata.ProjectDailyDO; import org.apache.ibatis.annotations.Mapper; +import java.util.Date; import java.util.List; @@ -23,6 +24,9 @@ public interface ProjectDailyMapper { List getProjectDailyByProject(Long pid); + List getProjectDailyByProjectAndTime(Long id, Date beginTime, Date endTime); + + List getProjectDailyByUserAndTime(Long userId, Date beginTime, Date endTime); } diff --git a/src/main/java/com/jsl/oa/services/ProjectDailyService.java b/src/main/java/com/jsl/oa/services/ProjectDailyService.java index 4fd44c6..4e7f0b7 100644 --- a/src/main/java/com/jsl/oa/services/ProjectDailyService.java +++ b/src/main/java/com/jsl/oa/services/ProjectDailyService.java @@ -22,7 +22,8 @@ public interface ProjectDailyService { BaseResponse getMyDaily(Integer page, Integer pageSize, HttpServletRequest request); - BaseResponse searchMyDaily(Integer page, + BaseResponse searchMyDaily(Integer projectId, + Integer page, Integer pageSize, Date beginTime, Date endTime, diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java index 17374fd..c62e0b3 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java @@ -88,19 +88,40 @@ public class ProjectDailyServiceImpl implements ProjectDailyService { } @Override - public BaseResponse searchMyDaily(Integer page, + public BaseResponse searchMyDaily(Integer projectId, + Integer page, Integer pageSize, Date beginTime, Date endTime, HttpServletRequest request) { // 获取用户id Long userId = Processing.getAuthHeaderToUserId(request); -// 获取 我发布的及自己负责的项目下 的日报 - List projectDailyDOList = - projectDailyDAO.getMyProjectDaily(userId); +// 根据时间筛选---获取 我发布的及自己负责的项目下 的日报 + List projectDailyDOList = new ArrayList<>(); + //如果时间不为空,则先根据时间筛选 + if (beginTime != null && endTime != null) { + projectDailyDOList = projectDailyDAO. + getMyProjectDailyByTime(userId, beginTime, endTime); + } else { + //否则获取全部数据 + projectDailyDOList = + projectDailyDAO.getMyProjectDaily(userId); + } - return null; +// 再根据项目id进行筛选 + if (projectId != null) { + projectDailyDOList.removeIf(projectDailyDO -> projectDailyDO.getProjectId() != Long.valueOf(projectId)); + } + +// 进行分页 + List dailyPage = Processing.getPage(projectDailyDOList, page, pageSize); +// 封装结果类 + List projectDailyVOS = encapsulateArrayClass(dailyPage); + ProjectDailyDataVO projectDailyDataVO = + new ProjectDailyDataVO(projectDailyDOList.size(), page, pageSize, projectDailyVOS); + + return ResultUtil.success(projectDailyDataVO); } diff --git a/src/main/java/com/jsl/oa/utils/Processing.java b/src/main/java/com/jsl/oa/utils/Processing.java index 62d1fd1..ab1cdcd 100755 --- a/src/main/java/com/jsl/oa/utils/Processing.java +++ b/src/main/java/com/jsl/oa/utils/Processing.java @@ -23,10 +23,9 @@ import org.springframework.validation.ObjectError; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Random; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; /** *

自定义快捷工具类

@@ -409,4 +408,26 @@ public class Processing { int toIndex = Math.min(fromIndex + pageSize, list.size()); return list.subList(fromIndex, toIndex); } + + + /** + * @Description: 字符与时间类型转换方法 + * @Date: 2024/4/19 + * @Param dateString: + **/ + public static Date convertStringToDate(String dateString) { + if (dateString.isEmpty()) { + return null; // 如果字符串为空,返回空的Date对象 + } else { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + return dateFormat.parse(dateString); + } catch (ParseException e) { + return null; + } + } + } + + + } diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml index 5bb6f20..7514619 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml @@ -37,5 +37,20 @@ and is_delete = 0 + + + \ No newline at end of file -- 2.43.0 From cf4921397c1aba061b29fa90af7d3893e05822d0 Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Fri, 19 Apr 2024 16:36:18 +0800 Subject: [PATCH 4/9] =?UTF-8?q?feat:=E6=97=A5=E6=8A=A5=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=20=E6=97=A5=E6=8A=A5=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/config/startup/PermissionList.java | 5 +++++ .../oa/controllers/ProjectDailyController.java | 14 ++++++++++++-- .../jsl/oa/controllers/ReviewController.java | 2 ++ .../java/com/jsl/oa/dao/ProjectDailyDAO.java | 4 ++++ .../com/jsl/oa/mapper/ProjectDailyMapper.java | 4 ++++ .../jsl/oa/services/ProjectDailyService.java | 2 ++ .../services/impl/ProjectDailyServiceImpl.java | 17 +++++++++++++++++ .../jsl/oa/services/impl/ReviewServiceImpl.java | 3 +++ src/main/java/com/jsl/oa/utils/ErrorCode.java | 1 + .../com/jsl/oa/mapper/ProjectDailyMapper.xml | 13 +++++++++++++ 10 files changed, 63 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/jsl/oa/config/startup/PermissionList.java b/src/main/java/com/jsl/oa/config/startup/PermissionList.java index 29615c9..52c4bdf 100644 --- a/src/main/java/com/jsl/oa/config/startup/PermissionList.java +++ b/src/main/java/com/jsl/oa/config/startup/PermissionList.java @@ -33,11 +33,16 @@ public class PermissionList { permissionPrincipal.add(new PermissionVO("project:add", "增加项目")); permissionPrincipal.add(new PermissionVO("project:child:add", "增加子系统")); permissionPrincipal.add(new PermissionVO("project:module:add", "增加子模块")); + permissionPrincipal.add(new PermissionVO("review:add", "添加审核申请")); + permissionPrincipal.add(new PermissionVO("project:daily:add", "添加日报")); + permissionPrincipal.add(new PermissionVO("project:daily:delete", "删除日报")); permissionDeveloper.add(new PermissionVO("auth:change_password", "修改密码")); permissionDeveloper.add(new PermissionVO("info:get_header_image", "获取头部图片")); permissionDeveloper.add(new PermissionVO("info:edit_header_image", "编辑头部图片")); permissionDeveloper.add(new PermissionVO("info:delete_header_image", "删除头部图片")); + permissionDeveloper.add(new PermissionVO("project:daily:add", "添加日报")); + permissionDeveloper.add(new PermissionVO("review:add", "添加审核申请")); permissionPrincipal.add(new PermissionVO("project:child:add", "增加子系统")); permissionPrincipal.add(new PermissionVO("project:module:add", "增加子模块")); } diff --git a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java index 550e1f1..4b77b59 100644 --- a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java @@ -1,6 +1,7 @@ package com.jsl.oa.controllers; +import com.jsl.oa.annotations.NeedPermission; import com.jsl.oa.model.vodata.ProjectDailyAddVO; import com.jsl.oa.services.ProjectDailyService; import com.jsl.oa.utils.BaseResponse; @@ -42,6 +43,7 @@ public class ProjectDailyController { * @return 新增结果 */ @PostMapping("/daily/add") + @NeedPermission("project:daily:add") public BaseResponse add(@RequestBody @Validated ProjectDailyAddVO projectDailyAddVO, @NotNull BindingResult bindingResult, HttpServletRequest request) { @@ -49,15 +51,23 @@ public class ProjectDailyController { if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult)); } - + log.info("请求接口[GET]: /daily/add"); return projectDailyService.addDaily(projectDailyAddVO, request); } + @DeleteMapping("/daily/delete") + @NeedPermission("project:daily:delete") + public BaseResponse delete(@RequestParam Integer dailyId, + HttpServletRequest request) { + log.info("请求接口[DELETE]: /daily/delete"); + return projectDailyService.deleteDaily(dailyId, request); + } @GetMapping("/daily/getMyDaily") public BaseResponse getMyDaily(@RequestParam Integer page, @RequestParam Integer pageSize, HttpServletRequest request) { + log.info("请求接口[GET]: /daily/getMyDaily"); return projectDailyService.getMyDaily(page, pageSize, request); } @@ -70,7 +80,7 @@ public class ProjectDailyController { String endTime, HttpServletRequest request) { - + log.info("请求接口[GET]: /daily/search"); return projectDailyService.searchMyDaily(projectId, page, pageSize, diff --git a/src/main/java/com/jsl/oa/controllers/ReviewController.java b/src/main/java/com/jsl/oa/controllers/ReviewController.java index 7432a56..6eb00cf 100644 --- a/src/main/java/com/jsl/oa/controllers/ReviewController.java +++ b/src/main/java/com/jsl/oa/controllers/ReviewController.java @@ -1,5 +1,6 @@ package com.jsl.oa.controllers; +import com.jsl.oa.annotations.NeedPermission; import com.jsl.oa.model.vodata.ReviewAddVO; import com.jsl.oa.model.vodata.ReviewUpdateResultVO; import com.jsl.oa.services.ReviewService; @@ -64,6 +65,7 @@ public class ReviewController { * @Param null: **/ @PostMapping("/review/add") + @NeedPermission("review:add") public BaseResponse addReview(@RequestBody @Validated ReviewAddVO reviewAddVO, @NotNull BindingResult bindingResult, HttpServletRequest request) { diff --git a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java index 40bee4e..1f94987 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java @@ -111,6 +111,10 @@ public class ProjectDailyDAO { return projectDailyDOList; } + + public void deleteDailyById(Integer dailyId) { + projectDailyMapper.deleteDailyById(dailyId); + } } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java index e4076de..69909bc 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java @@ -27,6 +27,10 @@ public interface ProjectDailyMapper { List getProjectDailyByProjectAndTime(Long id, Date beginTime, Date endTime); List getProjectDailyByUserAndTime(Long userId, Date beginTime, Date endTime); + + ProjectDailyDO getDailyById(Integer id); + + void deleteDailyById(Integer id); } diff --git a/src/main/java/com/jsl/oa/services/ProjectDailyService.java b/src/main/java/com/jsl/oa/services/ProjectDailyService.java index 4e7f0b7..d7e12d6 100644 --- a/src/main/java/com/jsl/oa/services/ProjectDailyService.java +++ b/src/main/java/com/jsl/oa/services/ProjectDailyService.java @@ -28,6 +28,8 @@ public interface ProjectDailyService { Date beginTime, Date endTime, HttpServletRequest request); + + BaseResponse deleteDaily(Integer dailyId, HttpServletRequest request); } diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java index c62e0b3..b627360 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java @@ -6,6 +6,7 @@ package com.jsl.oa.services.impl; import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.ProjectDailyDAO; import com.jsl.oa.dao.UserDAO; +import com.jsl.oa.mapper.ProjectDailyMapper; import com.jsl.oa.model.dodata.ProjectDailyDO; import com.jsl.oa.model.vodata.ProjectDailyAddVO; import com.jsl.oa.model.vodata.ProjectDailyDataVO; @@ -42,6 +43,7 @@ public class ProjectDailyServiceImpl implements ProjectDailyService { private final ProjectDAO projectDAO; private final UserDAO userDAO; private final ProjectDailyDAO projectDailyDAO; + private final ProjectDailyMapper projectDailyMapper; @Override @@ -125,6 +127,21 @@ public class ProjectDailyServiceImpl implements ProjectDailyService { } + @Override + public BaseResponse deleteDaily(Integer dailyId, HttpServletRequest request) { + + Long userId = Processing.getAuthHeaderToUserId(request); +// 检查用户是否为项目负责人 + if (!projectDAO.isPrincipalUser(userId, projectDailyMapper.getDailyById(dailyId).getProjectId())) { + return ResultUtil.error(ErrorCode.User_NOT_PROJECT_PRINCIPAL); + } + + projectDailyDAO.deleteDailyById(dailyId); + + return ResultUtil.success(); + } + + public List encapsulateArrayClass(List projectDailyDOList) { // 定义封装结果数组 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 f0d505b..2bf0e09 100644 --- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java @@ -212,6 +212,9 @@ public class ReviewServiceImpl implements ReviewService { //定义申请者id reviewDO.setSenderId(userId); + reviewDO.setProjectId(Long.valueOf(reviewAddVO.getProjectId())); + reviewDO.setProjectChildId(Long.valueOf(reviewAddVO.getProjectChildId())); + reviewDO.setProjectModuleId(Long.valueOf(reviewAddVO.getProjectModuleId())); //添加数据 reviewDAO.addReview(reviewDO); diff --git a/src/main/java/com/jsl/oa/utils/ErrorCode.java b/src/main/java/com/jsl/oa/utils/ErrorCode.java index 8bb67cc..38c1b5b 100755 --- a/src/main/java/com/jsl/oa/utils/ErrorCode.java +++ b/src/main/java/com/jsl/oa/utils/ErrorCode.java @@ -55,6 +55,7 @@ public enum ErrorCode { PROJECT_NOT_USER("ProjectNotUser", 40020, "项目无此用户"), PROJECT_CHILD_NOT_EXIST("ProjectChildNotExist", 40021, "子系统不存在"), MODULE_NOT_EXIST("ModuleNotExist", 40022, "模块不存在"), + User_NOT_PROJECT_PRINCIPAL("UserNotProjectPrincipal", 40023, "用户非项目负责人"), REVIEW_NOT_EXIST("ReviewNotExit", 40101, "未找到对应审核信息"); diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml index 7514619..36b4110 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml @@ -53,4 +53,17 @@ and is_delete = 0 + + + + + UPDATE oa_project_daily + SET is_delete = 1 + WHERE id = #{id} + \ No newline at end of file -- 2.43.0 From 19b38290257205184c288dedd3af70bc68c095ba Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Fri, 19 Apr 2024 17:12:16 +0800 Subject: [PATCH 5/9] =?UTF-8?q?fix:=E6=97=A5=E6=8A=A5=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 日报添加接口修正 --- src/main/java/com/jsl/oa/config/startup/PermissionList.java | 4 ++-- .../java/com/jsl/oa/controllers/ProjectDailyController.java | 6 ++++-- .../com/jsl/oa/services/impl/ProjectDailyServiceImpl.java | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/jsl/oa/config/startup/PermissionList.java b/src/main/java/com/jsl/oa/config/startup/PermissionList.java index 52c4bdf..129caa6 100644 --- a/src/main/java/com/jsl/oa/config/startup/PermissionList.java +++ b/src/main/java/com/jsl/oa/config/startup/PermissionList.java @@ -34,15 +34,15 @@ public class PermissionList { permissionPrincipal.add(new PermissionVO("project:child:add", "增加子系统")); permissionPrincipal.add(new PermissionVO("project:module:add", "增加子模块")); permissionPrincipal.add(new PermissionVO("review:add", "添加审核申请")); - permissionPrincipal.add(new PermissionVO("project:daily:add", "添加日报")); + permissionPrincipal.add(new PermissionVO("daily:add", "添加日报")); permissionPrincipal.add(new PermissionVO("project:daily:delete", "删除日报")); permissionDeveloper.add(new PermissionVO("auth:change_password", "修改密码")); permissionDeveloper.add(new PermissionVO("info:get_header_image", "获取头部图片")); permissionDeveloper.add(new PermissionVO("info:edit_header_image", "编辑头部图片")); permissionDeveloper.add(new PermissionVO("info:delete_header_image", "删除头部图片")); - permissionDeveloper.add(new PermissionVO("project:daily:add", "添加日报")); permissionDeveloper.add(new PermissionVO("review:add", "添加审核申请")); + permissionDeveloper.add(new PermissionVO("daily:add", "添加日报")); permissionPrincipal.add(new PermissionVO("project:child:add", "增加子系统")); permissionPrincipal.add(new PermissionVO("project:module:add", "增加子模块")); } diff --git a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java index 4b77b59..d6a2f93 100644 --- a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java @@ -43,8 +43,8 @@ public class ProjectDailyController { * @return 新增结果 */ @PostMapping("/daily/add") - @NeedPermission("project:daily:add") - public BaseResponse add(@RequestBody @Validated ProjectDailyAddVO projectDailyAddVO, + @NeedPermission("daily:add") + public BaseResponse addDaily(@RequestBody @Validated ProjectDailyAddVO projectDailyAddVO, @NotNull BindingResult bindingResult, HttpServletRequest request) { // 判断是否有参数错误 @@ -55,6 +55,7 @@ public class ProjectDailyController { return projectDailyService.addDaily(projectDailyAddVO, request); } + @DeleteMapping("/daily/delete") @NeedPermission("project:daily:delete") public BaseResponse delete(@RequestParam Integer dailyId, @@ -63,6 +64,7 @@ public class ProjectDailyController { return projectDailyService.deleteDaily(dailyId, request); } + @GetMapping("/daily/getMyDaily") public BaseResponse getMyDaily(@RequestParam Integer page, @RequestParam Integer pageSize, diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java index b627360..96ce19c 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java @@ -62,7 +62,7 @@ public class ProjectDailyServiceImpl implements ProjectDailyService { ProjectDailyDO projectDailyDO = new ProjectDailyDO(); Processing.copyProperties(projectDailyAddVO, projectDailyDO); projectDailyDO.setUserId(userId); - + projectDailyDO.setProjectId(Long.valueOf(projectDailyAddVO.getProjectId())); // 向数据库添加数据 projectDailyDAO.addProjectDaily(projectDailyDO); -- 2.43.0 From 3f715f50a3cc4b7b3fcebdf9c0223f7c37d461fa Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Fri, 19 Apr 2024 17:56:38 +0800 Subject: [PATCH 6/9] =?UTF-8?q?feat=EF=BC=9A=E6=97=A5=E6=8A=A5=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=20=E4=BF=AE=E6=94=B9=E6=97=A5=E6=8A=A5=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/ProjectDailyController.java | 14 +++++++ src/main/java/com/jsl/oa/dao/ProjectDAO.java | 1 + .../java/com/jsl/oa/dao/ProjectDailyDAO.java | 9 ++++ .../com/jsl/oa/mapper/ProjectDailyMapper.java | 2 + .../java/com/jsl/oa/mapper/ProjectMapper.java | 1 + .../oa/model/vodata/ProjectDailyAddVO.java | 3 +- .../oa/model/vodata/ProjectDailyUpdateVO.java | 29 +++++++++++++ .../jsl/oa/services/ProjectDailyService.java | 3 ++ .../impl/ProjectDailyServiceImpl.java | 41 +++++++++++++++++++ src/main/java/com/jsl/oa/utils/ErrorCode.java | 2 + .../com/jsl/oa/mapper/ProjectDailyMapper.xml | 14 +++++++ 11 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/jsl/oa/model/vodata/ProjectDailyUpdateVO.java diff --git a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java index d6a2f93..be85ec6 100644 --- a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java @@ -3,6 +3,7 @@ package com.jsl.oa.controllers; import com.jsl.oa.annotations.NeedPermission; import com.jsl.oa.model.vodata.ProjectDailyAddVO; +import com.jsl.oa.model.vodata.ProjectDailyUpdateVO; import com.jsl.oa.services.ProjectDailyService; import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.ErrorCode; @@ -55,6 +56,19 @@ public class ProjectDailyController { return projectDailyService.addDaily(projectDailyAddVO, request); } + @PutMapping("/daily/update") + public BaseResponse updateDaily(@RequestBody @Validated ProjectDailyUpdateVO projectDailyUpdateVO, + @NotNull BindingResult bindingResult, + HttpServletRequest request) { + + log.info("请求接口[PUT]: /daily/update"); + // 判断是否有参数错误 + if (bindingResult.hasErrors()) { + return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + + return projectDailyService.updateDaily(projectDailyUpdateVO, request); + } @DeleteMapping("/daily/delete") @NeedPermission("project:daily:delete") diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index 32a597a..c7762f1 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -209,4 +209,5 @@ public class ProjectDAO { return projectMapper.getAllModuleByUserId(uid); } + } diff --git a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java index 1f94987..bece262 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java @@ -115,6 +115,15 @@ public class ProjectDailyDAO { public void deleteDailyById(Integer dailyId) { projectDailyMapper.deleteDailyById(dailyId); } + + public ProjectDailyDO getPorjectDailyById(Integer id) { + return projectDailyMapper.getDailyById(id); + } + + public void updateDaily(ProjectDailyDO projectDailyDO) { + projectDailyMapper.updateDaily(projectDailyDO); + } + } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java index 69909bc..7526e78 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java @@ -31,6 +31,8 @@ public interface ProjectDailyMapper { ProjectDailyDO getDailyById(Integer id); void deleteDailyById(Integer id); + + void updateDaily(ProjectDailyDO projectDailyDO); } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 510a65b..987a272 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -167,4 +167,5 @@ public interface ProjectMapper { + "(select id from organize_oa.oa_project_child where name =#{childName} " + "and project_id = (select id from organize_oa.oa_project where name =#{projectName}))") List getModuleByName(String projectName, String childName); + } diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java index 3b0a891..ff63d98 100644 --- a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java @@ -6,7 +6,6 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; -import java.util.Date; @Data @@ -20,7 +19,7 @@ public class ProjectDailyAddVO { @NotNull(message = "工作时间不能为空") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date dailyTime; + private String dailyTime; } diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyUpdateVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyUpdateVO.java new file mode 100644 index 0000000..c8b21cf --- /dev/null +++ b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyUpdateVO.java @@ -0,0 +1,29 @@ +package com.jsl.oa.model.vodata; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +public class ProjectDailyUpdateVO { + + + @NotNull(message = "日报id不能为空") + private Integer id; + + @NotNull(message = "日报所属项目id不能为空") + private Integer projectId; + + @NotBlank(message = "日报内容不能为空") + private String content; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String dailyTime; + + +} + + diff --git a/src/main/java/com/jsl/oa/services/ProjectDailyService.java b/src/main/java/com/jsl/oa/services/ProjectDailyService.java index d7e12d6..776f069 100644 --- a/src/main/java/com/jsl/oa/services/ProjectDailyService.java +++ b/src/main/java/com/jsl/oa/services/ProjectDailyService.java @@ -3,6 +3,7 @@ package com.jsl.oa.services; import com.jsl.oa.model.vodata.ProjectDailyAddVO; +import com.jsl.oa.model.vodata.ProjectDailyUpdateVO; import com.jsl.oa.utils.BaseResponse; import javax.servlet.http.HttpServletRequest; @@ -30,6 +31,8 @@ public interface ProjectDailyService { HttpServletRequest request); BaseResponse deleteDaily(Integer dailyId, HttpServletRequest request); + + BaseResponse updateDaily(ProjectDailyUpdateVO projectDailyUpdateVO, HttpServletRequest request); } diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java index 96ce19c..d33a025 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java @@ -10,6 +10,7 @@ import com.jsl.oa.mapper.ProjectDailyMapper; import com.jsl.oa.model.dodata.ProjectDailyDO; import com.jsl.oa.model.vodata.ProjectDailyAddVO; import com.jsl.oa.model.vodata.ProjectDailyDataVO; +import com.jsl.oa.model.vodata.ProjectDailyUpdateVO; import com.jsl.oa.model.vodata.ProjectDailyVO; import com.jsl.oa.services.ProjectDailyService; import com.jsl.oa.utils.BaseResponse; @@ -141,6 +142,46 @@ public class ProjectDailyServiceImpl implements ProjectDailyService { return ResultUtil.success(); } + @Override + public BaseResponse updateDaily(ProjectDailyUpdateVO projectDailyUpdateVO, HttpServletRequest request) { +// 获取用户id + Long userId = Processing.getAuthHeaderToUserId(request); +// 获取对应日报数据 + ProjectDailyDO projectDailyDO = projectDailyDAO.getPorjectDailyById(projectDailyUpdateVO.getId()); +// 检测日报是否为空 + if (projectDailyDO == null) { + return ResultUtil.error(ErrorCode.PROJECT_DAILY_NOT_EXIST); + } +// 查询用户是否有修改权限(本人或项目负责人) + if (userId.equals(projectDailyDO.getUserId()) + || projectDAO.getProjectById( + projectDailyDO.getProjectId()). + getPrincipalId().equals(userId)) { + String content = projectDailyUpdateVO.getContent(); + Long projectId = Long.valueOf(projectDailyUpdateVO.getProjectId()); + String dailyTime = projectDailyUpdateVO.getDailyTime(); + + if (content != null && !content.equals("")) { + projectDailyDO.setContent(content); + } + + if (projectDAO.isExistProject(projectId)) { + projectDailyDO.setProjectId(projectId); + } + + if (dailyTime != null && !dailyTime.equals("")) { + projectDailyDO.setDailyTime(Processing.convertStringToDate(dailyTime)); + } + + } else { + return ResultUtil.error(ErrorCode.NOT_PERMISSION_UPDATE_DAILY); + } + + projectDailyDAO.updateDaily(projectDailyDO); + + return ResultUtil.success(); + } + public List encapsulateArrayClass(List projectDailyDOList) { diff --git a/src/main/java/com/jsl/oa/utils/ErrorCode.java b/src/main/java/com/jsl/oa/utils/ErrorCode.java index 38c1b5b..cacb380 100755 --- a/src/main/java/com/jsl/oa/utils/ErrorCode.java +++ b/src/main/java/com/jsl/oa/utils/ErrorCode.java @@ -55,6 +55,8 @@ public enum ErrorCode { PROJECT_NOT_USER("ProjectNotUser", 40020, "项目无此用户"), PROJECT_CHILD_NOT_EXIST("ProjectChildNotExist", 40021, "子系统不存在"), MODULE_NOT_EXIST("ModuleNotExist", 40022, "模块不存在"), + PROJECT_DAILY_NOT_EXIST("ProjectDailyNotExist", 40023, "日志不存在"), + NOT_PERMISSION_UPDATE_DAILY("NotPermissionUpdateDaily", 40024, "用户无权限修改日报"), User_NOT_PROJECT_PRINCIPAL("UserNotProjectPrincipal", 40023, "用户非项目负责人"), REVIEW_NOT_EXIST("ReviewNotExit", 40101, "未找到对应审核信息"); diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml index 36b4110..01e395e 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml @@ -66,4 +66,18 @@ SET is_delete = 1 WHERE id = #{id} + + + UPDATE oa_project_daily + + user_id = #{userId}, + project_id = #{projectId}, + content = #{content}, + daily_time = #{dailyTime}, + updated_at = #{updatedAt}, + is_delete = #{isDelete} + + WHERE id = #{id} + + \ No newline at end of file -- 2.43.0 From 9ab6d1621b93433f690bbc76f1ceab08ef9e7835 Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Fri, 19 Apr 2024 18:13:52 +0800 Subject: [PATCH 7/9] =?UTF-8?q?fix:=E6=97=A5=E6=8A=A5=E6=A8=A1=E5=9D=97=20?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加部分属性 --- src/main/java/com/jsl/oa/model/vodata/ProjectDailyVO.java | 1 + .../com/jsl/oa/services/impl/ProjectDailyServiceImpl.java | 8 ++++++++ .../java/com/jsl/oa/services/impl/ReviewServiceImpl.java | 5 +++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyVO.java index d2e1a2e..d2a1deb 100644 --- a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyVO.java @@ -32,6 +32,7 @@ public class ProjectDailyVO { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updatedAt; + private Boolean isAllowDelete; } diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java index d33a025..366691f 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java @@ -197,6 +197,14 @@ public class ProjectDailyServiceImpl implements ProjectDailyService { projectDailyVO.setProjectName( projectDAO.getProjectById(projectDailyVO.getProjectId()).getName()) .setUserName(userDAO.getUserById(projectDailyDO.getUserId()).getNickname()); + //用户是否有权限删除 + if (projectDailyDO.getUserId().equals(projectDAO. + getProjectById(projectDailyVO.getProjectId()).getPrincipalId())) { + projectDailyVO.setIsAllowDelete(true); + } else { + projectDailyVO.setIsAllowDelete(false); + } + // 向 结果封装类数组 添加对应 日报封装类 projectDailyVOS.add(projectDailyVO); } 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 2bf0e09..1c8e34a 100644 --- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java @@ -281,7 +281,6 @@ public class ReviewServiceImpl implements ReviewService { Integer page, Integer pageSize) { - // 获取审核记录数据 List reviewVOS = getReviewsByResult(request, statue); @@ -355,7 +354,9 @@ public class ReviewServiceImpl implements ReviewService { .setProjectName(projectDAO.getProjectById(reviewDO.getProjectId()).getName()) .setProjectChildName(projectMapper.getProjectChildById( Math.toIntExact(reviewDO.getProjectChildId())).getName()) - .setResult(Processing.turnReviewResult(reviewDO.getReviewResult())); + .setResult(Processing.turnReviewResult(reviewDO.getReviewResult())) + .setSenderId(Long.valueOf(reviewDO.getSenderId())) + .setRecipientId(reviewDO.getRecipientId()); // 赋值可为空属性并进行判断 if (reviewDO.getRecipientId() != null) { reviewVO.setRecipientName(userMapper.getUserById(reviewDO.getRecipientId()).getNickname()); -- 2.43.0 From 1b6ea7b140373bcf82c773d98f193f280c06637f Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Fri, 19 Apr 2024 19:10:47 +0800 Subject: [PATCH 8/9] =?UTF-8?q?fix:=E6=97=A5=E6=8A=A5=E6=A8=A1=E5=9D=97=20?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit xml文件修改 --- .../com/jsl/oa/mapper/ProjectDailyMapper.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml index 01e395e..8583963 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml @@ -7,7 +7,7 @@ - insert into oa_project_daily + insert into organize_oa.oa_project_daily user_id, project_id, @@ -27,19 +27,19 @@ - select * from oa_project_daily + select * from organize_oa.oa_project_daily where user_id = #{userId} and created_at between #{beginTime} and #{endTime} and is_delete = 0 @@ -56,19 +56,19 @@ - UPDATE oa_project_daily + UPDATE organize_oa.oa_project_daily SET is_delete = 1 WHERE id = #{id} - UPDATE oa_project_daily + UPDATE organize_oa.oa_project_daily user_id = #{userId}, project_id = #{projectId}, -- 2.43.0 From 0719ecf5381197cf1aa1614546f23fb769599a71 Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Fri, 19 Apr 2024 20:42:00 +0800 Subject: [PATCH 9/9] =?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 对提出的问题进行修正 --- .../com/jsl/oa/config/startup/PermissionList.java | 14 +++++++------- .../jsl/oa/controllers/ProjectDailyController.java | 6 +----- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/jsl/oa/config/startup/PermissionList.java b/src/main/java/com/jsl/oa/config/startup/PermissionList.java index 129caa6..09e73b7 100644 --- a/src/main/java/com/jsl/oa/config/startup/PermissionList.java +++ b/src/main/java/com/jsl/oa/config/startup/PermissionList.java @@ -23,19 +23,19 @@ public class PermissionList { permissionList.add(new PermissionVO("info:get_header_image", "获取头部图片")); permissionList.add(new PermissionVO("info:edit_header_image", "编辑头部图片")); permissionList.add(new PermissionVO("info:delete_header_image", "删除头部图片")); - permissionPrincipal.add(new PermissionVO("project:child:add", "增加子系统")); - permissionPrincipal.add(new PermissionVO("project:module:add", "增加子模块")); + permissionList.add(new PermissionVO("project:child_add", "增加子系统")); + permissionList.add(new PermissionVO("project:module_add", "增加子模块")); permissionPrincipal.add(new PermissionVO("auth:change_password", "修改密码")); permissionPrincipal.add(new PermissionVO("info:get_header_image", "获取头部图片")); permissionPrincipal.add(new PermissionVO("info:edit_header_image", "编辑头部图片")); permissionPrincipal.add(new PermissionVO("info:delete_header_image", "删除头部图片")); permissionPrincipal.add(new PermissionVO("project:add", "增加项目")); - permissionPrincipal.add(new PermissionVO("project:child:add", "增加子系统")); - permissionPrincipal.add(new PermissionVO("project:module:add", "增加子模块")); + permissionPrincipal.add(new PermissionVO("project:child_add", "增加子系统")); + permissionPrincipal.add(new PermissionVO("project:module_add", "增加子模块")); permissionPrincipal.add(new PermissionVO("review:add", "添加审核申请")); permissionPrincipal.add(new PermissionVO("daily:add", "添加日报")); - permissionPrincipal.add(new PermissionVO("project:daily:delete", "删除日报")); + permissionPrincipal.add(new PermissionVO("project:daily_delete", "删除日报")); permissionDeveloper.add(new PermissionVO("auth:change_password", "修改密码")); permissionDeveloper.add(new PermissionVO("info:get_header_image", "获取头部图片")); @@ -43,7 +43,7 @@ public class PermissionList { permissionDeveloper.add(new PermissionVO("info:delete_header_image", "删除头部图片")); permissionDeveloper.add(new PermissionVO("review:add", "添加审核申请")); permissionDeveloper.add(new PermissionVO("daily:add", "添加日报")); - permissionPrincipal.add(new PermissionVO("project:child:add", "增加子系统")); - permissionPrincipal.add(new PermissionVO("project:module:add", "增加子模块")); + permissionPrincipal.add(new PermissionVO("project:child_add", "增加子系统")); + permissionPrincipal.add(new PermissionVO("project:module_add", "增加子模块")); } } diff --git a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java index be85ec6..e894968 100644 --- a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java @@ -52,7 +52,6 @@ public class ProjectDailyController { if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult)); } - log.info("请求接口[GET]: /daily/add"); return projectDailyService.addDaily(projectDailyAddVO, request); } @@ -71,10 +70,9 @@ public class ProjectDailyController { } @DeleteMapping("/daily/delete") - @NeedPermission("project:daily:delete") + @NeedPermission("project:daily_delete") public BaseResponse delete(@RequestParam Integer dailyId, HttpServletRequest request) { - log.info("请求接口[DELETE]: /daily/delete"); return projectDailyService.deleteDaily(dailyId, request); } @@ -83,7 +81,6 @@ public class ProjectDailyController { public BaseResponse getMyDaily(@RequestParam Integer page, @RequestParam Integer pageSize, HttpServletRequest request) { - log.info("请求接口[GET]: /daily/getMyDaily"); return projectDailyService.getMyDaily(page, pageSize, request); } @@ -96,7 +93,6 @@ public class ProjectDailyController { String endTime, HttpServletRequest request) { - log.info("请求接口[GET]: /daily/search"); return projectDailyService.searchMyDaily(projectId, page, pageSize, -- 2.43.0