From f161eb229c5fb0f82c2dfd26c6440dbf84cba1ca Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 24 四月 2026 17:05:52 +0800
Subject: [PATCH] [feat] 杂项优化,可改派人员排序,车队信息模糊查询等,活动通知方式
---
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java | 45 +++++++++++++++++++++++++++++++--------------
1 files changed, 31 insertions(+), 14 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 fd6cd71..54ca44f 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
@@ -5,6 +5,7 @@
import com.alibaba.fastjson2.JSONObject;
import com.xiaopeng.api.dto.account.XpOperationsUserPositionDTO;
import com.xiaopeng.api.feignClient.account.XpOperationUserClient;
+import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
import com.xiaopeng.api.model.account.XpOperationsUser;
@@ -12,8 +13,10 @@
import com.xiaopeng.api.model.maintenance.XpTask;
import com.xiaopeng.api.model.maintenance.XpTaskRule;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
-import com.xiaopeng.api.vo.TaskVO;
+import com.xiaopeng.api.query.account.OptionalUsersPageListQuery;
+import com.xiaopeng.api.vo.XpTaskVO;
import com.xiaopeng.api.vo.account.LoginOperationUser;
+import com.xiaopeng.api.vo.account.XpOperationsUserWithRoleVO;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.page.PageInfo;
@@ -305,35 +308,49 @@
@ApiOperation(value = "待改派的工单分页列表", tags = {"管理后台-运维执行-任务工单-待改派工单"})
@PostMapping("/api/v1/task/reassign/pageList")
- public R<PageInfo<TaskVO>> reassignTaskPageList(@RequestBody TaskPageListQuery query) {
+ public R<PageInfo<XpTaskVO>> reassignTaskPageList(@RequestBody TaskPageListQuery query) {
return R.ok(xpTaskService.reassignTaskPageList(query));
}
- @ApiOperation(value = "可改派的运维人员列表", tags = {"管理后台-运维执行-任务工单-待改派工单"})
- @GetMapping("/api/v1/task/reassign/availableUsers")
- public R<List<XpOperationsUser>> availableReassignUsers(@RequestParam Long taskId) {
+ @Resource
+ XpFleetClient xpFleetClient;
- XpTask task = xpTaskService.getById(taskId);
+ @ApiOperation(value = "可改派的运维人员列表", tags = {"管理后台-运维执行-任务工单-待改派工单"})
+ @PostMapping("/api/v1/task/reassign/availableUsers")
+ public R<PageInfo<XpOperationsUserWithRoleVO>> availableReassignUsers(@RequestBody OptionalUsersPageListQuery query) {
+
+ XpTask task = xpTaskService.getById(query.getTaskId());
GeoJsonPoint point =
new GeoJsonPoint(
task.getVehicleLon().doubleValue(),
task.getVehicleLat().doubleValue()
);
- Query query = new Query(Criteria.where("location").near(point)
+ Query q = new Query(Criteria.where("location").near(point)
.maxDistance(new Distance(10, Metrics.KILOMETERS).getNormalizedValue()));
- query.with(Sort.by(Sort.Direction.ASC, "dis"));
- List<Long> ids = mongoTemplate.find(query, XpOperationsUserPositionDTO.class)
- .stream().map(XpOperationsUserPositionDTO::getId).collect(Collectors.toList());
- return R.ok(operationUserClient.listByIds(ids).getData());
+ q.with(Sort.by(Sort.Direction.ASC, "dis"));
+
+ List<XpOperationsUserPositionDTO> up = mongoTemplate.find(q, XpOperationsUserPositionDTO.class);
+
+ // 查询车队下面面所有人员id和up求交集
+ List<Long> data = xpFleetClient.idsByFleetName(query.getFleet()).getData();
+
+ List<Long> ids = up.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();
+
+ return R.ok(ret);
}
@Resource
private XpOperationUserClient operationUserClient;
@ApiOperation(value = "改派详情", tags = {"管理后台-运维执行-任务工单-待改派工单"})
- @GetMapping("/api/v1/task/reassign/detail")
- public R<XpTask> reassignDetail(@RequestParam Long taskId) {
- return R.ok(xpTaskService.getById(taskId));
+ @GetMapping("/api/v1/task/detail")
+ public R<XpTaskVO> reassignDetail(@RequestParam Long taskId) {
+ return R.ok(xpTaskService.detail(taskId));
}
@ApiOperation(value = "执行保险年检检测定时任务", tags = {"定时任务"})
--
Gitblit v1.7.1