liujie
2026-02-28 bc8794bddfb052cddc8f618740711a6348fddf35
处理异常情况改派逻辑 解绑逻辑
2个文件已添加
2个文件已修改
99 ■■■■■ 已修改文件
xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/operation/ReassignOrderDTO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/order/XpReassignOrderClientFallbackFactory.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/order/XpReassignOrderClient.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/ReassignOrderController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/operation/ReassignOrderDTO.java
@@ -21,4 +21,15 @@
    @ApiModelProperty(value = "订单号")
    private String orderNo;
    @ApiModelProperty(value = "订单id")
    private Long orderId;
    @ApiModelProperty(value = "车辆id")
    private Long vehicleId;
    @ApiModelProperty(value = "车队id")
    private Long fleetId;
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/order/XpReassignOrderClientFallbackFactory.java
New file
@@ -0,0 +1,39 @@
package com.xiaopeng.api.factory.order;
import com.xiaopeng.api.dto.order.GetOrderNumDto;
import com.xiaopeng.api.dto.order.PopOrderDto;
import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO;
import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO;
import com.xiaopeng.api.feignClient.order.XpOrderClient;
import com.xiaopeng.api.feignClient.order.XpReassignOrderClient;
import com.xiaopeng.api.model.order.XpOrder;
import com.xiaopeng.api.model.order.XpOrderReassign;
import com.xiaopeng.common.core.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.ArrayList;
/**
 * 订单Feign客户端降级工厂
 *
 * @author mitao
 */
@Slf4j
@Component
public class XpReassignOrderClientFallbackFactory implements FallbackFactory<XpReassignOrderClient> {
    @Override
    public XpReassignOrderClient create(Throwable cause) {
        log.error("订单服务调用失败: {}", cause.getMessage());
        return new XpReassignOrderClient() {
            @Override
            public R<Long> saveReassignOrder(XpOrderReassign xpOrderReassign) {
                log.error("订单服务调用失败: {}", cause.getMessage());
                return null;
            }
        };
    }
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/order/XpReassignOrderClient.java
New file
@@ -0,0 +1,32 @@
package com.xiaopeng.api.feignClient.order;
import com.xiaopeng.api.dto.order.GetOrderNumDto;
import com.xiaopeng.api.dto.order.PopOrderDto;
import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO;
import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO;
import com.xiaopeng.api.factory.order.XpOrderClientFallbackFactory;
import com.xiaopeng.api.factory.order.XpReassignOrderClientFallbackFactory;
import com.xiaopeng.api.model.order.XpOrder;
import com.xiaopeng.api.model.order.XpOrderReassign;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.dto.ServiceNameConstantsEnum;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * 订单Feign客户端
 *
 * @author mitao
 */
@FeignClient(contextId = "XpReassignOrderClient",
        value = ServiceNameConstantsEnum.XP_ORDER_SERVICE,
        fallbackFactory = XpReassignOrderClientFallbackFactory.class)
public interface XpReassignOrderClient {
    @PostMapping("/inner/v1/order/reassignOrder")
    R<Long> saveReassignOrder(@RequestBody XpOrderReassign xpOrderReassign);
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/ReassignOrderController.java
@@ -1,5 +1,8 @@
package com.xiaopeng.operation.controller;
import com.xiaopeng.api.feignClient.order.XpOrderClient;
import com.xiaopeng.api.feignClient.order.XpReassignOrderClient;
import com.xiaopeng.api.model.order.XpOrderReassign;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.api.dto.operation.ReassignOrderDTO;
import com.xiaopeng.operation.utils.TaskOrderUtil;
@@ -8,6 +11,8 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
/**
 * token 控制
@@ -19,9 +24,21 @@
public class ReassignOrderController {
    @Autowired
    private TaskOrderUtil taskOrderUtil;
    @Autowired
    private XpReassignOrderClient xpReassignOrderClient;
    @PostMapping("/inner/v1/order/reassignOrder")
    public R<String> reassignOrder(@RequestBody ReassignOrderDTO dto) {
        //新增改派数据
        XpOrderReassign xpOrderReassign = new XpOrderReassign();
        xpOrderReassign.setOrderId(dto.getOrderId());
        xpOrderReassign.setOperationTime(LocalDateTime.now());
        xpOrderReassign.setOldVehicleId(dto.getVehicleId());
        xpOrderReassign.setOldFleetId(dto.getFleetId());
        xpOrderReassign.setReassignReason("异常改派");
        xpReassignOrderClient.saveReassignOrder(xpOrderReassign);
        taskOrderUtil.reassignPushOrder(dto.getCount(),dto.getUid(),dto.getLongitude(),dto.getLatitude(),dto.getOrderNo());
        return R.ok();
    }