diff --git a/business-css/src/main/java/com/yfd/business/css/controller/SimController.java b/business-css/src/main/java/com/yfd/business/css/controller/SimController.java index 027efe2..62dee12 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/SimController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/SimController.java @@ -8,38 +8,38 @@ import java.util.Map; @RequestMapping("/sim") public class SimController { - private final ProjectRepository projectRepo; - private final EventRepository eventRepo; - private final InfluenceRepository influenceRepo; - private final SimService simService; + // private final ProjectRepository projectRepo; + // private final EventRepository eventRepo; + // private final InfluenceRepository influenceRepo; + // private final SimService simService; - public SimController(ProjectRepository projectRepo, - EventRepository eventRepo, - InfluenceRepository influenceRepo, - SimService simService) { - this.projectRepo = projectRepo; - this.eventRepo = eventRepo; - this.influenceRepo = influenceRepo; - this.simService = simService; - } + // public SimController(ProjectRepository projectRepo, + // EventRepository eventRepo, + // InfluenceRepository influenceRepo, + // SimService simService) { + // this.projectRepo = projectRepo; + // this.eventRepo = eventRepo; + // this.influenceRepo = influenceRepo; + // this.simService = simService; + // } - @PostMapping("/run") - public Map runSimulation(@RequestParam String projectId, - @RequestParam String scenarioId, - @RequestParam int steps) { + // @PostMapping("/run") + // public Map runSimulation(@RequestParam String projectId, + // @RequestParam String scenarioId, + // @RequestParam int steps) { - List> topoRows = projectRepo.loadTopo(projectId); - List> attrChanges = eventRepo.loadAttrChanges(projectId, scenarioId); - List> influenceRows = influenceRepo.loadInfluences(projectId); + // List> topoRows = projectRepo.loadTopo(projectId); + // List> attrChanges = eventRepo.loadAttrChanges(projectId, scenarioId); + // List> influenceRows = influenceRepo.loadInfluences(projectId); - List units = SimBuilder.buildUnits(topoRows); - List events = SimBuilder.buildEvents(attrChanges); - List nodes = SimBuilder.buildInfluenceNodes(influenceRows); + // List units = SimBuilder.buildUnits(topoRows); + // List events = SimBuilder.buildEvents(attrChanges); + // List nodes = SimBuilder.buildInfluenceNodes(influenceRows); - SimContext ctx = simService.runSimulation(units, events, nodes, steps); + // SimContext ctx = simService.runSimulation(units, events, nodes, steps); - // 转换成推理接口 JSON - return InferenceConverter.toInferenceInput(ctx, units, projectId, scenarioId); - } + // // 转换成推理接口 JSON + // return InferenceConverter.toInferenceInput(ctx, units, projectId, scenarioId); + // } } 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 9a6d26f..ee090db 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 @@ -47,6 +47,6 @@ public interface ProjectService extends IService { */ java.util.Map runSimulation(String projectId, String scenarioId, java.util.Map params); - List loadSimInfluenceNodes(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 d2dfa4d..6a5a03d 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 @@ -1353,105 +1353,105 @@ public class ProjectServiceImpl //加载项目的影响关系节点 /*拓扑 → influence node 是一次性构建 * */ - @Override - public List loadSimInfluenceNodes(String projectId) - { - //1. 校验项目是否存在 - Project project = this.getOne(new LambdaQueryWrapper().eq(Project::getProjectId, projectId)); - if (project == null || project.getTopology() == null) { - return List.of(); - } - List nodes = new ArrayList<>(); - //2. 解析拓扑图,提取节点 - try { - JsonNode root = objectMapper.readTree(project.getTopology()); + // @Override +// public List loadSimInfluenceNodes(String projectId) +// { +// //1. 校验项目是否存在 +// Project project = this.getOne(new LambdaQueryWrapper().eq(Project::getProjectId, projectId)); +// if (project == null || project.getTopology() == null) { +// return List.of(); +// } +// List nodes = new ArrayList<>(); +// //2. 解析拓扑图,提取节点 +// try { +// JsonNode root = objectMapper.readTree(project.getTopology()); - JsonNode devices = root.path("devices"); - if (!devices.isArray()) return nodes; +// JsonNode devices = root.path("devices"); +// if (!devices.isArray()) return nodes; - for (JsonNode deviceNode : devices) { - String deviceId = deviceNode.path("deviceId").asText(); +// for (JsonNode deviceNode : devices) { +// String deviceId = deviceNode.path("deviceId").asText(); - // ---------- device.properties ---------- - buildInfluenceNodes( - "DEVICE", - deviceId, - deviceNode.path("properties"), - nodes - ); +// // ---------- device.properties ---------- +// buildInfluenceNodes( +// "DEVICE", +// deviceId, +// deviceNode.path("properties"), +// nodes +// ); - // ---------- device.material ---------- - JsonNode materialNode = deviceNode.path("material"); - if (!materialNode.isMissingNode()) { - String materialId = materialNode.path("materialId").asText(); - buildInfluenceNodes( - "MATERIAL", - materialId, - materialNode.path("properties"), - nodes - ); - } - } +// // ---------- device.material ---------- +// JsonNode materialNode = deviceNode.path("material"); +// if (!materialNode.isMissingNode()) { +// String materialId = materialNode.path("materialId").asText(); +// buildInfluenceNodes( +// "MATERIAL", +// materialId, +// materialNode.path("properties"), +// nodes +// ); +// } +// } - } catch (Exception e) { - throw new IllegalStateException("Failed to parse topology JSON", e); - } +// } catch (Exception e) { +// throw new IllegalStateException("Failed to parse topology JSON", e); +// } - return nodes; +// return nodes; - } +// } - /* - * 核心构建方法 - */ - private void buildInfluenceNodes(String entityType, - String entityId, - JsonNode propertiesNode, - List result) { +// /* +// * 核心构建方法 +// */ +// private void buildInfluenceNodes(String entityType, +// String entityId, +// JsonNode propertiesNode, +// List result) { - if (!propertiesNode.isObject()) return; +// if (!propertiesNode.isObject()) return; - propertiesNode.fields().forEachRemaining(entry -> { - String propertyName = entry.getKey(); - JsonNode propNode = entry.getValue(); +// propertiesNode.fields().forEachRemaining(entry -> { +// String propertyName = entry.getKey(); +// JsonNode propNode = entry.getValue(); - if (!"influence".equals(propNode.path("type").asText())) { - return; - } +// if (!"influence".equals(propNode.path("type").asText())) { +// return; +// } - SimInfluenceNode node = new SimInfluenceNode(); - node.setTargetEntityType(entityType); - node.setTargetEntityId(entityId); - node.setTargetProperty(propertyName); - node.setBase(propNode.path("base").asDouble(0)); - node.setBias(propNode.path("bias").asDouble(0)); +// SimInfluenceNode node = new SimInfluenceNode(); +// node.setTargetEntityType(entityType); +// node.setTargetEntityId(entityId); +// node.setTargetProperty(propertyName); +// node.setBase(propNode.path("base").asDouble(0)); +// node.setBias(propNode.path("bias").asDouble(0)); - // sources - List sources = new ArrayList<>(); - JsonNode srcArray = propNode.path("sources"); - if (srcArray.isArray()) { - for (JsonNode src : srcArray) { - SimInfluenceSource s = new SimInfluenceSource(); - s.setSourceEntityType(src.path("entityType").asText().toUpperCase()); - s.setSourceEntityId(src.path("entityId").asText()); - s.setSourceProperty(src.path("property").asText()); - s.setCoefficient(src.path("coefficient").asDouble(1.0)); +// // sources +// List sources = new ArrayList<>(); +// JsonNode srcArray = propNode.path("sources"); +// if (srcArray.isArray()) { +// for (JsonNode src : srcArray) { +// SimInfluenceSource s = new SimInfluenceSource(); +// s.setSourceEntityType(src.path("entityType").asText().toUpperCase()); +// s.setSourceEntityId(src.path("entityId").asText()); +// s.setSourceProperty(src.path("property").asText()); +// s.setCoefficient(src.path("coefficient").asDouble(1.0)); - JsonNode delay = src.path("delay"); - if (delay.path("enabled").asBoolean(false)) { - s.setDelay(delay.path("time").asInt(0)); - } else { - s.setDelay(0); - } +// JsonNode delay = src.path("delay"); +// if (delay.path("enabled").asBoolean(false)) { +// s.setDelay(delay.path("time").asInt(0)); +// } else { +// s.setDelay(0); +// } - sources.add(s); - } - } +// sources.add(s); +// } +// } - node.setSources(sources); - result.add(node); - }); -} +// node.setSources(sources); +// result.add(node); +// }); +// } }