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