diff --git a/business-css/src/main/java/com/yfd/business/css/controller/ProjectController.java b/business-css/src/main/java/com/yfd/business/css/controller/ProjectController.java index 15f31c7..ac8b622 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/ProjectController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/ProjectController.java @@ -131,7 +131,7 @@ public class ProjectController { @Operation(summary = "删除项目(单条)", description = "根据项目ID删除项目") public boolean delete(@PathVariable @Parameter(description = "项目ID", required = true) String id) { projectAccessHelper.assertCanWriteProject(id); - return projectService.removeById(id); + return projectService.deleteProjectCascade(id); } /** @@ -150,7 +150,14 @@ public class ProjectController { projectAccessHelper.assertCanWriteProject(id); } } - return projectService.removeByIds(ids); + boolean ok = true; + if (ids != null) { + for (String id : ids) { + if (id == null || id.isBlank()) continue; + ok = projectService.deleteProjectCascade(id) && ok; + } + } + return ok; } diff --git a/business-css/src/main/java/com/yfd/business/css/service/ProjectService.java b/business-css/src/main/java/com/yfd/business/css/service/ProjectService.java index 1294ed4..2bbe278 100644 --- a/business-css/src/main/java/com/yfd/business/css/service/ProjectService.java +++ b/business-css/src/main/java/com/yfd/business/css/service/ProjectService.java @@ -49,6 +49,8 @@ public interface ProjectService extends IService { */ java.util.Map runSimulation(String projectId, String scenarioId, java.util.Map params); + boolean deleteProjectCascade(String projectId); + // List loadSimInfluenceNodes(String projectId); } diff --git a/business-css/src/main/java/com/yfd/business/css/service/impl/ProjectServiceImpl.java b/business-css/src/main/java/com/yfd/business/css/service/impl/ProjectServiceImpl.java index 81ef5c6..cce7422 100644 --- a/business-css/src/main/java/com/yfd/business/css/service/impl/ProjectServiceImpl.java +++ b/business-css/src/main/java/com/yfd/business/css/service/impl/ProjectServiceImpl.java @@ -1601,7 +1601,13 @@ public class ProjectServiceImpl } } - private void deleteProjectCascade(String projectId) { + @Override + public boolean deleteProjectCascade(String projectId) { + deleteProjectCascadeInternal(projectId); + return true; + } + + private void deleteProjectCascadeInternal(String projectId) { List scenarios = scenarioService.list(new QueryWrapper().select("scenario_id").eq("project_id", projectId)); List scenarioIds = scenarios.stream().map(Scenario::getScenarioId).filter(Objects::nonNull).toList(); if (!scenarioIds.isEmpty()) {