From 05abe218f8efb25a88dc474ec447d9cc41ee23a9 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 15 九月 2026 10:50:09 +0800
Subject: [PATCH] 【丽水】出院记录采集不应该修改出院状态

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java |   66 +++++++++++++++++++++++---------
 1 files changed, 47 insertions(+), 19 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 c52c87f..12c3f7e 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -21,6 +21,7 @@
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -163,8 +164,19 @@
         return serviceSubtaskAnswerMapper.deleteServiceSubtaskAnswerById(id);
     }
 
+    /**
+     * 淇濆瓨闂嵎绛旀 (寮傛澶勭悊锛屽揩閫熻繑鍥�)
+     *
+     * @param serviceSubTaskAnswerReq 绛旀璇锋眰
+     * @param flag 鏍囧織浣�
+     * @return 缁撴灉
+     */
     @Override
+    @Async("threadPoolTaskExecutor")
     public Integer saveQuestionAnswer(ServiceSubTaskAnswerReq serviceSubTaskAnswerReq, Long flag) {
+        String threadName = Thread.currentThread().getName();
+        log.info("[{}] 寮�濮嬪紓姝ュ鐞嗕繚瀛橀棶鍗风瓟妗�", threadName);
+        try {
         //鍙傛暟瑙e瘑
         Long tid = null;
         Long pid = null;
@@ -365,16 +377,6 @@
             log.error("灏嗚key鍜寁alue浠巖edis涓�,serviceSubtask鐨勫�间负--------锛歿}", serviceSubtask);
             if (score != null && !score.isEmpty()) serviceSubtask.setScore(score);
             serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
-            //淇敼浣忛櫌婊℃剰搴︾姸鎬侊紙閬垮厤閲嶅鏌ヨ锛�
-            if (serviceSubtask.getServiceType() != null && "6".equals(serviceSubtask.getServiceType())) {
-                Long inhospid = serviceSubtask.getInhospid();
-                if (inhospid != null) {
-                    PatMedInhosp patMedInhosp = new PatMedInhosp();
-                    patMedInhosp.setInhospMydFlag("1");
-                    patMedInhosp.setInhospid(inhospid);
-                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
-                }
-            }
 
             //灏嗗綋鍓嶅彂閫佺姸鎬佹敼鎴� 9 瀹屾垚锛堢紦瀛� preachform 鏌ヨ锛�
             String currentPreachform = serviceSubtask.getCurrentPreachform();
@@ -401,9 +403,13 @@
             }
 
         }
+        log.info("[{}] 瀹屾垚寮傛澶勭悊淇濆瓨闂嵎绛旀", Thread.currentThread().getName());
         return 1;
+    } catch (Exception e) {
+        log.error("[{}] 寮傛澶勭悊淇濆瓨闂嵎绛旀鍙戠敓寮傚父 : {},璇锋眰鐨勫璞′负锛歿}", Thread.currentThread().getName(), e.getMessage(), e,serviceSubTaskAnswerReq);
+        throw new RuntimeException("淇濆瓨闂嵎绛旀澶辫触", e);
     }
-
+}
     @Override
     public Integer saveQuestionDetail(ServiceSubTaskCacheReq serviceSubTaskCacheReq, Long flag) {
         Long tid = Long.valueOf(serviceSubTaskCacheReq.getParam1());
@@ -922,7 +928,6 @@
     }
 
     private Map<String, String> setWJInfo(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, Long taskid, Long patid, Long subid) {
-        log.error("-----svyTaskTemplateScriptVO鐨勫�间负锛歿}", svyTaskTemplateScriptVO);
         ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
         serviceSubtaskVO.setTaskid(taskid);
         serviceSubtaskVO.setPatid(patid);
@@ -971,7 +976,6 @@
     }
 
     private Map<String, String> setWJInfo(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, Long taskid, Long patid, Long subid, List<ServiceSubtask> selectServiceSubtaskList, ServiceTask serviceTask, Map<Long, Long> existingDetailIdMap, Map<Long, Long> existingTraceIdMap) {
-        log.error("-----svyTaskTemplateScriptVO鐨勫�间负锛歿}", svyTaskTemplateScriptVO);
         String score = "0";
         //涓嬮璺宠浆
         String nextScriptNo = null;
@@ -1057,14 +1061,24 @@
                 //鍘婚櫎涓ょ绌虹櫧骞跺鐞嗙壒娈婂瓧绗﹁繘琛屾瘮杈�
                 if (optionContent.trim().replaceAll("\\s+", "").equals(scriptResult.replaceAll("\\s+", ""))) {
                     stt = svyTaskTemplateTargetoption;
-                    log.error("鎵惧埌鍖归厤鐨勯�夐」");
                     break; // 鎵惧埌鍖归厤椤瑰悗璺冲嚭寰幆
                 }
             }
         }
 
+        String orgid = selectServiceSubtaskList.get(0).getOrgid();
+        //鏅畞-闅忚寮傚父鎻愮ず 鍏朵粬-寮傚父婊℃剰搴︽彁绀�
+        boolean addTrace = false;
+        if(StringUtils.isNotEmpty(orgid) && orgid.equals("47255004333112711A1001")){
+            if (stt != null) {
+                addTrace = Long.valueOf(1L).equals(stt.getIsabnormal());
+            }
+        }else {
+            addTrace = StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getIsMydException());
+        }
         //鍒ゆ柇涓�涓嬪綋鍓嶇殑闂鏄笉鏄弧鎰忓害闂锛屽苟涓� dutyDeptCode 鏄惁鏈夊�硷紝骞朵笖閫夐」鏄笉鏄紓甯搁�夐」锛屽鏋滃叏绗﹀悎锛屽垯寰�婊℃剰搴﹂棶棰樺紓甯歌〃鏂板
-        if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && stt != null && Long.valueOf(1L).equals(stt.getIsabnormal()) || StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getIsMydException())) {
+        if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && stt != null && Long.valueOf(1L).equals(stt.getIsabnormal()) || StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode())
+                && addTrace) {
             isabnormalFlag = 1L;
             ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace();
             subtaskDetailTrace.setDetailId(serviceSubtaskDetail.getId());
@@ -1080,17 +1094,19 @@
             //鑾峰彇鎵�鏈夐�夐」
             subtaskDetailTrace.setTargetid(stt != null ? stt.getId() : null);
             subtaskDetailTrace.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue());
-            subtaskDetailTrace.setMatchedtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException());
             subtaskDetailTrace.setGuid(svyTaskTemplateScriptVO.getGuid());
             subtaskDetailTrace.setValueType(serviceSubtaskDetail.getValueType());
-            subtaskDetailTrace.setIsMydException(svyTaskTemplateScriptVO.getIsMydException());
             subtaskDetailTrace.setTemplateType(2);
 
             SvyLibScriptCategory svyLibScriptCategory = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryById(svyTaskTemplateScriptVO.getCategoryid());
             subtaskDetailTrace.setType(svyLibScriptCategory != null ? svyLibScriptCategory.getType() : null);
 
             subtaskDetailTrace.setScriptid(svyTaskTemplateScriptVO.getId());
+            //闈炴弧鎰忓害鎰忚寮傚父鑷姩濉叆绌�
+            subtaskDetailTrace.setMatchedtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException());
             subtaskDetailTrace.setAsrtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException());
+            subtaskDetailTrace.setIsMydException(svyTaskTemplateScriptVO.getIsMydException());
+
             subtaskDetailTrace.setRecordpath(null);
             subtaskDetailTrace.setPatid(selectServiceSubtaskList.get(0).getPatid());
             JSONObject patdescJson1 = new JSONObject();
@@ -1110,6 +1126,8 @@
             subtaskDetailTrace.setDutyDeptPersonName(svyTaskTemplateScriptVO.getDutyDeptPersonName());
             subtaskDetailTrace.setReportDeptPersonCode(svyTaskTemplateScriptVO.getReportDeptPersonCode());
             subtaskDetailTrace.setReportDeptPersonName(svyTaskTemplateScriptVO.getReportDeptPersonName());
+            subtaskDetailTrace.setCirculationDeptPersonCode(svyTaskTemplateScriptVO.getCirculationDeptPersonCode());
+            subtaskDetailTrace.setCirculationDeptPersonName(svyTaskTemplateScriptVO.getCirculationDeptPersonName());
 
             Long existTraceId = existingTraceIdMap.get(subtaskDetailTrace.getScriptid());
             if (existTraceId != null) {
@@ -1336,9 +1354,19 @@
                 stt = ivrTaskTemplateTargetoption;
         }
 
-
+        String orgid = selectServiceSubtaskList.get(0).getOrgid();
+        //鏅畞-闅忚寮傚父鎻愮ず 鍏朵粬-寮傚父婊℃剰搴︽彁绀�
+        boolean addTrace = false;
+        if(StringUtils.isNotEmpty(orgid) && orgid.equals("47255004333112711A1001")){
+            if (stt != null) {
+                addTrace = Long.valueOf(1L).equals(stt.getIsabnormal());
+            }
+        }else {
+            addTrace = StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIsMydException());
+        }
         //鍒ゆ柇涓�涓嬪綋鍓嶇殑闂鏄笉鏄弧鎰忓害闂锛屽苟涓攄utyDeptCode鏄惁鏈夊�硷紝骞朵笖閫夐」鏄笉鏄紓甯搁�夐」锛屽鏋滃叏绗﹀悎锛屽垯寰�婊℃剰搴﹂棶棰樺紓甯歌〃鏂板
-        if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) && 1 == stt.getIsabnormal() || StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIsMydException())) {
+        if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) && 1 == stt.getIsabnormal() || StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode())
+                && addTrace) {
             isabnormalFlag = "1";
             ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace();
             subtaskDetailTrace.setDetailId(serviceSubtaskDetail.getId());

--
Gitblit v1.9.3