rain
2024-08-16 589ff1b4b598f2f763eb421da960d5550e719144
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -67,7 +67,11 @@
import java.sql.SQLException;
import java.time.*;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import static com.dji.sample.component.mqtt.model.TopicConst.*;
import static com.dji.sample.component.mqtt.model.TopicConst._REPLY_SUF;
/**
 * @author sean
@@ -679,6 +683,78 @@
    }
    /**
     * 机场的获取离线地图协议请求回复
     * @param receiver
     */
    @ServiceActivator(inputChannel = ChannelName.INBOUND_REQUESTS_OFFLINE_MAP_GET, outputChannel = ChannelName.OUTBOUND)
    public void offlineMapGet(CommonTopicReceiver receiver) {
        log.info("接收到机场的获取离线地图协议消息,编号:{}",receiver.getGateway());
        // 查询在线设备,不存在就不发送了
        Optional<DeviceDTO> deviceOpt = deviceRedisService.getDeviceOnline(receiver.getGateway());
        if (deviceOpt.isEmpty()) {
            return;
        }
        // 组装数据
        CommonTopicResponse<Object> builder = CommonTopicResponse.builder()
                .tid(receiver.getTid())
                .bid(receiver.getBid())
                .method(RequestsMethodEnum.OFFLINE_MAP_GET.getMethod())
                .timestamp(System.currentTimeMillis())
                .build();
        // 组装 data 数据
        Map<String, Integer> result = new ConcurrentHashMap<>(1);
        result.put("result", 0);
        builder.setData(result);
        log.info("回复机场的获取离线地图协议消息:{},{}",BASIC_PRE + PRODUCT +receiver.getGateway() + REQUESTS_SUF + _REPLY_SUF, builder );
        // 回复消息
        messageSender.publish(
                new StringBuilder()
                        .append(BASIC_PRE)
                        .append(PRODUCT)
                        .append(receiver.getGateway())
                        .append(REQUESTS_SUF)
                        .append(_REPLY_SUF)
                        .toString(),
                builder);
    }
    /**
     * 自定义飞行区文件获取协议请求回复
     * @param receiver
     */
    @ServiceActivator(inputChannel = ChannelName.INBOUND_REQUESTS_FLIGHT_AREAS_GET, outputChannel = ChannelName.OUTBOUND)
    public void flightAreasGet(CommonTopicReceiver receiver) {
        log.info("接收到自定义飞行区文件获取消息,编号:{}",receiver.getGateway());
        // 查询在线设备,不存在就不发送了
        Optional<DeviceDTO> deviceOpt = deviceRedisService.getDeviceOnline(receiver.getGateway());
        if (deviceOpt.isEmpty()) {
            return;
        }
        // 组装数据
        CommonTopicResponse<Object> builder = CommonTopicResponse.builder()
                .tid(receiver.getTid())
                .bid(receiver.getBid())
                .method(RequestsMethodEnum.FLIGHT_AREAS_GET.getMethod())
                .timestamp(System.currentTimeMillis())
                .build();
        // 组装 data 数据
        Map<String, Integer> result = new ConcurrentHashMap<>(1);
        result.put("result", 0);
        builder.setData(result);
        log.info("回复自定义飞行区文件获取消息:{},{}",BASIC_PRE + PRODUCT +receiver.getGateway() + REQUESTS_SUF + _REPLY_SUF, builder );
        // 回复消息
        messageSender.publish(
                new StringBuilder()
                        .append(BASIC_PRE)
                        .append(PRODUCT)
                        .append(receiver.getGateway())
                        .append(REQUESTS_SUF)
                        .append(_REPLY_SUF)
                        .toString(),
                builder);
    }
    @Override
    public List<String> selectJobIdByName(String name) {
        List<WaylineJobEntity> waylineJobs = mapper.selectList(new LambdaQueryWrapper<WaylineJobEntity>()