From db7d67e9ef32723d9b397740168e09053d9c2cff Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Tue, 27 Feb 2024 15:42:01 +0800
Subject: [PATCH] 根据航线任务id获取航线媒体文件列表
---
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java | 24 +++++++++++++-----------
1 files changed, 13 insertions(+), 11 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 ad2b141..b138833 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
@@ -13,6 +13,7 @@
import com.dji.sample.common.model.Pagination;
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.common.model.ResponseResult;
+import com.dji.sample.common.util.MinioUrlUtils;
import com.dji.sample.common.util.SpringBeanUtils;
import com.dji.sample.component.mqtt.model.*;
import com.dji.sample.component.mqtt.service.IMessageSenderService;
@@ -142,7 +143,9 @@
.rthAltitude(param.getRthAltitude())
.mediaCount(0)
.build();
-
+ if (StringUtils.hasText(param.getJobId())){
+ jobEntity.setJobId(param.getJobId());
+ }
return insertWaylineJob(jobEntity);
}
@@ -338,10 +341,10 @@
private Boolean prepareFlightTask(WaylineJobDTO waylineJob) throws SQLException {
- boolean isOnline = deviceRedisService.checkDeviceOnline(waylineJob.getDockSn());
+ /*boolean isOnline = deviceRedisService.checkDeviceOnline(waylineJob.getDockSn());
if (!isOnline) {
throw new RuntimeException("设备离线。");
- }
+ }*/
// get wayline file
Optional<WaylineFileDTO> waylineFile = waylineFileService.getWaylineByWaylineId(waylineJob.getWorkspaceId(), waylineJob.getFileId());
@@ -352,7 +355,6 @@
// get file url
//获取航线文件地址
URL url = waylineFileService.getObjectUrl(waylineJob.getWorkspaceId(), waylineFile.get().getWaylineId());
-
WaylineTaskCreateDTO flightTask = WaylineTaskCreateDTO.builder()
.flightId(waylineJob.getJobId())
.executeTime(waylineJob.getBeginTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli())
@@ -361,7 +363,7 @@
.rthAltitude(waylineJob.getRthAltitude())
.outOfControlAction(waylineJob.getOutOfControlAction())
.file(WaylineTaskFileDTO.builder()
- .url(url.toString())
+ .url(MinioUrlUtils.getUrl(url))
.fingerprint(waylineFile.get().getSign())
.build())
.build();
@@ -419,7 +421,7 @@
.status(WaylineJobStatusEnum.FAILED.getVal())
.completedTime(LocalDateTime.now())
.code(serviceReply.getResult()).build());
- // The conditional task fails and enters the blocking status.
+ // 条件任务失败,进入阻塞状态。
if (WaylineTaskTypeEnum.CONDITION == job.getTaskType()
&& WaylineErrorCodeEnum.find(serviceReply.getResult()).isBlock()) {
waylineRedisService.setBlockedWaylineJob(job.getDockSn(), jobId);
@@ -584,7 +586,7 @@
url = waylineFileService.getObjectUrl(waylineJob.getWorkspaceId(), waylineFile.get().getWaylineId());
builder.data(RequestsReply.success(WaylineTaskCreateDTO.builder()
.file(WaylineTaskFileDTO.builder()
- .url(url.toString())
+ .url(MinioUrlUtils.getUrl(url))
.fingerprint(waylineFile.get().getSign())
.build())
.build()));
@@ -900,18 +902,18 @@
@Override
- public WaylineJobCountDTO patrolStatistics(String workspaceId, String queryTime) {
+ public WaylineJobCountDTO patrolStatistics(String workspaceId, String queryTime,String deviceSn) {
WaylineJobCountDTO waylineJobCountDTO = new WaylineJobCountDTO();
- List<DroneFlightLogEntity> list = flightLogMapper.patrolStatistics(workspaceId,queryTime);
+ List<DroneFlightLogEntity> list = flightLogMapper.patrolStatistics(workspaceId,queryTime,deviceSn);
if (!CollectionUtils.isEmpty(list)) {
waylineJobCountDTO.setTotalNumber(list.size());
long totalTime = list.stream().filter(task -> task.getEndTime()!= null && task.getStartTime()!= null).mapToLong(s -> s.getEndTime() - s.getStartTime()).sum() / 1000;
long h = totalTime / 3600;
long m = (totalTime % 3600) / 60;
waylineJobCountDTO.setTotalDuration( String.format("%02d h %02d min", h, m));
- List<String> deviceSn = list.stream().map(DroneFlightLogEntity::getDeviceSn).distinct().collect(Collectors.toList());
+ List<String> deviceSns = list.stream().map(DroneFlightLogEntity::getDeviceSn).distinct().collect(Collectors.toList());
double sum = 0.0;
- for (String sn : deviceSn) {
+ for (String sn : deviceSns) {
Double totalFlightDistance = new LambdaQueryChainWrapper<>(flightLogMapper)
.eq(DroneFlightLogEntity::getDeviceSn, sn).orderByDesc(DroneFlightLogEntity::getEndTime).last("limit 1").one().getTotalFlightDistance();
if (totalFlightDistance!= null){
--
Gitblit v1.9.3