From 9e8e54b284531dd66980342af5d47c2562ccb64f Mon Sep 17 00:00:00 2001 From: wanxiaoli Date: Wed, 24 Jun 2026 16:44:53 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=A0=E9=99=A4=E4=B8=BA?= =?UTF-8?q?=E7=BA=A7=E8=81=94=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/css/controller/ProjectController.java | 11 +++++++++-- .../com/yfd/business/css/service/ProjectService.java | 2 ++ .../business/css/service/impl/ProjectServiceImpl.java | 8 +++++++- 3 files changed, 18 insertions(+), 3 deletions(-) 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()) {