无关风月
2026-03-02 30da9e2a28cf8f9d31c1cfa010595ed37c4f530a
bug修改
9个文件已修改
124 ■■■■■ 已修改文件
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/constant/I18nKeyConstant.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/resources/i18n/messages.properties 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/resources/i18n/messages_en_US.properties 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/resources/i18n/messages_zh_CN.properties 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/resources/i18n/messages.properties 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/resources/i18n/messages_en_US.properties 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/resources/i18n/messages_zh_CN.properties 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/constant/I18nKeyConstant.java
@@ -26,7 +26,7 @@
    // 添加电子围栏失败
    String ADD_ELECTRONIC_ERROR = "add.electronic.error";
    // 区域重叠
    String AREA_OVERLAP = "area.overlap";
    String AREA_OVERLAP_ERROR = "area.overlap.error";
    // 围栏构成不存在
    String FENCE_STRUCTURE_NOT_EXIST = "fence.structure.not.exist";
    // 围栏不存在
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java
@@ -48,7 +48,8 @@
    @PostMapping("/listElectronicFenceArea")
    public R<List<XpElectronicFenceArea>> listElectronicFenceArea() {
        // 获取所有启用的电子围栏
        List<XpElectronicFence> electronicFences = xpElectronicFenceService.lambdaQuery().eq(XpElectronicFence::getStatus, 2).list();
        List<XpElectronicFence> electronicFences = xpElectronicFenceService.lambdaQuery()
                .eq(XpElectronicFence::getStatus, 2).list();
        List<Long> electronicFenceIds = electronicFences.stream().map(XpElectronicFence::getId).collect(Collectors.toList());
        if (electronicFenceIds.isEmpty()) {
            return R.ok(new ArrayList<XpElectronicFenceArea>());
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
@@ -11,7 +11,6 @@
import com.xiaopeng.api.model.map.XpGeoFencingProhibitedPolygon;
import com.xiaopeng.api.model.operation.*;
import com.xiaopeng.api.query.operation.ElectronicPageListQuery;
import com.xiaopeng.api.vo.operation.XpElectronicFenceVo;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.exception.ServiceException;
import com.xiaopeng.common.core.utils.DateUtils;
@@ -41,7 +40,6 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -277,10 +275,10 @@
    @Override
    public R editElectronic(ElectronicFenceUpdateDto dto) {
        try {
            // 获取现有的运营区域(areaType=1),排除当前正在编辑的电子围栏
            LambdaQueryWrapper<XpElectronicFenceArea> xpElectronicFenceAreaLambdaQueryWrapper = new LambdaQueryWrapper<>();
            xpElectronicFenceAreaLambdaQueryWrapper.eq(XpElectronicFenceArea::getAreaType, 1);
            xpElectronicFenceAreaLambdaQueryWrapper.eq(XpElectronicFenceArea::getAreaStatus, 1);
            xpElectronicFenceAreaLambdaQueryWrapper.ne(XpElectronicFenceArea::getElectronicId, dto.getId());
            List<XpElectronicFenceArea> existingOperationAreas = xpElectronicFenceAreaMapper.selectList(xpElectronicFenceAreaLambdaQueryWrapper);
@@ -294,10 +292,13 @@
                        if (polygonOverlapService.checkPolygonOverlap(
                                updatedArea.getFencePoints(),
                                existingArea.getFencePoints())) {
                           List<String> res = new ArrayList<>();
                            res.add(updatedArea.getAreaName());
                            res.add(existingArea.getAreaName());
                            throw new ServiceException(
                                    "运营区域{}与现有运营区域{}发生重叠",
                                    I18nKeyConstant.AREA_OVERLAP,
                                    new Object[]{existingArea.getAreaName(), existingArea.getAreaName()}
                                    I18nKeyConstant.AREA_OVERLAP_ERROR,
                                    res.toArray()
                            );
                        }
                    }
@@ -488,10 +489,7 @@
            }
            return R.ok();
        } catch (Exception e) {
            log.error("编辑电子围栏失败", e);
            throw new ServiceException("编辑电子围栏失败", I18nKeyConstant.EDIT_ELECTRONIC_ERROR);
        }
    }
    /**
xp-robotaxi-map-boot/src/main/resources/i18n/messages.properties
@@ -1,3 +1,36 @@
# 中文
no.walking.route.found=no.walking.route.found
welcome.message=欢迎来到我们的应用程序!
city.information.does.not.exist=城市信息不存在
no.current.region=当前区域未开通服务
system.exception=系统异常
to.work=当前上下车点距离过近,建议步行前往
wait.time=当前区域正在等待中,请耐心等待
welcome.message=欢迎来到我们的应用程序!
edit.electronic.error=编辑电子围栏失败;
add.electronic.error=添加电子围栏失败;
area.overlap.error=运营区域{0}与现有运营区域{1}发生重叠;
fence.structure.not.exist=围栏构成不存在
fence.not.exist=围栏不存在
fence.status.cannot.copied=围栏启用状态不可复制;
order.create.fail=订单创建失败
open.city.exists=该城市已存在
pricing.exists=该车型/渠道/城市的定价已存在
pricing.not.exist=定价不存在
pricing.json.invalid=价格配置JSON格式不正确
pricing.rule.empty=价格规则不能为空
no.current.point=?????????
path.not.found=路径不存在
has.unpaid.order=有正在进行的订单
cruise.plan.name.empty=计划名称不能为空
cruise.plan.id.empty=巡游计划ID不能为空
cruise.plan.name.exists=计划名称已存在
cruise.plan.not.exist=巡游计划不存在
cruise.plan.point.empty=关联点位列表不能为空
cruise.plan.vehicle.empty=关联车辆列表不能为空
cruise.plan.point.incomplete=点位参数不完整
cruise.plan.stop.flag.invalid=点位停车标识不合法
cruise.plan.point.duplicate=点位ID重复
cruise.plan.vehicle.incomplete=车辆参数不完整
cruise.plan.vehicle.duplicate=车辆ID重复
cruise.plan.vehicle.already.bound=车辆已关联其他巡游计划
cruise.plan.add.fail=新增巡游计划失败
cruise.plan.edit.fail=编辑巡游计划失败
xp-robotaxi-map-boot/src/main/resources/i18n/messages_en_US.properties
@@ -1,3 +1,29 @@
# English (US)
no.walking.route.found=No walking route found
welcome.message=Welcome to our application!
city.information.does.not.exist=City information does not exist
no.current.region=The service is not currently available in the current region
system.exception=System Error
to.work=The current pick-up and drop-off points are too close to each other. It is recommended to walk there
wait.time=The current area is in a waiting state. Please be patient
welcome.message=Welcome to our application!
edit.electronic.error=Failed to edit the electronic fence
add.electronic.error=Failed to add electronic fence;
area.overlap.error=The operational area {0} overlaps with the existing operational area {1};
fence.structure.not.exist=The fence composition does not exist\
fence.status.cannot.copied=The enabled state of the fence cannot be copied;
fence.not.exist=The fence does not exist.
order.create.fail=Order creation failed
open.city.exists=This city already exists
pricing.exists=Pricing for this vehicle model/channel/city already exists
pricing.not.exist=Pricing does not exist
pricing.json.invalid=Invalid JSON format for pricing configuration
pricing.rule.empty=Price rule cannot be empty
no.current.point=The current location is not open for service
path.not.found=Path does not exist
has.unpaid.order=There are ongoing orders
cruise.plan.name.exists=The name of the plan already exists
cruise.plan.point.incomplete=The point parameters are incomplete
cruise.plan.stop.flag.invalid=The parking sign at the location is invalid.
cruise.plan.point.duplicate=The point ID is duplicated
cruise.plan.vehicle.duplicate=Duplicate vehicle ID
cruise.plan.vehicle.already.bound=Vehicle [{0}] has been associated with other cruising plans
cruise.plan.add.fail=The new cruise plan failed
xp-robotaxi-map-boot/src/main/resources/i18n/messages_zh_CN.properties
@@ -1,3 +1,29 @@
# 中文
no.walking.route.found=未找到步行路线
welcome.message=欢迎来到我们的应用程序!
city.information.does.not.exist=城市信息不存在
no.current.region=当前区域未开通服务
system.exception=系统异常
to.work=当前上下车点距离过近,建议步行前往
wait.time=当前区域正在等待中,请耐心等待
welcome.message=欢迎来到我们的应用程序!
edit.electronic.error=编辑电子围栏失败;
add.electronic.error=添加电子围栏失败;
area.overlap.error=运营区域{0}与现有运营区域{1}发生重叠;
fence.structure.not.exist=围栏构成不存在
fence.not.exist=围栏不存在
fence.status.cannot.copied=围栏启用状态不可复制
order.create.fail=订单创建失败
open.city.exists=该城市已存在
pricing.exists=该车型/渠道/城市的定价已存在
pricing.not.exist=定价不存在
pricing.json.invalid=价格配置JSON格式不正确
pricing.rule.empty=价格规则不能为空
no.current.point=?????????
path.not.found=路径不存在
has.unpaid.order=有正在进行的订单
cruise.plan.name.exists=计划名称已存在
cruise.plan.point.incomplete=点位参数不完整
cruise.plan.stop.flag.invalid=点位停车标识不合法
cruise.plan.point.duplicate=点位ID重复
cruise.plan.vehicle.duplicate=车辆ID重复
cruise.plan.vehicle.already.bound=车辆[{0}]已关联其他巡游计划
cruise.plan.add.fail=新增巡游计划失败
xp-robotaxi-operation-boot/src/main/resources/i18n/messages.properties
@@ -7,7 +7,7 @@
welcome.message=欢迎来到我们的应用程序!
edit.electronic.error=编辑电子围栏失败;
add.electronic.error=添加电子围栏失败;
area.overlap=区域重叠;
area.overlap=运营区域{0}与现有运营区域{1}发生重叠;
fence.structure.not.exist=围栏构成不存在
fence.not.exist=围栏不存在
fence.status.cannot.copied=围栏启用状态不可复制;
xp-robotaxi-operation-boot/src/main/resources/i18n/messages_en_US.properties
@@ -7,7 +7,7 @@
welcome.message=Welcome to our application!
edit.electronic.error=Failed to edit the electronic fence
add.electronic.error=Failed to add electronic fence;
area.overlap=area overlap;
area.overlap=The operational area {0} overlaps with the existing operational area {1};
fence.structure.not.exist=The fence composition does not exist\
fence.status.cannot.copied=The enabled state of the fence cannot be copied;
fence.not.exist=The fence does not exist.
xp-robotaxi-operation-boot/src/main/resources/i18n/messages_zh_CN.properties
@@ -7,7 +7,7 @@
welcome.message=欢迎来到我们的应用程序!
edit.electronic.error=编辑电子围栏失败;
add.electronic.error=添加电子围栏失败;
area.overlap=区域重叠;
area.overlap=运营区域{0}与现有运营区域{1}发生重叠;
fence.structure.not.exist=围栏构成不存在
fence.not.exist=围栏不存在
fence.status.cannot.copied=围栏启用状态不可复制