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