diff --git a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java index 426ec89..4e398ab 100644 --- a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java @@ -106,10 +106,6 @@ public class ProjectDailyController { return ResultUtil.error(ErrorCode.PAGE_NUMBER_IS_NULL); } - if (projectId == null) { - return ResultUtil.error(ErrorCode.ID_NOT_EXIST); - } - return projectDailyService.searchMyDaily(projectId, page, pageSize, diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index 7ad5602..24a0be7 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -232,6 +232,10 @@ public class ProjectDAO { ProjectDO projectDO = projectMapper.getProjectById(projectId); + if (projectDO == null) { + return "项目负责人不存在"; + } + UserDO userDO = userMapper.getUserById(projectDO.getPrincipalId()); if (userDO == null) { diff --git a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java index bece262..ac34c3d 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java @@ -124,6 +124,22 @@ public class ProjectDailyDAO { projectDailyMapper.updateDaily(projectDailyDO); } + public void deleteDailyByProject(Long pid) { + + if (pid == null) { + return; + } + + List projectDailyDOS = + projectDailyMapper.getProjectDailyByProject(pid); + + for (ProjectDailyDO projectDailyDO:projectDailyDOS) { + if (projectDailyDO == null || projectDailyDO.getId() == null) { + continue; + } + projectDailyMapper.deleteDailyById(Math.toIntExact(projectDailyDO.getId())); + } + } } diff --git a/src/main/java/com/jsl/oa/dao/ReviewDAO.java b/src/main/java/com/jsl/oa/dao/ReviewDAO.java index 8b1d8d7..81250e0 100644 --- a/src/main/java/com/jsl/oa/dao/ReviewDAO.java +++ b/src/main/java/com/jsl/oa/dao/ReviewDAO.java @@ -94,6 +94,27 @@ public class ReviewDAO { return ""; } + public void deleteReviewByProjectId(Long pid) { + List reviewDOS = reviewMapper.getAllReviewByProjectId(pid); + for (ReviewDO reviewDO :reviewDOS) { + reviewMapper.deleteReview(reviewDO.getId()); + } + } + + public void deleteReviewByProjectChildId(Long cid) { + List reviewDOS = reviewMapper.getAllReviewByProjectId(cid); + for (ReviewDO reviewDO :reviewDOS) { + reviewMapper.deleteReview(reviewDO.getId()); + } + } + + public void deleteReviewByProjectModuleId(Long mid) { + List reviewDOS = reviewMapper.getAllReviewByProjectId(mid); + for (ReviewDO reviewDO :reviewDOS) { + reviewMapper.deleteReview(reviewDO.getId()); + } + } + } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 24fba1e..4fa9e59 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -43,6 +43,9 @@ public interface ProjectMapper { @Select("select * from organize_oa.oa_project where id=#{id}") ProjectDO getProjectById(Long id); + @Select("select * from organize_oa.oa_project where id=#{id} and is_delete = 0") + ProjectDO getNotDeleteProjectById(Long id); + @Select("select * from organize_oa.oa_project where id=#{id}") ProjectDO tgetProjectById(Integer id); diff --git a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java index f8468ac..3f98fd0 100644 --- a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java @@ -51,4 +51,12 @@ public interface ReviewMapper { @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); + + void deleteReview(Long id); + + List getAllReviewByProjectId(Long pid); + + List getAllReviewByProjectChildId(Long cid); + + List getAllReviewByProjectModuleId(Long mid); } diff --git a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java index d249854..8012af0 100644 --- a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java @@ -3,6 +3,7 @@ package com.jsl.oa.services.impl; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.jsl.oa.dao.ProjectDAO; +import com.jsl.oa.dao.ReviewDAO; import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.ModuleMapper; @@ -30,6 +31,7 @@ import static java.lang.System.*; @RequiredArgsConstructor public class ModuleServiceImpl implements ModuleService { private final ProjectDAO projectDAO; + private final ReviewDAO reviewDAO; private final ModuleMapper moduleMapper; private final UserDAO userDAO; private final RoleDAO roleDAO; @@ -120,8 +122,12 @@ public class ModuleServiceImpl implements ModuleService { for (ProjectModuleDO workDO : projectWorkDOS) { deleteMoudule(workDO.getId()); + + //同时删除对应审核信息 + reviewDAO.deleteReviewByProjectModuleId(id); } + moduleMapper.deleteMoudule(id); } 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 ec05810..15207d4 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java @@ -7,6 +7,8 @@ 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.mapper.ProjectMapper; +import com.jsl.oa.model.dodata.ProjectDO; import com.jsl.oa.model.dodata.ProjectDailyDO; import com.jsl.oa.model.dodata.UserDO; import com.jsl.oa.model.vodata.ProjectDailyAddVO; @@ -47,6 +49,7 @@ public class ProjectDailyServiceImpl implements ProjectDailyService { private final UserDAO userDAO; private final ProjectDailyDAO projectDailyDAO; private final ProjectDailyMapper projectDailyMapper; + private final ProjectMapper projectMapper; private final MessageService messageService; @@ -58,9 +61,9 @@ public class ProjectDailyServiceImpl implements ProjectDailyService { // 从请求体中获取项目id Integer projectId = projectDailyAddVO.getProjectId(); // 检查项目是否存在 - if (!projectDAO.isExistProjectById(Long.valueOf(projectId))) { + if (projectMapper.getNotDeleteProjectById(Long.valueOf(projectId)) == null) { return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); - } + } // 赋值数据库表实体类相关属性 ProjectDailyDO projectDailyDO = new ProjectDailyDO(); @@ -210,8 +213,12 @@ public class ProjectDailyServiceImpl implements ProjectDailyService { // 复制相同的属性值 Processing.copyProperties(projectDailyDO, projectDailyVO); // 赋值其他需查询的属性 - projectDailyVO.setProjectName( - projectDAO.getProjectById(projectDailyVO.getProjectId()).getName()); + ProjectDO projectDO = projectDAO.getProjectById(projectDailyVO.getProjectId()); + if (projectDO == null) { + projectDailyVO.setProjectName(projectDO.getName()); + } else { + projectDailyVO.setPrincipalName("项目不存在"); + } //设置发送者名称,如果为昵称为空则赋值用户账号 UserDO senderUser = userDAO.getUserById(projectDailyDO.getUserId()); diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java index fbcc26d..47d9d60 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -8,15 +8,10 @@ import com.github.pagehelper.PageInfo; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.jsl.oa.annotations.NeedPermission; -import com.jsl.oa.dao.ProjectDAO; -import com.jsl.oa.dao.RoleDAO; -import com.jsl.oa.dao.UserDAO; +import com.jsl.oa.dao.*; import com.jsl.oa.mapper.ProjectMapper; import com.jsl.oa.mapper.UserMapper; -import com.jsl.oa.model.dodata.ProjectChildDO; -import com.jsl.oa.model.dodata.ProjectDO; -import com.jsl.oa.model.dodata.ProjectModuleDO; -import com.jsl.oa.model.dodata.UserDO; +import com.jsl.oa.model.dodata.*; import com.jsl.oa.model.dodata.info.ProjectShowDO; import com.jsl.oa.model.vodata.*; import com.jsl.oa.model.vodata.business.info.ProjectShowVO; @@ -58,10 +53,12 @@ public class ProjectServiceImpl implements ProjectService { private final UserMapper userMapper; private final ProjectMapper projectMapper; + private final ReviewDAO reviewDAO; private final ProjectDAO projectDAO; private final UserDAO userDAO; private final ObjectMapper objectMapper; private final RoleDAO roleDAO; + private final ProjectDailyDAO projectDailyDAO; private final MessageService messageService; private final Gson gson; @@ -129,7 +126,6 @@ public class ProjectServiceImpl implements ProjectService { @Override public BaseResponse projectFileGet(HttpServletRequest request, Long projectId) { - // 判断项目是否存在 if (!projectDAO.isExistProjectById(projectId)) { return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); @@ -210,6 +206,8 @@ public class ProjectServiceImpl implements ProjectService { return ResultUtil.error(ErrorCode.NOT_PERMISSION); } else { projectMapper.deleteProjectChild(id1); + //同时删除对应审核信息 + reviewDAO.deleteReviewByProjectChildId(id1); } } return ResultUtil.success(); @@ -626,13 +624,23 @@ public class ProjectServiceImpl implements ProjectService { } for (Long id1 : id) { + + if (projectMapper.getNotDeleteProjectById(id1) == null) { + return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); + } + if (!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), id1)) { return ResultUtil.error(ErrorCode.NOT_PERMISSION); } if (!projectDAO.projectDelete(id1)) { return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR); } + //同时删除所有对应审核信息 + reviewDAO.deleteReviewByProjectId(id1); + //同时删除所有对应日报消息 + projectDailyDAO.deleteDailyByProject(id1); } + return ResultUtil.success(); } } 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 f9f656f..02385f6 100644 --- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java @@ -6,10 +6,7 @@ import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.ReviewDAO; import com.jsl.oa.mapper.ProjectMapper; import com.jsl.oa.mapper.UserMapper; -import com.jsl.oa.model.dodata.ProjectChildDO; -import com.jsl.oa.model.dodata.ProjectDO; -import com.jsl.oa.model.dodata.ProjectModuleDO; -import com.jsl.oa.model.dodata.ReviewDO; +import com.jsl.oa.model.dodata.*; import com.jsl.oa.model.vodata.ReviewAddVO; import com.jsl.oa.model.vodata.ReviewDataVO; import com.jsl.oa.model.vodata.ReviewUpdateResultVO; @@ -182,7 +179,7 @@ public class ReviewServiceImpl implements ReviewService { Integer userId = Math.toIntExact(Processing.getAuthHeaderToUserId(request)); //检查对应项目,子系统,子模块是否存在 - if (!projectDAO.isExistProjectById(Long.valueOf(reviewAddVO.getProjectId()))) { + if (projectMapper.getNotDeleteProjectById(Long.valueOf(reviewAddVO.getProjectId())) == null) { return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); } @@ -386,20 +383,42 @@ public class ReviewServiceImpl implements ReviewService { Processing.copyProperties(reviewDO, reviewVO); // 赋值其他非空属性 reviewVO.setCategory(Processing.turnReviewCategory(reviewDO.getCategory())) - .setSenderName(userMapper.getUserById(Long.valueOf(reviewDO.getSenderId())).getNickname()) - .setProjectName(projectDAO.getProjectById(reviewDO.getProjectId()).getName()) - .setProjectChildName(projectMapper.getProjectChildById( - Math.toIntExact(reviewDO.getProjectChildId())).getName()) - .setResult(Processing.turnReviewResult(reviewDO.getReviewResult())) + .setSenderName(userMapper.getUserById(Long.valueOf(reviewDO.getSenderId())).getNickname()); + +// 获取审核的项目,设置项目名称 + ProjectDO project = projectDAO.getProjectById(reviewDO.getProjectId()); + if (project == null) { + reviewVO.setProjectName("无此项目"); + } else { + reviewVO.setProjectName(project.getName()); + } +// 获取审核的子系统,设置子系统名称 + ProjectChildDO projectChildDO = + projectMapper.getProjectChildById(Math.toIntExact(reviewDO.getProjectChildId())); + if (projectChildDO != null) { + reviewVO.setProjectChildName(projectChildDO.getName()); + } else { + reviewVO.setProjectChildName(projectChildDO.getName()); + } +// 设置结果、发送者id,接受者id + reviewVO.setResult(Processing.turnReviewResult(reviewDO.getReviewResult())) .setSenderId(Long.valueOf(reviewDO.getSenderId())) .setRecipientId(reviewDO.getRecipientId()); // 赋值可为空属性并进行判断 - if (reviewDO.getRecipientId() != null) { - reviewVO.setRecipientName(userMapper.getUserById(reviewDO.getRecipientId()).getNickname()); + UserDO recipientUserDO = userMapper.getUserById(reviewDO.getRecipientId()); + if (reviewDO.getRecipientId() != null || recipientUserDO != null) { + reviewVO.setRecipientName(recipientUserDO.getNickname()); } +// 获取该审核消息对应的模块信息 if (reviewDO.getProjectModuleId() != null) { - reviewVO.setProjectModuleName( - reviewDAO.getNameByModule(Math.toIntExact(reviewDO.getProjectModuleId()))); + ProjectModuleDO projectModuleDO = + projectMapper.getModuleById(Math.toIntExact(reviewDO.getProjectModuleId())); +// 如果模块存在,设置名称 + if (projectModuleDO != null) { + reviewVO.setProjectModuleName(projectModuleDO.getName()); + } else { + reviewVO.setProjectModuleName("模块不存在"); + } } else { reviewVO.setProjectModuleName("无"); } diff --git a/src/main/java/com/jsl/oa/utils/Processing.java b/src/main/java/com/jsl/oa/utils/Processing.java index ab1cdcd..4593799 100755 --- a/src/main/java/com/jsl/oa/utils/Processing.java +++ b/src/main/java/com/jsl/oa/utils/Processing.java @@ -183,7 +183,7 @@ public class Processing { } /** - * 检查用户是否是老师 + * 检查用户是否是负责人 * * @param request 请求 * @return 如果为 true 是老师,false 不是老师 @@ -416,7 +416,7 @@ public class Processing { * @Param dateString: **/ public static Date convertStringToDate(String dateString) { - if (dateString.isEmpty()) { + if (dateString == null || dateString.isEmpty()) { return null; // 如果字符串为空,返回空的Date对象 } else { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml index d29b8ca..f1dd2dd 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml @@ -33,7 +33,7 @@ diff --git a/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml b/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml index 23a6f09..dff0972 100644 --- a/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ReviewMapper.xml @@ -139,6 +139,27 @@ where id = #{id} + + update organize_oa.oa_review + set is_delete = 1 + where id = ${id} + + + + + + + +