From a6414cf583f21d8a39cc5e1372c8af9db13377bb Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期一, 09 三月 2026 18:16:32 +0800
Subject: [PATCH] bugfix

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/IXpOrderService.java                              |    3 
 xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpElectronicFenceArea.java                         |    4 
 xp-robotaxi-operation-boot/src/main/resources/mapper/operation/XpElectronicFenceMapper.xml                        |    6 
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java                         |    3 
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/query/XpTaskRecordPageQuery.java        |    6 
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/query/XpOrderExcelQuery.java                        |   26 +++++
 xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/ElectronicPageListQuery.java                       |    4 
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java |  163 ++++++++++++++++++++++++++++++++
 xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysUserController.java                     |    3 
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java                      |   25 ++++
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java           |    8 +
 xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java                  |    2 
 12 files changed, 239 insertions(+), 14 deletions(-)

diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysUserController.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysUserController.java
index 3180701..07e6b94 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysUserController.java
+++ b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysUserController.java
@@ -321,8 +321,7 @@
         }
         userService.checkUserAllowed(user);
         // userService.checkUserDataScope(user.getId());
-        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
-        return toAjax(userService.updateById(user));
+        return toAjax(userService.resetUserPwd(user.getId(), SecurityUtils.encryptPassword(dto.getNewPassword().trim())));
     }
 
     /**
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java
index b4b25a1..9855bdb 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java
+++ b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java
@@ -262,6 +262,6 @@
 
 	@Override
 	public boolean resetUserPwd(Long id, String newPassword) {
-		return lambdaUpdate().set(SysUser::getId, id).set(SysUser::getPassword, newPassword).update();
+		return lambdaUpdate().eq(SysUser::getId, id).set(SysUser::getPassword, newPassword).update();
 	}
 }
diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpElectronicFenceArea.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpElectronicFenceArea.java
index ec67db9..82fc5de 100644
--- a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpElectronicFenceArea.java
+++ b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpElectronicFenceArea.java
@@ -15,6 +15,7 @@
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 
 /**
@@ -57,4 +58,7 @@
     @ApiModelProperty(value = "围栏点位  经度_维度,经度_维度")
     private String fencePoints;
 
+    @ApiModelProperty(value = "运营策略")
+    private String operationStrategy;
+
 }
diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/ElectronicPageListQuery.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/ElectronicPageListQuery.java
index 6cd01a1..29ace33 100644
--- a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/ElectronicPageListQuery.java
+++ b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/ElectronicPageListQuery.java
@@ -5,6 +5,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 @ApiModel(value = "电子围栏列表查询query")
 public class ElectronicPageListQuery extends BasePage {
@@ -13,7 +15,7 @@
     @ApiModelProperty(value = "围栏构成 区域id")
     private String electronicAreaId;
     @ApiModelProperty(value = "围栏状态 0=草稿 1=待启用 2=启用中 3=已停用")
-    private Integer status;
+    private List<Integer> statusList;
     @ApiModelProperty(value = "创建人")
     private String createBy;
     @ApiModelProperty(value = "创建开始时间")
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java
new file mode 100644
index 0000000..804cf36
--- /dev/null
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java
@@ -0,0 +1,163 @@
+package com.xiaopeng.maintenance.controller;
+
+import cn.hutool.core.util.IdUtil;
+import com.xiaopeng.api.dto.automaticPilot.PushOrderDto;
+import com.xiaopeng.api.dto.operation.NewCruiseOrderDto;
+import com.xiaopeng.api.feignClient.automaticPilot.OrderMissionClient;
+import com.xiaopeng.api.feignClient.operation.XpCruisePlanClient;
+import com.xiaopeng.api.feignClient.order.XpCruiseOrderClient;
+import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
+import com.xiaopeng.api.model.order.XpCruiseOrder;
+import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
+import com.xiaopeng.api.vo.OrderType;
+import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
+import com.xiaopeng.common.core.domain.R;
+import com.xiaopeng.common.core.web.page.PageInfo;
+import com.xiaopeng.maintenance.dto.VehicleDispatchAcceptDTO;
+import com.xiaopeng.maintenance.dto.VehicleDispatchDepartureDTO;
+import com.xiaopeng.maintenance.model.query.OperationRecordsQuery;
+import com.xiaopeng.maintenance.model.vo.OperationRecordsVO;
+import com.xiaopeng.maintenance.service.IXpVehiclePreparationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+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.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 车辆管理 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2026-02-03
+ */
+@Slf4j
+@RestController
+@Api(tags = "车辆运维")
+public class XpVehicleOperationsController {
+
+    @Resource
+    private IXpVehiclePreparationService xpVehiclePreparationService;
+    @Resource
+    private XpVehicleClient xpVehicleClient;
+    @Resource
+    private XpCruiseOrderClient xpCruiseOrderClient;
+    @Resource
+    private MongoTemplate mongoTemplate;
+    @Resource
+    private OrderMissionClient orderMissionClient;
+    @Autowired
+    private XpCruisePlanClient xpCruisePlanClient;
+
+    /**
+     * 车辆详情-车辆调度-发车 收车
+     */
+    @ApiOperation(value = "车辆运维-车辆调度-发车/收车", tags = {"运维APP-车辆管理"})
+    @PostMapping("/api/v1/vehicle/vehicleDispatchDeparture")
+    public R<String> vehicleDispatchDeparture(@RequestBody VehicleDispatchDepartureDTO dto) {
+
+        // 判断是否有正在进行的正常订单
+        // 查询车辆
+        XpVehicle xpVehicle = xpVehicleClient.queryById(dto.getVehicleId()).getData();
+        if(xpVehicle.getState()==1){
+            return R.fail("车辆正在接单中");
+        }
+        xpVehicle.setOperatingStatus(dto.getDepartureStatus());
+        xpVehicleClient.updateVehicleById(xpVehicle);
+
+        // 发车
+        if(dto.getDepartureStatus()==1){
+            // 找车辆的任务  生成巡游单子 下发命令
+            R<XpCruiseOrder> newCruiseOrder = xpCruisePlanClient.getNewCruiseOrder(new NewCruiseOrderDto(xpVehicle.getId(),xpVehicle.getVehicleVin(),xpVehicle.getFleetId()));
+            if(newCruiseOrder.getData()!=null){
+                // 下发命令
+                PushOrderDto pushOrderDto = new PushOrderDto();
+                pushOrderDto.setVin(xpVehicle.getVehicleVin());
+                pushOrderDto.setOrderId(newCruiseOrder.getData().getId());
+                pushOrderDto.setStartLatitude(newCruiseOrder.getData().getStartLat());
+                pushOrderDto.setStartLongitude(newCruiseOrder.getData().getStartLon());
+                pushOrderDto.setEndLatitude(newCruiseOrder.getData().getEndLat());
+                pushOrderDto.setEndLongitude(newCruiseOrder.getData().getEndLon());
+                pushOrderDto.setOrderType(OrderType.CRUISE_ORDER);
+                pushOrderDto.setStage(2);
+                orderMissionClient.pushOrder(pushOrderDto);
+            }
+
+
+        }else if(dto.getDepartureStatus()==3){
+            // 收车 关闭当前巡游单子 生成新的返程单子  找到收车站点
+            R<String> r = xpCruiseOrderClient.updateCruiseOrder(xpVehicle.getVehicleVin());
+
+            // redis 获取当前最新经纬度位置
+            VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class);
+            XpCruiseOrder xpCruiseOrder = new XpCruiseOrder();
+            if(vehiclePosition!=null){
+                double x = vehiclePosition.getPoint().getX();
+                double y = vehiclePosition.getPoint().getY();
+                xpCruiseOrder.setStartLon(x);
+                xpCruiseOrder.setStartLat(y);
+            }
+
+            xpCruiseOrder.setId("XU"+ IdUtil.fastUUID());
+            xpCruiseOrder.setVehicleId(xpVehicle.getId());
+            xpCruiseOrder.setFleetId(xpVehicle.getFleetId());
+            xpCruiseOrder.setOrderType(2);
+            xpCruiseOrder.setStatus(1);
+            xpCruiseOrder.setOrderReverse(1);
+            xpCruiseOrder.setLastOrderId(r.getData());
+
+            // 找到收车站点
+            R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder);
+            if(returnCruisePoint!=null){
+                xpCruiseOrderClient.addCruiseOrder(returnCruisePoint.getData());
+                // 下发命令
+                PushOrderDto pushOrderDto = new PushOrderDto();
+                pushOrderDto.setVin(returnCruisePoint.getData().getVehicleVin());
+                pushOrderDto.setOrderId(returnCruisePoint.getData().getId());
+                pushOrderDto.setStartLatitude(returnCruisePoint.getData().getStartLat());
+                pushOrderDto.setStartLongitude(returnCruisePoint.getData().getStartLon());
+                pushOrderDto.setEndLatitude(returnCruisePoint.getData().getEndLat());
+                pushOrderDto.setEndLongitude(returnCruisePoint.getData().getEndLon());
+                pushOrderDto.setOrderType(OrderType.CRUISE_ORDER);
+                pushOrderDto.setStage(2);
+                orderMissionClient.pushOrder(pushOrderDto);
+            }
+
+        }
+        return R.ok();
+    }
+
+    /**
+     * 车辆详情-车辆调度-接单、测试
+     */
+    @ApiOperation(value = "车辆运维-车辆调度-接单、测试", tags = {"运维APP-车辆管理"})
+    @PostMapping("/api/v1/vehicle/vehicleDispatchAccept")
+    public R<String> vehicleDispatchAccept(@RequestBody VehicleDispatchAcceptDTO dto) {
+        // 查询车辆
+        XpVehicle xpVehicle = xpVehicleClient.queryById(dto.getVehicleId()).getData();
+        xpVehicle.setAcceptOrTest(dto.getAcceptOrTest());
+        xpVehicle.setAcceptOrTestStatus(dto.getAcceptOrTestStatus());
+        xpVehicleClient.updateVehicleById(xpVehicle);
+        return R.ok();
+    }
+
+    /**
+     * 车辆详情-车辆调度-运维记录
+     */
+    @ApiOperation(value = "车辆运维-车辆调度-运维记录", tags = {"运维APP-车辆管理"})
+    @PostMapping("/api/v1/vehicle/operationRecords")
+    public R<PageInfo<OperationRecordsVO>> operationRecords(@Validated @RequestBody OperationRecordsQuery query) {
+        PageInfo<OperationRecordsVO> operationRecords = xpVehiclePreparationService.operationRecords(query);
+        return R.ok(operationRecords);
+    }
+
+}
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/query/XpTaskRecordPageQuery.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/query/XpTaskRecordPageQuery.java
index 7362d49..3b54199 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/query/XpTaskRecordPageQuery.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/query/XpTaskRecordPageQuery.java
@@ -27,9 +27,11 @@
     @ApiModelProperty(value = "任务类别 1常规 2事故")
     private Integer taskCategory;
 
-    @ApiModelProperty(value = "任务类型id 任务类别为2时对应数据字典,多个逗号分割,为1的时候 枚举1车辆检查 2车辆充电 3车辆整备 4整备洗车 5车辆维修 6车辆保养 7车辆保险到期 8车辆年检到期 9车辆运营资质到期")
-    private String taskTypeId;
+    @ApiModelProperty(value = "常规任务类型枚举1车辆检查 2车辆充电 3车辆整备 4整备洗车 5车辆维修 6车辆保养 7车辆保险到期 8车辆年检到期 9车辆运营资质到期")
+    private Integer taskGeneralId;
 
+    @ApiModelProperty(value = "事故任务类型id")
+    private Long taskErrorId;
     @ApiModelProperty(value = "开始时间")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate startTime;
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
index c0dc075..4e11418 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -828,10 +828,14 @@
             wrapper.eq(XpTask::getTaskCategory, query.getTaskCategory());
         }
 
-        if (StringUtils.isNotBlank(query.getTaskTypeId())) {
-            wrapper.eq(XpTask::getTaskTypeId, query.getTaskTypeId());
+        if (Objects.nonNull(query.getTaskGeneralId())) {
+            wrapper.eq(XpTask::getTaskTypeId, query.getTaskGeneralId()).eq(XpTask::getTaskCategory, 1);
         }
 
+        if (Objects.nonNull(query.getTaskErrorId())) {
+            wrapper.apply("find_in_set({0}, task_type_id)", query.getTaskErrorId())
+                    .eq(XpTask::getTaskCategory, 2);
+        }
         if (query.getStartTime() != null) {
             wrapper.ge(XpTask::getCreateTime, query.getStartTime().atStartOfDay());
         }
diff --git a/xp-robotaxi-operation-boot/src/main/resources/mapper/operation/XpElectronicFenceMapper.xml b/xp-robotaxi-operation-boot/src/main/resources/mapper/operation/XpElectronicFenceMapper.xml
index ee9fe57..07e3661 100644
--- a/xp-robotaxi-operation-boot/src/main/resources/mapper/operation/XpElectronicFenceMapper.xml
+++ b/xp-robotaxi-operation-boot/src/main/resources/mapper/operation/XpElectronicFenceMapper.xml
@@ -20,8 +20,10 @@
         <if test="query.electronicAreaId != null">
             and efa.id = #{query.electronicAreaId}
         </if>
-        <if test="query.status != null">
-            and ef.status = #{query.status}
+        <if test="query.statusList != null">
+            <foreach collection="query.statusList" item="status" open="and ef.status in (" separator="," close=")">
+                #{status}
+            </foreach>
         </if>
         <if test="query.createBy != null and query.createBy!=''">
             and ef.create_by like concat('%',#{query.createBy},'%')
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
index 11fbb38..28aa508 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
@@ -27,6 +27,7 @@
 import com.xiaopeng.order.model.dto.XpOrderPayDto;
 import com.xiaopeng.order.model.exportExcel.XpOrderExportExcel;
 import com.xiaopeng.order.model.query.XpHistoryOrderListQuery;
+import com.xiaopeng.order.model.query.XpOrderExcelQuery;
 import com.xiaopeng.order.model.query.XpOrderPageQuery;
 import com.xiaopeng.order.model.dto.XpOrderOperateDTO;
 import com.xiaopeng.order.model.dto.XpOrderReassignDTO;
@@ -229,7 +230,7 @@
      */
     @ApiOperation(value = "订单导出", tags = {"管理后台-交易管理-订单管理"})
     @PostMapping("/api/v1/order/exportExcel")
-    public void exportExcel(@RequestBody XpOrderPageQuery query) {
+    public void exportExcel(@RequestBody XpOrderExcelQuery query) {
         // 1. 查询导出数据
         List<XpOrderPageVO> dataList = xpOrderService.exportList(query);
 
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/query/XpOrderExcelQuery.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/query/XpOrderExcelQuery.java
new file mode 100644
index 0000000..544df36
--- /dev/null
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/query/XpOrderExcelQuery.java
@@ -0,0 +1,26 @@
+package com.xiaopeng.order.model.query;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.xiaopeng.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * 订单分页查询请求
+ *
+ * @author mitao
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "订单分页查询请求", description = "订单分页查询参数")
+public class XpOrderExcelQuery extends XpOrderPageQuery {
+
+    @ApiModelProperty(value = "订单ID列表")
+    private List<Long> ids;
+
+}
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/IXpOrderService.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/IXpOrderService.java
index 76527b5..c9ec795 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/IXpOrderService.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/IXpOrderService.java
@@ -18,6 +18,7 @@
 import com.xiaopeng.order.model.dto.XpOrderCommentDto;
 import com.xiaopeng.order.model.dto.XpOrderPayDto;
 import com.xiaopeng.order.model.query.XpHistoryOrderListQuery;
+import com.xiaopeng.order.model.query.XpOrderExcelQuery;
 import com.xiaopeng.order.model.query.XpOrderPageQuery;
 import com.xiaopeng.order.model.vo.XpOrderDetailVO;
 import com.xiaopeng.order.model.vo.XpOrderHistoryVO;
@@ -73,7 +74,7 @@
      * @param query 查询参数
      * @return 订单列表
      */
-    List<XpOrderPageVO> exportList(XpOrderPageQuery query);
+    List<XpOrderPageVO> exportList(XpOrderExcelQuery query);
 
     /**
      * 取消或关闭订单
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index cfe725f..7a5b4b4 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -79,6 +79,7 @@
 import com.xiaopeng.order.model.dto.XpOrderCommentDto;
 import com.xiaopeng.order.model.dto.XpOrderPayDto;
 import com.xiaopeng.order.model.query.XpHistoryOrderListQuery;
+import com.xiaopeng.order.model.query.XpOrderExcelQuery;
 import com.xiaopeng.order.model.query.XpOrderPageQuery;
 import com.xiaopeng.order.model.vo.*;
 import com.xiaopeng.order.service.IXpOrderCancelService;
@@ -298,9 +299,9 @@
     }
 
     @Override
-    public List<XpOrderPageVO> exportList(XpOrderPageQuery query) {
+    public List<XpOrderPageVO> exportList(XpOrderExcelQuery query) {
         // 1. 构建查询条件
-        LambdaQueryWrapper<XpOrder> wrapper = buildQueryWrapper(query);
+        LambdaQueryWrapper<XpOrder> wrapper = buildExcelQueryWrapper(query);
 
         // 2. 查询订单列表
         List<XpOrder> orderList = this.list(wrapper);
@@ -357,7 +358,27 @@
         wrapper.orderByDesc(XpOrder::getCreateTime);
         return wrapper;
     }
+    private LambdaQueryWrapper<XpOrder> buildExcelQueryWrapper(XpOrderExcelQuery query) {
+        LambdaQueryWrapper<XpOrder> wrapper = new LambdaQueryWrapper<>();
 
+        wrapper.like(StringUtils.isNotBlank(query.getOrderNumber()), XpOrder::getOrderNumber, query.getOrderNumber())
+                .eq(Objects.nonNull(query.getFleetId()), XpOrder::getFleetId, query.getFleetId())
+                .eq(Objects.nonNull(query.getOrderSource()), XpOrder::getOrderSource, query.getOrderSource())
+                .like(StringUtils.isNotBlank(query.getCityCode()), XpOrder::getCityCode, query.getCityCode())
+                .eq(Objects.nonNull(query.getStatus()), XpOrder::getStatus, query.getStatus());
+
+        if (Objects.nonNull(query.getStartTime())) {
+            wrapper.ge(XpOrder::getCreateTime, LocalDateTime.of(query.getStartTime(), LocalTime.MIN));
+        }
+        if (Objects.nonNull(query.getEndTime())) {
+            wrapper.le(XpOrder::getCreateTime, LocalDateTime.of(query.getEndTime(), LocalTime.MAX));
+        }
+        if (CollUtil.isNotEmpty(query.getIds())) {
+            wrapper.in(XpOrder::getId, query.getIds());
+        }
+        wrapper.orderByDesc(XpOrder::getCreateTime);
+        return wrapper;
+    }
     /**
      * 批量获取用户信息
      */

--
Gitblit v1.7.1