查询行为树所属平台的下属
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
package com.solution.system.domain;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 平台表
|
||||
*/
|
||||
@Data
|
||||
public class Platform {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 平台名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 平台出现在想定上的想定id
|
||||
*/
|
||||
private Integer scenarioId;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.solution.system.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 平台通信关系表
|
||||
*/
|
||||
@Data
|
||||
public class PlatformCommunication {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 指挥平台名称/ID
|
||||
*/
|
||||
private String commandPlatform;
|
||||
|
||||
/**
|
||||
* 下属平台名称/ID
|
||||
*/
|
||||
private String subordinatePlatform;
|
||||
|
||||
/**
|
||||
* 指挥通信方式/内容
|
||||
*/
|
||||
private String commandComm;
|
||||
|
||||
/**
|
||||
* 下属通信方式/内容
|
||||
*/
|
||||
private String subordinateComm;
|
||||
|
||||
/**
|
||||
* 想定ID
|
||||
*/
|
||||
private Integer scenaryId;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.solution.system.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface PlatformCommunicationMapper {
|
||||
|
||||
/**
|
||||
* 根据平台name获取平台下属英文名
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
List<String> getUnderlingBytreeId(String name);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.solution.system.mapper;
|
||||
|
||||
import com.solution.system.domain.Platform;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface PlatformMapper {
|
||||
|
||||
/**
|
||||
* 根据行为树id获取行为树所属平台
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
Platform getPlatformByTreeId(Long id);
|
||||
|
||||
/**
|
||||
* 根据下属平台英文名获取中文名返回
|
||||
* @param underlingEnglishName
|
||||
* @return
|
||||
*/
|
||||
List<String> selectPlatformChineseName(List<String> underlingEnglishName);
|
||||
}
|
||||
@@ -62,4 +62,11 @@ public interface IBehaviortreeService
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteBehaviortreeById(Long id);
|
||||
|
||||
/**
|
||||
* 根据行为树id获取该行为树的下属
|
||||
* @param treeId
|
||||
* @return
|
||||
*/
|
||||
List<String> getUnderling(Integer treeId);
|
||||
}
|
||||
|
||||
@@ -2,8 +2,12 @@ package com.solution.system.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.solution.common.constant.ExceptionConstants;
|
||||
import com.solution.system.domain.Platform;
|
||||
import com.solution.system.mapper.PlatformCommunicationMapper;
|
||||
import com.solution.system.mapper.PlatformMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.solution.system.mapper.BehaviortreeMapper;
|
||||
@@ -22,6 +26,12 @@ public class BehaviortreeServiceImpl implements IBehaviortreeService
|
||||
@Autowired
|
||||
private BehaviortreeMapper behaviortreeMapper;
|
||||
|
||||
@Autowired
|
||||
private PlatformCommunicationMapper platformCommunicationMapper;
|
||||
|
||||
@Autowired
|
||||
private PlatformMapper platformMapper;
|
||||
|
||||
@Override
|
||||
public Behaviortree findOneByPlatformId(Integer platformId)
|
||||
{
|
||||
@@ -99,4 +109,30 @@ public class BehaviortreeServiceImpl implements IBehaviortreeService
|
||||
{
|
||||
return behaviortreeMapper.deleteBehaviortreeById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据行为树id获取该行为树的下属
|
||||
* @param treeId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<String> getUnderling(Integer treeId) {
|
||||
if(null == treeId){
|
||||
throw new RuntimeException(ExceptionConstants.PARAMETER_EXCEPTION);
|
||||
}
|
||||
Behaviortree behaviortree = behaviortreeMapper.selectBehaviortreeById(Long.valueOf(treeId));
|
||||
if(ObjectUtil.isEmpty(behaviortree) && null == behaviortree.getId()){
|
||||
throw new RuntimeException(ExceptionConstants.PARAMETER_EXCEPTION);
|
||||
}
|
||||
//根据行为树id获取行为树所属平台
|
||||
Platform platform = platformMapper.getPlatformByTreeId(behaviortree.getId());
|
||||
//根据平台name获取平台下属英文名
|
||||
List<String> underlingEnglishName = platformCommunicationMapper.getUnderlingBytreeId(platform.getName());
|
||||
//根据下属平台英文名获取中文名返回
|
||||
List<String> underlingChineseName = platformMapper.selectPlatformChineseName(underlingEnglishName);
|
||||
if(CollUtil.isEmpty(underlingChineseName)){
|
||||
throw new RuntimeException("该平台暂无下属");
|
||||
}
|
||||
return underlingChineseName;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.solution.system.mapper.PlatformCommunicationMapper">
|
||||
|
||||
|
||||
<select id="getUnderlingBytreeId" resultType="java.lang.String" parameterType="java.lang.Integer">
|
||||
SELECT subordinate_platform
|
||||
FROM platform_communication
|
||||
WHERE subordinate_platform = #{name}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.solution.system.mapper.PlatformMapper">
|
||||
|
||||
|
||||
<select id="getPlatformByTreeId" resultType="com.solution.system.domain.Platform"
|
||||
parameterType="java.lang.Long">
|
||||
SELECT id , name , description, scenario_id
|
||||
FROM platform
|
||||
WHERE id = #{id}
|
||||
</select>
|
||||
<select id="selectPlatformChineseName" resultType="java.lang.String"
|
||||
parameterType="java.util.List<java.lang.String>">
|
||||
SELECT description
|
||||
FROM platform
|
||||
WHERE name IN
|
||||
<foreach item="item" collection="underlingEnglishName" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user