吉安感知网项目-后端
linwei
2026-06-05 f3104f14213028277c883e19301b820ae724bd70
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java
@@ -674,7 +674,9 @@
         param.setSingleTime(DateUtil.format(gdPatrolTaskVO.getExecuteTime(), "yyyy-MM-dd HH:mm:ss"));
       }
      if (StringUtil.isNotBlank(gdPatrolTaskVO.getAreaCode())) {
         param.setRegionCode(gdPatrolTaskVO.getAreaCode());
         // regionCode : "3600,3608,360802"
         String regionCode = convertAreaCodeToRegionCode(gdPatrolTaskVO.getAreaCode());
         param.setRegionCode(regionCode);
      }
      if (StringUtil.isNotBlank(gdPatrolTaskVO.getAirportId())) {
         param.setAirportId(gdPatrolTaskVO.getAirportId());
@@ -753,4 +755,40 @@
      return baseMapper.selectListByWorkOrderId(workOrderId);
   }
   /**
    * 将区域编码转换为多级行政区划编码格式
    *
    * @param areaCode 区域编码(如:360802)
    * @return 多级行政区划编码,格式为 "省编码,市编码,区编码"(如:"3600,3608,360802")
    */
   private String convertAreaCodeToRegionCode(String areaCode) {
      if (StringUtil.isBlank(areaCode)) {
         return null;
      }
      // 如果已经是逗号分隔的格式,直接返回
      if (areaCode.contains(",")) {
         return areaCode;
      }
      // 去除空格并确保长度为6位
      String cleanCode = areaCode.trim();
      if (cleanCode.length() != 6) {
         log.warn("区域编码格式不正确,期望6位数字,实际为: {}", cleanCode);
         return cleanCode;
      }
      try {
         // 提取省、市、区三级编码
         String provinceCode = cleanCode.substring(0, 2) + "00";      // 省级编码(如:3600)
         String cityCode = cleanCode.substring(0, 4) + "0";           // 市级编码(如:3608)
         String districtCode = cleanCode;                             // 区级编码(如:360802)
         return provinceCode + "," + cityCode + "," + districtCode;
      } catch (Exception e) {
         log.error("区域编码转换失败: {}", e.getMessage());
         return areaCode;
      }
   }
}