zhaowenyu
2025-11-15 1e2f717393e4053a3b8de11cbf67cd98a8c77ec1
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
@@ -13,6 +13,7 @@
import com.ard.data.noflyzone.utils.NoFlyZoneUtils;
import com.ard.oss.model.MinioUploadResult;
import com.ard.oss.service.impl.OssServiceContext;
import com.ard.route.domain.CoordinatePointReq;
import com.ard.route.domain.UavRouteReq;
import com.ard.route.domain.route.ArdRouteInfo;
import com.ard.route.domain.vo.KmzResultVo;
@@ -96,6 +97,7 @@
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        ardRouteInfo.getUavRouteReq().setDroneType(subStringDroneType(ardRouteInfo.getAircraft()));
        ardRouteInfo.setRouteData(routeData);
        KmzResultVo kmzResult = routeService.buildKmz(ardRouteInfo.getUavRouteReq(), ardRouteInfo.getName());
        ardRouteInfo.setPath(kmzResult.getPath());
@@ -113,18 +115,21 @@
    @Override
    public int updateArdRouteInfo(ArdRouteInfo ardRouteInfo) {
        ardRouteInfo.setUpdateTime(DateUtils.getNowDate());
        KmzResultVo kmzResult = new KmzResultVo();
        // 获取源文件名字
        ArdRouteInfo route = ardRouteInfoMapper.selectArdRouteInfoById(ardRouteInfo.getId());
        if (route.getName().equals(ardRouteInfo.getName())) {
            kmzResult = routeService.updateKmz(ardRouteInfo.getUavRouteReq(), ardRouteInfo.getName());
        }else {
            kmzResult = routeService.updateKmzNew(ardRouteInfo.getUavRouteReq(), route.getName(), ardRouteInfo.getName());
        // 判断生成kmz文件实体类是否为空,为空就修改航信信息,不修改行点信息。
        if (ardRouteInfo.getUavRouteReq() != null) {
            KmzResultVo kmzResult;
            // 获取源文件名字
            ArdRouteInfo route = ardRouteInfoMapper.selectArdRouteInfoById(ardRouteInfo.getId());
            if (route.getName().equals(ardRouteInfo.getName())) {
                kmzResult = routeService.updateKmz(ardRouteInfo.getUavRouteReq(), ardRouteInfo.getName());
            }else {
                kmzResult = routeService.updateKmzNew(ardRouteInfo.getUavRouteReq(), route.getName(), ardRouteInfo.getName());
            }
            if ("更新航线kmz文件失败".equals(kmzResult.getData())) {
                return 0;
            }
            ardRouteInfo.setPath(kmzResult.getPath());
        }
        if ("更新航线kmz文件失败".equals(kmzResult.getData())) {
            return 0;
        }
        ardRouteInfo.setPath(kmzResult.getPath());
        return ardRouteInfoMapper.updateArdRouteInfo(ardRouteInfo);
    }
@@ -217,6 +222,9 @@
            throw new ControlException("方法参数中未找到有效经纬度字段,无法判断禁飞区!");
        }
        List<ArdNoFlyZone> ardNoFlyZones = ardNoFlyZoneService.selectArdNoFlyZoneList(new ArdNoFlyZone());
        if (!ardNoFlyZones.isEmpty()) {
            Vertex vertex = new Vertex(longitude, latitude);
//            boolean inNoFlyZones = NoFlyZoneUtils.isPointInPolygon(vertex, ardNoFlyZones);
@@ -236,4 +244,8 @@
        ardRouteInfoMapper.insertArdRouteInfo(ardRouteInfo);
    }
    private void verifyNoFlyZone(CoordinatePointReq a,CoordinatePointReq b){
    }
}