zhaowenyu
2025-11-28 d76f8e3b59969d4bf0f1bf4c92730719bd5389d3
Merge remote-tracking branch 'origin/dev' into dev
30 files modified
105 ■■■■■ changed files
ard-admin/src/main/java/com/ard/web/controller/route/UavRouteController.java 7 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/PointActionReq.java 1 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlAction.java 3 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlActionActuatorFuncParam.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlActionGroup.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlActionTrigger.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlDocument.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlDroneInfo.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlFolder.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlGlobalWaypointHeadingParam.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlLineString.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlLinearRing.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlMappingHeadingParam.java 1 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlMissionConfig.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlOuterBoundaryIs.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlOverlap.java 18 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlParams.java 1 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlPayloadInfo.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlPayloadParam.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlPlacemark.java 1 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlPoint.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlPolygon.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlWayLineCoordinateSysParam.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlWaypointGimbalHeadingParam.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlWaypointHeadingParam.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlWaypointTurnParam.java 2 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/djuav/kml/RoutePointInfo.java 15 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java 6 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/util/RouteFileUtils.java 3 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/util/ToolUtils.java 11 ●●●●● patch | view | raw | blame | history
ard-admin/src/main/java/com/ard/web/controller/route/UavRouteController.java
@@ -5,7 +5,6 @@
import com.ard.route.service.UavRouteService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -24,7 +23,7 @@
     * 编辑kmz文件
     */
    @ApiOperation("编辑kmz文件")
    @PreAuthorize("@ss.hasPermi('route:kmz:updateKmz')")
    //@PreAuthorize("@ss.hasPermi('route:kmz:updateKmz')")
    @PostMapping("/updateKmz/{fileName}")
    public AjaxResult updateKmz(@RequestBody UavRouteReq uavRouteReq,
                                @PathVariable("fileName") String fileName){
@@ -35,7 +34,7 @@
     * 生成kmz文件
     */
    @ApiOperation("生成kmz文件")
    @PreAuthorize("@ss.hasPermi('route:kmz:buildKmz')")
    //@PreAuthorize("@ss.hasPermi('route:kmz:buildKmz')")
    @PostMapping("/buildKmz/{fileName}")
    public AjaxResult buildKmz(@RequestBody UavRouteReq uavRouteReq,
                               @PathVariable("fileName") String fileName){
@@ -46,7 +45,7 @@
     * 解析kmz文件
     */
    @ApiOperation("解析kmz文件")
    @PreAuthorize("@ss.hasPermi('route:kmz:parseKmz')")
    //@PreAuthorize("@ss.hasPermi('route:kmz:parseKmz')")
    @PostMapping("/parseKmz")
    public AjaxResult parseKmz(@RequestParam("fileUrl") String fileUrl){
        return success(routeService.parseKmz(fileUrl));
ard-route/src/main/java/com/ard/route/domain/djuav/PointActionReq.java
@@ -2,7 +2,6 @@
import lombok.Data;
//import java.io.Serial;
import java.io.Serializable;
@Data
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlAction.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("wpml:action")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlAction {
    @XStreamAlias("wpml:actionId")
@@ -16,4 +18,5 @@
    @XStreamAlias("wpml:actionActuatorFuncParam")
    private KmlActionActuatorFuncParam actionActuatorFuncParam;
}
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlActionActuatorFuncParam.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("wpml:actionActuatorFuncParam")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlActionActuatorFuncParam {
    // takePhoto & startRecord & stopRecord
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlActionGroup.java
@@ -1,5 +1,6 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@@ -7,6 +8,7 @@
@Data
@XStreamAlias("wpml:actionGroup")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlActionGroup {
    @XStreamAlias("wpml:actionGroupId")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlActionTrigger.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("wpml:actionTrigger")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlActionTrigger {
    @XStreamAlias("wpml:actionTriggerType")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlDocument.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("Document")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlDocument {
    @XStreamAlias("wpml:author")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlDroneInfo.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("wpml:droneInfo")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlDroneInfo {
    @XStreamAlias("wpml:droneEnumValue")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlFolder.java
@@ -1,5 +1,6 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import lombok.Data;
@@ -8,6 +9,7 @@
@Data
@XStreamAlias("Folder")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlFolder {
    @XStreamAlias("wpml:templateType")
    private String templateType;
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlGlobalWaypointHeadingParam.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("wpml:globalWaypointHeadingParam")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlGlobalWaypointHeadingParam {
    @XStreamAlias("wpml:waypointHeadingMode")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlLineString.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("LineString")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlLineString {
    @XStreamAlias("coordinates")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlLinearRing.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("LinearRing")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlLinearRing {
    @XStreamAlias("coordinates")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlMappingHeadingParam.java
@@ -14,5 +14,6 @@
    @XStreamAlias("wpml:actionActuatorFunc")
    private String actionActuatorFunc;
}
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlMissionConfig.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("wpml:missionConfig")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlMissionConfig {
    @XStreamAlias("wpml:flyToWaylineMode")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlOuterBoundaryIs.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("outerBoundaryIs")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlOuterBoundaryIs {
    @XStreamAlias("LinearRing")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlOverlap.java
@@ -1,34 +1,36 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("wpml:overlap")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlOverlap {
    @XStreamAlias("orthoLidarOverlapH")
    @XStreamAlias("wpml:orthoLidarOverlapH")
    private String orthoLidarOverlapH;
    @XStreamAlias("orthoLidarOverlapW")
    @XStreamAlias("wpml:orthoLidarOverlapW")
    private String orthoLidarOverlapW;
    @XStreamAlias("orthoCameraOverlapH")
    @XStreamAlias("wpml:orthoCameraOverlapH")
    private String orthoCameraOverlapH;
    @XStreamAlias("orthoCameraOverlapW")
    @XStreamAlias("wpml:orthoCameraOverlapW")
    private String orthoCameraOverlapW;
    @XStreamAlias("inclinedLidarOverlapH")
    @XStreamAlias("wpml:inclinedLidarOverlapH")
    private String inclinedLidarOverlapH;
    @XStreamAlias("inclinedLidarOverlapW")
    @XStreamAlias("wpml:inclinedLidarOverlapW")
    private String inclinedLidarOverlapW;
    @XStreamAlias("inclinedCameraOverlapH")
    @XStreamAlias("wpml:inclinedCameraOverlapH")
    private String inclinedCameraOverlapH;
    @XStreamAlias("inclinedCameraOverlapW")
    @XStreamAlias("wpml:inclinedCameraOverlapW")
    private String inclinedCameraOverlapW;
}
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlParams.java
@@ -84,7 +84,6 @@
     */
    private String imageFormat;
    /**
     * 建图航拍、倾斜摄影、航带飞行模板参数
     */
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlPayloadInfo.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("wpml:payloadInfo")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlPayloadInfo {
    @XStreamAlias("wpml:payloadEnumValue")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlPayloadParam.java
@@ -1,5 +1,6 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@@ -8,6 +9,7 @@
 */
@Data
@XStreamAlias("wpml:payloadParam")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlPayloadParam {
    @XStreamAlias("wpml:payloadPositionIndex")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlPlacemark.java
@@ -138,4 +138,5 @@
    @XStreamAlias("LineString")
    private KmlLineString lineString;
}
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlPoint.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("Point")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlPoint {
    @XStreamAlias("coordinates")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlPolygon.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("Polygon")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlPolygon {
    @XStreamAlias("outerBoundaryIs")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlWayLineCoordinateSysParam.java
@@ -1,5 +1,6 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@@ -8,6 +9,7 @@
 */
@Data
@XStreamAlias("wpml:waylineCoordinateSysParam")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlWayLineCoordinateSysParam {
    @XStreamAlias("wpml:coordinateMode")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlWaypointGimbalHeadingParam.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("wpml:waypointGimbalHeadingParam")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlWaypointGimbalHeadingParam {
    @XStreamAlias("wpml:waypointGimbalPitchAngle")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlWaypointHeadingParam.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("wpml:waypointHeadingParam")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlWaypointHeadingParam {
    @XStreamAlias("wpml:waypointHeadingMode")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/KmlWaypointTurnParam.java
@@ -1,10 +1,12 @@
package com.ard.route.domain.djuav.kml;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
@Data
@XStreamAlias("wpml:waypointTurnParam")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class KmlWaypointTurnParam {
    @XStreamAlias("wpml:waypointTurnMode")
ard-route/src/main/java/com/ard/route/domain/djuav/kml/RoutePointInfo.java
@@ -61,19 +61,4 @@
     */
    private Boolean isStartAndEndPoint = false;
    /**
     * 等时拍照间隔时间 单位s
     */
    private Double timeInterval;
    /**
     * 等距拍照间隔距离 单位m
     */
    private Double distanceInterval;
    /**
     * 停止间隔拍照航点编号
     */
    private Integer endIntervalRouteIndex;
}
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
@@ -153,8 +153,8 @@
                return 0;
            }
            ardRouteInfo.setPath(kmzResult.getPath());
        }
        ardRouteInfo.setPointCount(getPointCount(ardRouteInfo));
        }
        return ardRouteInfoMapper.updateArdRouteInfo(ardRouteInfo);
    }
@@ -176,9 +176,13 @@
        // 删除航线(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()));
        }
        }
        return ardRouteInfoMapper.deleteArdRouteInfoByIds(ids);
    }
ard-route/src/main/java/com/ard/route/util/RouteFileUtils.java
@@ -36,12 +36,13 @@
     */
    public static KmlInfo parseKml(InputStream inputStream) {
        XStream xStream = new XStream();
        xStream.allowTypes(new Class[]{KmlInfo.class, KmlAction.class, KmlWayLineCoordinateSysParam.class, KmlPoint.class});
        xStream.allowTypes(new Class[]{KmlInfo.class, KmlAction.class, KmlWayLineCoordinateSysParam.class, KmlPoint.class, KmlActionGroup.class});
        xStream.alias("kml", KmlInfo.class);
        xStream.processAnnotations(KmlInfo.class);
        xStream.autodetectAnnotations(true);
        xStream.ignoreUnknownElements();
        xStream.addImplicitCollection(KmlActionGroup.class, "action");
        xStream.addImplicitCollection(KmlPlacemark.class, "actionGroup");
        return (KmlInfo) xStream.fromXML(inputStream);
    }
ard-route/src/main/java/com/ard/route/util/ToolUtils.java
@@ -125,4 +125,15 @@
        return Integer.valueOf(parts[1]);
    }
    public static Double getDoublePoint(String str,String type) {
        String[] parts = str.split(",");
        if ("lon".equals(type)) {
            return Double.parseDouble(parts[0].trim());
        }
        if ("lat".equals(type)){
            return Double.parseDouble(parts[1].trim());
        }
        return null;
    }
}