From ea73b6fb3ad0b34e4d856321afecae5ada1091fe Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Wed, 14 Aug 2024 16:24:44 +0800
Subject: [PATCH] 任务下发、更新、取消,优化图斑逻辑

---
 src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
index 589c259..9eafe2b 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -128,6 +128,29 @@
         if (Objects.isNull(param)) {
             return Optional.empty();
         }
+        if (param.getJobId()!=null){
+            WaylineJobEntity jobEntity = WaylineJobEntity.builder()
+                    .name(param.getName())
+                    .dockSn(param.getDockSn())
+                    .fileId(param.getFileId())
+                    .username(username)
+                    .workspaceId(workspaceId)
+                    .jobId(param.getJobId())
+                    .beginTime(beginTime)
+                    .endTime(endTime)
+                    .status(WaylineJobStatusEnum.PENDING.getVal())
+                    .taskType(param.getTaskType().getVal())
+                    .waylineType(param.getWaylineType().getVal())
+                    .outOfControlAction(param.getOutOfControlAction())
+                    .rthAltitude(param.getRthAltitude())
+                    .rthMode(param.getRthMode())
+                    .mediaCount(0)
+                    .build();
+            if (StringUtils.hasText(param.getJobId())) {
+                jobEntity.setJobId(param.getJobId());
+            }
+            return insertWaylineJob(jobEntity);
+        }
         // Immediate tasks, allocating time on the backend.
         WaylineJobEntity jobEntity = WaylineJobEntity.builder()
                 .name(param.getName())
@@ -143,6 +166,7 @@
                 .waylineType(param.getWaylineType().getVal())
                 .outOfControlAction(param.getOutOfControlAction())
                 .rthAltitude(param.getRthAltitude())
+                .rthMode(param.getRthMode())
                 .mediaCount(0)
                 .build();
         if (StringUtils.hasText(param.getJobId())) {
@@ -367,6 +391,7 @@
                 .taskType(waylineJob.getTaskType())
                 .waylineType(waylineJob.getWaylineType())
                 .rthAltitude(waylineJob.getRthAltitude())
+                .rthMode(waylineJob.getRthMode())
                 .outOfControlAction(waylineJob.getOutOfControlAction())
                 .file(WaylineTaskFileDTO.builder()
                         .url(MinioUrlUtils.getUrl(url))
@@ -789,6 +814,12 @@
     @Override
     public List<String> getJobIds(String jobNames) {
         List<String> names = getJobNamesByPartialName(jobNames);
+
+        // 如果 names 列表为空,直接返回空的 jobIdStringList
+        if (names.isEmpty()) {
+            return new ArrayList<>();
+        }
+
         // 使用 LambdaQueryWrapper 进行查询
         List<Object> jobIdList = mapper.selectObjs(
                 new LambdaQueryWrapper<WaylineJobEntity>()
@@ -803,6 +834,7 @@
         }
         return jobIdStringList;
     }
+
 
     @Override
     public WaylineJobEntity getLatestJob(String workspaceId, WaylineJobQueryParam waylineJobQueryParam) {
@@ -1078,6 +1110,7 @@
 
         WaylineJobDTO.WaylineJobDTOBuilder builder = WaylineJobDTO.builder()
                 .jobId(entity.getJobId())
+                .reason(ErrorCodeUtil.codeToReason(entity.getErrorCode()))
                 .jobName(entity.getName())
                 .fileId(entity.getFileId())
                 .fileName(waylineFileService.getWaylineByWaylineId(entity.getWorkspaceId(), entity.getFileId())
@@ -1101,6 +1134,7 @@
                 .taskType(WaylineTaskTypeEnum.find(entity.getTaskType()))
                 .waylineType(WaylineTemplateTypeEnum.find(entity.getWaylineType()))
                 .rthAltitude(entity.getRthAltitude())
+                .rthMode(entity.getRthMode())
                 .outOfControlAction(entity.getOutOfControlAction())
                 .mediaCount(entity.getMediaCount())
                 .hasChildren(entity.getHasChildren());

--
Gitblit v1.9.3