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