From 95027880bfaa80769810965ecc6d71be7bf960e4 Mon Sep 17 00:00:00 2001
From: yq183 <645046984@qq.com>
Date: Mon, 31 Mar 2025 13:03:22 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E9=A2=84=E7=BA=A6?=
=?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=AF=94=E5=AF=B9?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../domain/bo/BusinessOperationBo.java | 2 +-
.../business/domain/vo/BusinessTaskVo.java | 2 +-
.../impl/BusinessOperationServiceImpl.java | 2 +-
.../mapper/business/BusinessTaskMapper.xml | 6 +++++
.../sample/media/service/IFileService.java | 6 +++++
.../media/service/impl/FileServiceImpl.java | 26 ++++++++++++++++---
.../controller/AiCompareController.java | 23 +++++++++++++---
.../controller/WaylineJobController.java | 8 ++++++
.../service/IAiCompareQueueService.java | 2 +-
.../wayline/service/IWaylineJobService.java | 9 +++++++
.../impl/AiCompareQueueServiceImpl.java | 7 ++---
.../service/impl/WaylineJobServiceImpl.java | 6 +++++
12 files changed, 85 insertions(+), 14 deletions(-)
diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java
index b32d452..3d1ef76 100644
--- a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java
+++ b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java
@@ -87,7 +87,7 @@ public class BusinessOperationBo {
* 航线名称
* */
@NotBlank(message = "航线名称不能为空", groups = { AddGroup.class, EditGroup.class })
- private String fileName;
+ private String waylineName;
/**
*
* jobName
diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java
index f8f2965..d2aebe5 100644
--- a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java
+++ b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java
@@ -80,7 +80,7 @@ public class BusinessTaskVo implements Serializable {
private Long createDept;
private String deptName;
private String waylineId;
- private String fileName;
+ private String waylineName;
private String jobName;
private String jobId;
//操作者id
diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessOperationServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessOperationServiceImpl.java
index 133ddfc..f0512b8 100644
--- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessOperationServiceImpl.java
+++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessOperationServiceImpl.java
@@ -109,7 +109,7 @@ public class BusinessOperationServiceImpl implements IBusinessOperationService {
//根据工单绘制上传航线,绑定航线,填报信息
BusinessTaskVo businessTaskVo = businessTaskService.queryById(bo.getTaskId());
businessTaskVo.setWaylineId(bo.getWaylineId());
- businessTaskVo.setFileName(bo.getFileName());
+ businessTaskVo.setWaylineName(bo.getWaylineName());
businessTaskVo.setStatus(BusinessConstants.TASK_STATUS_1);
BusinessTask businessTask = MapstructUtils.convert(businessTaskVo, BusinessTask.class);
businessTaskService.update(businessTask);
diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessTaskMapper.xml b/dk-modules/business/src/main/resources/mapper/business/BusinessTaskMapper.xml
index 61ae721..88ee7c2 100644
--- a/dk-modules/business/src/main/resources/mapper/business/BusinessTaskMapper.xml
+++ b/dk-modules/business/src/main/resources/mapper/business/BusinessTaskMapper.xml
@@ -15,6 +15,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
+
+
@@ -43,6 +47,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
t.verbal_trick,
t.expect_time,
t.demand,
+ t.job_id,
+ t.job_name,
t.complete_time,
t.STATUS,
t.create_by,
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java
index dead30b..62adab9 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java
@@ -80,4 +80,10 @@ public interface IFileService {
URL getObjectUrlOne(String bucket,String pathUrl,Integer seconds);
+ /**
+ * 获取任务飞行的数据
+ * @param jobId 任务id
+ * @param fileType 图片类型 ("jpeg,mp4")
+ * */
+ List getMediaFileDTO( String jobId,String fileType);
}
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java
index 524fa2b..8720d12 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java
@@ -1,6 +1,8 @@
package org.dromara.sample.media.service.impl;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dromara.common.oss.core.OssClient;
import org.dromara.common.oss.factory.OssFactory;
@@ -12,6 +14,7 @@ import org.dromara.common.sdk.common.Pagination;
import org.dromara.common.sdk.common.PaginationData;
import org.dromara.sample.manage.model.dto.DeviceDictionaryDTO;
import org.dromara.sample.manage.service.IDeviceDictionaryService;
+import org.dromara.sample.media.constant.MinIOConstants;
import org.dromara.sample.media.mapper.IFileMapper;
import org.dromara.sample.media.model.MediaFileDTO;
import org.dromara.sample.media.model.MediaFileEntity;
@@ -25,10 +28,7 @@ import java.sql.Time;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
-import java.util.UUID;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -149,6 +149,24 @@ public class FileServiceImpl implements IFileService {
return storage.getPrivateUrlURL(pathUrl,seconds);
}
+ @Override
+ public List getMediaFileDTO(String jobId,String fileTypesStr) {
+ String[] split = fileTypesStr.split(",");
+ List entities = mapper.selectList(new LambdaQueryWrapper()
+ .eq(MediaFileEntity::getJobId, jobId)
+ .in(MediaFileEntity::getFileType, (Object[])split).orderByAsc(MediaFileEntity::getFileIndex));
+ if(entities.isEmpty()){
+ return new ArrayList<>();
+ }else {
+ entities.forEach(entity -> {
+ entity.setFilePath(this.getObjectUrlOne(MinIOConstants.BUCKET_DKCY,entity.getObjectKey(),3600).toString());
+ });
+ return entities.stream().map(this::entityConvertToDto).collect(Collectors.toList());
+ }
+
+
+ }
+
/**
* Convert the received file object into a database entity object.
* @param file
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java
index c58ca4f..f37b206 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java
@@ -1,6 +1,7 @@
package org.dromara.sample.wayline.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
+import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
@@ -15,6 +16,7 @@ import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
+import org.dromara.sample.media.model.MediaFileDTO;
import org.dromara.sample.wayline.model.dto.AiCompareDTO;
import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO;
import org.dromara.sample.wayline.model.dto.AiCompareQueueDTO;
@@ -24,6 +26,7 @@ import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity;
import org.dromara.sample.wayline.model.entity.WaylineJobEntity;
import org.dromara.sample.wayline.service.IAiCompareQueueService;
import org.dromara.sample.wayline.service.IAiCompareService;
+import org.dromara.sample.wayline.service.IWaylineJobService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -47,6 +50,8 @@ public class AiCompareController extends BaseController {
private final IAiCompareService aiCompareService;
+ private final IWaylineJobService waylineJobService;
+
/**
* 图片对比列表
*/
@@ -67,13 +72,12 @@ public class AiCompareController extends BaseController {
/**
* 模板列表
- * @param waylineId
* param createTime 当前记录的时间
*/
@SaCheckPermission("sample:compare:list")
@GetMapping("/templateList")
- public List templateList(String waylineId, Date createTime) {
- return aiCompareQueueService.templateList(waylineId,createTime);
+ public List templateList(String wayline_id, String create_time) {
+ return aiCompareQueueService.templateList(wayline_id,create_time);
}
/**
@@ -87,6 +91,19 @@ public class AiCompareController extends BaseController {
return R.ok(aiCompareService.queryById(id));
}
+
+ /**
+ *
+ * 获取任务的飞行数据
+ * @param jobId 任务id
+ * @param fileTypeStr 图片类型 多个逗号隔开 jpeg,mp4
+ * */
+ @Operation(summary ="获取任务的飞行数据",description = "")
+ @GetMapping("/jobFile")
+ public R> getMediaFileDTO(String jobId, String fileTypeStr) {
+
+ return R.ok(waylineJobService.getMediaFileDTO(jobId,fileTypeStr));
+ }
/**
* 模板回显
*
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java
index bc05f0f..c7df333 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java
@@ -4,10 +4,13 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid;
+import org.dromara.business.api.domain.vo.RemoteBusinessAlertVo;
+import org.dromara.common.core.domain.R;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.sdk.cloudapi.wayline.WaylineJobTypeEnum;
import org.dromara.common.sdk.common.HttpResultResponse;
import org.dromara.common.sdk.common.PaginationData;
+import org.dromara.sample.media.model.MediaFileDTO;
import org.dromara.sample.wayline.model.dto.WaylineJobDTO;
import org.dromara.sample.wayline.model.param.CreateJobParam;
import org.dromara.sample.wayline.model.param.UpdateJobParam;
@@ -18,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.sql.SQLException;
+import java.util.List;
import java.util.Set;
@@ -102,4 +106,8 @@ public class WaylineJobController {
flighttaskService.updateJobStatus(workspaceId, jobId, param);
return HttpResultResponse.success();
}
+
+
+
+
}
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java
index e6b8d45..a85f6e0 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java
@@ -15,7 +15,7 @@ import java.util.List;
*/
public interface IAiCompareQueueService {
TableDataInfo queueList(AiCompareQueueDTO bo, PageQuery pageQuery);
- ListtemplateList(String waylineId, Date createTime);
+ ListtemplateList(String waylineId, String createTime);
AiCompareQueueEntity getInfo(Long queueId);
Boolean updateStatus(List ids,String queueType);
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java
index 03b755d..a0c6492 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java
@@ -1,6 +1,7 @@
package org.dromara.sample.wayline.service;
import org.dromara.common.sdk.common.PaginationData;
+import org.dromara.sample.media.model.MediaFileDTO;
import org.dromara.sample.wayline.model.dto.WaylineJobDTO;
import org.dromara.sample.wayline.model.enums.WaylineJobStatusEnum;
import org.dromara.sample.wayline.model.param.CreateJobParam;
@@ -76,4 +77,12 @@ public interface IWaylineJobService {
* @return
*/
WaylineJobStatusEnum getWaylineState(String dockSn);
+
+
+ /**
+ * 获取任务飞行的数据
+ * @param jobId 任务id
+ * @param fileType 图片类型 ("jpeg,mp4")
+ * */
+ List getMediaFileDTO(String jobId, String fileType);
}
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java
index f353c1d..c1286ec 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java
@@ -14,6 +14,7 @@ import org.apache.poi.ss.formula.functions.T;
import org.dromara.business.api.RemoteBusinessTaskService;
import org.dromara.common.core.constant.AiCompareStatusConstants;
import org.dromara.common.core.constant.BusinessConstants;
+import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
@@ -56,15 +57,15 @@ public class AiCompareQueueServiceImpl implements IAiCompareQueueService {
}
@Override
- public List templateList(String waylineId, Date createTime) {
+ public List templateList(String waylineId, String createTime) {
QueryWrapper wrapper = Wrappers.query();
// 如果 createTime 为空,使用当前时间
if (createTime == null) {
- createTime = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());
+ createTime = DateUtils.getDate();
}
//获取最新的10条数据
wrapper
- .eq(StringUtils.isNotBlank(waylineId),"wayline_id", waylineId)
+ .eq(StringUtils.isNotBlank(waylineId),"file_id", waylineId)
.lt(ObjectUtil.isNotEmpty(createTime),"create_time",createTime) // 增加创建时间小于指定时间的条件
.orderByDesc("create_time")
.last("limit 10");
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java
index 48ce774..cec52d3 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -17,6 +17,7 @@ import org.dromara.sample.manage.model.dto.DeviceDTO;
import org.dromara.sample.manage.service.IDeviceRedisService;
import org.dromara.sample.manage.service.IDeviceService;
import org.dromara.sample.media.model.MediaFileCountDTO;
+import org.dromara.sample.media.model.MediaFileDTO;
import org.dromara.sample.media.service.IFileService;
import org.dromara.sample.wayline.mapper.IWaylineJobMapper;
import org.dromara.sample.wayline.model.dto.WaylineJobDTO;
@@ -226,6 +227,11 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
return WaylineJobStatusEnum.UNKNOWN;
}
+ @Override
+ public List getMediaFileDTO(String jobId, String fileType) {
+ return fileService.getMediaFileDTO(jobId,fileType);
+ }
+
private WaylineJobDTO entity2Dto(WaylineJobEntity entity) {
if (entity == null) {
return null;