zhaowenyu
2025-12-02 04c90bec00f91e8c403d7acaa338f69e5029617a
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业务层处理
@@ -113,20 +114,11 @@
        if (ardRouteInfo.getGroupId() == null){
            ardRouteInfo.setGroupId("0");
        }
        // 航线数据
        byte[] routeData;
        try {
            routeData = serialize(ardRouteInfo.getUavRouteReq());
        } 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");
        ardRouteInfo.setPointCount(getPointCount(ardRouteInfo));
        ardRouteInfoMapper.insertArdRouteInfo(ardRouteInfo);
        ardRouteInfoMapper.insertArdRouteInfo(dataProcessing(ardRouteInfo));
        return kmzResult.getPath();
    }
@@ -144,23 +136,41 @@
            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());
            }
            // 先删除航线
            delOssService(route);
            // 再生成航线
            kmzResult = routeService.buildKmz(ardRouteInfo.getUavRouteReq(), ardRouteInfo.getName());
            if ("更新航线kmz文件失败".equals(kmzResult.getData())) {
                return 0;
            }
            ardRouteInfo.setPath(kmzResult.getPath());
            ardRouteInfo.setPointCount(getPointCount(ardRouteInfo));
        }
        return ardRouteInfoMapper.updateArdRouteInfo(ardRouteInfo);
        ardRouteInfo.setReadOnly("0");
        return ardRouteInfoMapper.updateArdRouteInfo(dataProcessing(ardRouteInfo));
    }
    // 新增信息加工
    private ArdRouteInfo dataProcessing(ArdRouteInfo ardRouteInfo) {
        // 航线数据
        byte[] routeData = null;
        try {
            if (ardRouteInfo.getUavRouteReq() != null){
                routeData = serialize(ardRouteInfo.getUavRouteReq());
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        ardRouteInfo.setRouteData(routeData);
        ardRouteInfo.setPointCount(getPointCount(ardRouteInfo));
        return ardRouteInfo;
    }
    // 获取行点总数
    private Integer getPointCount(ArdRouteInfo ardRouteInfo) {
        if (ardRouteInfo.getUavRouteReq().getRoutePointList() != null) {
            return ardRouteInfo.getUavRouteReq().getRoutePointList().size();
        if (ardRouteInfo.getUavRouteReq() != null){
            if (ardRouteInfo.getUavRouteReq().getRoutePointList() != null) {
                return ardRouteInfo.getUavRouteReq().getRoutePointList().size();
            }
        }
        return 0;
    }
@@ -176,14 +186,19 @@
        // 删除航线(kmz)文件
        for (String id : ids) {
            ArdRouteInfo information = ardRouteInfoMapper.selectArdRouteInfoById(id);
            if (information.getPath() != null){
                ossService.deleteObject("kmz", subStringMinioUrlName(information.getPath()));
            }
            if (information.getPath1() != null){
                ossDockService.deleteObject("kmz", subStringMinioUrlName(information.getPath1()));
            }
            delOssService(information);
        }
        return ardRouteInfoMapper.deleteArdRouteInfoByIds(ids);
    }
    // 删除minio文件
    private void delOssService(ArdRouteInfo information){
        if (information.getPath() != null){
            ossService.deleteObject("kmz", subStringMinioUrlName(information.getPath()));
        }
        if (information.getPath1() != null){
            ossDockService.deleteObject("kmz", subStringMinioUrlName(information.getPath1()));
        }
    }
    /**
@@ -214,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)
@@ -494,7 +513,7 @@
        ardRouteInfo.setId(IdUtils.simpleUUID());
        ardRouteInfo.setCreateTime(DateUtils.getNowDate());
        ardRouteInfo.setUpdateTime(DateUtils.getNowDate());
        ardRouteInfoMapper.insertArdRouteInfo(ardRouteInfo);
        ardRouteInfoMapper.insertArdRouteInfo(dataProcessing(ardRouteInfo));
    }
    /**