From 3f43e40ed1a1e9f66b3ad2862da9dbc4b710c712 Mon Sep 17 00:00:00 2001
From: nishiwei <13126973358@163.com>
Date: Fri, 23 Oct 2026 14:09:47 +0800
Subject: [PATCH] 智云3.0机场1适配内容提交

---
 ard-sample/src/main/java/com/ard/sample/media/service/impl/FileServiceImpl.java |   50 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/ard-sample/src/main/java/com/ard/sample/media/service/impl/FileServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/media/service/impl/FileServiceImpl.java
index f177c56..8982a89 100644
--- a/ard-sample/src/main/java/com/ard/sample/media/service/impl/FileServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/media/service/impl/FileServiceImpl.java
@@ -4,6 +4,8 @@
 import com.ard.oss.service.impl.OssServiceContext;
 import com.ard.sample.utils.TimestampUtils;
 import com.ard.sample.utils.VideoDurationUtilFFmpeg;
+import com.ard.sample.wayline.model.dto.WaylineJobDTO;
+import com.ard.sample.wayline.service.IWaylineJobService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ard.sample.common.model.Pagination;
@@ -48,6 +50,9 @@
 
     @Autowired
     private IDeviceDictionaryService deviceDictionaryService;
+
+    @Autowired
+    private IWaylineJobService _waylineJobService;
 
     @Autowired
     private OssServiceContext ossService;
@@ -109,17 +114,21 @@
      */
     @Override
     public PaginationData<MediaFileDTO> getJobFiles(long page, long pageSize,String jobId, String isType) {
-        Page<MediaFileEntity> pageData = mapper.selectPage(
-                new Page<MediaFileEntity>(page, pageSize),
-                new LambdaQueryWrapper<MediaFileEntity>()
-                        .eq(Objects.nonNull(jobId), MediaFileEntity::getJobId, jobId)
-//                        .orderByDesc(MediaFileEntity::getId));
-                        // isType=1 时匹配 V.jpeg
-                        .like("1".equals(isType), MediaFileEntity::getFileName, "V.jpeg")
-                        // isType=0 时匹配 V.mp4
-                        .like("0".equals(isType), MediaFileEntity::getFileName, "V.mp4")
-                        // 排序修改:按start_time正序(升序)排列
-                        .orderByAsc(MediaFileEntity::getStartTime)); // 关键改动1:替换排序方式
+        LambdaQueryWrapper<MediaFileEntity> queryWrapper = new LambdaQueryWrapper<MediaFileEntity>()
+                .eq(Objects.nonNull(jobId), MediaFileEntity::getJobId, jobId);
+        // 按文件扩展名区分图片/视频,不再写死镜头前缀:
+        // Dock2 可见光文件名为 _V.jpeg/_V.mp4;机场1(M30T)三光相机为 _W/_Z/_T.jpeg(广角/变焦/红外)及 _W.mp4。
+        // 原实现写死 V.jpeg/V.mp4,导致机场1的媒体文件在计划库中查询不到。
+        if ("1".equals(isType)) {
+            queryWrapper.and(w -> w.like(MediaFileEntity::getFileName, ".jpeg")
+                    .or().like(MediaFileEntity::getFileName, ".jpg"));
+        } else if ("0".equals(isType)) {
+            queryWrapper.like(MediaFileEntity::getFileName, ".mp4");
+        }
+        // 排序:按 start_time 正序(升序)排列
+        queryWrapper.orderByAsc(MediaFileEntity::getStartTime);
+
+        Page<MediaFileEntity> pageData = mapper.selectPage(new Page<MediaFileEntity>(page, pageSize), queryWrapper);
 
         List<MediaFileDTO> records = pageData.getRecords()
                 .stream()
@@ -129,11 +138,21 @@
         return new PaginationData<MediaFileDTO>(records, new Pagination(pageData));
     }
 
+    /**
+     * 分页获取媒体文件列表
+     * 增加筛选条件
+     * @param page 当前页码
+     * @param pageSize 每页大小
+     * @return 分页数据对象,包含媒体文件列表和分页信息
+     */
     @Override
-    public PaginationData<MediaFileDTO> getMediaFilesPagination(long page, long pageSize) {
+    public PaginationData<MediaFileDTO> getMediaFilesPagination(long page, long pageSize, String jobId, Long startTime, Long endTime) {
         Page<MediaFileEntity> pageData = mapper.selectPage(
                 new Page<MediaFileEntity>(page, pageSize),
                 new LambdaQueryWrapper<MediaFileEntity>()
+                        .eq(jobId != null, MediaFileEntity::getJobId, jobId)
+                        .ge(startTime != null, MediaFileEntity::getStartTime, startTime)
+                        .le(endTime != null, MediaFileEntity::getStartTime, endTime)
                         .orderByDesc(MediaFileEntity::getId));
         List<MediaFileDTO> records = pageData.getRecords()
                 .stream()
@@ -162,7 +181,7 @@
     }
 
     /**
-     * Convert the received file object into a database entity object.
+     * 将接收到的文件对象转换为数据库实体对象。
      * @param file
      * @return
      */
@@ -198,7 +217,7 @@
     }
 
     /**
-     * Convert database entity objects into file data transfer object.
+     * 将数据库实体对象转换为文件数据传输对象。
      * @param entity
      * @return
      */
@@ -224,7 +243,8 @@
                             Instant.ofEpochMilli(entity.getEndTime()), ZoneId.systemDefault()).format(DATE_TIME_FORMATTER))
                     .duration(entity.getDuration())
                     .drone(entity.getDrone())
-                    .jobId(entity.getJobId());
+                    .jobId(entity.getJobId())
+                    .jobName(entity.getJobName());
 
         }
 

--
Gitblit v1.9.3