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;
@@ -86,8 +87,8 @@
    public String insertArdRouteInfo(ArdRouteInfo ardRouteInfo) {
        ardRouteInfo.setId(IdUtils.simpleUUID());
        ardRouteInfo.setCreateTime(DateUtils.getNowDate());
        if (ardRouteInfo.getGroupingId() == null){
            ardRouteInfo.setGroupingId("0");
        if (ardRouteInfo.getGroupId() == null){
            ardRouteInfo.setGroupId("0");
        }
        // 航线数据
        byte[] routeData;
@@ -96,11 +97,13 @@
        } 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.setUpPath(kmzResult.getUpPath());
        ardRouteInfo.setPath(kmzResult.getPath());
        ardRouteInfo.setReadOnly("0");
        ardRouteInfoMapper.insertArdRouteInfo(ardRouteInfo);
        return kmzResult.getUpPath();
        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.setUpPath(kmzResult.getUpPath());
        return ardRouteInfoMapper.updateArdRouteInfo(ardRouteInfo);
    }
@@ -138,7 +144,7 @@
        // 删除航线(kmz)文件
        for (String id : ids) {
            ArdRouteInfo information = ardRouteInfoMapper.selectArdRouteInfoById(id);
            ossService.deleteObject("kmz", subStringMinioUrlName(information.getUpPath()));
            ossService.deleteObject("kmz", subStringMinioUrlName(information.getPath()));
        }
        return ardRouteInfoMapper.deleteArdRouteInfoByIds(ids);
    }
@@ -166,8 +172,9 @@
            String url = ossService.upload("kmz",file);
            ArdRouteInfo information = new ArdRouteInfo();
            information.setName(file.getOriginalFilename());
            information.setUpPath(url);
            information.setGroupingId("0");     // 默认分组
            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 groupingId 分组ID
     * @param groupId 分组ID
     * @return 结果
     */
    @Override
    public int updateRouteInfomationGroupingId(String id, String groupingId) {
        return ardRouteInfoMapper.updateRouteInforGroupingId(id, groupingId);
    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){
    }
}