diff --git a/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java index 1aca5321..08ad6aa1 100644 --- a/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java +++ b/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java @@ -106,4 +106,8 @@ public interface SimulationNodeMapper extends BaseMapper { List queryNodeCodeByTags(@Param("list")List tag1List, @Param("tagKey")String tagKey,@Param("tagValue") String tagValue); + List getTaskListByProjectNodeId(@Param("nodeId") String nodeId); + + List getTaskListByPhaseNodeId(@Param("nodeId") String nodeId); + } diff --git a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java index cb07a0b4..eb4bc2a1 100644 --- a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java @@ -134,6 +134,9 @@ public class NodeServiceImpl extends ServiceImpl deleteNodeIdList = req.getDeleteNodeIdList(); if (CollectionUtils.isNotEmpty(deleteNodeIdList)) { + // 删除项目下所有的任务 + if (!deleteTask(deleteNodeIdList)) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return SdmResponse.failed("操作节点关联的任务失败,原因:删除节点关联的任务时失败!"); + } + if (!deleteDemand(deleteNodeIdList)) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return SdmResponse.failed("操作节点关联的需求失败,原因:删除节点关联的需求时失败!"); + } // 手动回滚数据 if (!deleteNode(deleteNodeIdList)) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return SdmResponse.failed("操作节点失败,原因:删除节点时失败!"); } + // 删除项目下所有的需求 if (!deleteDemand(deleteNodeIdList)) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); @@ -364,12 +377,44 @@ public class NodeServiceImpl extends ServiceImpl deleteNodeIdList) { + String nodeId = deleteNodeIdList.get(0); + // 查询节点类型 + SpdmNodeVo node = nodeMapper.getNodeById(nodeId); + if (!NodeTypeEnum.PROJECT.getValue().equals(node.getNodeType()) && !NodeTypeEnum.PHASE.getValue().equals(node.getNodeType())) { + log.info("只删除项目或阶段类型下的任务"); + return true; + } + // 删除当前节点及子节点下的分析项相关信息 + List taskNodePoList; + if (NodeTypeEnum.PROJECT.getValue().equals(node.getNodeType())) { + taskNodePoList = taskService.lambdaQuery().eq(SimulationTask::getTag1,nodeId).list(); + }else { + taskNodePoList = taskService.lambdaQuery().eq(SimulationTask::getTag2,nodeId).list(); + } + if (CollectionUtils.isNotEmpty(taskNodePoList)) { + nodeMapper.deleteTaskBatch(deleteNodeIdList); + List taskIdList = taskNodePoList.stream().map(SimulationTask::getUuid).toList(); + nodeMapper.deleteTaskExtraBatch(taskIdList); + nodeMapper.deleteTaskMemberBatch(taskIdList); + // 删除当前节点及子节点下的指标相关信息 + List performanceNodePoList = nodeMapper.getPerformanceListByNodeIdList(taskIdList); + if (CollectionUtils.isEmpty(performanceNodePoList)) { + return true; + } + List performanceIdList = performanceNodePoList.stream().map(PerformanceNodePo::getId).toList(); + nodeMapper.deletePerformanceBatch(performanceIdList); + nodeMapper.deletePerformanceExtraBatch(performanceNodePoList.stream().map(PerformanceNodePo::getUuid).toList()); + } + return true; + } + private boolean deleteDemand(List deleteNodeIdList) { try { String nodeId = deleteNodeIdList.get(0); // 查询是否是项目类型节点,只有项目类型节点才去删除需求 SpdmNodeVo node = nodeMapper.getNodeById(nodeId); - if (ObjectUtils.isEmpty(node) || NodeTypeEnum.PROJECT.getValue().equals(node.getNodeType())) { + if (ObjectUtils.isEmpty(node) || !NodeTypeEnum.PROJECT.getValue().equals(node.getNodeType())) { log.info("node为空或不为项目类型,不删除需求,node:{}",node); return true; } @@ -416,22 +461,6 @@ public class NodeServiceImpl extends ServiceImpl taskNodePoList = nodeMapper.getTaskListByNodeIdList(deleteNodeIdList); - if (CollectionUtils.isNotEmpty(taskNodePoList)) { - nodeMapper.deleteTaskBatch(deleteNodeIdList); - List taskIdList = taskNodePoList.stream().map(TaskNodePo::getUuid).toList(); - nodeMapper.deleteTaskExtraBatch(taskIdList); - nodeMapper.deleteTaskMemberBatch(taskIdList); - // 删除当前节点及子节点下的指标相关信息 - List performanceNodePoList = nodeMapper.getPerformanceListByNodeIdList(taskIdList); - if (CollectionUtils.isEmpty(performanceNodePoList)) { - return true; - } - List performanceIdList = performanceNodePoList.stream().map(PerformanceNodePo::getId).toList(); - nodeMapper.deletePerformanceBatch(performanceIdList); - nodeMapper.deletePerformanceExtraBatch(performanceNodePoList.stream().map(PerformanceNodePo::getUuid).toList()); - } List childrenNodeList = nodeMapper.getNodeListByNodeIdList(deleteNodeIdList); if (CollectionUtils.isEmpty(childrenNodeList)) { return true; diff --git a/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java index 0047845e..83aeee3d 100644 --- a/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java @@ -947,24 +947,6 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { taskNodePo.setAttionMembers(taskNodePo.getPayAttentionMemberList().stream().map(CIDUserResp::getNickname).collect(Collectors.joining(","))); } } - - - if (CollectionUtils.isNotEmpty(pUserIdList)) { - SdmResponse> cidUserResp= sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(pUserIdList).build()); - taskNodePo.setPMemberList(cidUserResp.getData()); - if (CollectionUtils.isNotEmpty(taskNodePo.getPMemberList())) { - taskNodePo.setPMembers(taskNodePo.getPMemberList().stream().map(CIDUserResp::getNickname).collect(Collectors.joining(","))); - } - } - // 设置关注人 - if (CollectionUtils.isNotEmpty(attionUserIdList)) { - SdmResponse> cidUserResp= sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(attionUserIdList).build()); - taskNodePo.setPayAttentionMemberList(cidUserResp.getData()); - if (CollectionUtils.isNotEmpty(taskNodePo.getPayAttentionMemberList())) { - taskNodePo.setAttionMembers(taskNodePo.getPayAttentionMemberList().stream().map(CIDUserResp::getNickname).collect(Collectors.joining(","))); - } - } - } } } diff --git a/project/src/main/resources/mapper/SimulationNodeMapper.xml b/project/src/main/resources/mapper/SimulationNodeMapper.xml index 6a8d2139..d405f162 100644 --- a/project/src/main/resources/mapper/SimulationNodeMapper.xml +++ b/project/src/main/resources/mapper/SimulationNodeMapper.xml @@ -772,5 +772,13 @@ + + + + \ No newline at end of file