From 59adc3dbb396facc71b1fcc03eec24d059726f68 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Tue, 23 Jun 2026 20:41:39 +0800
Subject: [PATCH] add : 吉安接口放行

---
 drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/wrapper/GdTaskResultWrapper.java |   53 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 44 insertions(+), 9 deletions(-)

diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/wrapper/GdTaskResultWrapper.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/wrapper/GdTaskResultWrapper.java
index 7d7f468..172f84c 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/wrapper/GdTaskResultWrapper.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/wrapper/GdTaskResultWrapper.java
@@ -63,20 +63,24 @@
 	 * 将单个DTO转换为Entity
 	 * 处理geojson字段:将字符串数组格式转换为正确的JSON对象数组格式
 	 *
-	 * @param dto DTO对象
+	 * @param dto DTO对象,不能为null
 	 * @return Entity对象
+	 * @throws IllegalArgumentException 当dto为null时抛出
 	 */
 	private GdTaskResultEntity convertDtoToEntity(GdTaskResultDTO dto) {
-		GdTaskResultEntity entity = BeanUtil.copy(dto, GdTaskResultEntity.class);
-
-		// 步骤1:设置附件类型
-		if (dto.getAttachmentType() != null) {
-			entity.setAttachmentType(dto.getAttachmentType());
-		} else if (dto.getDateType() != null) {
-			entity.setAttachmentType(dto.getDateType());
+		// 步骤1:参数校验
+		if (dto == null) {
+			throw new IllegalArgumentException("dto不能为null");
 		}
 
-		// 步骤2:处理geojson字段,将字符串数组转换为正确的JSON格式
+		// 步骤2:基础属性拷贝
+		GdTaskResultEntity entity = BeanUtil.copy(dto, GdTaskResultEntity.class);
+
+		// 步骤3:设置附件类型
+		Integer attachmentType = determineAttachmentType(dto);
+		entity.setAttachmentType(attachmentType);
+
+		// 步骤4:处理geojson字段,将字符串数组转换为正确的JSON格式
 		String processedGeojson = processGeojson(dto.getGeojson());
 		entity.setGeojson(processedGeojson);
 
@@ -84,6 +88,37 @@
 	}
 
 	/**
+	 * 根据DTO信息确定附件类型
+	 * 优先使用dateType判断,其次通过文件URL后缀判断
+	 *
+	 * @param dto DTO对象
+	 * @return 附件类型:1-图片,3-视频
+	 */
+	private Integer determineAttachmentType(GdTaskResultDTO dto) {
+		// 步骤1:优先使用dateType判断
+		if (dto.getDateType() != null) {
+			// 录像的视频特殊处理
+			if ("视频".equals(dto.getFileType())) {
+				return 3;
+			}
+			return dto.getDateType();
+		}
+
+		// 步骤2:通过URL后缀判断
+		String resultUrl = dto.getResultUrl();
+		if (StringUtil.isEmpty(resultUrl)) {
+			return 1; // 默认返回图片类型
+		}
+
+		// 步骤3:根据文件扩展名判断类型
+		String lowerUrl = resultUrl.toLowerCase();
+		if (lowerUrl.endsWith(".mp4") || lowerUrl.endsWith(".m3u8")) {
+			return 3; // 视频
+		}
+		return 1; // 图片(包含jpg、png及其他格式)
+	}
+
+	/**
 	 * 处理geojson字段,将字符串数组格式转换为正确的JSON对象数组格式
 	 * 解决问题:["{\"score\":0.88}"] -> [{"score":0.88}]
 	 *

--
Gitblit v1.9.3