diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index 1d8c89d..308a453 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -51,6 +51,8 @@ public class ProjectController { /** + * 获取子模块详细 + * * @param id 要查询的 id * @return {@link BaseResponse} */ @@ -292,4 +294,32 @@ public BaseResponse projectParticipateGet( } + /** + * 删除子系统 + * + * @param id + * @param request + * @return + */ + @DeleteMapping("/project/child/delete") + public BaseResponse projectChildDelete( + @RequestParam List id, + HttpServletRequest request) { + if (id == null) { + return ResultUtil.error(ErrorCode.PARAMETER_ERROR); + } + return projectService.projectChildDelete(request, id); + } + + @DeleteMapping("/project/module/delete") + public BaseResponse projectModuleDelete( + @RequestParam List id, + HttpServletRequest request) { + if (id == null) { + return ResultUtil.error(ErrorCode.PARAMETER_ERROR); + } + return projectService.projectModuleDelete(request, id); + } + + } diff --git a/src/main/java/com/jsl/oa/mapper/ModuleMapper.java b/src/main/java/com/jsl/oa/mapper/ModuleMapper.java index 4e5eee1..11097e0 100644 --- a/src/main/java/com/jsl/oa/mapper/ModuleMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ModuleMapper.java @@ -1,5 +1,6 @@ package com.jsl.oa.mapper; +import com.jsl.oa.model.dodata.ProjectChildDO; import com.jsl.oa.model.dodata.ProjectModuleDO; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; @@ -12,14 +13,14 @@ public interface ModuleMapper { - List getByProjectId(Integer projectId, Long userId, int is); + List getByProjectId(Integer projectId, Long userId, int is); List getBySysId(Integer sysId, Long userId, int is); @Select("select principal_id from organize_oa.oa_project where id=#{projectId}") Long getPidByProjectid(Integer projectId); - @Select("select principal_id from organize_oa.oa_project_work where id=#{sysId}") + @Select("select principal_id from organize_oa.oa_project_child where id=#{sysId}") Long getPidBySysid(Integer sysId); @Delete("DELETE FROM organize_oa.oa_project_work WHERE id = #{id}") @@ -29,6 +30,6 @@ public interface ModuleMapper { List getAllMoudleByPid(Long id); @Select("select principal_id from organize_oa.oa_project where id=(select project_id " - + "from organize_oa.oa_project_work where oa_project_work.id = #{sysId})") + + "from organize_oa.oa_project_child where id = #{sysId})") Long getPridBySysyid(Integer sysId); } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 82222a9..e6d35b3 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -90,14 +90,19 @@ public interface ProjectMapper { @Select("select * from organize_oa.oa_project_modules where id=#{id}") ProjectModuleDO getModuleById(Integer id); - @Select("select principal_id from organize_oa.oa_project_work where id=#{pid}") - Long getPirIdbyWorkid(Long pid); + @Select("select principal_id from organize_oa.oa_project where id=" + + "(select project_id from organize_oa.oa_project_child where id=#{id})") + Long getPirIdbyId(Long id); - @Select("select principal_id from organize_oa.oa_project_modules where project_child_id=#{id} " - + "AND is_delete = 0") + @Select("select principal_id from organize_oa.oa_project_child where id=" + + "(select project_child_id from organize_oa.oa_project_modules where id=#{id})") + Long getPirTdByModuleId(Long id); + + + @Select("select principal_id from organize_oa.oa_project_modules where id=#{id} ") Long getPid(Integer id); - @Select("select * from organize_oa.oa_project_work where id=#{id} " + @Select("select * from organize_oa.oa_project_child where id=#{id} " + "AND is_delete = 0") ProjectModuleDO getProjectWorkById(Long id); @@ -136,4 +141,8 @@ public interface ProjectMapper { List getParticipateProject(Long userId); + + void deleteProjectChild(Long id1); + + void deleteProjectModule(Long id1); } diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectModuleSimpleVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectModuleSimpleVO.java new file mode 100644 index 0000000..0871346 --- /dev/null +++ b/src/main/java/com/jsl/oa/model/vodata/ProjectModuleSimpleVO.java @@ -0,0 +1,21 @@ +package com.jsl.oa.model.vodata; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ProjectModuleSimpleVO { + private String name; + private String description; + private Integer workLoad; + private Timestamp deadLine; + private String status; + private String principalUser; + +} diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectWorkSimpleVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectWorkSimpleVO.java index 15055ff..0f08cb3 100644 --- a/src/main/java/com/jsl/oa/model/vodata/ProjectWorkSimpleVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/ProjectWorkSimpleVO.java @@ -13,14 +13,14 @@ public class ProjectWorkSimpleVO { private String name; private Long principalId; private String principalUser; - private Integer isFinish; private String description; private Long cycle; private Long projectId; private Long workLoad; private Long id; private String tags; - private Integer status; + private String status; + private Timestamp deadLine; private Timestamp beginTime; private Timestamp completeTime; } diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index 4066006..f70398a 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -63,4 +63,8 @@ public interface ProjectService { BaseResponse getPrincipalProject(Integer page, Integer pageSize, HttpServletRequest request); BaseResponse getParticipateProject(Integer page, Integer pageSize, HttpServletRequest request); + + BaseResponse projectChildDelete(HttpServletRequest request, List id); + + BaseResponse projectModuleDelete(HttpServletRequest request, List id); } 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 7ac2e7a..5d5dba3 100644 --- a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java @@ -4,6 +4,7 @@ import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.ModuleMapper; +import com.jsl.oa.model.dodata.ProjectChildDO; import com.jsl.oa.model.dodata.ProjectModuleDO; import com.jsl.oa.model.vodata.ProjectWorkAndNameVO; import com.jsl.oa.services.ModuleService; @@ -42,7 +43,7 @@ public class ModuleServiceImpl implements ModuleService { is = 0; } - List projectWorkDOList = moduleMapper.getByProjectId(projectId, userId, is); + List projectWorkDOList = moduleMapper.getByProjectId(projectId, userId, is); return ResultUtil.success(projectWorkDOList); } 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 8557a22..722f1b8 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -12,10 +12,12 @@ import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.ProjectMapper; import com.jsl.oa.mapper.UserMapper; 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.*; import com.jsl.oa.model.vodata.business.info.ProjectShowVO; +import com.jsl.oa.services.MessageService; import com.jsl.oa.services.ProjectService; import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.ErrorCode; @@ -32,6 +34,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import static java.lang.System.*; + /** *

项目服务层实现类

*
@@ -53,6 +57,7 @@ public class ProjectServiceImpl implements ProjectService { private final UserDAO userDAO; private final ObjectMapper objectMapper; private final RoleDAO roleDAO; + private final MessageService messageService; @Override public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) { @@ -99,7 +104,7 @@ public class ProjectServiceImpl implements ProjectService { } } else { //是否是子系统的负责人 - if (Objects.equals(userId, projectMapper.getPirIdbyWorkid(projectWorkVO.getPid()))) { + if (Objects.equals(userId, projectMapper.getPirIdbyId(projectWorkVO.getPid()))) { projectDAO.projectWorkAdd(projectWorkVO); } else { return ResultUtil.error(ErrorCode.NOT_PERMISSION); @@ -204,10 +209,41 @@ public class ProjectServiceImpl implements ProjectService { } @Override - public BaseResponse getModuleById(Integer id) { - ProjectWorkSimpleVO projectWorkSimpleVO = projectMapper.getWorkById(id); + public BaseResponse projectChildDelete(HttpServletRequest request, List id) { + //判断是否是项目负责人 + for (Long id1 : id) { + if (!Objects.equals(Processing.getAuthHeaderToUserId(request), projectMapper.getPirIdbyId(id1))) { + return ResultUtil.error(ErrorCode.NOT_PERMISSION); + } else { + projectMapper.deleteProjectChild(id1); + } + } + return ResultUtil.success(); + } - projectWorkSimpleVO.setPrincipalUser(userDAO.getUserById(projectMapper.getPid(id)).getUsername()); + + @Override + public BaseResponse projectModuleDelete(HttpServletRequest request, List id) { + //判断是否是子系统负责人 + for (Long id1 : id) { + if (!Objects.equals(Processing.getAuthHeaderToUserId(request), projectMapper.getPirTdByModuleId(id1))) { + return ResultUtil.error(ErrorCode.NOT_PERMISSION); + } else { + Integer projectChildId = projectMapper.getModuleById(id1.intValue()).getProjectChildId().intValue(); + out.println(projectChildId); + Integer projectId = projectMapper.getWorkById(projectChildId).getProjectId().intValue(); + out.println(projectId); + projectMapper.deleteProjectModule(id1); + messageService.messageAdd(projectId, projectChildId, id1.intValue(), 1, request); + + } + } + return ResultUtil.success(); + } + + @Override + public BaseResponse getModuleById(Integer id) { + ProjectModuleDO projectWorkSimpleVO = projectMapper.getModuleById(id); // 解析JSON字符串 JsonNode rootNode; try { @@ -222,7 +258,12 @@ public class ProjectServiceImpl implements ProjectService { } catch (JsonProcessingException ignored) { } - return ResultUtil.success(projectWorkSimpleVO); + ProjectModuleSimpleVO projectModuleSimpleVO = new ProjectModuleSimpleVO(); + projectModuleSimpleVO.setPrincipalUser(userDAO.getUserById(projectMapper.getPid(id)).getUsername()); + out.println("准备拷贝"); + Processing.copyProperties(projectWorkSimpleVO, projectModuleSimpleVO); + out.println("拷贝wan"); + return ResultUtil.success(projectModuleSimpleVO); } @Override @@ -297,7 +338,7 @@ public class ProjectServiceImpl implements ProjectService { .setStatus(projectShowVO.getStatus()) .setIsActive(projectShowVO.getIsActive()) .setAuthor(userDO.getUsername()) - .setCreatedAt(new Timestamp(System.currentTimeMillis()).toString()); + .setCreatedAt(new Timestamp(currentTimeMillis()).toString()); projectShowDO.getData().add(projectShow); // 保存展示 if (projectDAO.setProjectShow(projectShowDO)) { @@ -344,7 +385,7 @@ public class ProjectServiceImpl implements ProjectService { .setStatus(projectShowVO.getStatus()) .setIsActive(projectShowVO.getIsActive()) .setAuthor(userDO.getUsername()) - .setUpdatedAt(new Timestamp(System.currentTimeMillis()).toString()); + .setUpdatedAt(new Timestamp(currentTimeMillis()).toString()); // 保存展示信息 if (projectDAO.setProjectShow(projectShowDO)) { return ResultUtil.success(); diff --git a/src/main/resources/com/jsl/oa/mapper/ModuleMapper.xml b/src/main/resources/com/jsl/oa/mapper/ModuleMapper.xml index 7e2f098..a268480 100644 --- a/src/main/resources/com/jsl/oa/mapper/ModuleMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ModuleMapper.xml @@ -5,17 +5,17 @@ - + select * from organize_oa.oa_project_child where project_id=#{projectId} - and (principal_id=#{userId} or principal_id is null) + and (principal_id=#{userId}) \ No newline at end of file diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml index e2e6b03..33e4bbf 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml @@ -47,6 +47,14 @@ where id = #{id} + + update organize_oa.oa_project_child set is_delete=true where id=#{id1} + + + + update organize_oa.oa_project_modules set is_delete=true where id=#{id1} + +