Merge pull request 'develop' (#46) from develop into master
All checks were successful
代码检查 / 代码检查 (push) Successful in 42s

Reviewed-on: #46
This commit is contained in:
筱锋xiao_lfeng 2024-04-25 16:54:10 +08:00
commit 356d9a6ff5
13 changed files with 142 additions and 33 deletions

View File

@ -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,

View File

@ -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) {

View File

@ -124,6 +124,22 @@ public class ProjectDailyDAO {
projectDailyMapper.updateDaily(projectDailyDO);
}
public void deleteDailyByProject(Long pid) {
if (pid == null) {
return;
}
List<ProjectDailyDO> projectDailyDOS =
projectDailyMapper.getProjectDailyByProject(pid);
for (ProjectDailyDO projectDailyDO:projectDailyDOS) {
if (projectDailyDO == null || projectDailyDO.getId() == null) {
continue;
}
projectDailyMapper.deleteDailyById(Math.toIntExact(projectDailyDO.getId()));
}
}
}

View File

@ -94,6 +94,27 @@ public class ReviewDAO {
return "";
}
public void deleteReviewByProjectId(Long pid) {
List<ReviewDO> reviewDOS = reviewMapper.getAllReviewByProjectId(pid);
for (ReviewDO reviewDO :reviewDOS) {
reviewMapper.deleteReview(reviewDO.getId());
}
}
public void deleteReviewByProjectChildId(Long cid) {
List<ReviewDO> reviewDOS = reviewMapper.getAllReviewByProjectId(cid);
for (ReviewDO reviewDO :reviewDOS) {
reviewMapper.deleteReview(reviewDO.getId());
}
}
public void deleteReviewByProjectModuleId(Long mid) {
List<ReviewDO> reviewDOS = reviewMapper.getAllReviewByProjectId(mid);
for (ReviewDO reviewDO :reviewDOS) {
reviewMapper.deleteReview(reviewDO.getId());
}
}
}

View File

@ -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);

View File

@ -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<ReviewDO> selectReviewByUserAndResult(Long uid, Short result);
void deleteReview(Long id);
List<ReviewDO> getAllReviewByProjectId(Long pid);
List<ReviewDO> getAllReviewByProjectChildId(Long cid);
List<ReviewDO> getAllReviewByProjectModuleId(Long mid);
}

View File

@ -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);
}

View File

@ -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());

View File

@ -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();
}
}

View File

@ -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("");
}

View File

@ -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");

View File

@ -33,7 +33,7 @@
<select id="getProjectDailyByProject" parameterType="java.lang.Long"
resultType="com.jsl.oa.model.dodata.ProjectDailyDO">
select * from organize_oa.oa_project_daily where user_id = #{pid}
select * from organize_oa.oa_project_daily where project_id = #{pid}
and is_delete = 0
</select>

View File

@ -139,6 +139,27 @@
where id = #{id}
</update>
<update id="deleteReview">
update organize_oa.oa_review
set is_delete = 1
where id = ${id}
</update>
<select id="getAllReviewByProjectId">
select * from organize_oa.oa_review
where project_id = #{pid} and is_delete = 0
</select>
<select id="getAllReviewByProjectChildId">
select * from organize_oa.oa_review
where project_child_id = #{pid} and is_delete = 0
</select>
<select id="getAllReviewByProjectModuleId">
select * from organize_oa.oa_review
where project_module_id = #{mid} and is_delete = 0
</select>