Xiajijian
2025-11-14 368f3fa38702695666810250310cd5110579f876
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,9 +97,11 @@
        } 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());
        ardRouteInfo.setReadOnly("0");
        ardRouteInfoMapper.insertArdRouteInfo(ardRouteInfo);
        return kmzResult.getPath();
    }
@@ -112,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);
    }
@@ -168,6 +174,7 @@
            information.setName(file.getOriginalFilename());
            information.setPath(url);
            information.setGroupId("0");     // 默认分组
            information.setReadOnly("1");   // 默认只读
            insertRouteInfomation(information);
            return MinioUploadResult.builder()
                    .url(url)
@@ -194,12 +201,12 @@
     * 修改航线分组ID
     *
     * @param id ID
     * @param GroupId 分组ID
     * @param groupId 分组ID
     * @return 结果
     */
    @Override
    public int updateRouteInfomationGroupId(String id, String GroupId) {
        return ardRouteInfoMapper.updateRouteInforGroupId(id, GroupId);
    public int updateRouteInfomationGroupId(String id, String groupId) {
        return ardRouteInfoMapper.updateRouteInforGroupId(id, groupId);
    }
    /**
@@ -215,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);
@@ -234,4 +244,8 @@
        ardRouteInfoMapper.insertArdRouteInfo(ardRouteInfo);
    }
    private void verifyNoFlyZone(CoordinatePointReq a,CoordinatePointReq b){
    }
}