zhaowenyu
2025-12-12 c0b167404dbc4e98ccb8b84f94f48c96bcb3df02
Merge remote-tracking branch 'origin/dev' into dev
5 files modified
112 ■■■■■ changed files
ard-admin/src/main/java/com/ard/web/controller/vtdu/MediaMTXController.java 13 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java 23 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/util/InitializationUtils.java 65 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/util/ToolUtils.java 8 ●●●●● patch | view | raw | blame | history
ard-route/src/main/resources/mapper/ArdRouteInfoMapper.xml 3 ●●●●● patch | view | raw | blame | history
ard-admin/src/main/java/com/ard/web/controller/vtdu/MediaMTXController.java
@@ -11,6 +11,7 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Arrays;
@@ -128,7 +129,8 @@
    @GetMapping("/pushList")
    @ApiOperation("获取推流列表")
    @ApiOperationSupport(order = 6)
    public TableDataInfo getPushStreamList(Integer pageNum, Integer pageSize) {
    public TableDataInfo getPushStreamList(@RequestParam(value = "pageNum", required = false) Integer pageNum,
                                           @RequestParam(value = "pageSize", required = false) Integer pageSize) {
        TableDataInfo tableDataInfo = mediaService.getPushStreamList(pageNum, pageSize);
        return tableDataInfo;
    }
@@ -140,7 +142,8 @@
    @GetMapping("/getPullWebrtcStreamList")
    @ApiOperation("获取WebRtc拉流列表")
    @ApiOperationSupport(order = 7)
    public TableDataInfo getPullWebrtcStreamList(Integer pageNum, Integer pageSize) {
    public TableDataInfo getPullWebrtcStreamList(@RequestParam(value = "pageNum", required = false) Integer pageNum,
                                                 @RequestParam(value = "pageSize", required = false) Integer pageSize) {
        return mediaService.getPullWebrtcStreamList(pageNum, pageSize);
    }
@@ -151,7 +154,8 @@
    @GetMapping("/getPullRtspStreamList")
    @ApiOperation("获取rtsp拉流列表")
    @ApiOperationSupport(order = 8)
    public TableDataInfo getPullRtspStreamList(Integer pageNum, Integer pageSize) {
    public TableDataInfo getPullRtspStreamList(@RequestParam(value = "pageNum", required = false) Integer pageNum,
                                               @RequestParam(value = "pageSize", required = false) Integer pageSize) {
        return mediaService.getPullRtspStreamList(pageNum, pageSize);
    }
@@ -162,7 +166,8 @@
    @GetMapping("/getPullRtmpStreamList")
    @ApiOperation("获取rtmp拉流列表")
    @ApiOperationSupport(order = 9)
    public TableDataInfo getPullRtmpStreamList(Integer pageNum, Integer pageSize) {
    public TableDataInfo getPullRtmpStreamList(@RequestParam(value = "pageNum", required = false) Integer pageNum,
                                               @RequestParam(value = "pageSize", required = false) Integer pageSize) {
        return mediaService.getPullRtmpStreamList(pageNum, pageSize);
    }
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
@@ -81,6 +81,9 @@
        } catch (IOException | ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
        for (RoutePointReq routePointReq : ardRouteInfo.getUavRouteReq().getRoutePointList()) {
            routePointReq.setHeight(routePointReq.getHeight() + getDoublePoint(ardRouteInfo.getUavRouteReq().getTakeOffRefPoint(),"alt"));
        }
        return ardRouteInfo;
    }
@@ -97,6 +100,12 @@
        }else if ("0".equals(ardRouteInfo.getOrderByTime())) {
            ardRouteInfo.setOrderByTime("ASC");
        }
//        List<ArdRouteInfo> list = ardRouteInfoMapper.selectArdRouteInfoList(ardRouteInfo);
//        for (ArdRouteInfo routeInfo : list) {
//            for (RoutePointReq routePointReq : routeInfo.getUavRouteReq().getRoutePointList()) {
//                routePointReq.setHeight(routePointReq.getHeight() + getDoublePoint(ardRouteInfo.getUavRouteReq().getTakeOffRefPoint(),"alt"));
//            }
//        }
        return ardRouteInfoMapper.selectArdRouteInfoList(ardRouteInfo);
    }
@@ -115,7 +124,7 @@
            ardRouteInfo.setGroupId("0");
        }
        ardRouteInfo.getUavRouteReq().setDroneType(subStringDroneType(ardRouteInfo.getAircraft()));
        KmzResultVo kmzResult = routeService.buildKmz(ardRouteInfo.getUavRouteReq(), ardRouteInfo.getName());
        KmzResultVo kmzResult = routeService.buildKmz(ardRouteInfo.getUavRouteReq(),ardRouteInfo.getName());
        ardRouteInfo.setPath(kmzResult.getPath());
        ardRouteInfo.setReadOnly("0");
        ardRouteInfoMapper.insertArdRouteInfo(dataProcessing(ardRouteInfo));
@@ -230,12 +239,12 @@
                ardRouteInfo.setAircraft(droneTypeData(uavRouteReq));
            }
            // 判断禁飞区
            List<RoutePointReq> routePointList = ardRouteInfo.getUavRouteReq().getRoutePointList();
            for (RoutePointReq routePointReq : routePointList) {
                ArdNoflyDto ardNoflyDto = new ArdNoflyDto();
                ardNoflyDto.setCurrent(new Vertex(routePointReq.getLongitude(), routePointReq.getLatitude()));
                verifyNoFlyZone(ardNoflyDto);
            }
//            List<RoutePointReq> routePointList = ardRouteInfo.getUavRouteReq().getRoutePointList();
//            for (RoutePointReq routePointReq : routePointList) {
//                ArdNoflyDto ardNoflyDto = new ArdNoflyDto();
//                ardNoflyDto.setCurrent(new Vertex(routePointReq.getLongitude(), routePointReq.getLatitude()));
//                verifyNoFlyZone(ardNoflyDto);
//            }
            String url = ossService.upload("kmz",file);
            String urlDock = ossDockService.upload("kmz",file);
            ardRouteInfo.setName(file.getOriginalFilename());
ard-route/src/main/java/com/ard/route/util/InitializationUtils.java
@@ -8,13 +8,20 @@
import java.util.ArrayList;
import java.util.List;
import static com.ard.route.util.ToolUtils.getDoublePoint;
/**
 * 初始化数据
 * 测试数据
 */
public class InitializationUtils {
    // 禅思H20T 公倍数
    private static final Double CHANSI_H20 = 23.76237623;
    // 禅思H20T 焦距值
    private static final Double CHANSI_H20_FOCUS = 6.83;
    private static final String WAYPOINT_TURN_MODE_DEFAULT = "toPointAndStopWithDiscontinuityCurvature";
    /**
@@ -44,28 +51,62 @@
        if (uavRouteReq.getGlobalWaypointTurnMode() != null){
            waypointTurnReq.setWaypointTurnMode(uavRouteReq.getGlobalWaypointTurnMode());
        }else {
            waypointTurnReq.setWaypointTurnMode("toPointAndStopWithDiscontinuityCurvature");
            waypointTurnReq.setWaypointTurnMode(WAYPOINT_TURN_MODE_DEFAULT);
        }
        uavRouteReq.setWaypointTurnReq(waypointTurnReq);
        uavRouteReq.setGimbalPitchMode("usePointSetting");
        //buildZoom(uavRouteReq);
        // 变焦数值加工
        buildZoom(uavRouteReq);
        // 修改每个航点的高度
        buildHeight(uavRouteReq);
        // 动作组编号数据加工
        buildActionGroupReq(uavRouteReq);
        return uavRouteReq;
    }
    /**
     * 构建动作组编号
     */
    public void buildActionGroupReq(UavRouteReq uavRouteReq){
        int pointActionCounter = 0;
        for (RoutePointReq routePointReq : uavRouteReq.getRoutePointList()) {
            if (routePointReq.getActionGroupList() != null){
                for (ActionGroupReq actionGroupReq : routePointReq.getActionGroupList()) {
                    actionGroupReq.setActionGroupId(pointActionCounter++);
                    actionGroupReq.setActionGroupStartIndex(routePointReq.getRoutePointIndex());
                    actionGroupReq.setActionGroupEndIndex(routePointReq.getRoutePointIndex());
                    actionGroupReq.setActionTriggerType("reachPoint");
                }
            }
        }
    }
    /**
     * 修改每个航点的高度
     * 根据起飞点高度减去当前航点高度
     */
    public void buildHeight(UavRouteReq uavRouteReq){
        double takeOffHeight = getDoublePoint(uavRouteReq.getTakeOffRefPoint(),"alt");
        for (RoutePointReq routePointReq : uavRouteReq.getRoutePointList()) {
            routePointReq.setHeight(routePointReq.getHeight() - takeOffHeight);
        }
    }
    /**
     * 变焦动作加工
     */
    private UavRouteReq buildZoom(UavRouteReq uavRouteReq){
    private void buildZoom(UavRouteReq uavRouteReq){
        for (RoutePointReq routePointReq : uavRouteReq.getRoutePointList()) {
            for (ActionGroupReq actionGroupReq : routePointReq.getActionGroupList()) {
                for (PointActionReq action : actionGroupReq.getActions()) {
                    if (action.getZoom() != null){
                        action.setZoom(action.getZoom() * CHANSI_H20);
                        //action.setZoom(action.getZoom() * CHANSI_H20);
                        action.setZoom(action.getZoom() * CHANSI_H20_FOCUS);
                    }
                }
            }
        }
        return uavRouteReq;
    }
    /**
@@ -250,18 +291,4 @@
//        ardRouteActions2.setWaitTime(2);
//    }
    public byte[] testParameters() {
        String data = "74 79 01 3C 44 42 4D 32 35 30 39 37 34 30 36 35 30 30 38 D1 00 10 08 01 15 00 00 70 41 1D 00 00 00 41 22 4A 09 06 9C E7 80 8B F0 59 40 11 08 98 33 BA 07 1D 3F 40 1D 00 00 F0 41 25 00 00 00 41 2A 09 08 01 15 00 00 20 41 18 02 2A 09 08 03 15 00 00 80 3F 18 02 2A 09 08 04 15 00 00 80 3F 18 02 30 01 58 FF FF FF FF FF FF FF FF FF 01 22 55 09 F1 BC 12 50 7A F0 59 40 11 08 98 33 BA 07 1D 3F 40 1D 00 00 20 42 25 00 00 00 41 2A 09 08 09 15 00 00 A0 41 18 02 2A 09 08 06 15 00 00 20 42 18 02 2A 09 08 07 15 00 00 20 42 18 02 2A 09 08 08 15 00 00 20 42 18 02 30 01 58 FF FF FF FF FF FF FF FF FF 01 22 3F 09 F1 BC 12 50 7A F0 59 40 11 91 92 E4 DA CC 1C 3F 40 1D 00 00 48 42 25 00 00 00 41 2A 09 08 09 15 00 00 70 41 18 02 2A 09 08 0A 15 00 00 40 40 18 02 30 01 58 FF FF FF FF FF FF FF FF FF 01 22 34 09 06 9C E7 80 8B F0 59 40 11 91 92 E4 DA CC 1C 3F 40 1D 00 00 70 42 25 00 00 00 41 2A 09 08 02 15 00 00 80 3F 18 02 30 01 58 FF FF FF FF FF FF FF FF FF 01 30 32 70 32";
        String[] hexStrings = data.split(" ");
        StringBuilder sb = new StringBuilder();
        sb.append("byte[] encodedBytes = {");
        for (int i = 0; i < hexStrings.length; i++) {
            sb.append("(byte) 0x").append(hexStrings[i]);
            if (i < hexStrings.length - 1) {
                sb.append(", ");
            }
        }
        sb.append("};");
        return sb.toString().getBytes();
    }
}
ard-route/src/main/java/com/ard/route/util/ToolUtils.java
@@ -129,9 +129,12 @@
    /**
     * 截取字符串
     * 获取经纬度
     * 获取经纬度高度
     */
    public static Double getDoublePoint(String str,String type) {
        if (str == null || str.isEmpty()) {
            return null;
        }
        String[] parts = str.split(",");
        if ("lon".equals(type)) {
            return Double.parseDouble(parts[0].trim());
@@ -139,6 +142,9 @@
        if ("lat".equals(type)){
            return Double.parseDouble(parts[1].trim());
        }
        if ("alt".equals(type)){
            return Double.parseDouble(parts[2].trim());
        }
        return null;
    }
ard-route/src/main/resources/mapper/ArdRouteInfoMapper.xml
@@ -51,6 +51,9 @@
            <if test="path != null  and path != ''"> and path = #{path}</if>
            <if test="groupId != null"> and group_id = #{groupId}</if>
        </where>
        <if test="orderByTime == null and orderByTime == ''">
            ORDER BY update_time DESC
        </if>
        <!-- 动态排序 -->
        <if test="orderByTime != null and orderByTime != ''">
            ORDER BY update_time ${orderByTime}