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;