From 66bfbdb9251c22ffa2b5f05595a76a3547a2f5eb Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Mon, 09 Feb 2026 11:00:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdTaskResultServiceImpl.java |   44 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 43 insertions(+), 1 deletions(-)

diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdTaskResultServiceImpl.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdTaskResultServiceImpl.java
index aaf4e5d..5fb58af 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdTaskResultServiceImpl.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdTaskResultServiceImpl.java
@@ -21,6 +21,7 @@
 import org.sxkj.gd.workorder.excel.GdTaskResultExcel;
 import org.sxkj.gd.workorder.mapper.GdTaskResultMapper;
 import org.sxkj.gd.workorder.service.IGdTaskResultService;
+import org.sxkj.common.utils.HeaderUtils;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -43,7 +44,11 @@
 
 	@Override
 	public List<GdTaskResultVO> listByPatrolTaskId(Long patrolTaskId) {
-		return baseMapper.selectGdTaskResultListByPatrolTaskId(patrolTaskId);
+		List<GdTaskResultVO> gdTaskResultVOS = baseMapper.selectGdTaskResultListByPatrolTaskId(patrolTaskId);
+		for (GdTaskResultVO gdTaskResultVO : gdTaskResultVOS) {
+			gdTaskResultVO.setResultUrl(unescapeUrl(gdTaskResultVO.getResultUrl()));
+		}
+		return gdTaskResultVOS;
 	}
 
 
@@ -56,4 +61,41 @@
 		return gdTaskResultList;
 	}
 
+	@Override
+	public boolean saveBatchTaskResult(List<GdTaskResultEntity> gdTaskResultEntities) {
+		gdTaskResultEntities.forEach(gdTaskResult -> {
+			// 使用HeaderUtils处理区域代码
+			String processedAreaCode = HeaderUtils.processAreaCode(gdTaskResult.getAreaCode());
+			gdTaskResult.setAreaCode(processedAreaCode);
+		});
+		// 执行批量保存并返回结果
+		return saveBatch(gdTaskResultEntities);
+	}
+
+	/**
+	 * 将URL中的HTML/XML转义字符还原为原始字符
+	 * 主要处理 &amp; 转换为 &
+	 *
+	 * @param url 包含转义字符的URL
+	 * @return 还原后的URL
+	 */
+	public static String unescapeUrl(String url) {
+		if (url == null || url.isEmpty()) {
+			return url;
+		}
+
+		// 按照优先级顺序进行替换,避免重复替换问题
+		String result = url;
+
+		// 处理常见的HTML/XML转义字符
+		result = result.replace("&amp;", "&");     // &符号
+		result = result.replace("&lt;", "<");      // 小于号
+		result = result.replace("&gt;", ">");      // 大于号
+		result = result.replace("&quot;", "\"");   // 双引号
+		result = result.replace("&#39;", "'");     // 单引号
+		result = result.replace("&apos;", "'");    // 单引号
+
+		return result;
+	}
+
 }

--
Gitblit v1.9.3