diff --git a/src/main/java/ru/ulstu/fc/project/controller/ProjectRunController.java b/src/main/java/ru/ulstu/fc/project/controller/ProjectRunController.java index e07f0ec..9ef1212 100644 --- a/src/main/java/ru/ulstu/fc/project/controller/ProjectRunController.java +++ b/src/main/java/ru/ulstu/fc/project/controller/ProjectRunController.java @@ -34,15 +34,17 @@ public class ProjectRunController { @GetMapping("init/{projectId}") public String getProjects(@PathVariable(value = "projectId") Integer projectId, Model model) { model.addAttribute("project", projectService.getById(projectId)); - model.addAttribute("runProjectForm", new RunProjectForm()); + model.addAttribute("runProjectForm", new RunProjectForm(projectId)); model.addAttribute("variables", projectVariableService.getInputByProjectId(projectId)); return "project/init"; } @PostMapping("run") public String run(RunProjectForm runProjectForm, Model model) { + model.addAttribute("projectId", runProjectForm.getProjectId()); model.addAttribute("response", - fuzzyInferenceService.getFuzzyInference( + fuzzyInferenceService.getProjectFuzzyInference( + runProjectForm.getProjectId(), runProjectForm.getVariableValues())); return "project/result"; } diff --git a/src/main/java/ru/ulstu/fc/project/model/RunProjectForm.java b/src/main/java/ru/ulstu/fc/project/model/RunProjectForm.java index e60c094..7e88744 100644 --- a/src/main/java/ru/ulstu/fc/project/model/RunProjectForm.java +++ b/src/main/java/ru/ulstu/fc/project/model/RunProjectForm.java @@ -1,10 +1,18 @@ package ru.ulstu.fc.project.model; +import java.util.HashMap; import java.util.Map; public class RunProjectForm { private Integer projectId; - private Map variableValues; + private Map variableValues = new HashMap<>(); + + public RunProjectForm() { + } + + public RunProjectForm(Integer projectId) { + this.projectId = projectId; + } public Integer getProjectId() { return projectId; diff --git a/src/main/java/ru/ulstu/fc/rule/service/FuzzyInferenceService.java b/src/main/java/ru/ulstu/fc/rule/service/FuzzyInferenceService.java index 7c3cefd..5e7c3e4 100644 --- a/src/main/java/ru/ulstu/fc/rule/service/FuzzyInferenceService.java +++ b/src/main/java/ru/ulstu/fc/rule/service/FuzzyInferenceService.java @@ -188,4 +188,18 @@ public class FuzzyInferenceService { inputVariables, outputVariables); } + + public List getProjectFuzzyInference(Integer projectId, Map variableValues) { + List fuzzyRules = projectRulesService.getByProjectId(projectId) + .stream() + .map(FuzzyRule::getContent) + .toList(); + List inputVariables = projectVariableService.getInputByProjectId(projectId); + List outputVariables = projectVariableService.getOutputByProjectId(projectId); + + return getFuzzyInference(fuzzyRules, + variableValues, + inputVariables, + outputVariables); + } } diff --git a/src/main/resources/templates/project/init.html b/src/main/resources/templates/project/init.html index 4de51bf..20743d2 100644 --- a/src/main/resources/templates/project/init.html +++ b/src/main/resources/templates/project/init.html @@ -13,7 +13,8 @@
-