aix
2024-08-08 39ffdf5754b4ebca682bd3c925f7a500e8a1bbda
src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java
@@ -14,10 +14,13 @@
import com.dji.sample.media.model.MediaFileCountDTO;
import com.dji.sample.wayline.model.dto.WaylineJobDTO;
import com.dji.sample.wayline.model.dto.WaylineJobKey;
import com.dji.sample.wayline.model.dto.WaylineTaskProgressExtBreakPoint;
import com.dji.sample.wayline.model.dto.WaylineTaskProgressReceiver;
import com.dji.sample.wayline.model.entity.WaylineJobBreakPointEntity;
import com.dji.sample.wayline.model.enums.WaylineJobStatusEnum;
import com.dji.sample.wayline.model.enums.WaylineTaskTypeEnum;
import com.dji.sample.wayline.service.IFlightTaskService;
import com.dji.sample.wayline.service.IWaylineJobBreakPointService;
import com.dji.sample.wayline.service.IWaylineJobService;
import com.dji.sample.wayline.service.IWaylineRedisService;
import com.fasterxml.jackson.core.type.TypeReference;
@@ -63,6 +66,9 @@
    @Autowired
    private IWaylineRedisService waylineRedisService;
    @Autowired
    private IWaylineJobBreakPointService waylineJobBreakPointService;
    /**
     * Handle the progress messages of the flight tasks reported by the dock.
     * 处理机场上报的飞行任务进度信息
@@ -72,7 +78,7 @@
    @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_FLIGHT_TASK_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS)
    public CommonTopicReceiver handleProgress(CommonTopicReceiver receiver, MessageHeaders headers) {
        log.info("上报航线任务进度: {}", receiver.toString());
        EventsReceiver<WaylineTaskProgressReceiver> eventsReceiver = mapper.convertValue(receiver.getData(),
                        EventsReceiver<WaylineTaskProgressReceiver> eventsReceiver = mapper.convertValue(receiver.getData(),
                new TypeReference<EventsReceiver<WaylineTaskProgressReceiver>>(){});
        eventsReceiver.setBid(receiver.getBid());
        eventsReceiver.setSn(receiver.getGateway());
@@ -85,7 +91,31 @@
        log.info("任务进度: {}", output.getProgress().toString());
        if (null != output.getExt().getBreakPoint()) {
            log.info("任务进度 ===> 断点信息:{}", output.getExt().getBreakPoint().toString());
            WaylineTaskProgressExtBreakPoint breakPoint = output.getExt().getBreakPoint();
            log.info("任务进度 ===> 断点信息:{}", breakPoint.toString());
            // 保存断点信息
            try {
                Boolean isAddBp = waylineJobBreakPointService.addWaylineJobBreakPoint(WaylineJobBreakPointEntity.builder()
                        .jobId(receiver.getBid())
                        .bpIndex(breakPoint.getIndex())
                        .state(breakPoint.getState())
                        .progress(breakPoint.getProgress())
                        .waylineId(breakPoint.getWaylineId())
                        .breakReason(breakPoint.getBreakReason())
                        .latitude(breakPoint.getLatitude())
                        .longitude(breakPoint.getLongitude())
                        .height(breakPoint.getHeight())
                        .attitudeHead(breakPoint.getAttitudeHead())
                        .build());
                if (isAddBp) {
                    log.info("任务进度 ===> 断点信息 ===> 保存成功:{}", breakPoint.toString());
                } else {
                    log.info("任务进度 ===> 断点信息 ===> 保存失败:{}", breakPoint.toString());
                }
            }catch (Exception e) {
                log.info("任务进度 ===> 断点信息 ===> 保存失败:{},\n {}", breakPoint.toString(),e.getMessage());
            }
        }
        if (eventsReceiver.getResult() != ResponseResult.CODE_SUCCESS) {