From 1a787ef055b0928a4dad02fc81e737e21965f70d Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 23 四月 2026 22:29:50 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 46 insertions(+), 2 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 f8e4103..b41749d 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
@@ -2,6 +2,11 @@
 
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.xiaopeng.api.dto.operation.ElectronicFenceAddDto;
 import com.xiaopeng.api.dto.operation.ElectronicFenceAreaUpdateStatusDto;
@@ -32,6 +37,7 @@
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import javax.validation.constraints.NotNull;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.Collection;
 import java.util.Collections;
@@ -199,8 +205,46 @@
                     case 1:
                         stationNumbers.setPendingLaunch(stationNumbers.getPendingLaunch() + 1);
                         break;
-                    case 2:
-                        stationNumbers.setStartingUp(stationNumbers.getStartingUp() + 1);
+                    case 2: //启动中 判断 待启动的状态 ,当前时间在 运营时间 内是启动中,否则是 待启动
+
+                        LocalDateTime now = LocalDateTime.now();
+
+                        if(xpStation.getOperationType() ==1){//运营类型 1=与运营区同步 2=自定义时间段
+                            LocalDateTime startTime = electronicFence.getEffectTime();//生效时间
+                            LocalDateTime endTime = electronicFence.getFailureTime();//失效时间
+                            if(electronicFence.getFailureType() ==1) {// 失效类型 1=永不失效 2=定时失效
+                                endTime = LocalDateTime.now().plusYears(1);
+                            }
+                            if(!now.isBefore(startTime) && !now.isAfter(endTime)){
+                                stationNumbers.setStartingUp(stationNumbers.getStartingUp() + 1);
+                            }else{
+                                stationNumbers.setPendingLaunch(stationNumbers.getPendingLaunch() + 1);
+                            }
+                        }else {
+                            //数据结构 [{"endTime": "18:00", "startTime": "05:00"}]
+                            JSONArray jsonArray = JSONObject.parseArray(xpStation.getEffectiveTimePeriod());
+
+                            boolean flag = false;
+                            for (Object object : jsonArray) {
+                                JSONObject jsonObject = (JSONObject) object;
+                                String startTimeStr = jsonObject.getString("startTime");
+                                String endTimeStr = jsonObject.getString("endTime");
+                                startTimeStr = LocalDate.now() +" "+ startTimeStr+":00";
+                                endTimeStr = LocalDate.now() + " " + endTimeStr + ":00";
+                                LocalDateTime startTime = LocalDateTimeUtil.parse(startTimeStr, DatePattern.NORM_DATETIME_PATTERN);
+                                LocalDateTime endTime = LocalDateTimeUtil.parse(endTimeStr, DatePattern.NORM_DATETIME_PATTERN);
+                                if(!now.isBefore(startTime) && !now.isAfter(endTime)){
+                                    flag = true;
+                                }else{
+                                    stationNumbers.setPendingLaunch(stationNumbers.getPendingLaunch() + 1);
+                                }
+                            }
+                            if (flag){
+                                stationNumbers.setStartingUp(stationNumbers.getStartingUp() + 1);
+                            }else{
+                                stationNumbers.setPendingLaunch(stationNumbers.getPendingLaunch() + 1);
+                            }
+                        }
                         break;
                     case 3:
                         stationNumbers.setDisabled(stationNumbers.getDisabled() + 1);

--
Gitblit v1.7.1