guoshilong
2023-10-07 a0ae2cb2fe95630bb13795b94dd5f2cfadea7a97
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -179,6 +179,7 @@
                }
                WaylineJobDTO waylineJob = waylineJobOpt.get();
                // If it is a conditional task type, add conditions to the job parameters.
                //如果是条件任务类型,需要在任务参数中添加条件。
                addPreparedJob(waylineJob, param, beginTime, endTime);
                ResponseResult response = this.publishOneFlightTask(waylineJob);
@@ -208,7 +209,7 @@
        // value: {workspace_id}:{dock_sn}:{job_id}
        boolean isAdd = waylineRedisService.addPreparedWaylineJob(waylineJob);
        if (!isAdd) {
            throw new RuntimeException("创建准备任务失败。");
            throw new RuntimeException("创建任务失败。");
        }
    }
@@ -220,6 +221,7 @@
        }
        // Issue an immediate task execution command.
        //发出立即任务执行命令
        if (WaylineTaskTypeEnum.IMMEDIATE == waylineJob.getTaskType()) {
            boolean isExecuted = executeFlightTask(waylineJob.getWorkspaceId(), waylineJob.getJobId());
            if (!isExecuted) {
@@ -244,6 +246,7 @@
        }
        // get file url
        //获取航线文件地址
        URL url = waylineFileService.getObjectUrl(waylineJob.getWorkspaceId(), waylineFile.get().getWaylineId());
        WaylineTaskCreateDTO flightTask = WaylineTaskCreateDTO.builder()
@@ -259,6 +262,7 @@
                        .build())
                .build();
        //当任务类型为条件时
        if (WaylineTaskTypeEnum.CONDITION == waylineJob.getTaskType()) {
            if (Objects.isNull(waylineJob.getConditions())) {
                throw new IllegalArgumentException();
@@ -267,10 +271,12 @@
            flightTask.setExecutableConditions(waylineJob.getConditions().getExecutableConditions());
        }
        //发布飞行指令
        ServiceReply serviceReply = messageSender.publishServicesTopic(
                waylineJob.getDockSn(), WaylineMethodEnum.FLIGHT_TASK_PREPARE.getMethod(), flightTask, waylineJob.getJobId());
        if (ResponseResult.CODE_SUCCESS != serviceReply.getResult()) {
            log.info("Prepare task ====> Error code: {}", serviceReply.getResult());
            //飞行失败,更新数据库信息
            this.updateJob(WaylineJobDTO.builder()
                    .workspaceId(waylineJob.getWorkspaceId())
                    .jobId(waylineJob.getJobId())