From 20eb98994ee1c89eb4ef453037a48d5e357ade5c Mon Sep 17 00:00:00 2001
From: yyy <1083599556@qq.com>
Date: 星期五, 24 四月 2026 21:53:12 +0800
Subject: [PATCH] 1.围栏、点位、场站接口修改和添加 2.发送微信通知 优惠卷、活动、改派/车接单

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 51 insertions(+), 5 deletions(-)

diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java
index 23ef5f7..0760b67 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java
@@ -2,6 +2,7 @@
 
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -44,11 +45,7 @@
 import com.xiaopeng.map.utils.TimeRangeChecker;
 import com.xiaopeng.map.utils.holiday.HolidayUtil;
 import com.xiaopeng.map.utils.map.map.FastDistanceCalculator;
-import com.xiaopeng.map.vo.NearestNextVo;
-import com.xiaopeng.map.vo.NearestVo;
-import com.xiaopeng.map.vo.OrderDistanceVo;
-import com.xiaopeng.map.vo.StationDetailVo;
-import com.xiaopeng.map.vo.StationPointItemVo;
+import com.xiaopeng.map.vo.*;
 import lombok.extern.slf4j.Slf4j;
 import net.sourceforge.pinyin4j.PinyinHelper;
 import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType;
@@ -369,6 +366,12 @@
         List<XpPoint> list = this.baseMapper.pointMap(query);
         return list;
     }
+
+    @Override
+    public List<FenceAndStationVo> findListFenceAndStation(){
+        return baseMapper.findListFenceAndStation();
+    }
+
     @Override
     public List<XpPoint> findList(PointListQuery query) {
         return this.baseMapper.listAll(query);
@@ -567,6 +570,49 @@
             }
         }
         List<XpPoint> list = this.baseMapper.pageList(pageInfo,query);
+        if(CollUtil.isNotEmpty(list)){
+            /**
+             * hover在状态标签时,展示信息
+             * - 已停用:展示停用原因;比如“因所属场站 [白云机场] 已关闭,该点位同步失效”
+             * - 测试不通过:展示不通过原因
+             * - 待生效:展示生效时间
+             */
+            for (XpPoint point : list) {
+                String hoverStatusDes = "";
+                if(point.getVerificationStatus()==4){//验证状态 1=待验证、2=验证中、3=已验证 4验证失败 5待生效
+                    hoverStatusDes = (point.getRemarks() == null ?"":point.getRemarks());
+                }
+                if(point.getOperationStatus() == 3){//运营状态 1=待启用 2=启用中 3=已停用 4=已失效
+                    hoverStatusDes = (point.getRemarks()==null?"":point.getRemarks());
+                }
+                if(point.getVerificationStatus()==5 && point.getOperationStatus() == 1){
+                    if(point.getOperationType() ==  1){//运营类型 1=与运营区同步 2=自定义时间段
+                         ;
+                        //[{"name": "策略组1", "time": ["06:00-12:00", "13:00-22:59"], "type": 0, "typeStr": []},
+                        // {"name": "策略组2", "time": ["05:00-12:00", "12:00-16:00"], "type": 2, "typeStr": ""},
+                        // {"name": "策略组3", "time": ["09:00-21:59"], "type": 1, "typeStr": ""}]
+                        JSONArray electronicOperationStrategys = JSONArray.parseArray(point.getElectronicOperationStrategy());
+                        if(!electronicOperationStrategys.isEmpty()){
+                            StringJoiner joiner = new StringJoiner(";");
+                            for (Object electronicOperationStrategy : electronicOperationStrategys) {
+                                JSONObject obj = (JSONObject) electronicOperationStrategy;
+
+                                List<String> times = obj.getList("time",String.class);
+                                joiner.add((String.join(";", times)));
+                            }
+                            hoverStatusDes = joiner.toString()  ;
+                        }
+                    }else{
+                        if(StrUtil.isNotBlank(point.getEffectiveTimePeriod()) ){
+                            List<String> effectiveTimePeriods = JSONArray.parseArray(point.getEffectiveTimePeriod(), String.class);
+                            hoverStatusDes = String.join(";", effectiveTimePeriods);
+//                        hoverStatusDes = "待生效:"+point.getElectronicEffectTime().toString()  ;
+                        }
+                    }
+                }
+                point.setHoverStatusDes(hoverStatusDes);
+            }
+        }
         pageInfo.setRecords(list);
         return pageInfo;
     }

--
Gitblit v1.7.1