From ebea32b73dc5182247165d7040b8f8f5b7d72ed7 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 20 十月 2026 14:54:49 +0800
Subject: [PATCH] 【丽水】处理超时随访任务

---
 smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java |   48 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 42 insertions(+), 6 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java
index 04aef2b..4dd9148 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java
@@ -88,14 +88,50 @@
             log.error("insertOrUpdateChildArchive鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
             throw new BaseException("鍎跨妗f鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
         }
+        if (StringUtils.isEmpty(patChildArchiveDetail.getOuthospno())) {
+            throw new BaseException("鍎跨妗f鍏ュ弬闂ㄨ瘖缂栧彿outhospno涓虹┖锛岃妫�鏌ュ叆鍙傞棬璇婄紪鍙�");
+        }
+        if (StringUtils.isEmpty(patChildArchiveDetail.getArchiveType())) {
+            throw new BaseException("鍎跨妗f鍏ュ弬妗f绫诲瀷archiveType涓虹┖锛岃妫�鏌ュ叆鍙傛。妗堢被鍨�");
+        }
 
-        // 鍙紶浜嗚鎯卛d鏃讹紝鍙嶆煡鍑哄搴旂殑妗f涓婚敭id锛屼繚璇佸悗缁兘姝g‘鏇存柊涓昏〃
-        if (patChildArchiveDetail.getId() != null && patChildArchiveDetail.getArchiveid() == null) {
-            PatChildArchiveDetail existDetail = patChildArchiveDetailService.selectPatChildArchiveDetailById(patChildArchiveDetail.getId());
-            if (existDetail != null) {
-                patChildArchiveDetail.setArchiveid(existDetail.getArchiveid());
+        // 鎸変笟鍔¢敭鏌ヨ鎯�
+        PatChildArchiveDetail key = new PatChildArchiveDetail();
+        key.setOrgid(patChildArchiveDetail.getOrgid());
+        key.setPatid(patChildArchiveDetail.getPatid());
+        key.setOuthospno(patChildArchiveDetail.getOuthospno());
+        key.setArchiveType(patChildArchiveDetail.getArchiveType());
+        List<PatChildArchiveDetail> olds =
+                patChildArchiveDetailService.selectPatChildArchiveDetailList(key);
+
+        Long existArchiveId = null;
+        Long existDetailId = null;
+        if (CollectionUtils.isNotEmpty(olds)) {
+            existArchiveId = olds.get(0).getArchiveid();
+            existDetailId = olds.get(0).getId();
+        }
+
+        // 璇︽儏娌℃煡鍒帮紝鍐嶅厹搴曟寜鍚屾牱閿煡涓昏〃锛岄伩鍏嶄富琛ㄩ噸澶�
+        if (existArchiveId == null) {
+            PatChildArchive mainKey = new PatChildArchive();
+            mainKey.setOrgid(patChildArchiveDetail.getOrgid());
+            mainKey.setPatid(patChildArchiveDetail.getPatid());
+            mainKey.setOuthospno(patChildArchiveDetail.getOuthospno());
+            mainKey.setArchiveType(patChildArchiveDetail.getArchiveType());
+            List<PatChildArchive> mainOlds =
+                    patChildArchiveMapper.selectPatChildArchiveList(mainKey);
+            if (CollectionUtils.isNotEmpty(mainOlds)) {
+                existArchiveId = mainOlds.get(0).getId();
             }
         }
+        patChildArchiveDetail.setArchiveid(existArchiveId);
+
+        // 鍚庨潰鏇存柊璇︽儏鏃讹紝浼樺厛鐢ㄤ笟鍔¢敭鍖归厤鍒扮殑 detail id
+        Long detailId = patChildArchiveDetail.getId();
+        if (detailId == null) {
+            detailId = existDetailId;
+        }
+
 
         // 灏嗚鎯呬腑鐨勫叕鍏卞瓧娈靛鍒跺埌涓昏〃瀵硅薄
         PatChildArchive patChildArchive = DtoConversionUtils.sourceToTarget(patChildArchiveDetail, PatChildArchive.class);
@@ -121,7 +157,7 @@
         // 鍥炲~涓昏〃id鍒拌鎯咃紝鍚屾鐢熸垚/鏇存柊璇︽儏琛�
         patChildArchiveDetail.setArchiveid(patChildArchive.getId());
 
-        Long detailId = patChildArchiveDetail.getId();
+//      Long detailId = patChildArchiveDetail.getId();
         if (detailId == null && patChildArchiveDetail.getArchiveid() != null) {
             PatChildArchiveDetail query = new PatChildArchiveDetail();
             query.setArchiveid(patChildArchiveDetail.getArchiveid());

--
Gitblit v1.9.3