|
|
@@ -1,6 +1,7 @@
|
|
|
package com.kym.service.miniapp.impl;
|
|
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
+import com.kym.common.exception.BusinessException;
|
|
|
import com.kym.entity.miniapp.ChargeOrder;
|
|
|
import com.kym.entity.miniapp.delay.DelayChargeOrder;
|
|
|
import com.kym.service.miniapp.ChargeOrderService;
|
|
|
@@ -79,10 +80,19 @@ public class StopDelayServiceImpl implements DelayService<DelayChargeOrder> {
|
|
|
// 停止充电
|
|
|
var order = delayedItem.data;
|
|
|
threadLocal.set(order.getStartChargeSeq());
|
|
|
- chargeService.queryStopCharge(order.getConnectorId());
|
|
|
- log.info("预约充电停止成功:用户:{},订单号:{},预约停止时间:{}", order.getUserId(), order.getStartChargeSeq(), order.getEndTime());
|
|
|
- // 线程休眠100ms
|
|
|
- Thread.sleep(100);
|
|
|
+ // 查询改设备最新订单是否是当前预约订单,是则按计划停止
|
|
|
+ var currentChargeOrder = chargeOrderService.lambdaQuery().eq(ChargeOrder::getConnectorId, order.getConnectorId()).orderByDesc(ChargeOrder::getCreateTime).one();
|
|
|
+ if (currentChargeOrder.getStartChargeSeq().equals(order.getStartChargeSeq())) {
|
|
|
+ chargeService.queryStopCharge(order.getConnectorId());
|
|
|
+ log.info("预约充电停止成功:用户:{},订单号:{},预约停止时间:{}", order.getUserId(), order.getStartChargeSeq(), order.getEndTime());
|
|
|
+ // 线程休眠100ms
|
|
|
+ Thread.sleep(100);
|
|
|
+ } else {
|
|
|
+ log.error("预约充电停止异常:订单不匹配:原订单:{},当前设备最新订单:{}", order.getStartChargeSeq(), currentChargeOrder.getStartChargeSeq());
|
|
|
+ throw new BusinessException("预约充电停止异常");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
} catch (Exception e) {
|
|
|
if (e instanceof InterruptedException) {
|
|
|
log.error("预约停止充电队列take异常", e);
|