diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/base/IBdAreaNewServiceApi.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/base/IBdAreaNewServiceApi.java
new file mode 100644
index 00000000..474a447b
--- /dev/null
+++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/base/IBdAreaNewServiceApi.java
@@ -0,0 +1,17 @@
+package com.hzs.system.base;
+
+import cn.hutool.json.JSONObject;
+import com.hzs.common.core.domain.R;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author hzs
+ * @since 2025-10-10
+ */
+public interface IBdAreaNewServiceApi {
+
+ R> upAreaDate(JSONObject result);
+}
diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/mapper/BdAreaNewMapper.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/mapper/BdAreaNewMapper.java
new file mode 100644
index 00000000..dffbda66
--- /dev/null
+++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/mapper/BdAreaNewMapper.java
@@ -0,0 +1,16 @@
+package com.hzs.system.base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hzs.common.domain.system.base.BdAreaNew;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author hzs
+ * @since 2025-10-10
+ */
+public interface BdAreaNewMapper extends BaseMapper {
+
+}
diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/provider/BdAreaNewServiceProvider.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/provider/BdAreaNewServiceProvider.java
new file mode 100644
index 00000000..64748a22
--- /dev/null
+++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/provider/BdAreaNewServiceProvider.java
@@ -0,0 +1,139 @@
+package com.hzs.system.base.provider;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import com.hzs.common.core.constant.CountryConstants;
+import com.hzs.common.core.constant.MagicNumberConstants;
+import com.hzs.common.core.domain.R;
+import com.hzs.common.domain.system.base.BdAreaNew;
+import com.hzs.system.base.IBdAreaNewServiceApi;
+import com.hzs.system.base.service.IBdAreaNewService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author hzs
+ * @since 2025-10-10
+ */
+
+@Slf4j
+@DubboService
+public class BdAreaNewServiceProvider implements IBdAreaNewServiceApi {
+ @Autowired
+ private IBdAreaNewService iBdAreaNewService;
+
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ @Override
+ public R> upAreaDate(JSONObject result) {
+
+ Set allCodesFromApi = new HashSet<>();
+ // 最外层,全国,直接过滤
+ JSONArray country = result.getJSONArray("districts");
+ // 省
+ JSONObject provinces = country.getJSONObject(0);
+ // 省列表
+ JSONArray provincesArray = provinces.getJSONArray("districts");
+ // 查询所有数据
+ List allDbAreas = iBdAreaNewService.list();
+ Map dbMap = allDbAreas.stream()
+ .collect(Collectors.toMap(BdAreaNew::getCode, a -> a));
+
+ for (int i = 0; i < provincesArray.size(); i++) {
+ // 迭代处理数据
+ parseDistrict(provincesArray.getJSONObject(i), 0L, allCodesFromApi,dbMap);
+ }
+
+ // 对数据库中未出现的地区进行逻辑删除标记
+ for (BdAreaNew bdAreaNew : allDbAreas) {
+ if (!allCodesFromApi.contains(bdAreaNew.getCode()) && bdAreaNew.getDelFlag() == 0) {
+ bdAreaNew.setSyncStatus("DELETED");
+ iBdAreaNewService.removeById(bdAreaNew);
+ iBdAreaNewService.updateById(bdAreaNew);
+ log.info("逻辑删除地区:{}", bdAreaNew.getName());
+ }
+ }
+ return R.ok();
+ }
+ private void parseDistrict(JSONObject district, Long parentId, Set allCodesFromApi,
+ Map dbMap) {
+ if ("4".equals(district.getStr("level")) || "990000".equals(district.getStr("code"))) {
+ // 第4级行政区划(街道)和990000这个地区不需要
+ return;
+ }
+ // 操作用户
+ Long userId = MagicNumberConstants.PK_ADMIN;
+ // 所属国家
+ Integer pkCountry = CountryConstants.CHINA_COUNTRY;
+ // 当前时间
+ Date nowDate = new Date();
+ String name = district.getStr("name");
+ String code = district.getStr("code");
+ allCodesFromApi.add(code);
+
+ BdAreaNew existing = dbMap.get(code);
+
+ if (existing == null) {
+ BdAreaNew area = new BdAreaNew();
+ Integer newId = getNextSeqId();
+ area.setPkId(newId);
+ area.setName(name);
+ area.setCode(code);
+ area.setParent(parentId == null ? 0L : parentId);
+ area.setEnableState(0);
+ area.setDelFlag(0);
+ area.setPkCountry(pkCountry);
+ area.setPkCreator(userId);
+ area.setCreationTime(nowDate);
+ area.setBindNum(1);
+ area.setSyncStatus("NEW");
+
+ iBdAreaNewService.save(area);
+ dbMap.put(code, area);
+ existing = area;
+ log.info("新增地区:{} code={} pkId={}", name, code, newId);
+ } else {
+ boolean updated = false;
+ if (!existing.getName().equals(name)) {
+ existing.setName(name);
+ updated = true;
+ }
+ if (!Objects.equals(existing.getParent(), parentId)) {
+ existing.setParent(parentId == null ? 0L : parentId);
+ updated = true;
+ existing.setSyncStatus("MOVED");
+ }
+ if (updated) {
+ existing.setModifiedTime(new Date());
+ iBdAreaNewService.updateById(existing);
+ log.info("更新地区:{} code={}", name, code);
+ } else {
+ existing.setSyncStatus("NORMAL");
+ }
+ }
+
+ Integer currentParentId = existing.getPkId();
+ JSONArray subList = district.getJSONArray("districts");
+ if (subList != null && !subList.isEmpty()) {
+ for (int i = 0; i < subList.size(); i++) {
+ parseDistrict(subList.getJSONObject(i), Long.valueOf(currentParentId), allCodesFromApi, dbMap);
+ }
+ }
+ }
+ private Integer getNextSeqId() {
+ return jdbcTemplate.queryForObject("SELECT BD_AREA_NEW_SEQ.NEXTVAL FROM dual", Integer.class);
+ }
+
+
+}
diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/IBdAreaNewService.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/IBdAreaNewService.java
new file mode 100644
index 00000000..021d630a
--- /dev/null
+++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/IBdAreaNewService.java
@@ -0,0 +1,16 @@
+package com.hzs.system.base.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hzs.common.domain.system.base.BdAreaNew;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author hzs
+ * @since 2025-10-10
+ */
+public interface IBdAreaNewService extends IService {
+
+}
diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdAreaNewServiceImpl.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdAreaNewServiceImpl.java
new file mode 100644
index 00000000..cfc808e6
--- /dev/null
+++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdAreaNewServiceImpl.java
@@ -0,0 +1,20 @@
+package com.hzs.system.base.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hzs.common.domain.system.base.BdAreaNew;
+import com.hzs.system.base.mapper.BdAreaNewMapper;
+import com.hzs.system.base.service.IBdAreaNewService;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author hzs
+ * @since 2025-10-10
+ */
+@Service
+public class BdAreaNewServiceImpl extends ServiceImpl implements IBdAreaNewService {
+
+}
diff --git a/bd-business/bd-business-system/src/main/resources/mapper/system/base/BdAreaNewMapper.xml b/bd-business/bd-business-system/src/main/resources/mapper/system/base/BdAreaNewMapper.xml
new file mode 100644
index 00000000..a047d514
--- /dev/null
+++ b/bd-business/bd-business-system/src/main/resources/mapper/system/base/BdAreaNewMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/base/BdAreaNew.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/base/BdAreaNew.java
new file mode 100644
index 00000000..d4ee327d
--- /dev/null
+++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/base/BdAreaNew.java
@@ -0,0 +1,56 @@
+package com.hzs.common.domain.system.base;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.util.Date;
+
+import com.hzs.common.core.web.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ *
+ *
+ *
+ * @author hzs
+ * @since 2025-10-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("BD_AREA_NEW")
+@KeySequence("BD_AREA_NEW_SEQ")
+public class BdAreaNew extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableField("PK_ID")
+ @TableId(type = IdType.INPUT)
+ private Integer pkId;
+
+ @TableField("NAME")
+ private String name;
+
+ @TableField("CODE")
+ private String code;
+
+ @TableField("PARENT")
+ private Long parent;
+
+ @TableField("ENABLE_STATE")
+ private Integer enableState;
+
+ @TableField("BIND_NUM")
+ private Integer bindNum;
+
+ @TableField("LAST_SYNC_TIME")
+ private Date lastSyncTime;
+
+ @TableField("SYNC_STATUS")
+ private String syncStatus;
+
+
+
+}
diff --git a/bd-third/src/main/java/com/hzs/third/job/MapJob.java b/bd-third/src/main/java/com/hzs/third/job/MapJob.java
new file mode 100644
index 00000000..a5cd8ba4
--- /dev/null
+++ b/bd-third/src/main/java/com/hzs/third/job/MapJob.java
@@ -0,0 +1,52 @@
+package com.hzs.third.job;
+
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.hzs.common.core.domain.R;
+import com.hzs.common.core.web.domain.AjaxResult;
+import com.hzs.system.base.IBdAreaNewServiceApi;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.*;
+
+@Slf4j
+@RestController
+@RequestMapping("test-map")
+public class MapJob {
+
+ private static final String AK = "k5I8XpHFt78QaQ8GHclQ3wEN57XlvErC";
+
+ private static final String API_URL = "https://api.map.baidu.com/api_region_search/v1/";
+
+ @DubboReference(timeout = 60000)
+ IBdAreaNewServiceApi iBdAreaNewServiceApi;
+
+ @RequestMapping("map-job")
+ public AjaxResult map() {
+
+ Map params = new HashMap<>();
+ params.put("ak", AK);
+ params.put("keyword", "全国");
+ params.put("extensions_code", "1");
+ params.put("sub_admin", "3");
+
+ String resultStr = HttpUtil.get(API_URL, params);
+ JSONObject result = JSONUtil.parseObj(resultStr);
+ if (result.getInt("status") != 0) {
+ log.error("百度地图API请求失败: {}", resultStr);
+ return AjaxResult.error();
+ }
+ // 对行政区划进行处理
+ R> R = iBdAreaNewServiceApi.upAreaDate(result);
+ if (R.isSuccess()) {
+ return AjaxResult.success();
+ }
+ return AjaxResult.error();
+ }
+
+}
diff --git a/code-util/src/main/resources/mapper/com.hzs.common.domain/BdAreaNewMapper.xml b/code-util/src/main/resources/mapper/com.hzs.common.domain/BdAreaNewMapper.xml
new file mode 100644
index 00000000..06671225
--- /dev/null
+++ b/code-util/src/main/resources/mapper/com.hzs.common.domain/BdAreaNewMapper.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CREATION_TIME,
+ MODIFIED_TIME,
+ DEL_FLAG,
+ PK_COUNTRY,
+ PK_CREATOR,
+ PK_MODIFIED,
+ PK_ID, NAME, CODE, PARENT, ENABLE_STATE, BIND_NUM, LAST_SYNC_TIME, SYNC_STATUS
+
+
+