Merge branch 'refs/heads/develop'
All checks were successful
代码检查 / 代码检查 (push) Successful in 19s

This commit is contained in:
筱锋xiao_lfeng 2024-04-20 19:57:20 +08:00
commit 3e36ec5c1c
Signed by: XiaoLFeng
GPG Key ID: F693AA12AABBFA87
9 changed files with 133 additions and 20 deletions

View File

@ -393,6 +393,11 @@ public class ProjectController {
@RequestParam Integer id,
HttpServletRequest request
) {
if (id == null) {
return ResultUtil.error(ErrorCode.ID_NOT_EXIST);
}
return projectService.projectChildGetById(id, request);
}
@ -419,6 +424,11 @@ public class ProjectController {
@RequestParam Integer childId,
HttpServletRequest request
) {
if (childId == null) {
return ResultUtil.error(ErrorCode.ID_NOT_EXIST);
}
return projectService.projectModuleGetById(childId, request);
}

View File

@ -60,7 +60,6 @@ public class ProjectDailyController {
@NotNull BindingResult bindingResult,
HttpServletRequest request) {
log.info("请求接口[PUT]: /daily/update");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
@ -73,6 +72,11 @@ public class ProjectDailyController {
@NeedPermission("project:daily_delete")
public BaseResponse delete(@RequestParam Integer dailyId,
HttpServletRequest request) {
if (dailyId == null) {
return ResultUtil.error(ErrorCode.ID_NOT_EXIST);
}
return projectDailyService.deleteDaily(dailyId, request);
}
@ -81,6 +85,11 @@ public class ProjectDailyController {
public BaseResponse getMyDaily(@RequestParam Integer page,
@RequestParam Integer pageSize,
HttpServletRequest request) {
if (page == null || pageSize == null) {
return ResultUtil.error(ErrorCode.PAGE_NUMBER_IS_NULL);
}
return projectDailyService.getMyDaily(page, pageSize, request);
}
@ -93,6 +102,14 @@ public class ProjectDailyController {
String endTime,
HttpServletRequest request) {
if (page == null || pageSize == null) {
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

@ -41,7 +41,11 @@ public class ReviewController {
@RequestParam Integer page,
@RequestParam Integer pageSize,
HttpServletRequest request) {
log.info("请求接口[GET]: /review/getMyReview");
if (page == null || pageSize == null) {
return ResultUtil.error(ErrorCode.PAGE_NUMBER_IS_NULL);
}
return reviewService.getUserReview(page, pageSize, request);
}
@ -55,6 +59,11 @@ public class ReviewController {
public BaseResponse getMyReview(@RequestParam Integer page,
@RequestParam Integer pageSize,
HttpServletRequest request) {
if (page == null || pageSize == null) {
return ResultUtil.error(ErrorCode.PAGE_NUMBER_IS_NULL);
}
return reviewService.getUserPendingApprovalReview(page, pageSize, request);
}
@ -70,7 +79,6 @@ public class ReviewController {
@NotNull BindingResult bindingResult,
HttpServletRequest request) {
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR);
}
@ -96,7 +104,11 @@ public class ReviewController {
public BaseResponse searchReview(String content,
HttpServletRequest request,
@RequestParam Integer page,
@RequestParam Integer pageSize) {
@RequestParam Integer pageSize) {
if (page == null || pageSize == null) {
return ResultUtil.error(ErrorCode.PAGE_NUMBER_IS_NULL);
}
return reviewService.searchReview(content, request, page, pageSize);
}
@ -108,6 +120,10 @@ public class ReviewController {
@RequestParam Integer page,
@RequestParam Integer pageSize) {
if (page == null || pageSize == null) {
return ResultUtil.error(ErrorCode.PAGE_NUMBER_IS_NULL);
}
return reviewService.searchReviewRecords(content, statue, request, page, pageSize);
}
}

View File

@ -1,9 +1,11 @@
package com.jsl.oa.dao;
import com.google.gson.Gson;
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.info.ProjectShowDO;
import com.jsl.oa.model.vodata.ProjectInfoVO;
import com.jsl.oa.model.vodata.ProjectChildAddVO;
@ -24,6 +26,7 @@ import java.util.Objects;
public class ProjectDAO {
private final ProjectMapper projectMapper;
private final UserMapper userMapper;
private final Gson gson;
public void projectAdd(ProjectInfoVO projectAdd) {
@ -182,9 +185,6 @@ public class ProjectDAO {
return projectMapper.getAllProject();
}
public ProjectModuleDO getProjectWorkerById(Long id) {
return projectMapper.getProjectWorkById(id);
}
public List<ProjectDO> getProjectByPrincipalUser(Long uid) {
log.info("\t> 执行 DAO 层 ProjectDAO.getProjectFromUser 方法");
@ -205,4 +205,24 @@ public class ProjectDAO {
}
public String getPrincipalUserFromProject(Long projectId) {
if (projectId == null) {
return "";
}
ProjectDO projectDO = projectMapper.getProjectById(projectId);
UserDO userDO = userMapper.getUserById(projectDO.getPrincipalId());
if (userDO == null) {
return "";
}
if (userDO.getNickname() == null) {
return userDO.getUsername();
} else {
return userDO.getNickname();
}
}
}

View File

@ -1,6 +1,5 @@
package com.jsl.oa.model.vodata;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
@ -17,19 +16,20 @@ public class ProjectDailyVO {
private String userName;
private String nickName;
private Long projectId;
private String projectName;
private String principalName;
private String content;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date dailyTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createdAt;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updatedAt;
private Boolean isAllowDelete;

View File

@ -188,7 +188,10 @@ public class MessageServiceImpl implements MessageService {
// 获取项目名,负责人名
String projectName = projectMapper.tgetProjectById(pId).getName();
String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername();
String systemName = projectMapper.getWorkById(systemId).getName();
String systemName = null;
if (systemId != null && projectMapper.getWorkById(systemId) != null) {
systemName = projectMapper.getWorkById(systemId).getName();
}
// 添加消息
// 1:上传文档 2:修改状态 3:修改负责人
List<Long> uidList = projectMapper.getMemberByProjectId(pId);
@ -238,7 +241,7 @@ public class MessageServiceImpl implements MessageService {
String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername();
String systemName = projectMapper.getWorkById(systmeId).getName();
String moddleName = null;
if (moddleId != null) {
if (moddleId != null && projectMapper.getModuleById(moddleId) != null) {
moddleName = projectMapper.getModuleById(moddleId).getName();
}
// 添加消息
@ -303,6 +306,7 @@ public class MessageServiceImpl implements MessageService {
messageMapper.messageAdd(messageAddVO);
}
/**
* 添加提醒消息
* 系统/模块到期提醒

View File

@ -8,6 +8,7 @@ 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.dodata.UserDO;
import com.jsl.oa.model.vodata.ProjectDailyAddVO;
import com.jsl.oa.model.vodata.ProjectDailyDataVO;
import com.jsl.oa.model.vodata.ProjectDailyUpdateVO;
@ -205,8 +206,20 @@ public class ProjectDailyServiceImpl implements ProjectDailyService {
Processing.copyProperties(projectDailyDO, projectDailyVO);
// 赋值其他需查询的属性
projectDailyVO.setProjectName(
projectDAO.getProjectById(projectDailyVO.getProjectId()).getName())
.setUserName(userDAO.getUserById(projectDailyDO.getUserId()).getNickname());
projectDAO.getProjectById(projectDailyVO.getProjectId()).getName());
//设置发送者名称如果为昵称为空则赋值用户账号
UserDO senderUser = userDAO.getUserById(projectDailyDO.getUserId());
if (senderUser == null) {
projectDailyVO.setUserName("");
projectDailyVO.setNickName("");
} else {
projectDailyVO.setUserName(senderUser.getUsername());
projectDailyVO.setNickName(senderUser.getNickname());
}
//设置项目负责人名称
projectDailyVO.setPrincipalName(projectDAO.getPrincipalUserFromProject(projectDailyDO.getProjectId()));
//用户是否有权限删除
if (projectDailyDO.getUserId().equals(projectDAO.
getProjectById(projectDailyVO.getProjectId()).getPrincipalId())) {

View File

@ -285,6 +285,11 @@ public class ProjectServiceImpl implements ProjectService {
List<ProjectChildDO> projectChildDOList = projectMapper.getAllChildByProjectId(id);
List<ReturnGetVO> returnGetVOList = new ArrayList<>();
if (projectChildDOList.size() == 0) {
return ResultUtil.success(returnGetVOList);
}
for (ProjectChildDO projectChildDO : projectChildDOList) {
ReturnGetVO returnGetVO = new ReturnGetVO();
Processing.copyProperties(projectChildDO, returnGetVO);
@ -308,8 +313,15 @@ public class ProjectServiceImpl implements ProjectService {
@Override
public BaseResponse projectModuleGetById(Integer id, HttpServletRequest request) {
List<ProjectModuleDO> projectModuleDOList = projectMapper.getModuleByChildId(id);
List<ReturnGetVO> returnGetVOList = new ArrayList<>();
if (projectModuleDOList.size() == 0) {
return ResultUtil.success(returnGetVOList);
}
for (ProjectModuleDO projectModuleDO : projectModuleDOList) {
ReturnGetVO returnGetVO = new ReturnGetVO();
Processing.copyProperties(projectModuleDO, returnGetVO);
@ -327,6 +339,10 @@ public class ProjectServiceImpl implements ProjectService {
projectMapper.getPirIdbyId(projectMapper.getModuleById(id.intValue()).getProjectChildId()))) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} else {
ProjectModuleDO projectModuleDO = projectMapper.getModuleById(id.intValue());
if (projectModuleDO == null) {
return ResultUtil.error(ErrorCode.MODULE_NOT_EXIST);
}
HashMap<String, Object> descriptionMap = new HashMap<>();
descriptionMap.put("description", projectModuleEditVO.getDescription());
projectModuleEditVO.setDescription(gson.toJson(descriptionMap));
@ -334,7 +350,6 @@ public class ProjectServiceImpl implements ProjectService {
projectMapper.projectModuleEdit(projectModuleEditVO);
}
return ResultUtil.success("修改成功");
}
@ -344,8 +359,12 @@ public class ProjectServiceImpl implements ProjectService {
if (!Objects.equals(Processing.getAuthHeaderToUserId(request), projectMapper.getPirIdbyId(id))) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} else {
ProjectChildDO projectChildDO = projectMapper.getProjectChildById(id.intValue());
if (projectChildDO == null) {
return ResultUtil.error(ErrorCode.PROJECT_CHILD_NOT_EXIST);
}
JsonObject jsonObject = gson
.fromJson(projectMapper.getProjectChildById(id.intValue()).getDescription(), JsonObject.class);
.fromJson(projectChildDO.getDescription(), JsonObject.class);
//改动简介发送消息
if (!Objects.equals(projectChildAddVO.getDescription(), "")
&& !projectChildAddVO.getDescription()
@ -353,11 +372,20 @@ public class ProjectServiceImpl implements ProjectService {
messageService.messageAdd(projectMapper.getProjectIdBySysId(id)
.intValue(), id.intValue(), null, 2, request);
} // 改动周期或工作量发送消息
if (projectChildAddVO.getCycle() != null || projectChildAddVO.getWorkLoad() != null) {
if ((projectChildAddVO.getCycle() != null
&& projectChildDO.getCycle().equals(projectChildAddVO.getCycle()))
|| (projectChildAddVO.getWorkLoad() != null
&& projectChildDO.getWorkLoad().equals(projectChildAddVO.getWorkLoad()))
) {
messageService.messageAdd(projectMapper.getProjectIdBySysId(id)
.intValue(), id.intValue(), null, 3, request);
} //改动负责人发送消息
if (projectChildAddVO.getPrincipalId() != null
&& !Objects.equals(projectChildAddVO.getPrincipalId(),
projectChildDO.getPrincipalId())) {
messageService.messageAdd(projectMapper.getProjectIdBySysId(id)
.intValue(), 3, id.intValue(), request);
}
HashMap<String, Object> descriptionMap = new HashMap<>();
descriptionMap.put("description", projectChildAddVO.getDescription());
projectChildAddVO.setDescription(gson.toJson(descriptionMap));
@ -366,7 +394,6 @@ public class ProjectServiceImpl implements ProjectService {
projectMapper.projectChildEditAll(projectChildAddVO);
}
return ResultUtil.success("修改成功");
}
@ -428,6 +455,11 @@ public class ProjectServiceImpl implements ProjectService {
//判断项目是否存在
if (projectDAO.isExistProject(projectId)) {
//更新数据
ProjectDO projectDO = projectDAO.getProjectById(projectId);
//改变项目状态发送消息
if (projectEdit.getStatus() != null && !projectDO.getStatus().equals(projectEdit.getStatus())) {
messageService.messageAdd(projectId.intValue(), 2, null, request);
}
HashMap<String, Object> descriptionMap = new HashMap<>();
descriptionMap.put("description", projectEdit.getDescription());
projectEdit.setDescription(gson.toJson(descriptionMap));

View File

@ -58,6 +58,7 @@ public enum ErrorCode {
PROJECT_DAILY_NOT_EXIST("ProjectDailyNotExist", 40023, "日志不存在"),
NOT_PERMISSION_UPDATE_DAILY("NotPermissionUpdateDaily", 40024, "用户无权限修改日报"),
User_NOT_PROJECT_PRINCIPAL("UserNotProjectPrincipal", 40023, "用户非项目负责人"),
PAGE_NUMBER_IS_NULL("PageNumberIsNull", 40024, "分页参数为空"),
REVIEW_NOT_EXIST("ReviewNotExit", 40101, "未找到对应审核信息");