From 606841e8477fe937e7d8afa9f30d5f633887eca2 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 13 三月 2026 16:12:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 336 ++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 218 insertions(+), 118 deletions(-)
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 cf6c106..adbb5e4 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
@@ -316,7 +316,7 @@
// 6. 获取评价信息
LambdaQueryWrapper<XpOrderEvaluate> evaluateWrapper = new LambdaQueryWrapper<>();
evaluateWrapper.eq(XpOrderEvaluate::getOrderId, id);
- XpOrderEvaluate evaluate = xpOrderEvaluateService.getOne(evaluateWrapper);
+ XpOrderEvaluate evaluate = xpOrderEvaluateService.getOne(evaluateWrapper.orderByDesc(XpOrderEvaluate::getCreateTime).last(" limit 0,1"));
if (Objects.nonNull(evaluate)) {
vo.setOrderRating(evaluate.getOrderRating());
}
@@ -641,8 +641,22 @@
orderCancel.setUserId(SecurityUtils.getUserId()); // 当前登录用户ID
orderCancel.setCancelReason("运营人员取消订单");
xpOrderCancelService.save(orderCancel);
+ // 消息推送
+ Map<String, Object> params = new HashMap<>();
+ Map<String, Object> content = new HashMap<>();
+ content.put("orderId", order.getId().toString());
+ content.put("status", OrderStatusEnum.CANCELED.getCode());
+ params.put("type", PushMessageTypeEnum.ORDER_STATUS.getDesc());
+ params.put("content", com.alibaba.fastjson2.JSONObject.toJSONString(content));
+ params.put("timestamp", new Date().getTime() + "");
+ String message = JSONObject.toJSONString(params);
+ SendMessageDTO sendMessageDTO = new SendMessageDTO();
+ sendMessageDTO.setMessage(message);
+ sendMessageDTO.setAppUserId(String.valueOf(order.getAppUserId()));
+ xpPushMessageClient.sendStatus(sendMessageDTO);
+
//查询车辆信息
- R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(order.getId());
+ R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(order.getVehicleId());
if (xpVehicleR.getCode() == HttpStatus.SUCCESS && Objects.nonNull(xpVehicleR.getData())) {
XpVehicle xpVehicle = xpVehicleR.getData();
// 组装调用车机参数
@@ -650,9 +664,7 @@
cancelTaxiPassengerVo.setVin(xpVehicle.getVehicleVin());
cancelTaxiPassengerVo.setUid(order.getAppUserId().toString());
cancelTaxiPassengerVo.setOrderNo(order.getOrderNumber());
- // TODO 加配置文件取
cancelTaxiPassengerVo.setAppId(appid);
-
BaseVehicleUserDto baseVehicleUserDto = userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo);
if (baseVehicleUserDto == null) {
// TODO 本地无法调通
@@ -660,33 +672,17 @@
}
//还原车辆状态
- if (1 == xpVehicle.getState()) {
- xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(xpVehicle.getVehicleVin(), 0));
- }
-
- // 消息推送
- Map<String, Object> params = new HashMap<>();
- Map<String, Object> content = new HashMap<>();
- content.put("orderId", order.getId().toString());
- content.put("status", OrderStatusEnum.CANCELED.getCode());
- params.put("type", PushMessageTypeEnum.ORDER_STATUS.getDesc());
- params.put("content", com.alibaba.fastjson2.JSONObject.toJSONString(content));
- params.put("timestamp", new Date().getTime() + "");
- String message = JSONObject.toJSONString(params);
- SendMessageDTO sendMessageDTO = new SendMessageDTO();
- sendMessageDTO.setMessage(message);
- sendMessageDTO.setAppUserId(String.valueOf(order.getAppUserId()));
- xpPushMessageClient.sendStatus(sendMessageDTO);
-
+ xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(xpVehicle.getVehicleVin(), 0));
// 下发命令
- if (order.getStatus() > 1) {
- PushOrderDto pushOrderDto = new PushOrderDto();
- pushOrderDto.setOrderId(order.getId().toString());
- pushOrderDto.setVin(xpVehicle.getVehicleVin());
- pushOrderDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER);
- orderMissionClient.cancelOrder(pushOrderDto);
- }
+ PushOrderDto pushOrderDto = new PushOrderDto();
+ pushOrderDto.setOrderId(order.getId().toString());
+ pushOrderDto.setVin(xpVehicle.getVehicleVin());
+ pushOrderDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER);
+ orderMissionClient.cancelOrder(pushOrderDto);
+ //车辆继续巡游
+ addCruiseMission(xpVehicle);
+
} else {
log.info("查询车辆信息失败,订单ID: {}, 下发取消订单命令失败", order.getId());
}
@@ -1184,26 +1180,6 @@
return;
}
order.setStatus(0);
-
- // 组装调用车机参数
- CancelTaxiPassengerVo cancelTaxiPassengerVo = new CancelTaxiPassengerVo();
- Long vehicleId = order.getVehicleId();
- R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(vehicleId);
- XpVehicle xpVehicle = xpVehicleR.getData();
- if (xpVehicle == null) {
- throw new ServiceException("车辆不存在", I18nKeyConstant.VEHICLE_NOT_EXISTS);
- }
- cancelTaxiPassengerVo.setVin(xpVehicle.getVehicleVin());
- cancelTaxiPassengerVo.setUid(order.getAppUserId().toString());
- cancelTaxiPassengerVo.setOrderNo(order.getOrderNumber());
- // TODO 加配置文件取
- cancelTaxiPassengerVo.setAppId(appid);
-
- BaseVehicleUserDto baseVehicleUserDto = userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo);
- if (baseVehicleUserDto == null) {
- // TODO 本地无法调通
-// throw new RuntimeException("取消订单失败");
- }
order.setAppUserId(null);
baseMapper.updateById(order);
XpOrderCancel xpOrderCancel = new XpOrderCancel();
@@ -1212,10 +1188,7 @@
xpOrderCancel.setCancelSource(1);
xpOrderCancel.setCancelReason("用户取消订单");
xpOrderCancelService.save(xpOrderCancel);
- //还原车辆状态
- if (1 == xpVehicle.getState()) {
- xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(xpVehicle.getVehicleVin(), 0));
- }
+
// 设置当天的取消次数缓存
Object cacheObject = redisService.getCacheObject("CANCEL_ORDER_" + uid);
@@ -1246,11 +1219,37 @@
// 下发命令
if (null != order.getVehicleId()) {
+ R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(order.getVehicleId());
+ // 组装调用车机参数
+ CancelTaxiPassengerVo cancelTaxiPassengerVo = new CancelTaxiPassengerVo();
+ XpVehicle xpVehicle = xpVehicleR.getData();
+ if (xpVehicle == null) {
+ throw new ServiceException("车辆不存在", I18nKeyConstant.VEHICLE_NOT_EXISTS);
+ }
+ cancelTaxiPassengerVo.setVin(xpVehicle.getVehicleVin());
+ cancelTaxiPassengerVo.setUid(order.getAppUserId().toString());
+ cancelTaxiPassengerVo.setOrderNo(order.getOrderNumber());
+ cancelTaxiPassengerVo.setAppId(appid);
+
+ BaseVehicleUserDto baseVehicleUserDto = userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo);
+ if (baseVehicleUserDto == null) {
+ // TODO 本地无法调通
+// throw new RuntimeException("取消订单失败");
+ }
+
+ //还原车辆状态
+ if (1 == xpVehicle.getState()) {
+ xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(xpVehicle.getVehicleVin(), 0));
+ }
+
+ //下发XPU报文
PushOrderDto pushOrderDto = new PushOrderDto();
pushOrderDto.setOrderId(order.getId().toString());
pushOrderDto.setVin(xpVehicle.getVehicleVin());
pushOrderDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER);
orderMissionClient.cancelOrder(pushOrderDto);
+ //车辆继续巡游
+ addCruiseMission(xpVehicle);
}
}
@@ -1258,7 +1257,7 @@
@Override
@Transactional
@ShardingSphereTransactionType(TransactionType.BASE)
- public void cancelOrder(String orderId) {
+ public XpOrder cancelOrder(String orderId) {
XpOrder order = this.getById(orderId);
if (order == null) {
throw new ServiceException("订单不存在", I18nKeyConstant.ORDER_NOT_EXISTS);
@@ -1275,10 +1274,6 @@
xpOrderCancelService.save(xpOrderCancel);
redisService.removeByPattern(order.getQueueName(), order.getOrderNumber());
-
-
- R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(order.getVehicleId());
- XpVehicle xpVehicle = xpVehicleR.getData();
// 消息推送
@@ -1298,16 +1293,16 @@
// 移除mongo数据
xpPricingClient.deleteXpGeoQueryEntity(order.getId().toString());
-
- // 下发命令
- if (null != order.getVehicleId()) {
- PushOrderDto pushOrderDto = new PushOrderDto();
- pushOrderDto.setOrderId(order.getId().toString());
- pushOrderDto.setVin(xpVehicle.getVehicleVin());
- pushOrderDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER);
- orderMissionClient.cancelOrder(pushOrderDto);
+ Long uid = order.getAppUserId();
+ // 设置当天的取消次数缓存
+ Object cacheObject = redisService.getCacheObject("CANCEL_ORDER_" + uid);
+ if (cacheObject == null) {
+ redisService.setCacheCancelOrder("CANCEL_ORDER_" + uid, 1);
+ } else {
+ Integer i = Integer.valueOf(cacheObject.toString());
+ redisService.setCacheCancelOrder("CANCEL_ORDER_" + uid, i + 1);
}
-
+ return order;
}
/**
@@ -1476,19 +1471,19 @@
throw new ServiceException("当前城市未配置定价规则", I18nKeyConstant.ORDER_PRICING_NOT_EXISTS);
}
// 费用
-// // 查询订单轨迹
-// List<OrderTrajectory> trajectories = mongoTemplate.find(
-// new Query(Criteria.where("orderId").is(orderId))
-// .with(Sort.by(Sort.Direction.ASC, "locatetime")),
-// OrderTrajectory.class
-// );
-// List<TaxiPricingDemoService.GpsPoint> gpsPoints = new ArrayList<>();
-// for (OrderTrajectory trajectory : trajectories) {
-// TaxiPricingDemoService.GpsPoint point = new TaxiPricingDemoService.GpsPoint(trajectory.getDistance(), trajectory.getLocatetime());
-// gpsPoints.add(point);
-// }
- // 补充临时轨迹数据
- List<TaxiPricingDemoService.GpsPoint> gpsPoints = TaxiPricingDemoService.createMockGpsPoints(DateUtils.toDate(order.getCreateTime()));
+ // 查询订单轨迹
+ List<OrderTrajectory> trajectories = mongoTemplate.find(
+ new Query(Criteria.where("orderId").is(orderId))
+ .with(Sort.by(Sort.Direction.ASC, "locatetime")),
+ OrderTrajectory.class
+ );
+ List<TaxiPricingDemoService.GpsPoint> gpsPoints = new ArrayList<>();
+ for (OrderTrajectory trajectory : trajectories) {
+ TaxiPricingDemoService.GpsPoint point = new TaxiPricingDemoService.GpsPoint(trajectory.getDistance(), trajectory.getLocatetime());
+ gpsPoints.add(point);
+ }
+// 补充临时轨迹数据
+// List<TaxiPricingDemoService.GpsPoint> gpsPoints = TaxiPricingDemoService.createMockGpsPoints(DateUtils.toDate(order.getCreateTime()));
TaxiPricingDemoService.PricingConfig config = new TaxiPricingDemoService.PricingConfig();
@@ -1502,39 +1497,57 @@
double paramNum5 =0.0;
- for (int i = 0; i < startingFareJsonArray.size(); i++) {
- com.alibaba.fastjson.JSONObject jsonObject = startingFareJsonArray.getJSONObject(i);
- String num1 = jsonObject.getString("num1");
- String num2 = jsonObject.getString("num2");
- String num3 = jsonObject.getString("num3");
- String num4 = jsonObject.getString("num4");
- String num5 = jsonObject.getString("num5");
- String num6 = jsonObject.getString("num6");
- String num7 = jsonObject.getString("num7");
+
+
+ //一口价
+ if(pricing.getPricingType() == 2){
+ JSONObject basicPricingJson = JSONObject.parseObject(pricing.getBasicPricingJson());
+ String num1 = "00:00";
+ String num2 = "23:59";
+ String num3 = basicPricingJson.getString("num1");
+ String num4 = basicPricingJson.getString("num2");
+ String num5 = basicPricingJson.getString("num3");
+ String num6 = basicPricingJson.getString("num4");
+ String num7 = basicPricingJson.getString("num5");
config.normals.add(new TaxiPricingDemoService.PricingRule("普通时段", num1, num2, Double.parseDouble(num3), Double.parseDouble(num4), Double.parseDouble(num5), Double.parseDouble(num6), Double.parseDouble(num7)));
- // 判断当前是那个时段
-
- Calendar calendarStart = Calendar.getInstance();
- calendarStart.setTime(date);
- calendarStart.set(Calendar.HOUR_OF_DAY, Integer.valueOf(jsonObject.getString("num1").split(":")[0]));
- calendarStart.set(Calendar.MINUTE, Integer.valueOf(jsonObject.getString("num1").split(":")[1]));
-
- Calendar calendarEnd = Calendar.getInstance();
- calendarEnd.setTime(date);
- calendarEnd.set(Calendar.HOUR_OF_DAY, Integer.valueOf(jsonObject.getString("num2").split(":")[0]));
- calendarEnd.set(Calendar.MINUTE, Integer.valueOf(jsonObject.getString("num2").split(":")[1]));
- // 找到符合条件的直接跳出循环
- if (date.getTime() > calendarStart.getTimeInMillis() && date.getTime() < calendarEnd.getTimeInMillis()) {
- paramNum4 = jsonObject.getDouble("num4");
- paramNum5 = jsonObject.getDouble("num5");
- break;
- }
-
-
+ paramNum4 = basicPricingJson.getDouble("num2");
+ paramNum5 = basicPricingJson.getDouble("num3");
}
+ //动态计费
if (pricing.getPricingType() == 1) {
+
+ for (int i = 0; i < startingFareJsonArray.size(); i++) {
+ com.alibaba.fastjson.JSONObject jsonObject = startingFareJsonArray.getJSONObject(i);
+ String num1 = jsonObject.getString("num1");
+ String num2 = jsonObject.getString("num2");
+ String num3 = jsonObject.getString("num3");
+ String num4 = jsonObject.getString("num4");
+ String num5 = jsonObject.getString("num5");
+ String num6 = jsonObject.getString("num6");
+ String num7 = jsonObject.getString("num7");
+ config.normals.add(new TaxiPricingDemoService.PricingRule("普通时段", num1, num2, Double.parseDouble(num3), Double.parseDouble(num4), Double.parseDouble(num5), Double.parseDouble(num6), Double.parseDouble(num7)));
+ // 判断当前是那个时段
+
+ Calendar calendarStart = Calendar.getInstance();
+ calendarStart.setTime(date);
+ calendarStart.set(Calendar.HOUR_OF_DAY, Integer.valueOf(jsonObject.getString("num1").split(":")[0]));
+ calendarStart.set(Calendar.MINUTE, Integer.valueOf(jsonObject.getString("num1").split(":")[1]));
+
+ Calendar calendarEnd = Calendar.getInstance();
+ calendarEnd.setTime(date);
+ calendarEnd.set(Calendar.HOUR_OF_DAY, Integer.valueOf(jsonObject.getString("num2").split(":")[0]));
+ calendarEnd.set(Calendar.MINUTE, Integer.valueOf(jsonObject.getString("num2").split(":")[1]));
+ // 找到符合条件的直接跳出循环
+ if (date.getTime() > calendarStart.getTimeInMillis() && date.getTime() < calendarEnd.getTimeInMillis()) {
+ paramNum4 = jsonObject.getDouble("num4");
+ paramNum5 = jsonObject.getDouble("num5");
+ break;
+ }
+ }
+
+
JSONObject basicPricingJson = JSONObject.parseObject(pricing.getBasicPricingJson());
config.peaks.add(new TaxiPricingDemoService.PricingRule("高峰期", basicPricingJson.getString("num21").split(" - ")[0], basicPricingJson.getString("num21").split(" - ")[1], Double.parseDouble(basicPricingJson.getString("num23")),paramNum4, paramNum5, Double.parseDouble(basicPricingJson.getString("num24")), Double.parseDouble(basicPricingJson.getString("num25"))));
config.peaks.add(new TaxiPricingDemoService.PricingRule("高峰期", basicPricingJson.getString("num22").split(" - ")[0], basicPricingJson.getString("num22").split(" - ")[1], Double.parseDouble(basicPricingJson.getString("num23")), paramNum4, paramNum5, Double.parseDouble(basicPricingJson.getString("num24")), Double.parseDouble(basicPricingJson.getString("num25"))));
@@ -1551,17 +1564,14 @@
TaxiPricingDemoService.TaxiPricingService service = new TaxiPricingDemoService.TaxiPricingService();
-
Integer holidayToday = holidayUtil.isHolidayToday();
-
-
Map<String, BigDecimal> bill = service.calculateOrderPrice(DateUtils.toDate(order.getBoardingTime()), order.getMileageKilometers(), gpsPoints, config,holidayToday);
- System.err.println("======= 订单计费账单 =======");
- bill.forEach((detail, price) -> System.err.println(detail + ": " + price + " 元"));
+ log.info("======= 订单计费账单 =======");
+ bill.forEach((detail, price) -> log.info(detail + ": " + price + " 元"));
BigDecimal totalAmount = bill.values().stream().reduce(BigDecimal.ZERO, BigDecimal::add);
- System.err.println("--------------------------");
- System.err.println("应付总额: " + totalAmount + " 元");
+ log.info("--------------------------");
+ log.info("应付总额: " + totalAmount + " 元");
BigDecimal startMoney = BigDecimal.ZERO;
// 默认费率1
double priceRate = 1;
@@ -1789,8 +1799,7 @@
if (vehicle != null) {
// 修改车辆状态
vehicle.setState(0);
-
-
+ //发送巡游订单
addCruiseMission(vehicle, order);
// // 获取配置 根据配置判断是否该收车 如果是则找到收车点位进行收车操作
// R<XpTaskRule> xpTaskRuleR = xpTaskRuleClient.queryDetail();
@@ -1961,6 +1970,97 @@
jobMaps
);
}
+
+
+ /**
+ * 取消订单后的继续巡游任务
+ * @param vehicle
+ */
+ public void addCruiseMission(XpVehicle vehicle) {
+ if (vehicle.getState() != 0 || vehicle.getOperatingStatus() != 1) {
+ return;
+ }
+ if (vehicle.getState() != 0 || vehicle.getOperatingStatus() != 1) {
+ return;
+ }
+ // 判断是否有计划
+ R<XpCruisePlanVehicle> xpCruisePlanR = xpCruisePlanClient.getCruisePlan(vehicle.getId());
+ if (xpCruisePlanR == null || xpCruisePlanR.getData() == null) {
+ return;
+ }
+
+ VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
+ // 获取配置 根据配置判断是否该收车 如果是则找到收车点位进行收车操作
+ R<XpTaskRule> xpTaskRuleR = xpTaskRuleClient.queryDetail();
+ XpTaskRule xpTaskRule = xpTaskRuleR.getData();
+
+ // 生成新的巡游单子 回到最新巡游的初始起点位置
+ XpCruiseOrder xpCruiseOrders = xpCruiseOrderMapper.selectOne(new LambdaQueryWrapper<XpCruiseOrder>().eq(XpCruiseOrder::getVehicleId, vehicle.getId()).eq(XpCruiseOrder::getStatus, 2).orderByDesc(BaseModel::getCreateTime).last("limit 1"));
+ int temp = 0;
+ if (xpCruiseOrders == null) {
+ temp = 1;
+ //特殊情况 可能没有产生终止的订单 (到站点就被正常接单了)所以找正常订单
+ xpCruiseOrders = xpCruiseOrderMapper.selectOne(new LambdaQueryWrapper<XpCruiseOrder>().eq(XpCruiseOrder::getVehicleId, vehicle.getId()).eq(XpCruiseOrder::getStatus, 3).orderByDesc(BaseModel::getCreateTime).last("limit 1"));
+ }
+ XpCruiseOrder xpCruiseOrder = new XpCruiseOrder();
+ xpCruiseOrder.setVehicleId(vehicle.getId());
+ xpCruiseOrder.setFleetId(vehicle.getFleetId());
+ xpCruiseOrder.setVehicleVin(vehicle.getVehicleVin());
+ xpCruiseOrder.setOrderType(2);
+ // 返程起点是当前正常订单的终点
+ xpCruiseOrder.setStartPointId(null);
+ xpCruiseOrder.setStartPointName(null);
+ xpCruiseOrder.setStartLon(vehiclePosition.getPoint().getX());
+ xpCruiseOrder.setStartLat(vehiclePosition.getPoint().getY());
+
+ // 完成的直接走终点 终止的走起点
+ if (temp == 0) {
+ xpCruiseOrder.setEndPointId(xpCruiseOrders.getStartPointId());
+ xpCruiseOrder.setEndPointName(xpCruiseOrders.getStartPointName());
+ xpCruiseOrder.setEndLon(xpCruiseOrders.getStartLon());
+ xpCruiseOrder.setEndLat(xpCruiseOrders.getStartLat());
+ } else {
+ xpCruiseOrder.setEndPointId(xpCruiseOrders.getEndPointId());
+ xpCruiseOrder.setEndPointName(xpCruiseOrders.getEndPointName());
+ xpCruiseOrder.setEndLon(xpCruiseOrders.getEndLon());
+ xpCruiseOrder.setEndLat(xpCruiseOrders.getEndLat());
+ }
+
+
+ xpCruiseOrder.setStatus(0);
+ xpCruiseOrder.setLastOrderId(xpCruiseOrders.getId());
+ xpCruiseOrder.setCreateTime(LocalDateTime.now());
+
+ // 判断当前时分秒是否大于收车时间
+ LocalTime vehicleCollectionTime = xpTaskRule.getVehicleCollectionTime();
+ if (vehicleCollectionTime.isBefore(LocalTime.now())) {
+ vehicle.setOperatingStatus(3);
+ //找到车辆的收车点位 更新终点点位
+ R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder);
+ xpCruiseOrder = returnCruisePoint.getData();
+ }
+ xpVehicleClient.updateVehicleById(vehicle);
+
+ xpCruiseOrderMapper.insert(xpCruiseOrder);
+
+ //下发XPU消息报文
+ PushOrderDto pushOrderDto = new PushOrderDto();
+ pushOrderDto.setVin(xpCruiseOrder.getVehicleVin());
+ pushOrderDto.setOrderId("XU" + xpCruiseOrder.getId());
+ pushOrderDto.setStartLatitude(xpCruiseOrder.getStartLat());
+ pushOrderDto.setStartLongitude(xpCruiseOrder.getStartLon());
+ pushOrderDto.setEndLatitude(xpCruiseOrder.getEndLat());
+ pushOrderDto.setEndLongitude(xpCruiseOrder.getEndLon());
+ pushOrderDto.setOrderType(OrderType.CRUISE_ORDER);
+ pushOrderDto.setStage(2);
+ // 调用推送服务 orderId + carVin
+ orderMissionClient.pushOrder(pushOrderDto);
+ }
+
+
+
+
+
private MileageDto mileageType(MileageDto param, JSONArray startingFareJsonArray, Date mileageDate, LocalDateTime begin, String num14, String num16, String num17, String num21, String num22, String num24, String num25, String num30, String num31) {
// 计算出是在哪个普通时间段内
@@ -2212,7 +2312,7 @@
res.setRedPacketMoney(order.getRedPacketMoney());
res.setCouponMoney(order.getCouponMoney());
res.setOrderMoney(order.getOrderMoney());
- res.setKilometer(order.getMileageKilometers() == null ? BigDecimal.ZERO : BigDecimal.valueOf(order.getMileageKilometers()));
+ res.setKilometer(order.getMileageKilometers() == null ? BigDecimal.ZERO : BigDecimal.valueOf(order.getMileageKilometers()).multiply(BigDecimal.valueOf(1000)));
LocalDateTime createTime = order.getCreateTime();
LocalDateTime tripEnd = order.getTripEnd();
if (tripEnd == null) {
--
Gitblit v1.7.1