From 66cf674e0f18a8bdc3dc45b080763edee910a2ab Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 21 四月 2026 14:39:29 +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 | 54 ++++++++++++++++++++++++++++--------------------------
1 files changed, 28 insertions(+), 26 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 153c4d5..fd70f2e 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
@@ -13,6 +13,7 @@
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.account.XpOperationsRoleClient;
import com.xiaopeng.api.feignClient.operation.SmsClient;
import com.xiaopeng.api.feignClient.pushMessage.WebSocketMessageClient;
import com.xiaopeng.api.feignClient.pushMessage.XpAliPushMessageClient;
@@ -26,6 +27,7 @@
import com.xiaopeng.api.model.maintenance.*;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.vo.TaskVO;
+import com.xiaopeng.api.vo.account.XpOperationsUserWithRoleVO;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import com.xiaopeng.api.vo.maintenance.TaskScheduleConstants;
import com.xiaopeng.api.vo.operation.SmsVo;
@@ -57,7 +59,6 @@
import com.xiaopeng.maintenance.utils.UUIDUtil;
import com.xiaopeng.maintenance.vo.TaskCleanDetailVO;
import com.xiaopeng.maintenance.vo.TaskDetectionDetailVO;
-import com.xiaopeng.maintenance.vo.TaskReassignDetailVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType;
@@ -121,22 +122,22 @@
@Autowired
private XpVehicleCleanMapper vehicleCleanMapper;
- @Autowired
+ @Resource
private XpOperationUserClient xpOperationUserClient;
- @Autowired
+ @Resource
private SysUserClient sysUserClient;
@Autowired
private XpTaskHandleDetailRoutineMapper xpTaskHandleDetailRoutineMapper;
- @Autowired
+ @Resource
private XpVehicleClient xpVehicleClient;
@Autowired
private XpTaskRuleMapper xpTaskRuleMapper;
@Autowired
private MongoTemplate mongoTemplate;
- @Autowired
+ @Resource
private XpAliPushMessageClient xpAliPushMessageClient;
- @Autowired
+ @Resource
private XpOperationUserNotificationClient xpOperationUserNotificationClient;
@Autowired
private IXpTaskRuleRoleService xpTaskRuleRoleService;
@@ -1389,21 +1390,34 @@
XpTask task = getById(taskId);
XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData();
XpTaskRule taskRule = xpTaskRuleService.lambdaQuery().last("limit 1").one();
- List<XpTaskRuleRole> taskRuleRole = xpTaskRuleRoleService.lambdaQuery().eq(XpTaskRuleRole::getRuleType, 9).list();
+
+ int type = 9;
+ if(task.getTaskCategory() != 2) {
+ type = Integer.parseInt(task.getTaskTypeId());
+ }
+
+ List<XpTaskRuleRole> taskRuleRole = xpTaskRuleRoleService.lambdaQuery().eq(XpTaskRuleRole::getRuleType, type).list();
+
if (Objects.isNull(taskRuleRole) || Objects.isNull(taskRule)) {
throw new ServiceException("未配置车辆事故任务分配规则");
}
- List<Long> excludedUserIds = Optional.ofNullable(task.getExcluded()).orElse(new ArrayList<>());
- excludedUserIds.addAll(Arrays.asList(task.getHandleUserId().split(",")).stream().map(Long::parseLong).collect(Collectors.toList()));
- task.setExcluded(excludedUserIds);
+
+ List<XpTask.Reject> rejects = Optional.ofNullable(task.getExcluded()).orElse(new ArrayList<>());
+ XpTask.Reject reject = task.reject(msg);
+ rejects.add(reject);
+ task.setExcluded(rejects);
+ Set<String> excludedUserIds = rejects.stream().map(XpTask.Reject::getRejectUserId).collect(Collectors.toSet());
+
Long fleetId = xpFleetVehicleClient.getFleetIdByVehicleId(vehicle.getId()).getData();
List<Long> roleIds = taskRuleRole.stream().map(XpTaskRuleRole::getRoleId).collect(Collectors.toList());
List<Long> ids = xpFleetOperationsClient.getOperationsIdsByFleetId(fleetId).getData();
String belongUserIds = xpOperationUserClient.getXpOperationsRoleByRoleIds(roleIds).getData().stream()
.map(XpOperationsRole::getOperationsUserId)
.filter(ids::contains)
- .filter(id -> !excludedUserIds.contains(id))
+ .filter(id -> !excludedUserIds.contains(id.toString()))
.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));
@@ -1413,10 +1427,11 @@
task.setStatus(4);
noticeAdministrator(task);//TODO 需要通知管理员手动处理,考虑再AliPushUtil 中给管理员发送消息
}
-
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());
}
}
@@ -1487,19 +1502,6 @@
@Override
public PageInfo<TaskVO> reassignTaskPageList(TaskPageListQuery query) {
return baseMapper.reassignTaskPageList(query);
- }
-
- @Override
- public TaskReassignDetailVO detail(Long taskId) {
- XpTask task = getById(taskId);
-
- // 根据taskId去查询XpTaskHandleDetail,
-// XpTaskHandleDetail taskHandleDetail = xpTaskHandleDetailClient.queryByTaskId(taskId).getData();
-
-
-// return baseMapper.detail(taskId);
- // todo
- return null;
}
@Value("${robotaxi.sms.app-id:1476153389173952512}")
--
Gitblit v1.7.1