1.修改文件业务,屏蔽前台接口开关。
2.文件夹业务修改为,分组管理业务。
3.航线(kmz)对象增加分组ID。
4.分组信息删除同时删除分组下航信信息。
5.新增航线(kmz)时,不选分组,将赋值默认分组信息。
6.增加初始化数据类。
7.生成kmz文件,增加默认值管理。
1 files added
13 files modified
341 ■■■■■ changed files
ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteFileController.java 26 ●●●●● patch | view | raw | blame | history
ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteFolderController.java 42 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/RoutePointReq.java 9 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/UavRouteReq.java 32 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/route/ArdRouteFolder.java 4 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/route/ArdRouteInformation.java 3 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/mapper/ArdRouteFolderMapper.java 28 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/mapper/ArdRouteInformationMapper.java 8 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/service/IArdRouteFolderService.java 30 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteFolderServiceImpl.java 64 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java 16 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/util/InitializationUtils.java 62 ●●●●● patch | view | raw | blame | history
ard-route/src/main/resources/mapper/ArdRouteInformationMapper.xml 12 ●●●●● patch | view | raw | blame | history
ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteFileController.java
@@ -25,7 +25,7 @@
 * @author xia
 * @date 2025-10-18
 */
@Api(tags = "文件")
//@Api(tags = "文件")
@RestController
@RequestMapping("/route/file")
public class ArdRouteFileController extends BaseController {
@@ -36,8 +36,8 @@
    /**
     * 查询文件列表
     */
    @ApiOperation("查询文件列表")
    @PreAuthorize("@ss.hasPermi('route:file:list')")
    //@ApiOperation("查询文件列表")
    //@PreAuthorize("@ss.hasPermi('route:file:list')")
    @GetMapping("/list")
    public TableDataInfo list(ArdRouteFile ardRouteFile) {
        startPage();
@@ -48,8 +48,8 @@
    /**
     * 导出文件列表
     */
    @ApiOperation("导出文件列表")
    @PreAuthorize("@ss.hasPermi('route:file:export')")
    //@ApiOperation("导出文件列表")
    //@PreAuthorize("@ss.hasPermi('route:file:export')")
    @Log(title = "文件", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ArdRouteFile ardRouteFile) {
@@ -61,8 +61,8 @@
    /**
     * 获取文件详细信息
     */
    @ApiOperation("获取文件详细信息")
    @PreAuthorize("@ss.hasPermi('route:file:query')")
    //@ApiOperation("获取文件详细信息")
    //@PreAuthorize("@ss.hasPermi('route:file:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") String id) {
        return success(ardRouteFileService.selectArdRouteFileById(id));
@@ -71,8 +71,8 @@
    /**
     * 新增文件
     */
    @ApiOperation("新增文件")
    @PreAuthorize("@ss.hasPermi('route:file:add')")
    //@ApiOperation("新增文件")
    //@PreAuthorize("@ss.hasPermi('route:file:add')")
    @Log(title = "文件", businessType = BusinessType.INSERT)
    //@PostMapping("/addFile/{folderId}")
    @PostMapping("/addFile")
@@ -88,8 +88,8 @@
    /**
     * 修改文件
     */
    @ApiOperation("修改文件")
    @PreAuthorize("@ss.hasPermi('route:file:edit')")
    //@ApiOperation("修改文件")
    //@PreAuthorize("@ss.hasPermi('route:file:edit')")
    @Log(title = "文件", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ArdRouteFile ardRouteFile) {
@@ -100,8 +100,8 @@
    /**
     * 删除文件
     */
    @ApiOperation("删除文件")
    @PreAuthorize("@ss.hasPermi('route:file:remove')")
    //@ApiOperation("删除文件")
    //@PreAuthorize("@ss.hasPermi('route:file:remove')")
    @Log(title = "文件", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable String[] ids) {
ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteFolderController.java
@@ -26,12 +26,12 @@
import com.ard.route.service.IArdRouteFolderService;
/**
 * 文件夹Controller
 * 分组Controller
 * 
 * @author xia
 * @date 2025-10-18
 */
@Api(tags = "文件夹")
@Api(tags = "分组管理")
@RestController
@RequestMapping("/route/folder")
public class ArdRouteFolderController extends BaseController {
@@ -40,9 +40,9 @@
    private IArdRouteFolderService ardRouteFolderService;
    /**
     * 查询文件夹列表
     * 查询分组列表
     */
    @ApiOperation("查询文件夹列表")
    @ApiOperation("查询分组列表")
    //@PreAuthorize("@ss.hasPermi('route:folder:list')")
    @GetMapping("/list")
    public TableDataInfo list(ArdRouteFolder ardRouteFolder) {
@@ -52,22 +52,22 @@
    }
    /**
     * 导出文件夹列表
     * 导出分组列表
     */
    @ApiOperation("导出文件夹列表")
    @ApiOperation("导出分组列表")
    //@PreAuthorize("@ss.hasPermi('route:folder:export')")
    @Log(title = "文件夹", businessType = BusinessType.EXPORT)
    @Log(title = "分组", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ArdRouteFolder ardRouteFolder) {
        List<ArdRouteFolder> list = ardRouteFolderService.selectArdRouteFolderList(ardRouteFolder);
        ExcelUtil<ArdRouteFolder> util = new ExcelUtil<ArdRouteFolder>(ArdRouteFolder.class);
        util.exportExcel(response, list, "文件夹数据");
        util.exportExcel(response, list, "分组数据");
    }
    /**
     * 获取文件夹详细信息
     * 获取分组详细信息
     */
    @ApiOperation("获取文件夹详细信息")
    @ApiOperation("获取分组详细信息")
    //@PreAuthorize("@ss.hasPermi('route:folder:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") String id) {
@@ -75,11 +75,11 @@
    }
    /**
     * 新增文件夹
     * 新增分组
     */
    @ApiOperation("新增文件夹")
    @ApiOperation("新增分组")
    //@PreAuthorize("@ss.hasPermi('route:folder:add')")
    @Log(title = "文件夹", businessType = BusinessType.INSERT)
    @Log(title = "分组", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ArdRouteFolder ardRouteFolder) {
        ardRouteFolder.setCreateBy(getUsername());
@@ -87,11 +87,11 @@
    }
    /**
     * 修改文件夹
     * 修改分组
     */
    @ApiOperation("修改文件夹")
    @ApiOperation("修改分组")
    //@PreAuthorize("@ss.hasPermi('route:folder:edit')")
    @Log(title = "文件夹", businessType = BusinessType.UPDATE)
    @Log(title = "分组", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ArdRouteFolder ardRouteFolder) {
        ardRouteFolder.setUpdateBy(getUsername());
@@ -99,19 +99,19 @@
    }
    /**
     * 删除文件夹
     * 删除分组
     */
    @ApiOperation("删除文件夹")
    @ApiOperation("删除分组")
    //@PreAuthorize("@ss.hasPermi('route:folder:remove')")
    @Log(title = "文件夹", businessType = BusinessType.DELETE)
    @Log(title = "分组", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable String[] ids) {
        try {
            Map<String, Integer> result = ardRouteFolderService.deleteArdRouteFolderByIds(ids);
            if (!result.isEmpty()) {
                return AjaxResult.success("删除成功.文件夹删除" + result.get("folder") + "文件删除" + result.get("file"));
                return AjaxResult.success("删除成功.分组删除" + result.get("folder") + "文件删除" + result.get("file"));
            } else {
                return AjaxResult.success("没有删除文件夹信息。");
                return AjaxResult.success("没有删除分组信息。");
            }
        } catch(Exception e){
            return AjaxResult.error(e.getMessage());
ard-route/src/main/java/com/ard/route/domain/RoutePointReq.java
@@ -5,6 +5,9 @@
import java.io.Serializable;
import java.util.List;
/**
 * 航点列表实体类
 */
@Data
public class RoutePointReq implements Serializable {
@@ -36,17 +39,17 @@
    /**
     * 航点偏航角
     */
    private WaypointHeadingReq waypointHeadingReq;
    private WaypointHeadingReq waypointHeadingReq;  // 用不上
    /**
     * 航点转弯模式
     */
    private WaypointTurnReq waypointTurnReq;
    private WaypointTurnReq waypointTurnReq;    // 用不上
    /**
     * 航点云台俯仰角
     */
    private Double gimbalPitchAngle;
    private Double gimbalPitchAngle;    // 用不上
    /**
     * 航点动作列表
ard-route/src/main/java/com/ard/route/domain/UavRouteReq.java
@@ -83,12 +83,12 @@
    /**
     * 全局偏航角模式
     */
    private WaypointHeadingReq waypointHeadingReq;
    private WaypointHeadingReq waypointHeadingReq;        // 用不上
    /**
     * 全局航点转弯模式
     */
    private WaypointTurnReq waypointTurnReq;
    private WaypointTurnReq waypointTurnReq;        // 用不上
    /**
     * 云台俯仰角控制模式
@@ -110,11 +110,37 @@
    /**
     * 建图航拍、倾斜摄影、航带飞行模板参数
     */
    private MappingTypeReq mappingTypeReq;
    private MappingTypeReq mappingTypeReq;        // 用不上
    /**
     * 航线初始动作列表
     */
    private List<PointActionReq> startActionList;
    /**
     * 全局航线速度
     */
    private Double globalTransitionalSpeed;
    /**
     * 飞向首航点模式
     * safely:安全模式
     * pointToPoint:倾斜飞行模式
     */
    private String flyToWaylineMode;
    /**
     * 航点类型
     * coordinateTurn:协调转弯,不过点,提前转弯
     * toPointAndStopWithDiscontinuityCurvature:直线飞行,飞行器到点停
     * toPointAndStopWithContinuityCurvature:曲线飞行,飞行器到点停
     * toPointAndPassWithContinuityCurvature:曲线飞行,飞行器过点不停
     */
    private String globalWaypointTurnMode;
    /**
     * 飞行器偏航角模式
     */
    private String mappingHeadingMode;
}
ard-route/src/main/java/com/ard/route/domain/route/ArdRouteFolder.java
@@ -7,7 +7,7 @@
import lombok.Data;
/**
 * 文件夹对象 ard_route_folder
 * 分组对象 ard_route_folder
 * 
 * @author xia
 * @date 2025-10-18
@@ -28,6 +28,6 @@
    @Excel(name = "序列号")
    private Integer serialNumber;
    private List<ArdRouteFile> ardRouteFileLs;
    private List<ArdRouteInformation> ardRouteInformationLs;
}
ard-route/src/main/java/com/ard/route/domain/route/ArdRouteInformation.java
@@ -39,6 +39,9 @@
    @Excel(name = "Minio文件路径")
    private String minioUpPath;
    /** 分组ID */
    private String folderId;
    /** 飞行器 */
    private String aircraft;
ard-route/src/main/java/com/ard/route/mapper/ArdRouteFolderMapper.java
@@ -4,7 +4,7 @@
import com.ard.route.domain.route.ArdRouteFolder;
/**
 * 文件夹Mapper接口
 * 分组Mapper接口
 * 
 * @author xia
 * @date 2025-10-18
@@ -12,47 +12,47 @@
public interface ArdRouteFolderMapper {
    /**
     * 查询文件夹
     * 查询分组
     * 
     * @param id 文件夹主键
     * @return 文件夹
     * @param id 分组主键
     * @return 分组
     */
    public ArdRouteFolder selectArdRouteFolderById(String id);
    /**
     * 查询文件夹列表
     * 查询分组列表
     * 
     * @param ardRouteFolder 文件夹
     * @return 文件夹集合
     * @param ardRouteFolder 分组
     * @return 分组集合
     */
    public List<ArdRouteFolder> selectArdRouteFolderList(ArdRouteFolder ardRouteFolder);
    /**
     * 新增文件夹
     * 新增分组
     * 
     * @param ardRouteFolder 文件夹
     * @param ardRouteFolder 分组
     * @return 结果
     */
    public int insertArdRouteFolder(ArdRouteFolder ardRouteFolder);
    /**
     * 修改文件夹
     * 修改分组
     * 
     * @param ardRouteFolder 文件夹
     * @param ardRouteFolder 分组
     * @return 结果
     */
    public int updateArdRouteFolder(ArdRouteFolder ardRouteFolder);
    /**
     * 删除文件夹
     * 删除分组
     * 
     * @param id 文件夹主键
     * @param id 分组主键
     * @return 结果
     */
    public int deleteArdRouteFolderById(String id);
    /**
     * 批量删除文件夹
     * 批量删除分组
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
ard-route/src/main/java/com/ard/route/mapper/ArdRouteInformationMapper.java
@@ -68,4 +68,12 @@
     */
    public ArdRouteInformation selectArdRouteInformationByName(String fileName);
    /**
     * 根据所属分组ID,删除信息
     *
     * @param folderIds 所属文件夹ID
     * @return 结果
     */
    public int deleteRouteInformationByFolderIds(String[] folderIds);
}
ard-route/src/main/java/com/ard/route/service/IArdRouteFolderService.java
@@ -6,7 +6,7 @@
import com.ard.route.domain.route.ArdRouteFolder;
/**
 * 文件夹Service接口
 * 分组Service接口
 * 
 * @author xia
 * @date 2025-10-18
@@ -14,49 +14,49 @@
public interface IArdRouteFolderService {
    /**
     * 查询文件夹
     * 查询分组
     * 
     * @param id 文件夹主键
     * @return 文件夹
     * @param id 分组主键
     * @return 分组
     */
    public ArdRouteFolder selectArdRouteFolderById(String id);
    /**
     * 查询文件夹列表
     * 查询分组列表
     * 
     * @param ardRouteFolder 文件夹
     * @return 文件夹集合
     * @param ardRouteFolder 分组
     * @return 分组集合
     */
    public List<ArdRouteFolder> selectArdRouteFolderList(ArdRouteFolder ardRouteFolder);
    /**
     * 新增文件夹
     * 新增分组
     * 
     * @param ardRouteFolder 文件夹
     * @param ardRouteFolder 分组
     * @return 结果
     */
    public int insertArdRouteFolder(ArdRouteFolder ardRouteFolder);
    /**
     * 修改文件夹
     * 修改分组
     * 
     * @param ardRouteFolder 文件夹
     * @param ardRouteFolder 分组
     * @return 结果
     */
    public int updateArdRouteFolder(ArdRouteFolder ardRouteFolder);
    /**
     * 批量删除文件夹
     * 批量删除分组
     * 
     * @param ids 需要删除的文件夹主键集合
     * @param ids 需要删除的分组主键集合
     * @return 结果
     */
    public Map<String, Integer> deleteArdRouteFolderByIds(String[] ids);
    /**
     * 删除文件夹信息
     * 删除分组信息
     * 
     * @param id 文件夹主键
     * @param id 分组主键
     * @return 结果
     */
    public int deleteArdRouteFolderById(String id);
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteFolderServiceImpl.java
@@ -9,7 +9,9 @@
import com.ard.common.utils.DateUtils;
import com.ard.common.utils.uuid.IdUtils;
import com.ard.route.domain.route.ArdRouteFile;
import com.ard.route.domain.route.ArdRouteInformation;
import com.ard.route.mapper.ArdRouteFileMapper;
import com.ard.route.mapper.ArdRouteInformationMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ard.route.mapper.ArdRouteFolderMapper;
@@ -30,33 +32,35 @@
    private ArdRouteFolderMapper ardRouteFolderMapper;
    @Autowired
    private ArdRouteFileMapper ardRouteFileMapper;
    private ArdRouteInformationMapper ardRouteInformationMapper;
    /**
     * 查询文件夹
     * 查询分组
     * 
     * @param id 文件夹主键
     * @return 文件夹
     * @param id 分组主键
     * @return 分组
     */
    @Override
    public ArdRouteFolder selectArdRouteFolderById(String id) {
        ArdRouteFolder ardRouteFolder = ardRouteFolderMapper.selectArdRouteFolderById(id);
        ardRouteFolder.setArdRouteFileLs(getArdRouteFiles(id));
        ArdRouteInformation ardRouteInformation = new ArdRouteInformation();
        ardRouteInformation.setFolderId(id);
        ardRouteFolder.setArdRouteInformationLs(ardRouteInformationMapper.selectArdRouteInformationList(ardRouteInformation));
        return ardRouteFolder;
    }
    /**
     * 查询文件夹列表
     * 查询分组列表
     * 
     * @param ardRouteFolder 文件夹
     * @return 文件夹
     * @param ardRouteFolder 分组
     * @return 分组
     */
    @Override
    @DataScope(deptAlias = "d", userAlias = "u")
    public List<ArdRouteFolder> selectArdRouteFolderList(ArdRouteFolder ardRouteFolder) {
        List<ArdRouteFolder> list = ardRouteFolderMapper.selectArdRouteFolderList(ardRouteFolder);
        for (ArdRouteFolder routeFolder : list) {
            routeFolder.setArdRouteFileLs(getArdRouteFiles(routeFolder.getId()));
            routeFolder.setArdRouteInformationLs(getArdRouteInformation(routeFolder.getId()));
        }
        return list;
    }
@@ -64,16 +68,16 @@
    /**
     * 查询文件列表
     */
    private List<ArdRouteFile> getArdRouteFiles(String folderId) {
        ArdRouteFile ardRouteFile = new ArdRouteFile();
        ardRouteFile.setFolderId(folderId);
        return ardRouteFileMapper.selectArdRouteFileList(ardRouteFile);
    private List<ArdRouteInformation> getArdRouteInformation(String folderId) {
        ArdRouteInformation ardRouteInformation = new ArdRouteInformation();
        ardRouteInformation.setFolderId(folderId);
        return ardRouteInformationMapper.selectArdRouteInformationList(ardRouteInformation);
    }
    /**
     * 新增文件夹
     * 新增分组
     * 
     * @param ardRouteFolder 文件夹
     * @param ardRouteFolder 分组
     * @return 结果
     */
    @Override
@@ -87,46 +91,46 @@
    }
    /**
     * 修改文件夹
     * 修改分组
     * 
     * @param ardRouteFolder 文件夹
     * @param ardRouteFolder 分组
     * @return 结果
     */
    @Override
    public int updateArdRouteFolder(ArdRouteFolder ardRouteFolder) {
        // 不能修改默认文件夹
        // 不能修改默认分组
        if ("0".equals(ardRouteFolder.getId())) {
            throw new RuntimeException("不能修改默认文件夹");
            throw new RuntimeException("不能修改默认分组");
        }
        ardRouteFolder.setUpdateTime(DateUtils.getNowDate());
        return ardRouteFolderMapper.updateArdRouteFolder(ardRouteFolder);
    }
    /**
     * 批量删除文件夹
     * 批量删除分组
     * 
     * @param ids 需要删除的文件夹主键
     * @param ids 需要删除的分组主键
     * @return 结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Map<String, Integer> deleteArdRouteFolderByIds(String[] ids) {
        // 检查是否包含默认文件夹,不能删除默认文件夹
        // 检查是否包含默认分组,不能删除默认分组
        for (String id : ids) {
            if ("0".equals(id)) {
                throw new RuntimeException("不能删除默认文件夹");
                throw new RuntimeException("不能删除默认分组");
            }
        }
        Map<String, Integer> result = new HashMap<>();
        try {
            // 先删除文件
            int fileCount = ardRouteFileMapper.deleteRouteFileByFolderIds(ids);
            result.put("file", fileCount);
            // 先删除航线信息
            int informationCount = ardRouteInformationMapper.deleteRouteInformationByFolderIds(ids);
            result.put("informationCount", informationCount);
            // 再删除文件夹
            // 再删除分组
            int folderCount = ardRouteFolderMapper.deleteArdRouteFolderByIds(ids);
            result.put("folder", folderCount);
            result.put("folderCount", folderCount);
            return result;
        } catch (Exception e) {
@@ -135,9 +139,9 @@
    }
    /**
     * 删除文件夹信息
     * 删除分组信息
     * 
     * @param id 文件夹主键
     * @param id 分组主键
     * @return 结果
     */
    @Override
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java
@@ -70,9 +70,8 @@
    public String insertArdRouteInformation(ArdRouteInformation ardRouteInformation) {
        ardRouteInformation.setId(IdUtils.simpleUUID());
        ardRouteInformation.setCreateTime(DateUtils.getNowDate());
        if (ardRouteInformation.getUavRouteReq() != null){
        if (ardRouteInformation.getFolderId() == null){
            ardRouteInformation.setFolderId("0");
        }
        KmzResultVo kmzResult = routeService.buildKmz(ardRouteInformation.getUavRouteReq(), ardRouteInformation.getFileName());
        // 将KmzResult中的信息设置到ardRouteInformation中
@@ -139,7 +138,7 @@
            information.setMinioUpPath(extractFilePath(url));
            information.setUpPath(url);
            information.setUpFileSize((double) file.getSize());
            insertArdRouteInformation(information);
            insertRouteInformation(information);
            return MinioUploadResult.builder()
                    .url(url)
                    .newFileName(FileUtils.getName(url))
@@ -161,4 +160,13 @@
        return ardRouteInformationMapper.selectArdRouteInformationByName(name);
    }
    /**
     * 数据新增航线信息
     */
    private void insertRouteInformation(ArdRouteInformation ardRouteInformation){
        ardRouteInformation.setId(IdUtils.simpleUUID());
        ardRouteInformation.setCreateTime(DateUtils.getNowDate());
        ardRouteInformationMapper.insertArdRouteInformation(ardRouteInformation);
    }
}
ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java
@@ -17,6 +17,7 @@
import com.ard.route.enums.kml.ExitOnRCLostEnums;
import com.ard.route.service.IArdRouteInformationService;
import com.ard.route.util.FileUtils;
import com.ard.route.util.InitializationUtils;
import com.ard.route.util.RouteFileUtils;
import com.ard.route.service.UavRouteService;
import com.thoughtworks.xstream.XStream;
@@ -53,6 +54,8 @@
    @Resource
    private IArdRouteInformationService ardRouteInformationService;
    InitializationUtils init = new InitializationUtils();
    /**
     * 编辑kmz文件
@@ -139,6 +142,8 @@
     */
    @Override
    public KmzResultVo buildKmz(UavRouteReq uavRouteReq, String fileName) {
        // 赋值默认参数
        init.initialization(uavRouteReq);
        KmlParams kmlParams = new KmlParams();
        BeanUtils.copyProperties(uavRouteReq, kmlParams);
        kmlParams.setRoutePointList(BeanUtil.copyToList(uavRouteReq.getRoutePointList(), RoutePointInfo.class));
ard-route/src/main/java/com/ard/route/util/InitializationUtils.java
New file
@@ -0,0 +1,62 @@
package com.ard.route.util;
import com.ard.route.domain.*;
/**
 * 初始化数据
 * 测试数据
 */
public class InitializationUtils {
    private static final Double CHANSI_H20 = 23.76237623;
    private static final String WAYPOINT_TURN_MODE_DEFAULT = "toPointAndStopWithDiscontinuityCurvature";
    /**
     * 初始化KMZ 默认数据
     */
    public UavRouteReq initialization(UavRouteReq uavRouteReq){
        uavRouteReq.setTemplateType("waypoint");
        // 起始点默认航线第一个点
        uavRouteReq.setTakeOffRefPoint(
                uavRouteReq.getRoutePointList().get(0).getLatitude() + "," +
                        uavRouteReq.getRoutePointList().get(0).getLongitude() + "," + "0");
        //uavRouteReq.setDroneType(89);
        uavRouteReq.setSubDroneType(0);
        uavRouteReq.setPayloadType(43);
        uavRouteReq.setPayloadPosition(0);
        uavRouteReq.setImageFormat("wide");
        uavRouteReq.setFinishAction("goHome");
        uavRouteReq.setExitOnRcLostAction("goBack");
        //uavRouteReq.setGlobalHeight(100.0);
        //uavRouteReq.setAutoFlightSpeed(5.0);
        WaypointHeadingReq waypointHeadingReq = new WaypointHeadingReq();
        waypointHeadingReq.setWaypointHeadingMode("followWayline");
        uavRouteReq.setWaypointHeadingReq(waypointHeadingReq);
        WaypointTurnReq waypointTurnReq = new WaypointTurnReq();
        if (uavRouteReq.getGlobalWaypointTurnMode() != null){
            waypointTurnReq.setWaypointTurnMode(uavRouteReq.getGlobalWaypointTurnMode());
        }else {
            waypointTurnReq.setWaypointTurnMode("toPointAndStopWithDiscontinuityCurvature");
        }
        uavRouteReq.setWaypointTurnReq(waypointTurnReq);
        uavRouteReq.setGimbalPitchMode("usePointSetting");
        //buildZoom(uavRouteReq);
        return uavRouteReq;
    }
    /**
     * 变焦动作加工
     */
    private UavRouteReq buildZoom(UavRouteReq uavRouteReq){
        for (RoutePointReq routePointReq : uavRouteReq.getRoutePointList()) {
            for (ActionGroupReq actionGroupReq : routePointReq.getActionGroupList()) {
                for (PointActionReq action : actionGroupReq.getActions()) {
                    if (action.getZoom() != null){
                        action.setZoom(action.getZoom() * CHANSI_H20);
                    }
                }
            }
        }
        return uavRouteReq;
    }
}
ard-route/src/main/resources/mapper/ArdRouteInformationMapper.xml
@@ -11,6 +11,7 @@
        <result property="upPath"    column="up_path"    />
        <result property="minioUpPath"    column="minio_up_path"    />
        <result property="upFileSize"    column="up_file_size"    />
        <result property="folderId"    column="folder_id"    />
        <result property="aircraft"    column="aircraft"    />
        <result property="aircraftModel"    column="aircraft_model"    />
        <result property="createBy"    column="create_by"    />
@@ -26,6 +27,7 @@
               up_path,
               minio_up_path,
               up_file_size,
               folder_id,
               aircraft,
               aircraft_model,
               create_by,
@@ -58,6 +60,7 @@
            <if test="upPath != null">up_path,</if>
            <if test="minioUpPath != null">minio_up_path,</if>
            <if test="upFileSize != null">up_file_size,</if>
            <if test="folderId != null">folder_id,</if>
            <if test="aircraft != null">aircraft,</if>
            <if test="aircraftModel != null">aircraft_model,</if>
            <if test="createBy != null">create_by,</if>
@@ -72,6 +75,7 @@
            <if test="upPath != null">#{upPath},</if>
            <if test="minioUpPath != null">#{minioUpPath},</if>
            <if test="upFileSize != null">#{upFileSize},</if>
            <if test="folderId != null">#{folderId},</if>
            <if test="aircraft != null">#{aircraft},</if>
            <if test="aircraftModel != null">#{aircraftModel},</if>
            <if test="createBy != null">#{createBy},</if>
@@ -89,6 +93,7 @@
            <if test="upPath != null">up_path = #{upPath},</if>
            <if test="minioUpPath != null">minio_up_path = #{minioUpPath},</if>
            <if test="upFileSize != null">up_file_size = #{upFileSize},</if>
            <if test="folderId != null">folder_id = #{folderId},</if>
            <if test="aircraft != null">aircraft = #{aircraft},</if>
            <if test="aircraftModel != null">aircraft_model = #{aircraftModel},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
@@ -115,4 +120,11 @@
        where file_name = #{fileName}
    </select>
    <delete id="deleteRouteInformationByFolderIds" parameterType="String">
        delete from ard_route_information where folder_id in
        <foreach item="folderId" collection="array" open="(" separator="," close=")">
            #{folderId}
        </foreach>
    </delete>
</mapper>