From b46b8b8fee4d10e52dd882febc07974b02e2aed9 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 03 十一月 2026 14:14:18 +0800
Subject: [PATCH] 本地测试前提交:跨模块收口相关源码改动

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
index b8368b4..80225ac 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -518,8 +518,29 @@
         }
     }
 
+    /**
+     * 鍚屼竴浠介棶鍗风殑淇濆瓨閿侊細鎸夈�屼换鍔�+鎮h��+瀛愪换鍔°�嶅姞閿侊紝
+     * 鍓嶇閲嶅鐐瑰嚮 / 骞跺彂璇锋眰杩涙潵鏃朵覆琛屾墽琛岋紝閬垮厤鍚屼竴浠介棶鍗疯鍐欎袱閬嶃��
+     * 娉ㄦ剰锛氬彧鏄覆琛屽寲锛屼笉闃绘鍐嶆淇濆瓨鈥斺�旈棶鍗蜂粛鐒跺厑璁镐慨鏀瑰悗鍐嶄繚瀛橈紙璧版洿鏂伴�昏緫锛夈��
+     */
+    private static final java.util.concurrent.ConcurrentHashMap<String, Object> SAVE_LOCKS =
+            new java.util.concurrent.ConcurrentHashMap<>();
+
     @Override
     public Integer saveQuestionDetail(ServiceSubTaskCacheReq serviceSubTaskCacheReq, Long flag) {
+        String lockKey = serviceSubTaskCacheReq.getParam1() + "_"
+                + serviceSubTaskCacheReq.getParam2() + "_"
+                + serviceSubTaskCacheReq.getParam6();
+        Object lock = SAVE_LOCKS.computeIfAbsent(lockKey, k -> new Object());
+        if (SAVE_LOCKS.size() > 20000) {
+            SAVE_LOCKS.clear();
+        }
+        synchronized (lock) {
+            return doSaveQuestionDetail(serviceSubTaskCacheReq, flag);
+        }
+    }
+
+    private Integer doSaveQuestionDetail(ServiceSubTaskCacheReq serviceSubTaskCacheReq, Long flag) {
         Long tid = Long.valueOf(serviceSubTaskCacheReq.getParam1());
         Long pid = Long.valueOf(serviceSubTaskCacheReq.getParam2());
         Long subid = Long.valueOf(serviceSubTaskCacheReq.getParam6());

--
Gitblit v1.9.3