fix:项目,系统,模块更新
Some checks failed
代码检查 / 代码检查 (pull_request) Failing after 22s

This commit is contained in:
176yunxuan 2024-04-20 10:44:07 +08:00
parent f57e949d65
commit c229ed59b8
9 changed files with 235 additions and 41 deletions

View File

@ -1,6 +1,8 @@
package com.jsl.oa.controllers; package com.jsl.oa.controllers;
import com.jsl.oa.annotations.NeedPermission; import com.jsl.oa.annotations.NeedPermission;
import com.jsl.oa.model.dodata.ProjectChildDO;
import com.jsl.oa.model.dodata.ProjectModuleDO;
import com.jsl.oa.model.vodata.ProjectChildAddVO; import com.jsl.oa.model.vodata.ProjectChildAddVO;
import com.jsl.oa.model.vodata.ProjectEditVO; import com.jsl.oa.model.vodata.ProjectEditVO;
import com.jsl.oa.model.vodata.ProjectInfoVO; import com.jsl.oa.model.vodata.ProjectInfoVO;
@ -365,7 +367,7 @@ public class ProjectController {
} }
/** /**
* 项目名查询子系统 * 项目名查询所属所有子系统
* *
* @param name * @param name
* @param request * @param request
@ -394,6 +396,14 @@ public class ProjectController {
return projectService.projectChildGetById(id, request); return projectService.projectChildGetById(id, request);
} }
/**
* 根据项目和子系统名查询所属所有子模块
*
* @param projectName
* @param childName
* @param request
* @return
*/
@GetMapping("/project/module/get/name") @GetMapping("/project/module/get/name")
public BaseResponse projectModuleGetName( public BaseResponse projectModuleGetName(
@RequestParam String projectName, @RequestParam String projectName,
@ -412,4 +422,31 @@ public class ProjectController {
return projectService.projectModuleGetById(childId, request); return projectService.projectModuleGetById(childId, request);
} }
@PutMapping("/project/module/edit")
public BaseResponse projectModuleEdit(
@RequestParam Long id,
@RequestBody ProjectModuleDO projectModuleAddVO,
HttpServletRequest request
) {
return projectService.projectModuleEdit(request, projectModuleAddVO, id);
}
@PutMapping("/project/edit")
public BaseResponse projectEdit(
@RequestParam Long id,
@RequestBody ProjectEditVO projectEditVO,
HttpServletRequest request
) {
return projectService.projectEdit(request, projectEditVO, id);
}
@PutMapping("/project/child/edit")
public BaseResponse projectChildEdit(
@RequestParam Long id,
@RequestBody ProjectChildDO projectChildAddVO,
HttpServletRequest request
) {
return projectService.projectChildEdit(request, projectChildAddVO, id);
}
} }

View File

@ -41,15 +41,12 @@ public class ProjectDAO {
projectMapper.projectWorkAdd(projectChildAddVO); projectMapper.projectWorkAdd(projectChildAddVO);
} }
public ProjectDO projectEdit(@NotNull ProjectEditVO projectEdit, Long projectId) { public ProjectDO projectEdit(@NotNull ProjectDO projectEdit) {
log.info("\t> 执行 DAO 层 ProjectDAO.projectEdit 方法"); log.info("\t> 执行 DAO 层 ProjectDAO.projectEdit 方法");
log.info("\t\t> 从 MySQL 更新数据"); log.info("\t\t> 从 MySQL 更新数据");
ProjectDO projectDO = new ProjectDO(); projectMapper.projectEdit(projectEdit);
Processing.copyProperties(projectEdit, projectDO);
projectDO.setId(projectId);
projectMapper.projectEdit(projectDO);
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getProjectById(projectId); return projectMapper.getProjectById(projectEdit.getId());
} }
public boolean isExistProject(Long id) { public boolean isExistProject(Long id) {

View File

@ -36,6 +36,8 @@ public interface ProjectMapper {
+ "#{description},#{status},#{deadLine},#{cycle})") + "#{description},#{status},#{deadLine},#{cycle})")
void projectModuleAdd(ProjectModuleAddVO projectModuleAddVO); void projectModuleAdd(ProjectModuleAddVO projectModuleAddVO);
@Select("select project_id from organize_oa.oa_project_child where id=#{id}")
Long getProjectIdBySysId(Long id);
void projectEdit(ProjectDO projectEdit); void projectEdit(ProjectDO projectEdit);
@Select("select * from organize_oa.oa_project where id=#{id}") @Select("select * from organize_oa.oa_project where id=#{id}")
@ -178,4 +180,8 @@ public interface ProjectMapper {
@Select("select * from organize_oa.oa_project_modules where project_child_id = #{id} " @Select("select * from organize_oa.oa_project_modules where project_child_id = #{id} "
+ "and is_delete = 0") + "and is_delete = 0")
List<ProjectModuleDO> getModuleByChildId(Integer id); List<ProjectModuleDO> getModuleByChildId(Integer id);
void projectModuleEdit(ProjectModuleDO projectModuleAddVO);
void projectChildEditAll(ProjectChildDO projectChildAddVO);
} }

View File

@ -10,13 +10,13 @@ import java.sql.Timestamp;
@Accessors(chain = true) @Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
public class ProjectModuleDO { public class ProjectModuleDO {
private String name;
private Long id; private Long id;
private Long projectChildId; private Long projectChildId;
private Long principalId; private Long principalId;
private Integer cycle; private Integer cycle;
private Integer workLoad; private Integer workLoad;
private String description; private String description;
private String name;
private Integer isDelete; private Integer isDelete;
private String status; private String status;
private Timestamp deadLine; private Timestamp deadLine;

View File

@ -7,14 +7,14 @@ import java.sql.Timestamp;
@Data @Data
public class ProjectEditVO { public class ProjectEditVO {
private Long id;
private String name; private String name;
private Long principalId; private Long principalId;
private String tags; private String tags;
private Long cycle; private Long cycle;
private String file; private String files;
private String description; private String description;
private Integer isFinish; private String status;
private Integer status;
private Long workLoad; private Long workLoad;
private Timestamp beginTime; private Timestamp beginTime;
private Timestamp completeTime; private Timestamp completeTime;

View File

@ -1,5 +1,7 @@
package com.jsl.oa.services; package com.jsl.oa.services;
import com.jsl.oa.model.dodata.ProjectChildDO;
import com.jsl.oa.model.dodata.ProjectModuleDO;
import com.jsl.oa.model.vodata.ProjectEditVO; import com.jsl.oa.model.vodata.ProjectEditVO;
import com.jsl.oa.model.vodata.ProjectInfoVO; import com.jsl.oa.model.vodata.ProjectInfoVO;
import com.jsl.oa.model.vodata.ProjectChildAddVO; import com.jsl.oa.model.vodata.ProjectChildAddVO;
@ -82,4 +84,8 @@ public interface ProjectService {
BaseResponse projectModuleGetName(String projectName, String childName, HttpServletRequest request); BaseResponse projectModuleGetName(String projectName, String childName, HttpServletRequest request);
BaseResponse projectModuleGetById(Integer id, HttpServletRequest request); BaseResponse projectModuleGetById(Integer id, HttpServletRequest request);
BaseResponse projectModuleEdit(HttpServletRequest request, ProjectModuleDO projectModuleAddVO, Long id);
BaseResponse projectChildEdit(HttpServletRequest request, ProjectChildDO projectChildAddVO, Long id);
} }

View File

@ -193,6 +193,7 @@ public class MessageServiceImpl implements MessageService {
// 1:上传文档 2:修改状态 3:修改负责人 // 1:上传文档 2:修改状态 3:修改负责人
List<Long> uidList = projectMapper.getMemberByProjectId(pId); List<Long> uidList = projectMapper.getMemberByProjectId(pId);
for (Long uid : uidList) { for (Long uid : uidList) {
if (uid != null) {
MessageAddVO messageAddVO = new MessageAddVO(); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(uid); messageAddVO.setUid(uid);
messageAddVO.setSid(Processing.getAuthHeaderToUserId(request)); messageAddVO.setSid(Processing.getAuthHeaderToUserId(request));
@ -213,6 +214,7 @@ public class MessageServiceImpl implements MessageService {
messageMapper.messageAdd(messageAddVO); messageMapper.messageAdd(messageAddVO);
} }
} }
}
/** /**
* 添加子系统变动消息 * 添加子系统变动消息
@ -234,7 +236,10 @@ public class MessageServiceImpl implements MessageService {
String projectName = projectMapper.tgetProjectById(pId).getName(); String projectName = projectMapper.tgetProjectById(pId).getName();
String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername(); String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername();
String systemName = projectMapper.getWorkById(systmeId).getName(); String systemName = projectMapper.getWorkById(systmeId).getName();
String moddleName = projectMapper.getModuleById(moddleId).getName(); String moddleName = null;
if (moddleId != null) {
moddleName = projectMapper.getModuleById(moddleId).getName();
}
// 添加消息 // 添加消息
// 1:删除模块 2:修改简介 3:修改周期 // 1:删除模块 2:修改简介 3:修改周期
if (type == 1) { if (type == 1) {
@ -248,6 +253,7 @@ public class MessageServiceImpl implements MessageService {
} else { } else {
List<Long> uidList = projectMapper.getMemberBySystemId(systmeId); List<Long> uidList = projectMapper.getMemberBySystemId(systmeId);
for (Long uid : uidList) { for (Long uid : uidList) {
if (uid != null) {
MessageAddVO messageAddVO = new MessageAddVO(); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(uid); messageAddVO.setUid(uid);
messageAddVO.setSid(Processing.getAuthHeaderToUserId(request)); messageAddVO.setSid(Processing.getAuthHeaderToUserId(request));
@ -265,6 +271,7 @@ public class MessageServiceImpl implements MessageService {
} }
} }
} }
}
/** /**
* 添加成员填写日报消息 * 添加成员填写日报消息
@ -311,6 +318,9 @@ public class MessageServiceImpl implements MessageService {
List<ProjectModuleDO> projectWorkDOList1 = projectMapper.getProjectWorkByTime(sevenDaysLater); List<ProjectModuleDO> projectWorkDOList1 = projectMapper.getProjectWorkByTime(sevenDaysLater);
if (!projectWorkDOList1.isEmpty()) { if (!projectWorkDOList1.isEmpty()) {
for (ProjectModuleDO projectWorkDO : projectWorkDOList) { for (ProjectModuleDO projectWorkDO : projectWorkDOList) {
if (projectWorkDO.getPrincipalId() == null) {
continue;
}
// 添加消息 // 添加消息
MessageAddVO messageAddVO = new MessageAddVO(); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectWorkDO.getPrincipalId()); messageAddVO.setUid(projectWorkDO.getPrincipalId());
@ -330,6 +340,9 @@ public class MessageServiceImpl implements MessageService {
} }
if (!projectWorkDOList.isEmpty()) { if (!projectWorkDOList.isEmpty()) {
for (ProjectModuleDO projectWorkDO : projectWorkDOList) { for (ProjectModuleDO projectWorkDO : projectWorkDOList) {
if (projectWorkDO.getPrincipalId() == null) {
continue;
}
// 添加消息 // 添加消息
MessageAddVO messageAddVO = new MessageAddVO(); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectWorkDO.getPrincipalId()); messageAddVO.setUid(projectWorkDO.getPrincipalId());
@ -352,6 +365,9 @@ public class MessageServiceImpl implements MessageService {
List<ProjectChildDO> projectChildDOList = projectMapper.getProjectChildByTime(sevenDaysLater); List<ProjectChildDO> projectChildDOList = projectMapper.getProjectChildByTime(sevenDaysLater);
if (!projectChildDOList.isEmpty()) { if (!projectChildDOList.isEmpty()) {
for (ProjectChildDO projectChildDO : projectChildDOList) { for (ProjectChildDO projectChildDO : projectChildDOList) {
if (projectChildDO.getPrincipalId() == null) {
continue;
}
// 添加消息 // 添加消息
MessageAddVO messageAddVO = new MessageAddVO(); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectChildDO.getPrincipalId()); messageAddVO.setUid(projectChildDO.getPrincipalId());
@ -368,6 +384,9 @@ public class MessageServiceImpl implements MessageService {
List<ProjectChildDO> projectChildDOList1 = projectMapper.getProjectChildByTime(threeDaysLater); List<ProjectChildDO> projectChildDOList1 = projectMapper.getProjectChildByTime(threeDaysLater);
if (!projectChildDOList1.isEmpty()) { if (!projectChildDOList1.isEmpty()) {
for (ProjectChildDO projectChildDO : projectChildDOList1) { for (ProjectChildDO projectChildDO : projectChildDOList1) {
if (projectChildDO.getPrincipalId() == null) {
continue;
}
// 添加消息 // 添加消息
MessageAddVO messageAddVO = new MessageAddVO(); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectChildDO.getPrincipalId()); messageAddVO.setUid(projectChildDO.getPrincipalId());

View File

@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.jsl.oa.annotations.NeedPermission; import com.jsl.oa.annotations.NeedPermission;
import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.RoleDAO;
@ -317,6 +318,58 @@ public class ProjectServiceImpl implements ProjectService {
return ResultUtil.success(returnGetVOList); return ResultUtil.success(returnGetVOList);
} }
@Override
public BaseResponse projectModuleEdit(HttpServletRequest request, ProjectModuleDO projectModuleEditVO, Long id) {
//判断是否是子系统负责人或项目负责人
if (!Objects.equals(Processing.getAuthHeaderToUserId(request), projectMapper.getPirTdByModuleId(id))
// 项目负责人
&& !Objects.equals(Processing.getAuthHeaderToUserId(request),
projectMapper.getPirIdbyId(projectMapper.getModuleById(id.intValue()).getProjectChildId()))) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} else {
HashMap<String, Object> descriptionMap = new HashMap<>();
descriptionMap.put("description", projectModuleEditVO.getDescription());
projectModuleEditVO.setDescription(gson.toJson(descriptionMap));
projectModuleEditVO.setId(id);
projectMapper.projectModuleEdit(projectModuleEditVO);
}
return ResultUtil.success("修改成功");
}
@Override
public BaseResponse projectChildEdit(HttpServletRequest request, ProjectChildDO projectChildAddVO, Long id) {
//判断是否是项目负责人
if (!Objects.equals(Processing.getAuthHeaderToUserId(request), projectMapper.getPirIdbyId(id))) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} else {
JsonObject jsonObject = gson
.fromJson(projectMapper.getProjectChildById(id.intValue()).getDescription(), JsonObject.class);
//改动简介发送消息
if (!Objects.equals(projectChildAddVO.getDescription(), "")
&& !projectChildAddVO.getDescription()
.equals(jsonObject.get("description").getAsString())) {
messageService.messageAdd(projectMapper.getProjectIdBySysId(id)
.intValue(), id.intValue(), null, 2, request);
} // 改动周期或工作量发送消息
if (projectChildAddVO.getCycle() != null || projectChildAddVO.getWorkLoad() != null) {
messageService.messageAdd(projectMapper.getProjectIdBySysId(id)
.intValue(), id.intValue(), null, 3, request);
}
HashMap<String, Object> descriptionMap = new HashMap<>();
descriptionMap.put("description", projectChildAddVO.getDescription());
projectChildAddVO.setDescription(gson.toJson(descriptionMap));
projectChildAddVO.setId(id);
projectMapper.projectChildEditAll(projectChildAddVO);
}
return ResultUtil.success("修改成功");
}
@Override @Override
public BaseResponse getModuleById(Integer id) { public BaseResponse getModuleById(Integer id) {
ProjectModuleDO projectWorkSimpleVO = projectMapper.getModuleById(id); ProjectModuleDO projectWorkSimpleVO = projectMapper.getModuleById(id);
@ -367,16 +420,32 @@ public class ProjectServiceImpl implements ProjectService {
public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectEditVO projectEdit, Long projectId) { public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectEditVO projectEdit, Long projectId) {
//判断用户是否为老师 或者 项目负责人 //判断用户是否为负责人 或者 项目负责人
if (!Processing.checkUserIsPrincipal(request, roleDAO) if (!Processing.checkUserIsPrincipal(request, roleDAO)
|| !projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) { && !projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION); return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} }
//判断项目是否存在 //判断项目是否存在
if (projectDAO.isExistProject(projectId)) { if (projectDAO.isExistProject(projectId)) {
//更新数据 //更新数据
return ResultUtil.success(projectDAO.projectEdit(projectEdit, projectId)); HashMap<String, Object> descriptionMap = new HashMap<>();
descriptionMap.put("description", projectEdit.getDescription());
projectEdit.setDescription(gson.toJson(descriptionMap));
HashMap<String, Object> tagMap = new HashMap<>();
tagMap.put("tags", projectEdit.getTags().split(","));
projectEdit.setTags(gson.toJson(tagMap));
HashMap<String, Object> filesMap = new HashMap<>();
filesMap.put("URI", projectEdit.getFiles());
projectEdit.setFiles(gson.toJson(filesMap));
projectEdit.setId(projectId);
ProjectDO projectEdit1 = new ProjectDO();
Processing.copyProperties(projectEdit, projectEdit1);
projectDAO.projectEdit(projectEdit1);
return ResultUtil.success(projectDAO.projectEdit(projectEdit1));
} else { } else {
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
} }

View File

@ -22,24 +22,21 @@
<if test="cycle != null and cycle != ''"> <if test="cycle != null and cycle != ''">
cycle = #{cycle}, cycle = #{cycle},
</if> </if>
<if test="file != null and file != ''"> <if test="files != null and files != ''">
file = #{file}, files = #{files},
</if> </if>
<if test="beginTime != null and beginTime != ''"> <if test="beginTime != null ">
begin_time = #{beginTime}, begin_time = #{beginTime},
</if> </if>
<if test="completeTime != null and completeTime != ''"> <if test="completeTime != null ">
complete_time = #{completeTime}, complete_time = #{completeTime},
</if> </if>
<if test="deadline != null and deadline != ''"> <if test="deadline != null ">
deadline = #{deadline}, deadline = #{deadline},
</if> </if>
<if test="status != null"> <if test="status != null">
status = #{status}, status = #{status},
</if> </if>
<if test="isFinish != null">
is_finish = #{isFinish},
</if>
<if test="isDelete != null"> <if test="isDelete != null">
is_delete = #{isDelete}, is_delete = #{isDelete},
</if> </if>
@ -77,6 +74,69 @@
update organize_oa.oa_project_modules set is_delete=true where id=#{id1} update organize_oa.oa_project_modules set is_delete=true where id=#{id1}
</update> </update>
<update id="projectModuleEdit">
update organize_oa.oa_project_modules
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="description != null and description != ''">
description = #{description},
</if>
<if test="principalId != null and principalId != ''">
principal_id = #{principalId},
</if>
<if test="workLoad != null and workLoad != ''">
work_load = #{workLoad},
</if>
<if test="cycle != null and cycle != ''">
cycle = #{cycle},
</if>
<if test="completeTime != null ">
complete_time = #{completeTime},
</if>
<if test="deadLine != null ">
dead_line = #{deadLine},
</if>
<if test="status != null">
status = #{status},
</if>
updated_at = CURRENT_TIMESTAMP
</set>
where id = #{id}
</update>
<update id="projectChildEditAll">
update organize_oa.oa_project_child
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="description != null and description != ''">
description = #{description},
</if>
<if test="principalId != null and principalId != ''">
principal_id = #{principalId},
</if>
<if test="workLoad != null and workLoad != ''">
work_load = #{workLoad},
</if>
<if test="cycle != null and cycle != ''">
cycle = #{cycle},
</if>
<if test="completeTime != null ">
complete_time = #{completeTime},
</if>
<if test="deadLine != null ">
dead_line = #{deadLine},
</if>
<if test="status != null">
status = #{status},
</if>
updated_at = CURRENT_TIMESTAMP
</set>
where id = #{id}
</update>
<select id="getByTags" resultType="com.jsl.oa.model.dodata.ProjectDO"> <select id="getByTags" resultType="com.jsl.oa.model.dodata.ProjectDO">
<if test="tags != null"> <if test="tags != null">
select * from organize_oa.oa_project where is_delete=false and principal_id=#{userId} and select * from organize_oa.oa_project where is_delete=false and principal_id=#{userId} and