From 19787c0b4f5f29026c1790bbb043b9186cdd0e11 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 28 四月 2026 14:52:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceAreaServiceImpl.java |   54 ++++++------------------------------------------------
 1 files changed, 6 insertions(+), 48 deletions(-)

diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceAreaServiceImpl.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceAreaServiceImpl.java
index 531a881..6e8b644 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceAreaServiceImpl.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceAreaServiceImpl.java
@@ -36,6 +36,7 @@
 import com.xiaopeng.map.vo.WalkTimeVo;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.data.geo.Point;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
@@ -86,6 +87,9 @@
     private GDMapGeocodingUtil gdMapGeocodingUtil;
     @Autowired
     private XpPointService xpPointService;
+    @Lazy
+    @Autowired
+    private BootCommonService bootCommonService;
 
 
 
@@ -126,7 +130,7 @@
             if(xpElectronicFence.getFailureType() == 2){
                 JSONArray jsonArray = JSONArray.parseArray(operationStrategy);
                 if(!jsonArray.isEmpty()){
-                    Boolean inOperationTime = isInOperationTime(operationStrategy);
+                    Boolean inOperationTime = bootCommonService.getFenceOperation(operationStrategy);
                     if(!inOperationTime){
                         continue;
                     }
@@ -180,53 +184,7 @@
     }
 
 
-    /**
-     * 是否在运营内
-     * @param operationStrategy 规则json字符串
-     * @return
-     */
-    private Boolean isInOperationTime(String operationStrategy) {
-        JSONArray jsonArray = JSONArray.parseArray(operationStrategy);
-        Integer holidayToday = holidayUtil.isHolidayToday();
-        for (Object o : jsonArray) {
-            JSONObject jsonObject =JSONObject.parseObject(o.toString());
-            String type = jsonObject.getString("type");
-            if(type.equals(holidayToday.toString())){
-                JSONArray time = jsonObject.getJSONArray("time");
-                // 判断当前时间 是否在time时间段中
-                for (Object object : time) {
-                    String[] timeArray = object.toString().split("-");
-                    String startTime = timeArray[0];
-                    String endTime = timeArray[1];
-                    boolean currentTimeInRange = DateUtils.isCurrentTimeInRange(startTime, endTime);
-                    if(currentTimeInRange){
-                        return true;
-                    }
-                }
-            }else if(type.equals("3")){
-                // 判断是什么类型 0每天  1-7 想起
-                String typeStr = jsonObject.getString("typeStr");
-                // 查看今天周几
-                Integer week = DateUtils.getWeek();
-                // 包含每天 或者  包含当天
-                if(typeStr.contains("0") || typeStr.contains(week.toString())){
-                    JSONArray time = jsonObject.getJSONArray("time");
-                    // 判断当前时间 是否在time时间段中
-                    for (Object object : time) {
-                        String[] timeArray = object.toString().split("-");
-                        String startTime = timeArray[0];
-                        String endTime = timeArray[1];
-                        boolean currentTimeInRange = DateUtils.isCurrentTimeInRange(startTime, endTime);
-                        if(currentTimeInRange){
-                            return true;
-                        }
-                    }
-                }
 
-            }
-        }
-        return false;
-    }
 
 
 
@@ -260,7 +218,7 @@
                         String operationStrategy = electronicFence.getOperationStrategy();
                         Boolean inOperationTime = true;
                         if(electronicFence.getFailureType() == 2){
-                            inOperationTime = isInOperationTime(operationStrategy);
+                            inOperationTime = bootCommonService.getFenceOperation(operationStrategy);
                         }
                         XpElectronicFenceArea electronicFenceArea = this.getById(Long.valueOf(polygon.getAreaId()));
                         if(inOperationTime && null != electronicFenceArea && !electronicFenceArea.getDeleted()){

--
Gitblit v1.7.1