From c5279e7df935cd9fd94cc355729b3524b6a486ec Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期六, 28 二月 2026 16:11:33 +0800
Subject: [PATCH] bug修改

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java |   34 ++++++++++++++++++++++++----------
 1 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
index f9f6768..5a95b2e 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -18,6 +18,7 @@
 import com.xiaopeng.api.model.account.XpOperationsUserNotification;
 import com.xiaopeng.api.model.maintenance.*;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
+import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
 import com.xiaopeng.common.core.constant.AliPushTypeConstant;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.common.core.enums.NotificationTypeEnum;
@@ -45,9 +46,13 @@
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -95,6 +100,8 @@
     private XpVehicleClient xpVehicleClient;
     @Autowired
     private XpTaskRuleMapper xpTaskRuleMapper;
+    @Autowired
+    private MongoTemplate mongoTemplate;
     @Autowired
     private XpAliPushMessageClient xpAliPushMessageClient;
     @Autowired
@@ -165,11 +172,18 @@
         xpTask.setTaskTypeId(dto.getTaskTypeId());
         xpTask.setTaskUrgencyLevel(dto.getTaskUrgencyLevel());
         xpTask.setTaskDescription(dto.getTaskDescription());
-        // todo 获取车辆当前位置
-//        xpTask.setVehicleLocation();
-       xpTask.setVehicleId(dto.getId());
-//        xpTask.setVehicleLon();
-//        xpTask.setVehicleLat();
+        XpVehicle vehicle = xpVehicleClient.queryById(xpTask.getVehicleId()).getData();
+        if (vehicle!=null){
+            VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
+            if (vehiclePosition != null) {
+                double x = vehiclePosition.getPoint().getX();
+                double y = vehiclePosition.getPoint().getY();
+                xpTask.setVehicleLon(new BigDecimal(x));
+                xpTask.setVehicleLat(new BigDecimal(y));
+            }
+        }
+
+        xpTask.setVehicleId(dto.getId());
         xpTask.setReportUserId(xpOperationsUser.getId());
         xpTask.setReportTime(LocalDateTime.now());
         xpTask.setStatus(0);
@@ -195,8 +209,7 @@
             R<List<XpOperationsUser>> xpOperationUserResult = xpOperationUserClient.listByIds(userIds);
             List<XpOperationsUser> data = xpOperationUserResult.getData();
             if (CollUtil.isNotEmpty(data)) {
-                R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(dto.getId());
-                XpVehicle vehicle = xpVehicleR.getData();
+
                 String plateNumber = Objects.nonNull(vehicle) ? vehicle.getPlateNumber() : "";
                 // 车辆${车牌号}在${车辆位置信息}发生了紧急事故,请在${到达现场限时}内到达现场!${APP链接}
                 String content = String.format("车辆%s在%s发生了紧急事故,请在%d分钟内到达现场!", plateNumber, xpTask.getVehicleLocation(), taskRule.getProcessingTimeLimit());
@@ -221,6 +234,7 @@
 
     /**
      * 推送阿里云通知
+     *
      * @param data
      * @param content
      * @param xpTask
@@ -877,7 +891,7 @@
                         taskManagementPageListVO.setTaskTypeName("");
                         break;
                 }
-            }else{
+            } else {
                 StringBuilder taskTypeName = new StringBuilder();
                 String[] typeIds = taskManagementPageListVO.getTaskTypeId().split(",");
                 List<XpErrorType> xpErrorTypes = errorTypeMapper.selectList(new LambdaQueryWrapper<XpErrorType>()
@@ -955,7 +969,7 @@
             task.setVehicleLat(dto.getVehicleLat());
             task.setReportUserId(reportUserId);
             task.setReportTime(LocalDateTime.now());
-            saveTask.add( task);
+            saveTask.add(task);
         }
         this.saveBatch(saveTask);
 
@@ -1265,7 +1279,7 @@
             }
             XpTaskHandleDetail xpTaskHandleDetail = xpTaskHandleDetailMapper.selectOne(new LambdaQueryWrapper<XpTaskHandleDetail>()
                     .eq(XpTaskHandleDetail::getTaskId, id));
-            if (xpTaskHandleDetail != null){
+            if (xpTaskHandleDetail != null) {
                 res.setDeathCount(xpTaskHandleDetail.getDeathCount());
                 res.setSevereCount(xpTaskHandleDetail.getSevereCount());
                 res.setMinorCount(xpTaskHandleDetail.getMinorCount());

--
Gitblit v1.7.1