| xp-robotaxi-automaticPilot-boot/src/main/java/com/xiaopeng/automaticPilot/feign/FeignVmpOpenService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| xp-robotaxi-automaticPilot-boot/src/main/java/com/xiaopeng/automaticPilot/feign/VehicleBaseResp.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| xp-robotaxi-automaticPilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/VehicleInfoService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
xp-robotaxi-automaticPilot-boot/src/main/java/com/xiaopeng/automaticPilot/feign/FeignVmpOpenService.java
New file @@ -0,0 +1,45 @@ package com.xiaopeng.automaticPilot.feign; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; @FeignClient(name = "xp-vmp-open-boot") public interface FeignVmpOpenService { /** * 通过vin获取车辆基本信息 * * @param vin * @return */ @GetMapping("/logan/vehicleInfo/vin") VehicleBaseResp getVehicleInfoByVin(@RequestParam("vin") String vin, @RequestParam("respList") List<String> respList); /** * 查询车辆绑定信息, 通过vin获取车辆xpu id * typeList类型,1:XPUID,2:待扩展 * 参数示例:?vin=TESTE290000000000&typeList=1,2 * 返回示例:{ * "1": "01010101010101010101010101010101", * "2": "xxx" * } */ @GetMapping("/logan/vehicle/bind/info/query") Map<String, String> getVehicleBindInfoByVin(@RequestParam("vin") String vin, @RequestParam("typeList") List<String> typeList); /** * 通过车辆绑定信息获取车架号, 通过xpu id获取车辆vin * type类型,1:XPUID,2:待扩展 * 参数示例:?value=00000000000000000000000000000001&type=1 * 返回示例:{ * L1NSPGHB9RB900099 * } */ @GetMapping("/logan/vehicle/bind/info/getVin") String getVinByXpuId(@RequestParam("value") String xpuId, @RequestParam("type") Integer type); } xp-robotaxi-automaticPilot-boot/src/main/java/com/xiaopeng/automaticPilot/feign/VehicleBaseResp.java
New file @@ -0,0 +1,83 @@ package com.xiaopeng.automaticPilot.feign; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; @Data @Builder @AllArgsConstructor @NoArgsConstructor public class VehicleBaseResp implements Serializable { private static final long serialVersionUID = -1251766408952592117L; /** * 车架号 */ private String vin; /** * 大屏虚拟id(兼容旧接口) */ private String vid; /** * 大屏硬件id */ private String cduId; /** * sim卡id */ private String iccid; /** * 物料编码id */ private String vehicleMaterielId; /** * 车型code. * DB, DC, DE就是G3 * ED 就是 P7 * VehicleTypeType */ private String vehicleTypeCode; /** * 车型名称,eg:D10,D20,D21.. */ private String vehicleTypeName; /** * 对外名称,eg:1.0,G3,P5... */ private String vehicleSaleName; /** * 车牌信息(车牌号) */ private String plateNo; /** * 车辆用途 */ private Integer usage; /** * 公告车型code */ private String proclamationCode; /*** * 给实时流 */ private String batchNo; } xp-robotaxi-automaticPilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/VehicleInfoService.java
New file @@ -0,0 +1,51 @@ package com.xiaopeng.automaticPilot.service; import com.alibaba.fastjson.JSON; import com.xiaopeng.automaticPilot.feign.FeignVmpOpenService; import com.xiaopeng.common.core.exception.ServiceException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; /** * @author zhouhn * 2026/2/13 */ @Slf4j @Service public class VehicleInfoService { // 查询车管 车辆信息返回字段,用于按需返回字段 public static final List<String> VEHICLE_RESP_LIST = Arrays.asList("vin", "vid", "cduId", "iccid", "vehicleMaterielId", "vehicleTypeCode", "vehicleTypeName", "vehicleSaleName" , "plateNo", "usage", "proclamationCode", "batchNo"); // 查询车管绑定类型,1:XPUID,2:待扩展 public static final String XPU_ID_TYPE = "1"; // 查询车管 车辆xpuid信息返回字段,用于按需返回字段 public static final List<String> TYPE_LIST = Collections.singletonList("1"); @Autowired private FeignVmpOpenService feignVmpOpenService; /** * @description: 根据vin查询xpuId * @param: vin * @return: xpuId */ public String getXpuIdByVin(String vin) throws Exception { Map<String, String> xpuIdMapping = feignVmpOpenService.getVehicleBindInfoByVin(vin, TYPE_LIST); log.info("getMqttPublishTopic vin,{},xpuIdMapping,{}", vin, JSON.toJSONString(xpuIdMapping)); if (xpuIdMapping == null || StringUtils.isEmpty(xpuIdMapping.get(XPU_ID_TYPE)) ) { log.error("根据vin查询车辆xpuid信息为空,vin={}", vin); throw new ServiceException("xpu id not exist for vin:" + vin); } return xpuIdMapping.get(XPU_ID_TYPE); } }