吉安感知网项目-后端
rain
2026-02-09 66bfbdb9251c22ffa2b5f05595a76a3547a2f5eb
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;
   }
}