| | |
| | | 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()); |
| | |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | } |