xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/vehicleConvoy/UpdateVehicleStateDto.java
New file @@ -0,0 +1,18 @@ package com.xiaopeng.api.dto.vehicleConvoy; import io.swagger.annotations.ApiModel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @ApiModel("更新车辆状态") @AllArgsConstructor @NoArgsConstructor public class UpdateVehicleStateDto { // 车辆vin private String vin; // 车辆状态 private Integer state; } xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/vehicleConvoy/XpVehicleClientFallbackFactory.java
@@ -1,6 +1,7 @@ package com.xiaopeng.api.factory.vehicleConvoy; import com.xiaopeng.api.dto.operation.VehiclePositionByVinDto; import com.xiaopeng.api.dto.vehicleConvoy.UpdateVehicleStateDto; import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.api.vo.automaticPilot.VehiclePosition; @@ -73,6 +74,12 @@ log.error("根据车辆xpuid查询车辆信息,原因: {}", cause.getMessage()); return R.fail(); } @Override public R<?> updateVehicleStatus(UpdateVehicleStateDto updateVehicleStateDto) { log.error("更新车辆状态失败,原因: {}", cause.getMessage()); return R.fail(); } }; } } xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/vehicleConvoy/XpVehicleClient.java
@@ -1,6 +1,7 @@ package com.xiaopeng.api.feignClient.vehicleConvoy; import com.xiaopeng.api.dto.operation.VehiclePositionByVinDto; import com.xiaopeng.api.dto.vehicleConvoy.UpdateVehicleStateDto; import com.xiaopeng.api.factory.vehicleConvoy.XpVehicleClientFallbackFactory; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.common.core.domain.R; @@ -91,4 +92,14 @@ */ @GetMapping("/inner/vehicle/findByVehicleXpuId") R<XpVehicle> findByVehicleXpuId(@RequestParam("xpuid") String xpuid); /** * 修改车辆状态 * * @param updateVehicleStateDto * @return */ @PostMapping("/inner/vehicle/updateVehicleStatus") R<?> updateVehicleStatus(@RequestBody UpdateVehicleStateDto updateVehicleStateDto); } xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpAgreementAppUser.java
@@ -30,7 +30,7 @@ private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ASSIGN_ID) @TableId(value = "id", type = IdType.INPUT) private Long id; @ApiModelProperty(value = "用户id") xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
@@ -3,6 +3,8 @@ import cn.hutool.core.util.IdUtil; import com.xiaopeng.api.dto.automaticPilot.MqttPublishDto; import com.xiaopeng.api.dto.automaticPilot.PushOrderDto; import com.xiaopeng.api.dto.vehicleConvoy.UpdateVehicleStateDto; import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; import com.xiaopeng.api.vo.automaticPilot.proto.down.ResponseMessage; import com.xiaopeng.api.vo.automaticPilot.proto.down.StatusCode; import com.xiaopeng.api.vo.automaticPilot.proto.down.cloudCreateOrder.RTTask; @@ -29,10 +31,12 @@ private final XPUUtil xpuUtil; private final RedisService redisService; private final XpVehicleClient xpVehicleClient; public OrderMissionController(XPUUtil xpuUtil, RedisService redisService) { public OrderMissionController(XPUUtil xpuUtil, RedisService redisService, XpVehicleClient xpVehicleClient) { this.xpuUtil = xpuUtil; this.redisService = redisService; this.xpVehicleClient = xpVehicleClient; } @@ -50,6 +54,9 @@ long sequence = snowFlake.nextId(); MqttPublishDto mqttPublishDto = xpuUtil.cloudCreateOrder(task, dto.getVin(),sequence); if (mqttPublishDto.getCode()== 200) { // 修改车子为微单状态 xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(dto.getVin(),1)); return R.ok(true); } return R.ok(false); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpAgreementUserController.java
@@ -1,5 +1,7 @@ package com.xiaopeng.operation.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.xiaopeng.api.model.maintenance.XpAgreementAppUser; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.controller.BaseController; import com.xiaopeng.common.core.web.domain.AjaxResult; @@ -43,5 +45,20 @@ } /** * 用户获取隐私协议/法律条款操作 */ @ApiOperation(value = "用户获取隐私协议/法律条款操作",tags = {"小程序-用户协议"}) @PostMapping("/privacy/getAgreement") @XpClientCheck(checkToken = false, checkOtpToken = true) public R<Boolean> getPrivacyAgreement(HttpServletRequest request) { // uid已通过拦截器otp校验,可以直接使用 String uid = request.getHeader("XP-Uid"); long count = xpAgreementAppUserService.count(new LambdaQueryWrapper<XpAgreementAppUser>().eq(XpAgreementAppUser::getAppUserId, uid)); if (count > 0) { return R.ok(true); } return R.ok(false); } } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
@@ -780,6 +780,8 @@ // 调用推送服务 orderId + carVin orderMissionClient.pushOrder(pushOrderDto); redisService.popFirstElement(quoteName); return; } catch (Exception e) { e.printStackTrace(); } finally { @@ -813,6 +815,8 @@ // 调用推送服务 orderId + carVin orderMissionClient.pushOrder(pushOrderDto); redisService.popFirstElement(quoteName); return; } catch (Exception e) { xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpVehicleController.java
@@ -8,7 +8,9 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.xiaopeng.api.dto.operation.VehiclePositionByVinDto; import com.xiaopeng.api.dto.vehicleConvoy.UpdateVehicleStateDto; import com.xiaopeng.api.dto.vehicleConvoy.VehicleTemperatureDto; import com.xiaopeng.api.feignClient.maintenance.XpChargingRecordClient; import com.xiaopeng.api.feignClient.maintenance.XpVehiclePreparationClient; @@ -417,6 +419,16 @@ return R.ok(xpVehicle); } /** * 修改车辆状态 * @param updateVehicleStateDto * @return */ @PostMapping("/inner/vehicle/updateVehicleStatus") public R<?> updateVehicleStatus(@RequestBody UpdateVehicleStateDto updateVehicleStateDto){ xpVehicleService.update(new LambdaUpdateWrapper<XpVehicle>().eq(XpVehicle::getVehicleVin, updateVehicleStateDto.getVin()).set(XpVehicle::getState, updateVehicleStateDto.getState())); return R.ok(); } /** * 查询可改派的车辆列表