puzhibing
2026-03-13 96d054afcbbb3cc52f946bd3b37dd7c00dd9cb3e
增加点位状态流转逻辑
1个文件已修改
17 ■■■■■ 已修改文件
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
@@ -182,6 +182,7 @@
        query.setProhibitedAreaCountMin(null);
        query.setProhibitedAreaCountMax(null);
    }
    public static String getPinyinInitials(String chinese) {
        StringBuilder pinyinInitials = new StringBuilder();
        for (char c : chinese.toCharArray()) {
@@ -194,6 +195,7 @@
        }
        return pinyinInitials.toString();
    }
    @Override
    @Transactional
    @ShardingSphereTransactionType(TransactionType.BASE)
@@ -422,6 +424,11 @@
                    }
                }
            }
        XpElectronicFence electronicFence = this.getById(dto.getId());
        Integer status = electronicFence.getStatus();
            // 更新主表数据
            XpElectronicFence xpElectronicFence = new XpElectronicFence();
            BeanUtils.copyProperties(dto, xpElectronicFence);
@@ -620,7 +627,6 @@
            LambdaQueryWrapper<XpPoint> pointLambdaQueryWrapper = new LambdaQueryWrapper<>();
            pointLambdaQueryWrapper.in(XpPoint::getElectronicAreaId, areaIds).eq(XpPoint::getPointType, 1);
            List<XpPoint> xpPoints = xpPointMapper.selectList(pointLambdaQueryWrapper);
            List<XpPoint> updatePoints = new ArrayList<>();
            if (!xpPoints.isEmpty()) {
                List<Long> electronicAreaId = xpPoints.stream().map(XpPoint::getElectronicAreaId).distinct().collect(Collectors.toList());
                if (!electronicAreaId.isEmpty()) {
@@ -653,7 +659,13 @@
                    }
                }
            }
        //如果区域状态从停用改为启用,需将区域内的点位全部启用
        if (status ==3 && dto.getStatus() == 2 && !xpPoints.isEmpty()){
            for (XpPoint xpPoint : xpPoints) {
                xpPoint.setOperationStatus(2);
                xpPointMapper.updateById(xpPoint);
            }
        }
            return R.ok();
    }
@@ -805,6 +817,7 @@
    /**
     * 计算围栏中心点
     *
     * @param coordinates
     * @return
     */