From 98d664b2ebd508d170283312eccdc99b7d6a40ef Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 01 五月 2026 01:32:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0
---
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java | 36 ++++++++++++++++++------------------
1 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java
index e6ddc72..5cd2753 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java
@@ -47,6 +47,7 @@
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
+import org.springframework.data.geo.Circle;
import org.springframework.data.geo.Distance;
import org.springframework.data.geo.Metrics;
import org.springframework.data.mongodb.core.MongoTemplate;
@@ -358,30 +359,29 @@
@ApiOperation(value = "可改派的运维人员列表", tags = {"管理后台-运维执行-任务工单-待改派工单"})
@PostMapping("/api/v1/task/reassign/availableUsers")
- public R<PageInfo<XpOperationsUserWithRoleVO>> availableReassignUsers(@RequestBody OptionalUsersPageListQuery query) {
+ public R<PageInfo<XpOperationsUserWithRoleVO>> availableReassignUsers(@RequestBody OptionalUsersPageListQuery query1) {
+ XpTask task = xpTaskService.getById(query1.getTaskId());
+ // 找到中心点
+ GeoJsonPoint geoJsonPoint = new GeoJsonPoint(task.getVehicleLon().doubleValue(), task.getVehicleLat().doubleValue());
+ // 构造半径
+ Distance distanceR = new Distance(10, Metrics.KILOMETERS);
+ // 画圆
+ Circle circle = new Circle(geoJsonPoint, distanceR);
+ Query query = Query.query(new Criteria().andOperator(
+ Criteria.where("location").withinSphere(circle)
+ ));
+ List<XpOperationsUserPositionDTO> vehiclePositions = mongoTemplate.find(query, XpOperationsUserPositionDTO.class);
+ Map<Long, Double> disMap = vehiclePositions.stream().collect(Collectors.toMap(XpOperationsUserPositionDTO::getId, XpOperationsUserPositionDTO::getDistance));
- XpTask task = xpTaskService.getById(query.getTaskId());
- GeoJsonPoint point =
- new GeoJsonPoint(
- task.getVehicleLon().doubleValue(),
- task.getVehicleLat().doubleValue()
- );
- Query q = new Query(Criteria.where("location").near(point)
- .maxDistance(new Distance(10, Metrics.KILOMETERS).getNormalizedValue()));
- q.with(Sort.by(Sort.Direction.ASC, "dis"));
-
- List<XpOperationsUserPositionDTO> up = mongoTemplate.find(q, XpOperationsUserPositionDTO.class);
-
- Map<Long, Double> disMap = up.stream().collect(Collectors.toMap(XpOperationsUserPositionDTO::getId, XpOperationsUserPositionDTO::getDistance));
// 查询车队下面面所有人员id和up求交集
- List<Long> data = xpFleetClient.idsByFleetName(query.getFleet()).getData();
+ List<Long> data = xpFleetClient.idsByFleetName(query1.getFleet()).getData();
- List<Long> ids = up.stream().map(XpOperationsUserPositionDTO::getId)
+ List<Long> ids = vehiclePositions.stream().map(XpOperationsUserPositionDTO::getId)
.filter(e -> data == null || data.isEmpty() || data.contains(e))
.collect(Collectors.toList());
- query.setIds(ids);
- PageInfo<XpOperationsUserWithRoleVO> ret = operationUserClient.listByQueryIds(query).getData();
+ query1.setIds(ids);
+ PageInfo<XpOperationsUserWithRoleVO> ret = operationUserClient.listByQueryIds(query1).getData();
// 设置距离,然后排序
--
Gitblit v1.7.1