From f2fae5a8c221528977fe90789f00a895ced212c3 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 23 三月 2026 17:16:03 +0800
Subject: [PATCH] 新增病区与科室组合

---
 smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java |   71 +++++++++++++++++++++++++++++------
 1 files changed, 59 insertions(+), 12 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
index f9a5cb8..6baf3e1 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -7,6 +7,7 @@
 import com.ruoyi.common.utils.DtoConversionUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.smartor.domain.*;
+import com.smartor.domain.entity.ServiceSubtaskEntity;
 import com.smartor.mapper.*;
 import com.smartor.service.IPatArchiveService;
 import com.smartor.service.IPatMedInhospService;
@@ -62,7 +63,7 @@
     private PatArchivecontactMapper patArchivecontactMapper;
 
     @Autowired
-    private IPatMedPhysicalService patMedPhysicalService;
+    private PatMedOuthospMapper patMedOuthospMapper;
 
     @Autowired
     private RedisCache redisCache;
@@ -160,7 +161,7 @@
             patArchiveMapper.updatePatArchive(patArchive);
             if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) {
                 //涓嶉渶瑕佹湇鍔′簡锛岄渶瑕侀�氳繃patid鍜宻endstate=2鎴栬�卻endstate=1鍘绘煡璇竴涓嬶紝service_subtask閲屾槸鍚︽湁姝e湪鎵ц鐨勪换鍔★紝鏈夌殑璇濓紝绔嬪嵆鍋滀簡
-                ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+                ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
                 serviceSubtaskVO.setPatid(patArchive.getId());
                 serviceSubtaskVO.setSendstate(2L);
                 List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
@@ -272,9 +273,11 @@
             }
         } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 2) {
             // 鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3
-            List<PatArchiveOthreInfo> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthosp(patArchiveReq);
-            if (CollectionUtils.isNotEmpty(patArchives2)) {
-                patArchiveList.addAll(patArchives2);
+//            List<PatArchiveOthreInfo> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthosp(patArchiveReq);
+            List<PatArchiveOthreInfo> patientInfoQC = getPatientInfoUtils(patArchiveReq);
+
+            if (CollectionUtils.isNotEmpty(patientInfoQC)) {
+                patArchiveList.addAll(patientInfoQC);
             }
         } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 3) {
             //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3
@@ -593,9 +596,9 @@
                 patArchiveList.addAll(patArchives1);
             }
         } else if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 2) {
-            List<PatArchiveOthreInfo> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthosp(patArchive);
-            if (CollectionUtils.isNotEmpty(patArchives2)) {
-                patArchiveList.addAll(patArchives2);
+            List<PatArchiveOthreInfo> patientInfoUtils = getPatientInfoUtils(patArchive);
+            if (CollectionUtils.isNotEmpty(patientInfoUtils)) {
+                patArchiveList.addAll(patientInfoUtils);
             }
         } else if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 3) {
             List<PatArchiveOthreInfo> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchive);
@@ -780,9 +783,13 @@
             }
         } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 2) {
             // 鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3 鏌ョ湅鍑洪櫌 4
-            List<PatArchiveOthreInfo> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthospQC(patArchiveReq);
-            if (CollectionUtils.isNotEmpty(patArchives2)) {
-                patArchiveList.addAll(patArchives2);
+            List<PatArchiveOthreInfo> patArchives2 = new ArrayList<>();
+//            List<PatArchiveOthreInfo> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthospQC(patArchiveReq);
+
+            //闂ㄦ�ヨ瘖淇℃伅锛岄噰鐢ㄥ垎琛ㄦ煡璇紙鍏堟煡闂ㄦ�ヨ瘖鐨勫瓨鍌ㄨ繃绋嬶紝鍐嶆煡鎮h�呭熀鏈俊鎭〃锛屽叧鑱旀潯浠讹細patid锛�
+            List<PatArchiveOthreInfo> patientInfoUtils = getPatientInfoUtils(patArchiveReq);
+            if (CollectionUtils.isNotEmpty(patientInfoUtils)) {
+                patArchiveList.addAll(patientInfoUtils);
             }
         } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 3) {
             //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3 鏌ョ湅鍑洪櫌 4
@@ -846,7 +853,19 @@
             count = patArchiveMapper.countPatArchiveInfoByInhospQC(patArchiveReq);
         } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 2) {
             // 鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3 鏌ョ湅鍑洪櫌 4
-            count = patArchiveMapper.countPatArchiveInfoByOuthospQC(patArchiveReq);
+//            count = patArchiveMapper.countPatArchiveInfoByOuthospQC(patArchiveReq);
+            PatMedOuthospQueryReq req=new PatMedOuthospQueryReq();
+            String deptcodes = CollectionUtils.isEmpty(patArchiveReq.getLeaveldeptcodes()) ? null : String.join(",", patArchiveReq.getLeaveldeptcodes());
+            String leavehospitaldistrictcodes = CollectionUtils.isEmpty(patArchiveReq.getLeavehospitaldistrictcodes()) ? null : String.join(",", patArchiveReq.getLeavehospitaldistrictcodes());
+            req.setDeptcode(deptcodes);
+            req.setHospitaldistrictcode(leavehospitaldistrictcodes);
+            req.setOrgid(patArchiveReq.getOrgid());
+            req.setDrname(StringUtils.isNotEmpty(patArchiveReq.getDrname()) ? patArchiveReq.getDrname() : null);
+            req.setPatname(StringUtils.isNotEmpty(patArchiveReq.getName()) ? patArchiveReq.getName() : null);
+            req.setDiagname(StringUtils.isNotEmpty(patArchiveReq.getLeavediagname()) ? patArchiveReq.getLeavediagname() : null);
+            count = patMedOuthospMapper.callSpQueryOuthospCount(req);
+
+
         } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 3) {
             //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3 鏌ョ湅鍑洪櫌 4
             count = patArchiveMapper.countPatArchiveInfoByPhysicalQC(patArchiveReq);
@@ -858,5 +877,33 @@
 
         return count;
     }
+
+    private List<PatArchiveOthreInfo> getPatientInfoUtils(PatArchiveReq patArchiveReq) {
+        List<PatArchiveOthreInfo> patArchiveList = new ArrayList<>();
+
+        //闂ㄦ�ヨ瘖淇℃伅锛岄噰鐢ㄥ垎琛ㄦ煡璇紙鍏堟煡闂ㄦ�ヨ瘖鐨勫瓨鍌ㄨ繃绋嬶紝鍐嶆煡鎮h�呭熀鏈俊鎭〃锛屽叧鑱旀潯浠讹細patid锛�
+        PatMedOuthospQueryReq req=new PatMedOuthospQueryReq();
+        String deptcodes = CollectionUtils.isEmpty(patArchiveReq.getLeaveldeptcodes()) ? null : String.join(",", patArchiveReq.getLeaveldeptcodes());
+        String leavehospitaldistrictcodes = CollectionUtils.isEmpty(patArchiveReq.getLeavehospitaldistrictcodes()) ? null : String.join(",", patArchiveReq.getLeavehospitaldistrictcodes());
+        req.setDeptcode(deptcodes);
+        req.setHospitaldistrictcode(leavehospitaldistrictcodes);
+        req.setOrgid(patArchiveReq.getOrgid());
+        req.setDrname(StringUtils.isNotEmpty(patArchiveReq.getDrname()) ? patArchiveReq.getDrname() : null);
+        req.setPatname(StringUtils.isNotEmpty(patArchiveReq.getName()) ? patArchiveReq.getName() : null);
+        req.setDiagname(StringUtils.isNotEmpty(patArchiveReq.getLeavediagname()) ? patArchiveReq.getLeavediagname() : null);
+        req.setPageNum(patArchiveReq.getPageNum()==null?null:patArchiveReq.getPageNum());
+        req.setPageSize(patArchiveReq.getPageSize()==null?null:patArchiveReq.getPageSize());
+        List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(req);
+        for (PatMedOuthosp patMedOuthosp:patMedOuthosps ) {
+            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp.getPatid());
+            PatArchiveOthreInfo patArchiveOthreInfo = DtoConversionUtils.sourceToTarget(patArchive, PatArchiveOthreInfo.class);
+            patArchiveOthreInfo.setDeptcode(patMedOuthosp.getDeptcode());
+            patArchiveOthreInfo.setDeptname(patMedOuthosp.getDeptname());
+            patArchiveOthreInfo.setDrcode(patMedOuthosp.getDrcode());
+            patArchiveOthreInfo.setDrname(patMedOuthosp.getDrname());
+            patArchiveList.add(patArchiveOthreInfo);
+        }
+        return patArchiveList;
+    }
 }
 

--
Gitblit v1.9.3