From 72337c4a38bc8f5dbadbb492e2f0548521842798 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 22 十月 2026 16:20:12 +0800
Subject: [PATCH] 【丽水】1、出院未到28天超时,也到了随访中心 2、出院28天超时任务,到随访中心的,会一次性生成4条任务

---
 smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java |   65 +++++++++++++++++++++++++++++++-
 1 files changed, 62 insertions(+), 3 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java
index f5706f4..cea1042 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java
@@ -4,8 +4,11 @@
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DtoConversionUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.smartor.domain.PatChildArchive;
+import com.smartor.domain.PatChildArchiveDetail;
 import com.smartor.domain.PatMaternityArchive;
 import com.smartor.domain.PatMaternityArchiveDetail;
+import com.smartor.mapper.PatMaternityArchiveDetailMapper;
 import com.smartor.mapper.PatMaternityArchiveMapper;
 import com.smartor.service.IPatMaternityArchiveDetailService;
 import com.smartor.service.IPatMaternityArchiveService;
@@ -32,6 +35,8 @@
 
     @Autowired
     private IPatMaternityArchiveDetailService patMaternityArchiveDetailService;
+    @Autowired
+    private PatMaternityArchiveDetailMapper patMaternityArchiveDetailMapper;
 
     @Override
     public PatMaternityArchive selectPatMaternityArchiveById(Long id)
@@ -89,9 +94,63 @@
             throw new BaseException("濡囩妗f鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
         }
 
+        //淇濊瘉鍚屼竴灏辫瘖璁板綍鍚屼竴妗f绫诲瀷鍙兘鐢熸垚涓�鏉�
+        PatMaternityArchiveDetail patMaternityArchiveDetailVo = new PatMaternityArchiveDetail();
+        patMaternityArchiveDetailVo.setOrgid(patMaternityArchiveDetail.getOrgid());
+        patMaternityArchiveDetailVo.setPatid(patMaternityArchiveDetail.getPatid());
+        patMaternityArchiveDetailVo.setOuthospno(patMaternityArchiveDetail.getOuthospno());
+        patMaternityArchiveDetailVo.setArchiveType(patMaternityArchiveDetail.getArchiveType());
+        List<PatMaternityArchiveDetail> patMaternityArchiveDetailOlds
+                = patMaternityArchiveDetailService.selectPatMaternityArchiveDetailList(patMaternityArchiveDetailVo);
+
+
+        if (StringUtils.isEmpty(patMaternityArchiveDetail.getOuthospno())) {
+            throw new BaseException("濡囩妗f鍏ュ弬闂ㄨ瘖缂栧彿outhospno涓虹┖锛岃妫�鏌ュ叆鍙傞棬璇婄紪鍙�");
+        }
+        if (StringUtils.isEmpty(patMaternityArchiveDetail.getArchiveType())) {
+            throw new BaseException("濡囩妗f鍏ュ弬妗f绫诲瀷archiveType涓虹┖锛岃妫�鏌ュ叆鍙傛。妗堢被鍨�");
+        }
+
+        // 鎸変笟鍔¢敭鏌ヨ鎯�
+        PatMaternityArchiveDetail key = new PatMaternityArchiveDetail();
+        key.setOrgid(patMaternityArchiveDetail.getOrgid());
+        key.setPatid(patMaternityArchiveDetail.getPatid());
+        key.setOuthospno(patMaternityArchiveDetail.getOuthospno());
+        key.setArchiveType(patMaternityArchiveDetail.getArchiveType());
+        List<PatMaternityArchiveDetail> olds =
+                patMaternityArchiveDetailService.selectPatMaternityArchiveDetailList(key);
+
+        Long existArchiveId = null;
+        Long existDetailId = null;
+        if (CollectionUtils.isNotEmpty(olds)) {
+            existArchiveId = olds.get(0).getArchiveid();
+            existDetailId = olds.get(0).getId();
+        }
+
+        // 璇︽儏娌℃煡鍒帮紝鍐嶅厹搴曟寜鍚屾牱閿煡涓昏〃锛岄伩鍏嶄富琛ㄩ噸澶�
+        if (existArchiveId == null) {
+            PatMaternityArchive mainKey = new PatMaternityArchive();
+            mainKey.setOrgid(patMaternityArchiveDetail.getOrgid());
+            mainKey.setPatid(patMaternityArchiveDetail.getPatid());
+            mainKey.setOuthospno(patMaternityArchiveDetail.getOuthospno());
+            mainKey.setArchiveType(patMaternityArchiveDetail.getArchiveType());
+            List<PatMaternityArchive> mainOlds =
+                    patMaternityArchiveMapper.selectPatMaternityArchiveList(mainKey);
+            if (CollectionUtils.isNotEmpty(mainOlds)) {
+                existArchiveId = mainOlds.get(0).getId();
+            }
+        }
+        patMaternityArchiveDetail.setArchiveid(existArchiveId);
+
+        // 鍚庨潰鏇存柊璇︽儏鏃讹紝浼樺厛鐢ㄤ笟鍔¢敭鍖归厤鍒扮殑 detail id
+        Long detailId = patMaternityArchiveDetail.getId();
+        if (detailId == null) {
+            detailId = existDetailId;
+        }
+
         // 鍙紶浜嗚鎯卛d鏃讹紝鍙嶆煡鍑哄搴旂殑妗f涓婚敭id锛屼繚璇佸悗缁兘姝g‘鏇存柊涓昏〃
-        if (patMaternityArchiveDetail.getId() != null && patMaternityArchiveDetail.getArchiveid() == null) {
-            PatMaternityArchiveDetail existDetail = patMaternityArchiveDetailService.selectPatMaternityArchiveDetailById(patMaternityArchiveDetail.getId());
+        if (CollectionUtils.isNotEmpty(patMaternityArchiveDetailOlds)) {
+            PatMaternityArchiveDetail existDetail = patMaternityArchiveDetailOlds.get(0);
             if (existDetail != null) {
                 patMaternityArchiveDetail.setArchiveid(existDetail.getArchiveid());
             }
@@ -121,7 +180,7 @@
         // 鍥炲~涓昏〃id鍒拌鎯咃紝鍚屾鐢熸垚/鏇存柊璇︽儏琛�
         patMaternityArchiveDetail.setArchiveid(patMaternityArchive.getId());
 
-        Long detailId = patMaternityArchiveDetail.getId();
+//        Long detailId = patMaternityArchiveDetail.getId();
         if (detailId == null && patMaternityArchiveDetail.getArchiveid() != null) {
             PatMaternityArchiveDetail query = new PatMaternityArchiveDetail();
             query.setArchiveid(patMaternityArchiveDetail.getArchiveid());

--
Gitblit v1.9.3