diff --git a/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java index 9b076087..dab862ce 100644 --- a/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java +++ b/project/src/main/java/com/sdm/project/dao/SimulationDemandMapper.java @@ -47,4 +47,6 @@ public interface SimulationDemandMapper extends BaseMapper { List getDemandListWithCondition(@Param("req") DemandQryReq req); + List getDemandListByProjectId(@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 6da0d320..77e22234 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 @@ -328,6 +328,11 @@ public class NodeServiceImpl extends ServiceImpl deleteNodeIdList) { + try { + String nodeId = deleteNodeIdList.get(0); + // 查询是否是项目类型节点,只有项目类型节点才去删除需求 + SpdmNodeVo node = nodeMapper.getNodeById(nodeId); + if (ObjectUtils.isEmpty(node) || NodeTypeEnum.PROJECT.getValue().equals(node.getNodeType())) { + log.info("node为空或不为项目类型,不删除需求,node:{}",node); + return true; + } + log.info("开始删除项目下的需求"); + List demandList = demandMapper.getDemandListByProjectId(nodeId); + if (CollectionUtils.isEmpty(demandList)) { + log.info("项目:{}下未查询到关联的需求",node.getNodeName()); + return true; + } + log.info("共查询到项目:{}下的{}条需求",node.getNodeName(),demandList.size()); + List demandIdList = demandList.stream().map(SpdmDemandVo::getUuid).toList(); + demandMapper.deleteDemand(demandIdList); + demandMapper.deleteDemandMember(demandIdList); + demandMapper.deleteDemandExtra(demandIdList); + }catch (Exception ex) { + log.error("删除项目下关联的需求时发生异常:{}",ex.getMessage()); + return false; + } + return true; + } + // 删除文件夹 public SdmResponse deleteDirNew(String uuid) { DelDirReq req = new DelDirReq(); diff --git a/project/src/main/resources/mapper/SimulationDemandMapper.xml b/project/src/main/resources/mapper/SimulationDemandMapper.xml index d8856c78..0f2d4b03 100644 --- a/project/src/main/resources/mapper/SimulationDemandMapper.xml +++ b/project/src/main/resources/mapper/SimulationDemandMapper.xml @@ -223,4 +223,8 @@ + + \ No newline at end of file