From b91c1ee0a758cfa20ae5b0ed896a7281fb34622f Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期一, 23 三月 2026 17:33:03 +0800
Subject: [PATCH] bugfix
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpCruiseOrderController.java | 97 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 85 insertions(+), 12 deletions(-)
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpCruiseOrderController.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpCruiseOrderController.java
index 742fce1..7b13724 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpCruiseOrderController.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpCruiseOrderController.java
@@ -1,6 +1,8 @@
package com.xiaopeng.order.controller;
-import cn.hutool.core.util.IdUtil;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.xiaopeng.api.dto.automaticPilot.PushOrderDto;
import com.xiaopeng.api.dto.order.AddCruiseMissionDto;
@@ -8,22 +10,29 @@
import com.xiaopeng.api.model.order.XpCruiseOrder;
import com.xiaopeng.api.vo.OrderType;
import com.xiaopeng.common.core.domain.R;
+import com.xiaopeng.common.core.utils.WebUtils;
import com.xiaopeng.common.core.web.page.PageInfo;
+import com.xiaopeng.order.model.exportExcel.XpCruiseOrderExportExcel;
+import com.xiaopeng.order.model.exportExcel.XpOrderExportExcel;
+import com.xiaopeng.order.model.query.XpCruiseOrderExcelQuery;
+import com.xiaopeng.order.model.vo.XpOrderPageVO;
import com.xiaopeng.order.service.IXpCruiseOrderService;
import com.xiaopeng.order.model.query.XpCruiseOrderPageQuery;
import com.xiaopeng.order.model.vo.XpCruiseOrderPageVO;
import com.xiaopeng.order.service.IXpOrderService;
-import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.context.annotation.Lazy;
import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
import java.util.Arrays;
+import java.util.List;
/**
* <p>
@@ -46,6 +55,7 @@
/**
* 根据车辆VIN码取消订单
* 发送取消订单XPU报文
+ *
* @param
*/
@PostMapping("/inner/cruiseOrder/cancelCruiseOrderByVin")
@@ -53,6 +63,7 @@
Long id = xpCruiseOrderService.cancelCruiseOrderByVin(vin);
return R.ok(id);
}
+
/**
* 完成订单
*
@@ -67,22 +78,24 @@
/**
* 根据订单ID查询取消订单
+ *
* @param orderId
* @return
*/
@PostMapping("/inner/cruiseOrder/cancelCruiseOrderById")
- public R<?> cancelCruiseOrderById(@RequestParam Long orderId){
+ public R<?> cancelCruiseOrderById(@RequestParam Long orderId) {
return xpCruiseOrderService.cancelCruiseOrderById(orderId);
}
/**
* 查询订单信息
+ *
* @param orderId
* @return
*/
@PostMapping("/inner/cruiseOrder/getCruiseOrder")
- public R<XpCruiseOrder> getCruiseOrder(@RequestParam Long orderId){
+ public R<XpCruiseOrder> getCruiseOrder(@RequestParam Long orderId) {
return R.ok(xpCruiseOrderService.getById(orderId));
}
@@ -132,26 +145,86 @@
/**
* 添加巡游任务 下发命令
+ *
* @param
* @param
*/
@PostMapping("/inner/cruiseOrder/addCruiseMission")
- public R<?> addCruiseMission(@RequestBody AddCruiseMissionDto dto){
- xpOrderService.addCruiseMission(dto.getVehicle(),dto.getOrder());
+ public R<?> addCruiseMission(@RequestBody AddCruiseMissionDto dto) {
+ xpOrderService.addCruiseMission(dto.getVehicle(), dto.getOrder());
return R.ok();
}
-
/**
* 终止所有没结束或者终止的订单
+ *
* @param vin
* @return
*/
@PostMapping("/inner/cruiseOrder/stopAllCruiseOrder")
- public R<?> stopAllCruiseOrder(@RequestParam String vin){
+ public R<?> stopAllCruiseOrder(@RequestParam String vin) {
xpCruiseOrderService.update(new UpdateWrapper<XpCruiseOrder>().eq("vehicleVin", vin)
.in("status", Arrays.asList(0, 1)).set("status", 2));
return R.ok();
}
+
+ /**
+ * 巡游订单导出
+ *
+ * @param query 查询参数
+ */
+ @ApiOperation(value = "巡游订单导出", tags = {"管理后台-巡游订单"})
+ @PostMapping("/api/v1/cruiseOrder/exportExcel")
+ public void exportExcel(@RequestBody XpCruiseOrderExcelQuery query) {
+ // 1. 查询导出数据
+ List<XpCruiseOrderPageVO> dataList = xpCruiseOrderService.getExportList(query);
+
+ // 2. 转换为导出对象
+ List<XpCruiseOrderExportExcel> exportList = BeanUtil.copyToList(dataList, XpCruiseOrderExportExcel.class);
+
+ // 3. 生成 Excel
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), XpCruiseOrderExportExcel.class, exportList);
+
+ // 4. 输出到响应流
+ HttpServletResponse response = WebUtils.response();
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ ServletOutputStream outputStream = null;
+ try {
+ String fileName = URLEncoder.encode("巡游订单订单列表.xls", "utf-8");
+ response.setHeader("Content-disposition", "attachment;filename=" + fileName);
+ outputStream = response.getOutputStream();
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (outputStream != null) {
+ outputStream.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * 删除巡游订单
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "删除巡游订单", tags = {"管理后台-巡游订单"})
+ @DeleteMapping(value = "/api/v1/cruise-order/deleteById/{id}")
+ public R<?> deleteById(@PathVariable Long id){
+ xpCruiseOrderService.removeById(id);
+ return R.ok();
+ }
+
+ @ApiOperation(value = "巡游订单详情", tags = {"管理后台-巡游订单"})
+ @GetMapping(value = "/api/v1/cruise-order/getDetailById/{id}")
+ public R<XpCruiseOrder> getDetailById(@PathVariable Long id){
+ XpCruiseOrder xpCruiseOrder = xpCruiseOrderService.getById(id);
+ return R.ok(xpCruiseOrder);
+ }
}
--
Gitblit v1.7.1