From 2fbb521119c611817830142f298bbabf499d8be4 Mon Sep 17 00:00:00 2001
From: yyy <1083599556@qq.com>
Date: 星期四, 23 四月 2026 13:50:42 +0800
Subject: [PATCH] 1.添加通过围栏查询场站的接口 2.围栏详情新增 点位、场站数量统计 3.班次实体类增加 字段

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java |   72 ++++++++++++++++++++++++++++++++----
 1 files changed, 64 insertions(+), 8 deletions(-)

diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java
index 4cfffde..f8e4103 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java
@@ -7,21 +7,17 @@
 import com.xiaopeng.api.dto.operation.ElectronicFenceAreaUpdateStatusDto;
 import com.xiaopeng.api.dto.operation.ElectronicFenceOperationStrategyValidateDto;
 import com.xiaopeng.api.dto.operation.ElectronicFenceUpdateDto;
-import com.xiaopeng.api.model.operation.XpElectronicFence;
-import com.xiaopeng.api.model.operation.XpElectronicFenceArea;
-import com.xiaopeng.api.model.operation.XpPoint;
-import com.xiaopeng.api.model.operation.XpRegion;
+import com.xiaopeng.api.model.operation.*;
 import com.xiaopeng.api.query.operation.ElectronicPageListQuery;
+import com.xiaopeng.api.query.operation.PointListQuery;
+import com.xiaopeng.api.query.operation.XpStationQuery;
 import com.xiaopeng.api.vo.operation.ElectronicFenceDetailVo;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.common.core.exception.ServiceException;
 import com.xiaopeng.common.core.utils.bean.BeanUtils;
 import com.xiaopeng.common.core.web.page.PageInfo;
 import com.xiaopeng.map.constant.I18nKeyConstant;
-import com.xiaopeng.map.service.XpElectronicFenceAreaService;
-import com.xiaopeng.map.service.XpElectronicFenceService;
-import com.xiaopeng.map.service.XpPointService;
-import com.xiaopeng.map.service.XpRegionService;
+import com.xiaopeng.map.service.*;
 import com.xiaopeng.map.utils.OperationStrategyIndex;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -75,6 +71,9 @@
 
     @Autowired
     private XpPointService xpPointService;
+    @Resource
+    private XpStationService xpStationService;
+
     /**
      * 查询省市管理
      */
@@ -157,6 +156,63 @@
         List<XpElectronicFenceArea> electronicFenceAreaList = xpElectronicFenceAreaService.lambdaQuery().eq(XpElectronicFenceArea::getElectronicId, id)
                 .list();
         res.setElectronicFenceAreas(electronicFenceAreaList);
+
+        //点位的总数
+        if(!electronicFenceAreaList.isEmpty()){
+            PointListQuery query1 = new PointListQuery();
+            query1.setElectronicAreaIds(electronicFenceAreaList.stream().map(XpElectronicFenceArea::getId).collect(Collectors.toList()));
+            List<XpPoint> pointList = xpPointService.findList(query1);
+
+            ElectronicFenceDetailVo.Numbers pointsNumbers = new ElectronicFenceDetailVo.Numbers();
+            if(CollUtil.isNotEmpty(pointList)){
+                for (XpPoint xpPoint : pointList) {
+                    if (xpPoint.getOperationStatus() == 1) {
+                        pointsNumbers.setPendingLaunch(pointsNumbers.getPendingLaunch() + 1);
+                    } else if (xpPoint.getOperationStatus() == 2) {
+                        pointsNumbers.setStartingUp(pointsNumbers.getStartingUp() + 1);
+                    }
+                    else if (xpPoint.getOperationStatus() == 3) {
+                        pointsNumbers.setExpired(pointsNumbers.getExpired() + 1);
+                    }
+                    else if (xpPoint.getOperationStatus() == 4) {
+                        pointsNumbers.setDisabled(pointsNumbers.getDisabled() + 1);
+                    }
+                }
+                pointsNumbers.setTotalNum(pointList.size());
+            }
+            res.setPointsNumbers(pointsNumbers);
+        }
+
+        //场站总数
+        XpStationQuery query2 = new XpStationQuery();
+        query2.setElectronicId(id);
+        List<XpStation> stationList = xpStationService.findList(query2);
+
+        ElectronicFenceDetailVo.Numbers stationNumbers = new ElectronicFenceDetailVo.Numbers();
+        if(CollUtil.isNotEmpty(stationList)){
+            //status 场站状态 0=草稿 1=待启用 2=启用中 3=已停用 4=失效
+            for (XpStation xpStation : stationList) {
+                switch (xpStation.getStatus()) {
+                    case 0:
+                        stationNumbers.setDraft(stationNumbers.getDraft() + 1);
+                        break;
+                    case 1:
+                        stationNumbers.setPendingLaunch(stationNumbers.getPendingLaunch() + 1);
+                        break;
+                    case 2:
+                        stationNumbers.setStartingUp(stationNumbers.getStartingUp() + 1);
+                        break;
+                    case 3:
+                        stationNumbers.setDisabled(stationNumbers.getDisabled() + 1);
+                        break;
+                    case 4:
+                        stationNumbers.setExpired(stationNumbers.getExpired() + 1);
+                        break;
+                }
+            }
+            stationNumbers.setTotalNum(stationList.size());
+        }
+        res.setStationNumbers(stationNumbers);
         return R.ok(res);
     }
 

--
Gitblit v1.7.1