From d9281d43e27ab6c510d390ddb26eaffc8ccc1add Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 11 十一月 2026 14:04:52 +0800
Subject: [PATCH] 妇幼-补充住院随访档案生成日志、完成事件及自检文件
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java | 28 ++++++++++++++++++++++++++++
1 files changed, 28 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..3b24af5 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -64,6 +64,7 @@
import com.ruoyi.task.domain.ServiceSubtaskPreachform;
import com.ruoyi.task.service.IServiceTaskService;
import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper;
+import com.ruoyi.task.event.FollowupCompletedEventPublisher;
import com.ruoyi.patarchive.mapper.PatArchiveMapper;
/**
* 浠诲姟闂嵎闂閫夐」Service涓氬姟灞傚鐞�
@@ -91,6 +92,9 @@
@Autowired
private ServiceSubtaskMapper serviceSubtaskMapper;
+
+ @Autowired
+ private FollowupCompletedEventPublisher followupCompletedEventPublisher;
@Autowired
private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper;
@@ -476,6 +480,7 @@
log.error("灏嗚key鍜寁alue浠巖edis涓�,serviceSubtask鐨勫�间负--------锛歿}", serviceSubtask);
serviceSubtask.setScore(formatScore(scoreTotal));
serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
+ followupCompletedEventPublisher.publish(serviceSubtask.getId());
//灏嗗綋鍓嶅彂閫佺姸鎬佹敼鎴� 9 瀹屾垚锛堢紦瀛� preachform 鏌ヨ锛�
String currentPreachform = serviceSubtask.getCurrentPreachform();
@@ -518,8 +523,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());
@@ -643,6 +669,7 @@
serviceSubtask.setUpdateTime(new Date());
serviceSubtask.setScore(formatScore(scoreTotal));
serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
+ followupCompletedEventPublisher.publish(serviceSubtask.getId());
//灏嗗綋鍓嶅彂閫佺姸鎬佹敼鎴�9瀹屾垚
ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
@@ -802,6 +829,7 @@
serviceSubtask.setVisitTime(new Date());
serviceSubtask.setScore(formatScore(scoreTotal));
serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
+ followupCompletedEventPublisher.publish(serviceSubtask.getId());
//灏嗗綋鍓嶅彂閫佺姸鎬佹敼鎴�9瀹屾垚
ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
serviceSubtaskPreachform.setPreachform(serviceSubtask.getCurrentPreachform());
--
Gitblit v1.9.3