From 41ecbff2b97d26ce821edf6d4cb050e8f9fdf6f3 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 09 五月 2026 09:39:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0
---
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java | 31 ++++++++++++++++++++-----------
1 files changed, 20 insertions(+), 11 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 1ef432c..e4d9b35 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
@@ -16,7 +16,6 @@
import com.xiaopeng.api.feignClient.account.SysUserClient;
import com.xiaopeng.api.feignClient.account.XpOperationUserClient;
import com.xiaopeng.api.feignClient.account.XpOperationUserNotificationClient;
-import com.xiaopeng.api.feignClient.map.XpMapClient;
import com.xiaopeng.api.feignClient.operation.SmsClient;
import com.xiaopeng.api.feignClient.pushMessage.WebSocketMessageClient;
import com.xiaopeng.api.feignClient.pushMessage.XpAliPushMessageClient;
@@ -68,6 +67,7 @@
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.util.Strings;
import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.redisson.api.RLock;
@@ -75,7 +75,6 @@
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.geo.Point;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.query.Criteria;
@@ -296,6 +295,9 @@
List<Long> userIds = xpOperationsRoleResult.getData().stream().filter(x -> ids.contains(x.getOperationsUserId()))
.map(XpOperationsRole::getOperationsUserId)
.distinct().collect(Collectors.toList());
+ if(CollUtil.isEmpty(userIds)){
+ throw new ServiceException("未配置车队运维人员");
+ }
//获取首选人的实时定位,计算每个人到事故车辆位置的导航距离
List<Operations> operationsList = new ArrayList<>();
for (Long userId : userIds) {
@@ -1476,8 +1478,13 @@
}
List<XpTask.Reject> rejects = Optional.ofNullable(task.getExcluded()).orElse(new ArrayList<>());
- XpTask.Reject reject = task.reject(msg);
- rejects.add(reject);
+ if(msg != null && Strings.isNotBlank(task.getHandleUserId())) {
+ XpTask.Reject reject = task.reject(msg);
+ rejects.add(reject);
+ List<Long> id = Collections.singletonList(Long.parseLong(task.getHandleUserId()));
+ String roleName = xpOperationUserClient.listByIdsWithRole(id).getData().get(0).getRoleName();
+ reject.setRejectUserRoleName(roleName);
+ }
task.setExcluded(rejects);
task.setReassignmentStatus(1);
task.setStatus(4);
@@ -1493,9 +1500,9 @@
.map(String::valueOf).collect(Collectors.joining(","));
-// VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
- VehiclePosition vehiclePosition = new VehiclePosition();
- vehiclePosition.setPoint(new GeoJsonPoint(103.12615621, 30.264561));
+ VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
+// VehiclePosition vehiclePosition = new VehiclePosition();
+// vehiclePosition.setPoint(new GeoJsonPoint(103.12615621, 30.264561));
String handlerUser = chooseNearestAvailableOperationsUser(belongUserIds, vehiclePosition);
task.setHandleUserId(handlerUser);
if(handlerUser == null) {
@@ -1505,9 +1512,6 @@
}
updateById(task);
if(StringUtils.isNotBlank(task.getHandleUserId())){
- List<Long> id = Collections.singletonList(Long.parseLong(task.getHandleUserId()));
- String roleName = xpOperationUserClient.listByIdsWithRole(id).getData().get(0).getRoleName();
- reject.setRejectUserRoleName(roleName);
sendAccidentNotificationAsync(task, vehicle.getPlateNumber(), taskRule.getProcessingTimeLimit());
}
}
@@ -1563,7 +1567,7 @@
task.setCreateTime(LocalDateTime.now());
this.save(task);
// 异步发送消息通知
- sendAccidentNotificationAsync(task, vehicle.getPlateNumber(), taskRule.getProcessingTimeLimit());
+ sendAccidentNotificationAsync(task, vehicle.getPlateNumber(), taskRule.getProcessingTimeLimit());
}
@Override
@@ -1718,6 +1722,7 @@
}
@Override
+ @Transactional
public void saveTask(SaveErrorTaskDto dto, Long reportUserId) {
List<XpTask> saveTask = new ArrayList<>();
@@ -1748,6 +1753,10 @@
}
this.saveBatch(saveTask);
+ for (XpTask task : saveTask) {
+
+ reassign(task.getId(),null);
+ }
}
@Override
--
Gitblit v1.7.1