Merged PR 4: updated step counter for user visualization while executing scenarios

updated step counter for user visualization while executing scenarios
This commit is contained in:
2024-11-21 15:40:48 +00:00

View File

@@ -3,6 +3,8 @@ package com.olympus.hermione.services;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.OptionalInt;
import java.util.stream.IntStream;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.ai.azure.openai.AzureOpenAiChatModel; import org.springframework.ai.azure.openai.AzureOpenAiChatModel;
@@ -98,10 +100,16 @@ public class ScenarioExecutionService {
}else{ }else{
scenarioOutput.setScenarioExecution_id(scenarioExecution.getId()); scenarioOutput.setScenarioExecution_id(scenarioExecution.getId());
scenarioOutput.setStatus("IN_PROGRESS"); scenarioOutput.setStatus("IN_PROGRESS");
scenarioOutput.setCurrentStepId(scenarioExecution.getCurrentStepId());
scenarioOutput.setCurrentStepDescription(scenarioExecution.getCurrentStepDescription()); if (scenarioExecution.getCurrentStepId() != null){
if (scenarioOutput.getCurrentStepId() != null){ OptionalInt indexOpt = IntStream.range(0, scenarioExecution.getScenario().getSteps().size())
scenarioOutput.setMessage("Executing "+scenarioOutput.getCurrentStepId()+"/"+scenarioExecution.getScenario().getSteps().size()+": "+scenarioOutput.getCurrentStepDescription()+"."); .filter(i -> scenarioExecution.getScenario().getSteps().get(i).getStepId().equals(scenarioExecution.getCurrentStepId()))
.map(i -> i + 1)
.findFirst();
scenarioOutput.setCurrentStepId(scenarioExecution.getCurrentStepId());
scenarioOutput.setCurrentStepDescription(scenarioExecution.getCurrentStepDescription());
scenarioOutput.setMessage("Executing step "+indexOpt.getAsInt()+"/"+scenarioExecution.getScenario().getSteps().size()+": "+scenarioOutput.getCurrentStepDescription()+".");
}else { }else {
scenarioOutput.setMessage("Starting execution..."); scenarioOutput.setMessage("Starting execution...");
} }