From 2d2d58f78780767d8172081f8087ae412855527e Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 14 十月 2026 13:30:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.3' into 2.3
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 22 ++++++++++++++++++----
1 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index a2002a6..df80466 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -10,6 +10,7 @@
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.time.*;
+import java.util.concurrent.TimeUnit;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -1871,6 +1872,12 @@
+ /**
+ * 安全检测等待窗口(秒):设备在此时长内未上报有效安全检测时,前端按「未插枪」提示用户,
+ * 超时订单由启动超时兜底任务自动取消,避免订单永久停留在启动中状态。
+ */
+ private static final long STARTUP_WAIT_SECONDS = 90L;
+
@ResponseBody
@GetMapping(value = "/preChargeCheck/{id}")
@ApiOperation(value = "获取安全检测数据", tags = {"小程序-扫一扫"})
@@ -1880,10 +1887,17 @@
public AjaxResult<PreChargeCheck> preChargeCheck(@PathVariable Integer id) {
String key = "AQJC_" + id;
PreChargeCheck cacheObject = redisService.getCacheObject(key);
- if(null != cacheObject){
- if(LocalDateTime.now().minusMinutes(1).isAfter(cacheObject.getAddTime())){
- redisService.deleteObject(key);
- cacheObject = null;
+ if (null != cacheObject) {
+ LocalDateTime addTime = cacheObject.getAddTime();
+ // 等待安全检测超出窗口且启动指令尚未下发时,按「未插枪」提示前端;
+ // 缓存必须保留:设备安全检测上报依赖该缓存推进启动,删除会导致订单永久卡在启动中
+ if (Integer.valueOf(1).equals(cacheObject.getStartupSuccess())
+ && !Boolean.TRUE.equals(cacheObject.getStartCommandSent())
+ && null != addTime
+ && LocalDateTime.now().isAfter(addTime.plusSeconds(STARTUP_WAIT_SECONDS))) {
+ cacheObject.setStartupSuccess(3);
+ cacheObject.setFailureCause(5);
+ redisService.setCacheObject(key, cacheObject, 24L, TimeUnit.HOURS);
}
}
return AjaxResult.success(cacheObject);
--
Gitblit v1.7.1