From 43e7dc349b8bc1515911e64fb12ea820afd1b0d2 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 23 三月 2026 17:07:34 +0800
Subject: [PATCH] 门急诊分表代码(增、改、查)提交

---
 smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java |  210 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 185 insertions(+), 25 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 b5d3963..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,10 +7,8 @@
 import com.ruoyi.common.utils.DtoConversionUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.smartor.domain.*;
-import com.smartor.mapper.BaseTagMapper;
-import com.smartor.mapper.PatArchiveMapper;
-import com.smartor.mapper.PatArchivetagMapper;
-import com.smartor.mapper.ServiceSubtaskMapper;
+import com.smartor.domain.entity.ServiceSubtaskEntity;
+import com.smartor.mapper.*;
 import com.smartor.service.IPatArchiveService;
 import com.smartor.service.IPatMedInhospService;
 import com.smartor.service.IPatMedOuthospService;
@@ -62,13 +60,15 @@
     private IPatMedInhospService patMedInhospService;
 
     @Autowired
-    private IPatMedOuthospService patMedOuthospService;
+    private PatArchivecontactMapper patArchivecontactMapper;
 
     @Autowired
-    private IPatMedPhysicalService patMedPhysicalService;
+    private PatMedOuthospMapper patMedOuthospMapper;
 
     @Autowired
     private RedisCache redisCache;
+    @Autowired
+    private PatArchivetagServiceImpl patArchivetagServiceImpl;
 
 
     /**
@@ -106,6 +106,16 @@
         patArchive.setCreateTime(DateUtils.getNowDate());
         patArchiveMapper.insertPatArchiveSingle(patArchive);
         return patArchive.getId().intValue();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Boolean updateArchive(PatArchive patArchive) {
+        int i = patArchiveMapper.updatePatArchive(patArchive);
+        if (i != 1) {
+            return false;
+        }
+        return true;
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -151,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);
@@ -165,7 +175,7 @@
                 //鍘籸edis涓紝鏌ヨ鏄惁鏈塻ubid锛屾湁鐨勮瘽绉婚櫎cache-exist
                 if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
                     for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
-                        log.error("闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString());
+                        log.info("闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString());
                         serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId());
                         redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString());
                         redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString());
@@ -263,15 +273,24 @@
             }
         } 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
             List<PatArchiveOthreInfo> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchiveReq);
             if (CollectionUtils.isNotEmpty(patArchives3)) {
                 patArchiveList.addAll(patArchives3);
+            }
+        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 4) {
+            //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3   鏌ョ湅鍑洪櫌 4
+            patArchiveReq.setCry(1);
+            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchiveReq);
+            if (CollectionUtils.isNotEmpty(patArchives1)) {
+                patArchiveList.addAll(patArchives1);
             }
         }
 
@@ -551,7 +570,12 @@
     @Override
     public List<PatArchive> patInfoByContion(PatArchiveReq patArchive) {
         List<PatArchive> patArchives = new ArrayList<>();
-
+        if (ObjectUtils.isNotEmpty(patArchive.getPageNum()) && ObjectUtils.isNotEmpty(patArchive.getPageSize())) {
+            patArchive.setPn((patArchive.getPageNum() - 1) * patArchive.getPageSize());
+            patArchive.setPs(patArchive.getPageSize());
+            patArchive.setPageNum(null);
+            patArchive.setPageSize(null);
+        }
         //鏍规嵁鏉′欢鑾峰彇鎮h�呬俊鎭�
 //        List<PatArchive> patArchiveList = patArchiveMapper.patInfoByContion(patArchive);
         List<PatArchiveOthreInfo> patArchiveList = new ArrayList<>();
@@ -572,14 +596,21 @@
                 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);
             if (CollectionUtils.isNotEmpty(patArchives3)) {
                 patArchiveList.addAll(patArchives3);
+            }
+        } else if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 4) {
+            //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3   鏌ョ湅鍑洪櫌 4
+            patArchive.setCry(1);
+            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchive);
+            if (CollectionUtils.isNotEmpty(patArchives1)) {
+                patArchiveList.addAll(patArchives1);
             }
         }
 
@@ -598,15 +629,35 @@
                 }
                 //灏嗘煡鍑虹殑tag锛屾斁鍒皃atArchive1閲岀殑TagList涓�
                 PatArchivetag patArchivetag = new PatArchivetag();
-                patArchivetag.setTagname(list.get(i).getTag());
-                patArchivetag.setTagid(list.get(i).getTagid());
-                stringList.add(patArchivetag);
+                if (StringUtils.isNotEmpty(list.get(i).getTag()) && ObjectUtils.isNotEmpty(list.get(i).getTagid())) {
+                    patArchivetag.setTagname(list.get(i).getTag());
+                    patArchivetag.setTagid(list.get(i).getTagid());
+                    stringList.add(patArchivetag);
+                }
             }
             patArchive1.setTagList(stringList.stream().collect(Collectors.toList()));
             patArchives.add(patArchive1);
         }
+        //灏唒atArchives閲岀殑tagList鏀惧埌patArchiveList鐨勫璞¢噷
+        for (PatArchiveOthreInfo poi : patArchiveList) {
+            for (PatArchive pa : patArchives) {
+                if (poi.getId() == pa.getId()) {
+                    poi.setTagList(pa.getTagList());
 
-        return patArchives;
+                }
+            }
+        }
+
+        List<PatArchive> patArchiveList1 = DtoConversionUtils.sourceToTarget(patArchiveList, PatArchive.class);
+        //缁欐偅鑰呰仈绯讳汉璧嬪��
+//        for (PatArchive pa : patArchives) {
+        for (PatArchive pa : patArchiveList1) {
+            PatArchivecontact patArchivecontact = new PatArchivecontact();
+            patArchivecontact.setPatid(pa.getId());
+            pa.setPatArchivecontactList(patArchivecontactMapper.selectPatArchivecontactList(patArchivecontact));
+        }
+
+        return patArchiveList1;
     }
 
     @Override
@@ -724,25 +775,134 @@
 
         List<PatArchiveOthreInfo> patArchiveList = new ArrayList<>();
         if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 1) {
-            //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3
+            //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3    鏌ョ湅鍑洪櫌 4
+            patArchiveReq.setCry(0);
             List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchiveReq);
             if (CollectionUtils.isNotEmpty(patArchives1)) {
                 patArchiveList.addAll(patArchives1);
             }
         } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 2) {
-            // 鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3
-            List<PatArchiveOthreInfo> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthospQC(patArchiveReq);
-            if (CollectionUtils.isNotEmpty(patArchives2)) {
-                patArchiveList.addAll(patArchives2);
+            // 鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3 鏌ョ湅鍑洪櫌 4
+            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
+            //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3 鏌ョ湅鍑洪櫌 4
             List<PatArchiveOthreInfo> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysicalQC(patArchiveReq);
             if (CollectionUtils.isNotEmpty(patArchives3)) {
                 patArchiveList.addAll(patArchives3);
             }
+
+        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 4) {
+            //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3   鏌ョ湅鍑洪櫌 4
+            patArchiveReq.setCry(1);
+            log.info("--------鏌ョ湅鍑洪櫌鐨勫叆鍙傚�间负锛歿}", patArchiveReq);
+            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchiveReq);
+            log.info("--------鏌ョ湅鍑洪櫌鐨勮繑鍙傚�间负锛歿}", patArchives1.size());
+            if (CollectionUtils.isNotEmpty(patArchives1)) {
+                patArchiveList.addAll(patArchives1);
+            }
+        }
+//        //鏌ヨtagName
+//        List<Long> patIds = patArchiveList.stream().map(PatArchiveOthreInfo::getId).distinct().collect(Collectors.toList());
+//        Map<Long, String> patTagMap= patArchivetagMapper.getTagsByPatIds(patArchiveReq.getOrgid(),patIds);
+//        //瑁呴厤tagName
+//        if(ObjectUtils.isNotEmpty(patTagMap)){
+//            patArchiveList.forEach(patArchiveOthreInfo -> {
+//                String tagName = patTagMap.get(patArchiveOthreInfo.getId());
+//                if(StringUtils.isNotEmpty(tagName)){
+//                    patArchiveOthreInfo.setTag(tagName);
+//                }
+//            });
+//        }
+
+        return patArchiveList;
+    }
+
+    /**
+     * 鑾峰彇鎮h�呬俊鎭�(鍘婚噸)
+     *
+     * @param patArchiveReq
+     * @return
+     */
+//    @Override
+    /**
+     * 鑾峰彇鎮h�呬俊鎭�绘暟锛堝幓閲嶏級
+     *
+     * @param patArchiveReq
+     * @return
+     */
+    @Override
+    public Long getPatientInfoQCCount(PatArchiveReq patArchiveReq) {
+        if (CollectionUtils.isEmpty(patArchiveReq.getLeavehospitaldistrictcodes()) || patArchiveReq.getLeavehospitaldistrictcodes().size() == 0) {
+            patArchiveReq.setLeavehospitaldistrictcodes(null);
+        }
+        if (CollectionUtils.isEmpty(patArchiveReq.getLeaveldeptcodes()) || patArchiveReq.getLeaveldeptcodes().size() == 0) {
+            patArchiveReq.setLeaveldeptcodes(null);
         }
 
+        Long count = 0L;
+        if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 1) {
+            //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3    鏌ョ湅鍑洪櫌 4
+            patArchiveReq.setCry(0);
+            count = patArchiveMapper.countPatArchiveInfoByInhospQC(patArchiveReq);
+        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 2) {
+            // 鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3 鏌ョ湅鍑洪櫌 4
+//            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);
+        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 4) {
+            //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3   鏌ョ湅鍑洪櫌 4
+            patArchiveReq.setCry(1);
+            count = patArchiveMapper.countPatArchiveInfoByInhospQC(patArchiveReq);
+        }
+
+        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