xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -209,6 +209,7 @@ xpTask.setTaskUrgencyLevel(dto.getTaskUrgencyLevel()); xpTask.setTaskDescription(dto.getTaskDescription()); xpTask.setTaskImage(dto.getTaskImage()); xpTask.setVehicleId(dto.getId()); XpVehicle vehicle = xpVehicleClient.queryById(xpTask.getVehicleId()).getData(); // if (vehicle!=null){ // VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class); @@ -236,7 +237,12 @@ List<Long> roleIds = list.stream().map(XpTaskRuleRole::getRoleId).collect(Collectors.toList()); R<List<XpOperationsRole>> xpOperationsRoleResult = xpOperationUserClient.getXpOperationsRoleByRoleIds(roleIds); if (CollUtil.isNotEmpty(xpOperationsRoleResult.getData())) { List<Long> userIds = xpOperationsRoleResult.getData().stream().map(XpOperationsRole::getOperationsUserId).distinct().collect(Collectors.toList()); Long fleetId = xpFleetVehicleClient.getFleetIdByVehicleId(vehicle.getId()).getData(); List<Long> ids = xpFleetOperationsClient.getOperationsIdsByFleetId(fleetId).getData(); // 根据配置的事故处理角色和事故车辆所属车队人员,确定最终的任务分配人列表(取交集) List<Long> userIds = xpOperationsRoleResult.getData().stream().filter(x -> ids.contains(x.getOperationsUserId())) .map(XpOperationsRole::getOperationsUserId) .distinct().collect(Collectors.toList()); xpTask.setHandleUserId(StringUtils.join(userIds, ",")); } // 根据事故处理限时配置设置任务截止时间 xp-robotaxi-map-boot/src/main/resources/mapper/XpPointMapper.xml
@@ -136,8 +136,8 @@ and xp.parking_time_limit = #{query.parkingTimeLimit} </if> <if test="query.pointLonAndLat != null and query.pointLonAndLat != ''"> and xp.point_lon like concat('%',#{query.pointLonAndLat},'%') or xp.point_lat like concat('%',#{query.pointLonAndLat},'%') and (xp.point_lon like concat('%',#{query.pointLonAndLat},'%') or xp.point_lat like concat('%',#{query.pointLonAndLat},'%')) </if> <if test="query.pointLon != null and query.pointLon != '' and query.pointLat != null and query.pointLat != ''"> and xp.point_lon like concat('%',#{query.pointLon},'%') xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/query/XpOrderPageQuery.java
@@ -47,4 +47,7 @@ @ApiModelProperty(value = "结束时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDate endTime; @ApiModelProperty(value = "用户ID") private Long uid; } xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -205,7 +205,14 @@ return buildEmptyOrderPage(query); } } if (StringUtils.isNotBlank(query.getNickName())) { //根据手机号查询用户信息 UcUserInfo userByMobile = userResourcesClient.getUserByMobile(query.getNickName()); if (userByMobile == null || userByMobile.getId() == null) { return buildEmptyOrderPage(query); } query.setUid(userByMobile.getId()); } // 1. 构建查询条件 LambdaQueryWrapper<XpOrder> wrapper = buildQueryWrapper(query); if (CollUtil.isNotEmpty(vehicleIdsFilter)) { @@ -348,7 +355,14 @@ } wrapper.in(XpOrder::getVehicleId, vehicleIdsFilter); } if (StringUtils.isNotBlank(query.getNickName())) { //根据手机号查询用户信息 UcUserInfo userByMobile = userResourcesClient.getUserByMobile(query.getNickName()); if (userByMobile == null || userByMobile.getId() == null) { return new ArrayList<>(); } query.setUid(userByMobile.getId()); } // 2. 查询订单列表 List<XpOrder> orderList = this.list(wrapper); @@ -392,7 +406,8 @@ wrapper.like(StringUtils.isNotBlank(query.getOrderNumber()), XpOrder::getOrderNumber, query.getOrderNumber()) .eq(Objects.nonNull(query.getFleetId()), XpOrder::getFleetId, query.getFleetId()) .eq(Objects.nonNull(query.getOrderSource()), XpOrder::getOrderSource, query.getOrderSource()) .eq(Objects.nonNull(query.getStatus()), XpOrder::getStatus, query.getStatus()); .eq(Objects.nonNull(query.getStatus()), XpOrder::getStatus, query.getStatus()) .eq(Objects.nonNull(query.getUid()), XpOrder::getAppUserId, query.getUid()); RegionCodeFilterUtil.resolveCityCodeFilter(query.getCityCode()) .ifPresent(filter -> { @@ -419,7 +434,8 @@ wrapper.like(StringUtils.isNotBlank(query.getOrderNumber()), XpOrder::getOrderNumber, query.getOrderNumber()) .eq(Objects.nonNull(query.getFleetId()), XpOrder::getFleetId, query.getFleetId()) .eq(Objects.nonNull(query.getOrderSource()), XpOrder::getOrderSource, query.getOrderSource()) .eq(Objects.nonNull(query.getStatus()), XpOrder::getStatus, query.getStatus()); .eq(Objects.nonNull(query.getStatus()), XpOrder::getStatus, query.getStatus()) .eq(Objects.nonNull(query.getUid()), XpOrder::getAppUserId, query.getUid()); RegionCodeFilterUtil.resolveCityCodeFilter(query.getCityCode()) .ifPresent(filter -> {