From b532aa1b84a9553b9cdc2fd668ffb933086d4ea4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=92?= Date: Thu, 6 Nov 2025 20:02:07 +0800 Subject: [PATCH] 1 --- .../ruoyi/web/controller/jarvis/TencentDocController.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/TencentDocController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/TencentDocController.java index c977f4d..ddaf209 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/TencentDocController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/TencentDocController.java @@ -513,7 +513,10 @@ public class TencentDocController extends BaseController { // 4. 获取分布式锁(针对该订单单号+文档+工作表) lockKey = TENCENT_DOC_LOCK_KEY + fileId + ":" + sheetId + ":" + thirdPartyOrderNo; - boolean lockAcquired = redisCache.setCacheObject(lockKey, "locked", 30, TimeUnit.SECONDS); + + // 检查锁是否已存在 + String existingLock = redisCache.getCacheObject(lockKey); + boolean lockAcquired = (existingLock == null); if (!lockAcquired) { log.warn("获取锁失败,该订单正在被其他请求处理:{}", thirdPartyOrderNo); @@ -522,6 +525,8 @@ public class TencentDocController extends BaseController { return AjaxResult.error("该订单正在处理中,请稍后再试"); } + // 设置锁 + redisCache.setCacheObject(lockKey, "locked", 30, TimeUnit.SECONDS); log.info("✓ 获取分布式锁成功 - 单号: {}, lockKey: {}", thirdPartyOrderNo, lockKey); // 5. 读取表头(从配置的 headerRow 读取,与 startRow 独立)