From 0dffefa0ba7f38d54852b3c3f97158df236bfe34 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 21 七月 2026 16:42:40 +0800
Subject: [PATCH] 【丽水】病人出院记录查询慢问题处理

---
 smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java |  100 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 70 insertions(+), 30 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
index 745c58a..382ef76 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -435,18 +435,23 @@
         Map yeWuXX = (Map) dataMap.get("YeWuXX");
         Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
         Map<String, Object> RuKeXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("RuKeXX") : null;
+        Map<String, Object> JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JiuZhenXX") : null;
 
         List<HashMap<String, Object>> epai = ObjectUtils.isNotEmpty(yeWuXX) ? (List<HashMap<String, Object>>) BingRenXX.get("DiZhiXXList") : null;
 
         ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
         ExternalInDeptPatientInfo externalInDeptPatientInfo = BeanUtil.mapToBean(RuKeXX, ExternalInDeptPatientInfo.class, true);
+
+        ExternalInDeptPatientInfo externalJZInfo = BeanUtil.mapToBean(JiuZhenXX, ExternalInDeptPatientInfo.class, true);
+        if(ObjectUtils.isNotEmpty(externalJZInfo)){
+            externalInHospPatientInfo.setJingGuanYSID(externalJZInfo.getJingGuanYSID());
+            externalInHospPatientInfo.setJingGuanYSXM(externalJZInfo.getJingGuanYSXM());
+        }
         externalInHospPatientInfo.setZeRenHSID(externalInDeptPatientInfo.getZeRenHSID());
         externalInHospPatientInfo.setZeRenHSXM(externalInDeptPatientInfo.getZeRenHSXM());
         externalInHospPatientInfo.setZhuZhiYSID(externalInDeptPatientInfo.getZhuZhiYSID());
         externalInHospPatientInfo.setZhuZhiYSXM(externalInDeptPatientInfo.getZhuZhiYSXM());
         externalInHospPatientInfo.setRuYuanSJ(externalInDeptPatientInfo.getRuYuanSJ());
-        externalInHospPatientInfo.setJingGuanYSID(externalInDeptPatientInfo.getJingGuanYSID());
-        externalInHospPatientInfo.setJingGuanYSXM(externalInDeptPatientInfo.getJingGuanYSXM());
         externalInHospPatientInfo.setLianXiDH(ObjectUtils.isNotEmpty(BingRenXX.get("LianXiDH")) ? BingRenXX.get("LianXiDH").toString() : null);
         externalInHospPatientInfo.setDangQianCWID(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianCWID")) ? BingRenXX.get("DangQianCWID").toString() : null);
         externalInHospPatientInfo.setDangQianCWMC(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianCWMC")) ? BingRenXX.get("DangQianCWMC").toString() : null);
@@ -517,13 +522,20 @@
         Map yeWuXX = (Map) dataMap.get("YeWuXX");
         Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
         Map<String, Object> ChuYuanJL = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("ChuYuanJL") : null;
+        Map<String, Object> JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JiuZhenXX") : null;
         List<HashMap<String, Object>> epai = ObjectUtils.isNotEmpty(BingRenXX) ? (List<HashMap<String, Object>>) BingRenXX.get("DiZhiXXList") : null;
         List<HashMap<String, Object>> epli = ObjectUtils.isNotEmpty(yeWuXX) ? (List<HashMap<String, Object>>) yeWuXX.get("LianXiRList") : null;
         Map<String, Object> SuiFangJH = ObjectUtils.isNotEmpty(ChuYuanJL) ? (Map<String, Object>) ChuYuanJL.get("SuiFangJH") : null;
-
         ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
         ExternalInHospPatientAddrInfo externalInHospPatientAddrInfo = null;
         ExternalInHospPatientLiaisonInfo externalInHospPatientLiaisonInfo = null;
+
+        //灏辫瘖淇℃伅
+        ExternalInDeptPatientInfo externalJZInfo = BeanUtil.mapToBean(JiuZhenXX, ExternalInDeptPatientInfo.class, true);
+        if(ObjectUtils.isNotEmpty(externalJZInfo)){
+            externalInHospPatientInfo.setJingGuanYSID(externalJZInfo.getJingGuanYSID());
+            externalInHospPatientInfo.setJingGuanYSXM(externalJZInfo.getJingGuanYSXM());
+        }
         List<ExternalInHospPatientAddrInfo> epai2 = null;
         //姝讳骸鏍囪
         Boolean deathFlag = false;
@@ -582,7 +594,6 @@
             String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
             patMedInhosp1.setTagname(tagname);
         }
-        Map<String, Object> JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JiuZhenXX") : null;
         PatMedInhosp patMedInhosp1 = new PatMedInhosp();
         if (CollectionUtils.isNotEmpty(patMedInhospList)) patMedInhosp1 = patMedInhospList.get(0);
         patMedInhosp1.setSchemestatus(2L);
@@ -599,6 +610,9 @@
             patMedInhosp1.setNurseName(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZeRenHSXM")) ? JiuZhenXX.get("ZeRenHSXM").toString() : null);
             patMedInhosp1.setNurseId(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZeRenHSID")) ? JiuZhenXX.get("ZeRenHSID").toString() : null);
             patMedInhosp1.setBedNo(ObjectUtils.isNotEmpty(JiuZhenXX.get("DangQianCWMC")) ? JiuZhenXX.get("DangQianCWMC").toString() : null);
+
+            patMedInhosp1.setManagementDoctorCode(ObjectUtils.isNotEmpty(JiuZhenXX.get("JingGuanYSID")) ? JiuZhenXX.get("JingGuanYSID").toString() : null);
+            patMedInhosp1.setManagementDoctor(ObjectUtils.isNotEmpty(JiuZhenXX.get("JingGuanYSXM")) ? JiuZhenXX.get("JingGuanYSXM").toString() : null);
 
             //绂婚櫌鏂瑰紡浠g爜 1-鍖荤灘绂婚櫌 2-鍖诲槺杞櫌 3-鍖诲槺杞ぞ鍖哄崼鐢熸湇鍔℃満鏋�/涔¢晣鍗敓闄�
             // 4-闈炲尰鍢辩闄� 5-姝讳骸 9-鍏朵粬 10-浠嬪叆瀹� 20-鎵嬫湳瀹�
@@ -982,6 +996,9 @@
             patMedInhosp1.setNurseName(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZeRenHSXM")) ? JiuZhenXX.get("ZeRenHSXM").toString() : null);
             patMedInhosp1.setNurseId(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZeRenHSID")) ? JiuZhenXX.get("ZeRenHSID").toString() : null);
             patMedInhosp1.setBedNo(ObjectUtils.isNotEmpty(JiuZhenXX.get("DangQianCWMC")) ? JiuZhenXX.get("DangQianCWMC").toString() : null);
+
+            patMedInhosp1.setManagementDoctorCode(ObjectUtils.isNotEmpty(JiuZhenXX.get("JingGuanYSID")) ? JiuZhenXX.get("JingGuanYSID").toString() : null);
+            patMedInhosp1.setManagementDoctor(ObjectUtils.isNotEmpty(JiuZhenXX.get("JingGuanYSXM")) ? JiuZhenXX.get("JingGuanYSXM").toString() : null);
         }
         patMedInhosp1.setUpdateTime(new Date());
         patMedInhosp1.setTelcode(patArchive.getTelcode());
@@ -1050,6 +1067,13 @@
             int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
             if (i != 1) return false;
         }
+
+        //绂婚櫌鏂瑰紡浠g爜 1-鍖荤灘绂婚櫌 2-鍖诲槺杞櫌 3-鍖诲槺杞ぞ鍖哄崼鐢熸湇鍔℃満鏋�/涔¢晣鍗敓闄�
+        // 4-闈炲尰鍢辩闄� 5-姝讳骸 9-鍏朵粬 10-浠嬪叆瀹� 20-鎵嬫湳瀹�
+        String liYuanQxdm = ObjectUtils.isNotEmpty(JiuZhenXX.get("LiYuanQXDM")) ? JiuZhenXX.get("LiYuanQXDM").toString() : null;
+        if (ObjectUtils.isNotEmpty(liYuanQxdm) && ("5").equals(liYuanQxdm)) {
+            deathPatProcess(liYuanQxdm,patMedInhosp1);
+        }
         return true;
     }
 
@@ -1093,36 +1117,11 @@
                 }
             }
 
-            //姝讳骸鏍囪
-            Boolean deathFlag = false;
             //绂婚櫌鏂瑰紡浠g爜 1-鍖荤灘绂婚櫌 2-鍖诲槺杞櫌 3-鍖诲槺杞ぞ鍖哄崼鐢熸湇鍔℃満鏋�/涔¢晣鍗敓闄�
             // 4-闈炲尰鍢辩闄� 5-姝讳骸 9-鍏朵粬 10-浠嬪叆瀹� 20-鎵嬫湳瀹�
             String liYuanQxdm = ObjectUtils.isNotEmpty(JiuZhenXX.get("LiYuanQXDM")) ? JiuZhenXX.get("LiYuanQXDM").toString() : null;
-            //鍒ゆ柇鐥呬汉鏄惁姝讳骸
             if (ObjectUtils.isNotEmpty(liYuanQxdm) && ("5").equals(liYuanQxdm)) {
-                deathFlag = true;
-            }
-            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid());
-            if(ObjectUtils.isNotEmpty(patArchive)){
-                patMedInhosp1.setInhospstate("1");
-                if (deathFlag) {
-                    //鐥呬汉姝讳骸鏃犻』闅忚
-                    patMedInhosp1.setFuflag("0");
-                    //鏇存柊鐥呬汉 notrequiredFlag
-                    patArchive.setNotrequiredFlag("1");
-                    patArchive.setNotrequiredreason("鎮h�呭凡绂讳笘");
-                    patArchiveMapper.updatePatArchive(patArchive);
-                    //瀵瑰凡缁忕敓鎴愮殑闅忚浠诲姟杩涜澶勭悊
-                    ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
-                    serviceSubtaskVO.setPatid(patArchive.getId());
-                    serviceSubtaskVO.setSendstate(2L);
-                    List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
-                    for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
-                        serviceSubtask.setSendstate(4L);
-                        serviceSubtask.setRemark(serviceSubtask.getRemark() + ";鎮h�呭凡绂讳笘锛屼笉闅忚");
-                        serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
-                    }
-                }
+                deathPatProcess(liYuanQxdm,patMedInhosp1);
             }
             return true;
         } else {
@@ -2118,4 +2117,45 @@
         return requestParams;
     }
 
+    /**
+     * 姝讳骸鎮h�呭鐞�
+     * @param liYuanQxdm
+     * @param patMedInhosp
+     * @return
+     */
+    private int deathPatProcess(String liYuanQxdm, PatMedInhosp patMedInhosp){
+        //姝讳骸鏍囪
+        Boolean deathFlag = false;
+        //鍒ゆ柇鐥呬汉鏄惁姝讳骸
+        if (ObjectUtils.isNotEmpty(liYuanQxdm) && ("5").equals(liYuanQxdm)) {
+            deathFlag = true;
+        }
+        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid());
+        if(ObjectUtils.isNotEmpty(patArchive)) {
+            patMedInhosp.setInhospstate("1");
+            if (deathFlag) {
+                //鐥呬汉姝讳骸鏃犻』闅忚
+                patMedInhosp.setFuflag("0");
+                //鏇存柊鐥呬汉 notrequiredFlag
+                patArchive.setNotrequiredFlag("1");
+                patArchive.setNotrequiredreason("鎮h�呭凡绂讳笘");
+                patArchiveMapper.updatePatArchive(patArchive);
+                //瀵瑰凡缁忕敓鎴愮殑闅忚浠诲姟杩涜澶勭悊
+                ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
+                serviceSubtaskVO.setPatid(patArchive.getId());
+                serviceSubtaskVO.setSendstate(2L);
+                List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+                for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+                    serviceSubtask.setSendstate(4L);
+                    serviceSubtask.setRemark(serviceSubtask.getRemark() + ";鎮h�呭凡绂讳笘锛屼笉闅忚");
+                    serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+                }
+            } else {
+                return 0;
+            }
+        }else {
+            return -1;
+        }
+        return 1;
+    }
 }

--
Gitblit v1.9.3