ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
@@ -36,6 +36,7 @@ import javax.annotation.Resource; import static com.ard.route.util.ToolUtils.*; import static com.ard.route.util.UavRouteReqUtils.fileConversionEntity; /** * 航线(kmz)Service业务层处理 @@ -116,6 +117,7 @@ ardRouteInfo.getUavRouteReq().setDroneType(subStringDroneType(ardRouteInfo.getAircraft())); KmzResultVo kmzResult = routeService.buildKmz(ardRouteInfo.getUavRouteReq(), ardRouteInfo.getName()); ardRouteInfo.setPath(kmzResult.getPath()); ardRouteInfo.setReadOnly("0"); ardRouteInfoMapper.insertArdRouteInfo(dataProcessing(ardRouteInfo)); return kmzResult.getPath(); } @@ -143,28 +145,32 @@ } ardRouteInfo.setPath(kmzResult.getPath()); } ardRouteInfo.setReadOnly("0"); return ardRouteInfoMapper.updateArdRouteInfo(dataProcessing(ardRouteInfo)); } // 新增信息加工 private ArdRouteInfo dataProcessing(ArdRouteInfo ardRouteInfo) { // 航线数据 byte[] routeData; byte[] routeData = null; try { if (ardRouteInfo.getUavRouteReq() != null){ routeData = serialize(ardRouteInfo.getUavRouteReq()); } } catch (IOException e) { throw new RuntimeException(e); } ardRouteInfo.setRouteData(routeData); ardRouteInfo.setReadOnly("0"); ardRouteInfo.setPointCount(getPointCount(ardRouteInfo)); return ardRouteInfo; } // 获取行点总数 private Integer getPointCount(ArdRouteInfo ardRouteInfo) { if (ardRouteInfo.getUavRouteReq() != null){ if (ardRouteInfo.getUavRouteReq().getRoutePointList() != null) { return ardRouteInfo.getUavRouteReq().getRoutePointList().size(); } } return 0; } @@ -223,9 +229,13 @@ information.setPath1(urlDock); information.setGroupId("0"); // 默认分组 information.setReadOnly("1"); // 默认只读 // 生成kmz文件实体类加工 // 增加航线实体类信息 UavRouteReq uavRouteReq = fileConversionEntity(file); if (uavRouteReq != null){ information.setUavRouteReq(uavRouteReq); information.setType(templateTypeData(uavRouteReq)); information.setAircraft(droneTypeData(uavRouteReq)); } insertRouteInfomation(information); return MinioUploadResult.builder() .url(url) @@ -503,7 +513,7 @@ ardRouteInfo.setId(IdUtils.simpleUUID()); ardRouteInfo.setCreateTime(DateUtils.getNowDate()); ardRouteInfo.setUpdateTime(DateUtils.getNowDate()); ardRouteInfoMapper.insertArdRouteInfo(ardRouteInfo); ardRouteInfoMapper.insertArdRouteInfo(dataProcessing(ardRouteInfo)); } /** ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java
@@ -37,7 +37,7 @@ import static com.ard.route.util.RouteFileUtils.*; import static com.ard.route.util.ToolUtils.*; import static com.ard.route.util.UavRouteReqUtils.kmzInfoVOToUavRouteReq; import static com.ard.route.util.UavRouteReqUtils.kmzInfoVoToUavRouteReq; /** * Author:xia @@ -236,7 +236,7 @@ */ @Override public UavRouteReq kmzInfoVoToUavRouteReq(KmzInfoVo kmzInfoVo) { return kmzInfoVOToUavRouteReq(kmzInfoVo); return kmzInfoVoToUavRouteReq(kmzInfoVo); } } ard-route/src/main/java/com/ard/route/util/ToolUtils.java
@@ -1,5 +1,7 @@ package com.ard.route.util; import com.ard.route.domain.djuav.UavRouteReq; import java.io.*; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -125,6 +127,10 @@ return Integer.valueOf(parts[1]); } /** * 截取字符串 * 获取经纬度 */ public static Double getDoublePoint(String str,String type) { String[] parts = str.split(","); if ("lon".equals(type)) { @@ -136,4 +142,21 @@ return null; } /** * 获取航线类型方法 */ public static String templateTypeData(UavRouteReq uavRouteReq) { if ("waypoint".equals(uavRouteReq.getTemplateType())){ return "0"; } return "1"; } /** * 获取无人机类型方法 */ public static String droneTypeData(UavRouteReq uavRouteReq) { return "0-" + uavRouteReq.getDroneType() + "-0"; } } ard-route/src/main/java/com/ard/route/util/UavRouteReqUtils.java
@@ -22,11 +22,8 @@ public class UavRouteReqUtils { @Resource private OssServiceContext ossService; // 将文件转换成 UavRouteReq 实体 public static KmzInfoVo fileConversionEntity(MultipartFile file){ public static UavRouteReq fileConversionEntity(MultipartFile file){ KmzInfoVo kmzInfoVO = new KmzInfoVo(); try (InputStream inputStream = file.getInputStream(); ArchiveInputStream archiveInputStream = new ZipArchiveInputStream(inputStream)){ @@ -39,14 +36,14 @@ kmzInfoVO.setWpmlInfo(RouteFileUtils.parseKml(archiveInputStream)); } } return kmzInfoVO; return kmzInfoVoToUavRouteReq(kmzInfoVO); }catch (Exception e) { e.printStackTrace(); } return null; } public static UavRouteReq kmzInfoVOToUavRouteReq(KmzInfoVo vo) { public static UavRouteReq kmzInfoVoToUavRouteReq(KmzInfoVo vo) { UavRouteReq uavRouteReq = new UavRouteReq(); if (vo.getKmlInfo().getDocument().getFolder().getTemplateType() != null){ uavRouteReq.setTemplateType(vo.getKmlInfo().getDocument().getFolder().getTemplateType()); @@ -119,13 +116,13 @@ pointActionReq.setGimbalYawRotateAngle(Double.valueOf(kmlAction.getActionActuatorFuncParam().getGimbalYawRotateAngle())); } } if ("zoom".equals(kmlAction.getActionActuatorFunc())) { if ("zoom".equals(kmlAction.getActionActuatorFunc())) { // 变焦 pointActionReq.setZoom(Double.valueOf(kmlAction.getActionActuatorFuncParam().getFocalLength())); } if ("hover".equals(kmlAction.getActionActuatorFunc())) { if ("hover".equals(kmlAction.getActionActuatorFunc())) { // 悬停 pointActionReq.setHoverTime(Integer.valueOf(kmlAction.getActionActuatorFuncParam().getHoverTime())); } if ("rotateYaw".equals(kmlAction.getActionActuatorFunc())) { if ("rotateYaw".equals(kmlAction.getActionActuatorFunc())) { // 飞行器偏航 pointActionReq.setAircraftHeading(Double.valueOf(kmlAction.getActionActuatorFuncParam().getAircraftHeading())); } return pointActionReq;