From dd73bbc7132f7b126b8fc2faabf2827b49622d21 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 23 Oct 2023 09:28:40 +0800
Subject: [PATCH] 获取计划最近一条
---
src/main/java/com/dji/sample/manage/model/dto/DeviceDTO.java | 6 ++
src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java | 2 +
src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java | 16 ++++++++
src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java | 13 ++++++
src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml | 14 +++++++
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java | 16 ++++++++
src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java | 8 ++++
7 files changed, 74 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/dji/sample/manage/model/dto/DeviceDTO.java b/src/main/java/com/dji/sample/manage/model/dto/DeviceDTO.java
index d4c7399..30bc3cf 100644
--- a/src/main/java/com/dji/sample/manage/model/dto/DeviceDTO.java
+++ b/src/main/java/com/dji/sample/manage/model/dto/DeviceDTO.java
@@ -1,5 +1,6 @@
package com.dji.sample.manage.model.dto;
+import com.dji.sample.wayline.model.entity.WaylineJobEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -64,4 +65,7 @@
private Integer firmwareProgress;
private String parentSn;
-}
\ No newline at end of file
+
+ private WaylineJobEntity latestWaylineJob;
+
+}
diff --git a/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java b/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java
index c15873f..e332f43 100644
--- a/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java
@@ -26,6 +26,9 @@
import com.dji.sample.manage.model.param.DeviceQueryParam;
import com.dji.sample.manage.model.receiver.*;
import com.dji.sample.manage.service.*;
+import com.dji.sample.wayline.model.entity.WaylineJobEntity;
+import com.dji.sample.wayline.model.param.WaylineJobQueryParam;
+import com.dji.sample.wayline.service.IWaylineJobService;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -97,6 +100,9 @@
@Autowired
private IDeviceRedisService deviceRedisService;
+
+ @Autowired
+ private IWaylineJobService waylineJobService;
@Autowired
@Qualifier("gatewayOSDServiceImpl")
@@ -318,6 +324,13 @@
deviceRedisService.checkDeviceOnline(gateway.getDeviceSn()))
.forEach(this::spliceDeviceTopo);
+ devicesList.forEach(deviceDTO -> {
+ WaylineJobQueryParam waylineJobQueryParam = new WaylineJobQueryParam();
+ waylineJobQueryParam.setDockSn(deviceDTO.getDeviceSn());
+ WaylineJobEntity latestJob = waylineJobService.getLatestJob(workspaceId, waylineJobQueryParam);
+ deviceDTO.setLatestWaylineJob(latestJob);
+ });
+
return devicesList;
}
diff --git a/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java b/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
index 788dee3..1da52e6 100644
--- a/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
+++ b/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
@@ -5,6 +5,7 @@
import com.dji.sample.common.model.ResponseResult;
import com.dji.sample.log.aspect.SysLogAnnotation;
import com.dji.sample.wayline.model.dto.WaylineJobDTO;
+import com.dji.sample.wayline.model.entity.WaylineJobEntity;
import com.dji.sample.wayline.model.param.CreateJobParam;
import com.dji.sample.wayline.model.param.UpdateJobParam;
import com.dji.sample.wayline.model.param.WaylineJobQueryParam;
@@ -85,6 +86,21 @@
}
/**
+ * 查询最新的记录
+ * @return
+ */
+ @GetMapping("/{workspace_id}/latestJob")
+ public ResponseResult<WaylineJobEntity> getLatestJobs(@PathVariable(name = "workspace_id") String workspaceId,WaylineJobQueryParam waylineJobQueryParam){
+
+ WaylineJobEntity waylineJobEntity = waylineJobService.getLatestJob(workspaceId,waylineJobQueryParam);
+
+ return ResponseResult.success(waylineJobEntity);
+ }
+
+
+
+
+ /**
* 发送命令取消作业。
* @param jobIds
* @param workspaceId
diff --git a/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java b/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java
index 0f1e82b..af971b5 100644
--- a/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java
+++ b/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java
@@ -14,4 +14,6 @@
public interface IWaylineJobMapper extends BaseMapper<WaylineJobEntity> {
Page<WaylineJobEntity> getPage(Page<WaylineJobEntity> waylineJobEntityPage, @Param("queryParam") WaylineJobQueryParam param, @Param("workspaceId") String workspaceId);
+
+ WaylineJobEntity getLatest(@Param("workspaceId")String workspaceId,@Param("queryParam") WaylineJobQueryParam waylineJobQueryParam);
}
diff --git a/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml b/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml
index 90b955e..a74ea38 100644
--- a/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml
+++ b/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml
@@ -40,4 +40,18 @@
ORDER BY job.create_time DESC
</select>
+ <select id="getLatest" resultType="com.dji.sample.wayline.model.entity.WaylineJobEntity">
+ SELECT job.* FROM wayline_job job
+ WHERE job.workspace_id = #{workspaceId}
+ <if test="queryParam.dockSn != null and queryParam.dockSn != '' ">
+ AND job.dock_sn = #{queryParam.dockSn}
+ </if>
+ AND job.status = 1
+ AND DATE_FORMAT(FROM_UNIXTIME(job.begin_time/1000,'%Y-%m-%d'),'%Y-%m-%d') >= DATE(NOW())
+ AND DATE_FORMAT(FROM_UNIXTIME(job.begin_time/1000,'%Y-%m-%d'),'%Y-%m-%d') <= DATE(NOW()) + INTERVAL 2 DAY
+ ORDER BY job.begin_time - NOW() ASC
+ LIMIT 1
+
+
+ </select>
</mapper>
diff --git a/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java b/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
index 856ef03..e41b145 100644
--- a/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
+++ b/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
@@ -156,4 +156,12 @@
* @return
*/
WaylineJobStatusEnum getWaylineState(String dockSn);
+
+ /**
+ * 获取最新的航线任务
+ * @param workspaceId
+ * @param waylineJobQueryParam
+ * @return
+ */
+ WaylineJobEntity getLatestJob(String workspaceId, WaylineJobQueryParam waylineJobQueryParam);
}
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 0ef7b9b..c149023 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
@@ -673,6 +673,22 @@
return WaylineJobStatusEnum.UNKNOWN;
}
+ @Override
+ public WaylineJobEntity getLatestJob(String workspaceId, WaylineJobQueryParam waylineJobQueryParam) {
+// List<WaylineJobEntity> waylineJobEntities = mapper.selectList(new LambdaQueryWrapper<>(WaylineJobEntity.class)
+// .eq(WaylineJobEntity::getWorkspaceId, workspaceId)
+// .eq(WaylineJobEntity::getDockSn, waylineJobQueryParam.getDockSn())
+// //获取状态为待执行
+// .eq(WaylineJobEntity::getStatus,1)
+// .orderByDesc(WaylineJobEntity::getBeginTime)
+// );
+
+ WaylineJobEntity waylineJobEntity = mapper.getLatest(workspaceId,waylineJobQueryParam);
+
+
+ return waylineJobEntity;
+ }
+
private void pauseJob(String workspaceId, String dockSn, String jobId, WaylineJobStatusEnum statusEnum) {
if (WaylineJobStatusEnum.PAUSED == statusEnum && jobId.equals(waylineRedisService.getPausedWaylineJobId(dockSn))) {
waylineRedisService.setPausedWaylineJob(dockSn, jobId);
--
Gitblit v1.9.3