From a3f50d850d8834f73922af5a9caccde28188f719 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 11 三月 2026 17:25:05 +0800
Subject: [PATCH] 【丽水】新增科室用户信息接口输入 推流失败bug处理

---
 smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java |   82 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 80 insertions(+), 2 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 49985f0..1a003c6 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -7,8 +7,10 @@
 import com.ruoyi.common.core.domain.entity.SysUserDept;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.smartor.domain.*;
+import com.smartor.domain.entity.ServiceSubtaskEntity;
 import com.smartor.mapper.*;
 import com.smartor.service.IServiceExternalService;
 import lombok.extern.slf4j.Slf4j;
@@ -187,6 +189,7 @@
 
     @Override
     public Boolean addUserDeptInfo(Map dataMap) {
+        //todo
         log.info("ServiceExternalServiceImpl---addUserDeptInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap);
         Map yeWuXX = (Map) dataMap.get("YeWuXX");
         Map<String, Object> keShiYH = (Map<String, Object>) yeWuXX.get("KeShiYH");
@@ -199,7 +202,8 @@
         //鑾峰彇褰撳墠鐢ㄦ埛Name瀵瑰簲鐨剈ser淇℃伅
         SysUser sysUser = null;
         SysUser sysUserVo = new SysUser();
-        sysUserVo.setUserName(externalUserDeptInfo.getYongHuDLM());
+//        sysUserVo.setUserName(externalUserDeptInfo.getYongHuDLM());
+        sysUserVo.setHisUserId(externalUserDeptInfo.getYongHuID());
         sysUserVo.setOrgid(externalUserDeptInfo.getZuZhiJGID());
         //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
         sysUserVo.setCampusid("1");
@@ -508,6 +512,8 @@
         ExternalInHospPatientAddrInfo externalInHospPatientAddrInfo = null;
         ExternalInHospPatientLiaisonInfo externalInHospPatientLiaisonInfo = null;
         List<ExternalInHospPatientAddrInfo> epai2 = null;
+        //姝讳骸鏍囪
+        Boolean deathFlag = false;
         if (CollectionUtils.isNotEmpty(epai)) {
             epai2 = epai.stream().map(map -> {
                 ExternalInHospPatientAddrInfo info = new ExternalInHospPatientAddrInfo();
@@ -569,6 +575,14 @@
             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);
+
+            //绂婚櫌鏂瑰紡浠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;
+            }
         }
         patMedInhosp1.setUpdateTime(new Date());
         patMedInhosp1.setTelcode(patArchive.getTelcode());
@@ -612,6 +626,23 @@
         }
 
         patMedInhosp1.setInhospstate("1");
+        if(deathFlag){
+            //鐥呬汉姝讳骸鏃犻』闅忚
+            patMedInhosp1.setFuflag("1");
+            //鏇存柊鐥呬汉 notrequiredFlag
+            patArchive.setNotrequiredFlag("1");
+            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(6L);
+                serviceSubtask.setRemark(serviceSubtask.getRemark() + ";鐥呬汉宸叉浜★紝涓嶉殢璁�");
+                serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+            }
+        }
         if (CollectionUtils.isNotEmpty(patMedInhospList)) {
             patMedInhosp1.setUpdateTime(new Date());
             patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
@@ -823,7 +854,7 @@
             int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
 
             //鍙栨秷鍑洪櫌锛屽氨涓嶉渶瑕佹湇鍔′簡锛岄渶瑕侀�氳繃patid鍜宻endstate=2鎴栬�卻endstate=1鍘绘煡璇竴涓嬶紝service_subtask閲屾槸鍚︽湁姝e湪鎵ц鐨勪换鍔★紝鏈夌殑璇濓紝绔嬪嵆鍋滀簡
-            ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+            ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
             serviceSubtaskVO.setPatid(patMedInhosp1.getPatid());
             serviceSubtaskVO.setSendstate(2L);
             List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
@@ -997,6 +1028,50 @@
         return true;
     }
 
+    /**
+     * 鐩墠锛屼粠鎬ヨ瘖鎶㈡晳鍚庤浆鍏ヤ綇闄㈢殑鎮h�咃紝鍏舵暟鎹噰闆嗗瓨鍦ㄤ竴涓棶棰橈細鏈変袱鏉″叆闄㈣褰曘��
+     * 绗竴鏉★紙鎬ヨ瘖绉戝鐨勶級璁板綍缂哄皯鈥滃嚭闄㈡椂闂粹�濓紝瀵艰嚧璇ヨ褰曞湪缁熻涓缁堟樉绀轰负鈥滃湪闄⑩�濓紝
+     * 鑰岀浜屾潯锛堣浆鍏ョ瀹ょ殑锛夎褰曟槸瀹屾暣鐨勩�傛垜浠渶瑕侀噰闆� JZ_ZY_LiQiang鎺ュ彛鐨勬暟鎹紝
+     * 閲岄潰鐨勭鎶㈡椂闂存潵鍙嶅~绗竴鏉¤褰曠殑鈥滃嚭闄㈡椂闂粹�濓紝浠庤�屼慨姝g涓�鏉¤褰曠殑鐘舵�併��
+     * @param dataMap
+     * @return
+     */
+    @Override
+    public Boolean editRescueFinishedOutHospInfo(Map dataMap) {
+        log.info("ServiceExternalServiceImpl---editRescueFinishedOutHospInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap);
+        Map yeWuXX = (Map) dataMap.get("YeWuXX");
+        //鐥呬汉淇℃伅
+        Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
+        //灏辫瘖淇℃伅
+        Map<String, Object> JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JiuZhenXX") : null;
+
+        ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
+        PatMedInhosp patMedInhosp = new PatMedInhosp();
+        patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
+        patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
+        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
+        PatMedInhosp patMedInhosp1 = null;
+        if (CollectionUtils.isNotEmpty(patMedInhospList)) patMedInhosp1 = patMedInhospList.get(0);
+        if(ObjectUtils.isNotEmpty(patMedInhosp1)){
+            if (ObjectUtils.isNotEmpty(JiuZhenXX.get("LiQiangSJ"))) {
+                try {
+                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    patMedInhosp1.setEndtime(simpleDateFormat.parse(JiuZhenXX.get("LiQiangSJ").toString()));
+                    patMedInhosp1.setUpdateTime(new Date());
+                    //鏇存柊鍑洪櫌鐘舵��
+                    patMedInhosp1.setInhospstate("1");
+                    int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                    if (i != 1) return false;
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+            }
+            return true;
+        }else {
+            log.error("ServiceExternalServiceImpl---editRescueFinishedOutHospInfo鐨勬病鏈夋壘鍒板搴旂殑鍑洪櫌璁板綍锛歿}", dataMap);
+            return false;
+        }
+    }
     @Override
     public Boolean addFinshJZInfo(Map dataMap) {
         log.info("ServiceExternalServiceImpl---addFinshJZInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap);
@@ -1929,6 +2004,9 @@
             case "JZ_ZY_YuChuYuan":
                 log.info("鎮h�呴鍑洪櫌鍏ュ弬绫诲瀷涓猴細{}", type);
                 return addPreOutHospInfo(dataMap);
+            case "JZ_ZY_LiQiang":
+                log.info("鎮h�呯鎶㈠叆鍙傜被鍨嬩负锛歿}", type);
+                return editRescueFinishedOutHospInfo(dataMap);
             case "JG_ZZ_BingQu":
                 log.info("鐥呭尯淇℃伅鍏ュ弬绫诲瀷涓猴細{}", type);
                 return addWardAreaInfo(dataMap);

--
Gitblit v1.9.3