diff --git a/auto-solution-admin/src/main/java/com/solution/web/controller/behaviour/BehaviortreeController.java b/auto-solution-admin/src/main/java/com/solution/web/controller/behaviour/BehaviortreeController.java index 9f3f2a8..2cef53c 100644 --- a/auto-solution-admin/src/main/java/com/solution/web/controller/behaviour/BehaviortreeController.java +++ b/auto-solution-admin/src/main/java/com/solution/web/controller/behaviour/BehaviortreeController.java @@ -3,6 +3,7 @@ package com.solution.web.controller.behaviour; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.solution.system.domain.AfsimScenario; import com.solution.web.core.BehaviortreeProcessor; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -114,4 +115,16 @@ public class BehaviortreeController extends BaseController { return toAjax(behaviortreeService.deleteBehaviortreeByIds(ids)); } + + + /** + * 保存场景配置 + */ + @ApiOperation("保存场景配置") + @PostMapping("/saveSceneConfig") + @Log(title = "行为树主", businessType = BusinessType.INSERT) + public AjaxResult saveSceneConfig(@RequestBody AfsimScenario afsimScenario) + { + return toAjax(behaviortreeService.insert(afsimScenario)); + } } diff --git a/auto-solution-admin/src/main/java/com/solution/web/controller/rule/RuleController.java b/auto-solution-admin/src/main/java/com/solution/web/controller/rule/RuleController.java index 93aebf4..c662afa 100644 --- a/auto-solution-admin/src/main/java/com/solution/web/controller/rule/RuleController.java +++ b/auto-solution-admin/src/main/java/com/solution/web/controller/rule/RuleController.java @@ -52,5 +52,4 @@ public class RuleController extends BaseController { public AjaxResult getCommPlatformComponentNames(Integer scenarioId){ return success(ruleService.getCommPlatformComponentNames(scenarioId)); } - } diff --git a/auto-solution-admin/src/main/java/com/solution/web/core/BehaviortreeProcessor.java b/auto-solution-admin/src/main/java/com/solution/web/core/BehaviortreeProcessor.java index b857905..1f3017c 100644 --- a/auto-solution-admin/src/main/java/com/solution/web/core/BehaviortreeProcessor.java +++ b/auto-solution-admin/src/main/java/com/solution/web/core/BehaviortreeProcessor.java @@ -157,4 +157,5 @@ public class BehaviortreeProcessor { return instance; } + } diff --git a/auto-solution-behaviour/src/main/java/com/solution/system/domain/AfsimScenario.java b/auto-solution-behaviour/src/main/java/com/solution/system/domain/AfsimScenario.java new file mode 100644 index 0000000..b44dc08 --- /dev/null +++ b/auto-solution-behaviour/src/main/java/com/solution/system/domain/AfsimScenario.java @@ -0,0 +1,64 @@ +package com.solution.system.domain; + +/** + * 场景配置表 + * 对应表 afsim_scenario + */ +public class AfsimScenario { + private Integer id; + private String name; + private String description; + private String scenarioPath; + private String communicationGraph; // 用于存储场景中的通讯关系 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getScenarioPath() { + return scenarioPath; + } + + public void setScenarioPath(String scenarioPath) { + this.scenarioPath = scenarioPath; + } + + public String getCommunicationGraph() { + return communicationGraph; + } + + public void setCommunicationGraph(String communicationGraph) { + this.communicationGraph = communicationGraph; + } + + @Override + public String toString() { + return "AfsimScenario{" + + "id=" + id + + ", name='" + name + '\'' + + ", description='" + description + '\'' + + ", scenarioPath='" + scenarioPath + '\'' + + ", communicationGraph='" + communicationGraph + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/auto-solution-behaviour/src/main/java/com/solution/system/mapper/BehaviortreeMapper.java b/auto-solution-behaviour/src/main/java/com/solution/system/mapper/BehaviortreeMapper.java index 95defef..6609ca1 100644 --- a/auto-solution-behaviour/src/main/java/com/solution/system/mapper/BehaviortreeMapper.java +++ b/auto-solution-behaviour/src/main/java/com/solution/system/mapper/BehaviortreeMapper.java @@ -1,6 +1,8 @@ package com.solution.system.mapper; import java.util.List; + +import com.solution.system.domain.AfsimScenario; import com.solution.system.domain.Behaviortree; /** @@ -58,4 +60,11 @@ public interface BehaviortreeMapper * @return 结果 */ public int deleteBehaviortreeByIds(Long[] ids); + + /** + * 保存场景配置 + * @param afsimScenario + * @return + */ + int insert(AfsimScenario afsimScenario); } diff --git a/auto-solution-behaviour/src/main/java/com/solution/system/service/IBehaviortreeService.java b/auto-solution-behaviour/src/main/java/com/solution/system/service/IBehaviortreeService.java index fb94314..c6958da 100644 --- a/auto-solution-behaviour/src/main/java/com/solution/system/service/IBehaviortreeService.java +++ b/auto-solution-behaviour/src/main/java/com/solution/system/service/IBehaviortreeService.java @@ -1,6 +1,8 @@ package com.solution.system.service; import java.util.List; + +import com.solution.system.domain.AfsimScenario; import com.solution.system.domain.Behaviortree; /** @@ -58,4 +60,11 @@ public interface IBehaviortreeService * @return 结果 */ public int deleteBehaviortreeById(Long id); + + /** + * 保存场景配置 + * @param afsimScenario + * @return + */ + int insert(AfsimScenario afsimScenario); } diff --git a/auto-solution-behaviour/src/main/java/com/solution/system/service/impl/BehaviortreeServiceImpl.java b/auto-solution-behaviour/src/main/java/com/solution/system/service/impl/BehaviortreeServiceImpl.java index 307bb3a..dc2705c 100644 --- a/auto-solution-behaviour/src/main/java/com/solution/system/service/impl/BehaviortreeServiceImpl.java +++ b/auto-solution-behaviour/src/main/java/com/solution/system/service/impl/BehaviortreeServiceImpl.java @@ -1,6 +1,10 @@ package com.solution.system.service.impl; import java.util.List; + +import cn.hutool.core.util.ObjectUtil; +import com.solution.common.constant.ExceptionConstants; +import com.solution.system.domain.AfsimScenario; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.solution.system.mapper.BehaviortreeMapper; @@ -90,4 +94,17 @@ public class BehaviortreeServiceImpl implements IBehaviortreeService { return behaviortreeMapper.deleteBehaviortreeById(id); } + + /** + * 保存场景配置 + * @param afsimScenario + * @return + */ + @Override + public int insert(AfsimScenario afsimScenario) { + if(ObjectUtil.isEmpty(afsimScenario) || ObjectUtil.isEmpty(afsimScenario.getCommunicationGraph())){ + throw new RuntimeException(ExceptionConstants.SCENE_CONFIG_NOT_NULL); + } + return behaviortreeMapper.insert(afsimScenario); + } } diff --git a/auto-solution-behaviour/src/main/resources/mapper/system/BehaviortreeMapper.xml b/auto-solution-behaviour/src/main/resources/mapper/system/BehaviortreeMapper.xml index 54c7b3b..260da7b 100644 --- a/auto-solution-behaviour/src/main/resources/mapper/system/BehaviortreeMapper.xml +++ b/auto-solution-behaviour/src/main/resources/mapper/system/BehaviortreeMapper.xml @@ -55,6 +55,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + INSERT INTO afsim_scenario (name, description, scenario_path, communication_graph) + VALUES (#{name}, #{description}, #{scenarioPath}, #{communicationGraph}) + + update behaviortree diff --git a/auto-solution-common/src/main/java/com/solution/common/constant/ExceptionConstants.java b/auto-solution-common/src/main/java/com/solution/common/constant/ExceptionConstants.java index 56add30..7299a1e 100644 --- a/auto-solution-common/src/main/java/com/solution/common/constant/ExceptionConstants.java +++ b/auto-solution-common/src/main/java/com/solution/common/constant/ExceptionConstants.java @@ -13,4 +13,6 @@ public class ExceptionConstants { public static final String NOT_FOUND_F22_COMPONENT = "未找到 F-22 组件"; + public static final String SCENE_CONFIG_NOT_NULL = "场景配置不能为空"; + }