puzhibing
2026-03-04 d9142e583e71cea79dc4074f85712e83d941d88f
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpElectronicFenceServiceImpl.java
@@ -27,6 +27,7 @@
import com.xiaopeng.operation.mapper.XpElectronicFenceMapper;
import com.xiaopeng.operation.mapper.XpPointMapper;
import com.xiaopeng.operation.mapper.XpRegionMapper;
import com.xiaopeng.operation.service.IXpElectronicFenceAreaService;
import com.xiaopeng.operation.service.IXpElectronicFenceService;
import com.xiaopeng.operation.utils.GDMapGeocodingUtil;
import com.xiaopeng.operation.utils.PolygonOverlapService;
@@ -70,6 +71,9 @@
    private XpRegionMapper xpRegionMapper;
    @Autowired
    private GDMapGeocodingUtil gdMapGeocodingUtil;
    @Resource
    private IXpElectronicFenceAreaService xpElectronicFenceAreaService;
    @Override
    public PageInfo<XpElectronicFence> pageList(ElectronicPageListQuery query) {
@@ -389,9 +393,7 @@
            dto.setCityCode(cityCode);
            xpElectronicFence.setCityCode(dto.getCityCode());
            this.updateById(xpElectronicFence);
            // 删除旧的区域数据,然后保存新的区域数据
            xpElectronicFenceAreaMapper.delete(new LambdaQueryWrapper<XpElectronicFenceArea>()
                    .eq(XpElectronicFenceArea::getElectronicId, dto.getId()));
            if (xpElectronicFence.getStatus() == 2) {
                // 设置电子围栏ID并保存区域数据
                for (XpElectronicFenceArea area : updatedElectronicFenceAreas) {
@@ -399,7 +401,7 @@
                    area.setAreaStatus(1);
                    area.setArea(area.getArea());
                    area.setCityCode(dto.getCityCode());
                    xpElectronicFenceAreaMapper.insert(area);
                    xpElectronicFenceAreaService.saveOrUpdate(area);
                }
            }else{
                // 设置电子围栏ID并保存区域数据
@@ -408,7 +410,7 @@
                    area.setAreaStatus(2);
                    area.setArea(area.getArea());
                    area.setCityCode(dto.getCityCode());
                    xpElectronicFenceAreaMapper.insert(area);
                    xpElectronicFenceAreaService.saveOrUpdate(area);
                }
            }
            if (dto.getStatus() == 1 || dto.getStatus() == 2) {