吉安感知网项目-后端
linwei
2026-04-22 de09889cb97fcd7e9ae3236d3cb0d9f2f752e439
drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/RegionServiceImpl.java
@@ -54,9 +54,11 @@
   public Region getById(Serializable id) {
      return Optional.ofNullable(id)
         .map(val -> baseMapper.selectOne(new LambdaQueryWrapper<Region>()
            .eq(Region::getId, val)
            // 1. 处理 id = ? 部分,强制转为 bigint
            .apply("id = {0}::bigint", val)
            .or()
            .eq(Region::getCode, val)))
            // 2. 处理 code = ? 部分,强制转为 varchar
            .apply("code = {0}::varchar", val)))
         .orElse(null);
   }
@@ -70,6 +72,33 @@
      }
      if (regionParentCode.startsWith(MAIN_CODE)) {
         region.setParentCode(StringUtil.removePrefix(regionParentCode, MAIN_CODE));
      }
      region.setCityName("吉安市");
      region.setCityCode("360800000000");
      region.setProvinceCode("360000000000");
      region.setProvinceName("江西省");
      if (region.getRegionLevel().equals(DISTRICT_LEVEL)) {
         region.setDistrictCode(region.getCode());
         region.setDistrictName(region.getName());
      }
      if (region.getRegionLevel().equals(TOWN_LEVEL)) {
         String parentCode = region.getParentCode();
         Region byCode = getByCode(parentCode);
         region.setDistrictCode(byCode.getCode());
         region.setDistrictName(byCode.getName());
         region.setTownCode(region.getCode());
         region.setTownName(region.getName());
      }
      if (region.getRegionLevel().equals(VILLAGE_LEVEL)) {
         String parentCode = region.getParentCode();
         Region byCode = getByCode(parentCode);
         region.setTownCode(byCode.getCode());
         region.setTownName(byCode.getName());
         Region byCode2 = getByCode(byCode.getParentCode());
         region.setDistrictCode(byCode2.getCode());
         region.setDistrictName(byCode2.getName());
         region.setVillageCode(region.getCode());
         region.setVillageName(region.getName());
      }
      // 查询是否已存在
      Long cnt = baseMapper.selectCount(Wrappers.<Region>query().lambda().eq(Region::getCode, region.getCode()));
@@ -111,7 +140,8 @@
      if (cnt > 0L) {
         throw new ServiceException("请先删除子节点!");
      }
      return removeById(id);
      Long idLong = Long.valueOf(id);
      return removeById(idLong);
   }
   @Override