| | |
| | | package com.xiaopeng.automaticPilot.controller; |
| | | |
| | | import cn.hutool.core.util.IdUtil; |
| | | import com.xiaopeng.api.dto.automaticPilot.MqttPublishDto; |
| | | import com.xiaopeng.api.dto.automaticPilot.PushOrderDto; |
| | | 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; |
| | | import com.xiaopeng.api.vo.automaticPilot.proto.down.cloudCreateOrder.TaskStatus; |
| | | import com.xiaopeng.api.vo.automaticPilot.proto.down.cloudCreateOrder.TaskType; |
| | | import com.xiaopeng.api.vo.automaticPilot.proto.down.cloudOrderOperation.OrderOperation; |
| | | import com.xiaopeng.api.vo.automaticPilot.proto.down.cloudOrderOperation.OrderOperationType; |
| | | import com.xiaopeng.automaticPilot.util.XPUUtil; |
| | | import com.xiaopeng.common.core.domain.R; |
| | | import com.xiaopeng.common.core.utils.SnowFlake; |
| | | import com.xiaopeng.common.redis.service.RedisService; |
| | | import io.swagger.annotations.Api; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | @Slf4j |
| | | @RestController |
| | |
| | | |
| | | |
| | | private final XPUUtil xpuUtil; |
| | | private final RedisService redisService; |
| | | |
| | | public OrderMissionController(XPUUtil xpuUtil) { |
| | | public OrderMissionController(XPUUtil xpuUtil, RedisService redisService) { |
| | | this.xpuUtil = xpuUtil; |
| | | this.redisService = redisService; |
| | | } |
| | | |
| | | |
| | | @PostMapping("/inner/pushOrder") |
| | | public R<Boolean> pushOrder(@RequestParam Long orderId) { |
| | | |
| | | |
| | | @PostMapping("/inner/pushOrder") |
| | | public R<Boolean> pushOrder(@RequestBody PushOrderDto dto) { |
| | | RTTask task = new RTTask(); |
| | | task.setOrder_id(orderId.toString()); |
| | | // TODO id处理 已经数据是否存储 |
| | | task.setTask_id(System.currentTimeMillis()+ ""); |
| | | task.setOrder_id(dto.getOrderId().toString()); |
| | | task.setTask_id("MISSION_"+ IdUtil.fastUUID()); |
| | | task.setTask_type(TaskType.ROBOTAXI); |
| | | task.setStatus(TaskStatus.PENDING); |
| | | |
| | | ResponseMessage responseMessage = xpuUtil.cloudCreateOrder(task); |
| | | if (responseMessage.getCode()== StatusCode.OK) { |
| | | SnowFlake snowFlake = new SnowFlake(0, 0); |
| | | snowFlake.withStartTimestamp(1420041600000L); |
| | | long sequence = snowFlake.nextId(); |
| | | MqttPublishDto mqttPublishDto = xpuUtil.cloudCreateOrder(task, dto.getVin(),sequence); |
| | | if (mqttPublishDto.getCode()== 200) { |
| | | return R.ok(true); |
| | | } |
| | | return R.ok(false); |
| | | } |
| | | |
| | | |
| | | @PostMapping("/inner/cancelOrder") |
| | | R<Boolean> cancelOrder(@RequestBody PushOrderDto dto){ |
| | | OrderOperation operation = new OrderOperation(); |
| | | operation.setOrder_id(dto.getOrderId().toString()); |
| | | operation.setTask_id("CANCEL_MISSION_"+ IdUtil.fastUUID()); |
| | | operation.setOperation_type(dto.getOperation_type()); |
| | | SnowFlake snowFlake = new SnowFlake(0, 0); |
| | | snowFlake.withStartTimestamp(1420041600000L); |
| | | long sequence = snowFlake.nextId(); |
| | | xpuUtil.cloudOrderOperation(operation,dto.getVin(),sequence); |
| | | redisService.setCacheObject(String.valueOf(sequence),"cancelOrder_"+dto.getOrderId()+"_"+ dto.getVin(),30l, TimeUnit.MINUTES); |
| | | return R.ok(true); |
| | | } |
| | | } |