From 40c97867e634b0c4949dfd964bf06da35fc4bd88 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 13 二月 2026 22:06:40 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java
index d7e9ce7..1e849ff 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java
@@ -8,11 +8,14 @@
import com.xiaopeng.operation.mapper.XpRegionMapper;
import com.xiaopeng.api.model.operation.XpRegion;
import com.xiaopeng.operation.service.XpRegionService;
+import com.xiaopeng.operation.vo.RegionDistrictSyncResultVO;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -64,4 +67,29 @@
redisService.setCacheList(CacheConstants.XP_REGION, result);
return result;
}
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public RegionDistrictSyncResultVO syncDistrictFromRegionAll() {
+ Long cityCount = Objects.requireNonNullElse(this.baseMapper.countCityForDistrictSync(), 0L);
+ Long candidateDistrictCount = Objects.requireNonNullElse(this.baseMapper.countCandidateDistrictForSync(), 0L);
+
+ List<XpRegion> missingDistrictList = this.baseMapper.selectMissingDistrictFromRegionAll();
+ long insertedCount = 0L;
+ if (missingDistrictList != null && !missingDistrictList.isEmpty()) {
+ this.saveBatch(missingDistrictList);
+ insertedCount = missingDistrictList.size();
+ }
+
+ redisService.deleteObject(CacheConstants.XP_REGION);
+ redisService.deleteObject(CacheConstants.XP_REGION_CITY);
+
+ RegionDistrictSyncResultVO result = new RegionDistrictSyncResultVO();
+ result.setCityCount(cityCount);
+ result.setCandidateDistrictCount(candidateDistrictCount);
+ result.setInsertedCount(insertedCount);
+ result.setSkippedCount(Math.max(candidateDistrictCount - insertedCount, 0));
+ result.setMessage("区级数据同步完成");
+ return result;
+ }
}
--
Gitblit v1.7.1