From 26c20d898eb2ae196e1585f245608c59f17959ff Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 23 一月 2026 16:58:31 +0800
Subject: [PATCH] 【丽水】查询语音任务列表BUG 处理

---
 smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java |  210 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 195 insertions(+), 15 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 73f905f..14e304c 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -24,10 +24,7 @@
 import java.time.Period;
 import java.time.ZoneId;
 import java.time.temporal.ChronoUnit;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -71,6 +68,9 @@
     @Value("${defaultPwd}")
     private String defaultPwd;
 
+    @Value("${noLongTask}")
+    private List<String> noLongTask;
+
     public Boolean generalInterface(Map dataMap) {
         Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou");
         String xiaoXiLX = XiaoXiTou.get("XiaoXiLX").toString();
@@ -89,6 +89,8 @@
         }
         SysDept sysDept = new SysDept();
         sysDept.setOrgid(externalDept.getZuZhiJGID());
+        //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+        sysDept.setCampusid("1");
         sysDept.setHisDeptId(externalDept.getKeShiID());
         sysDept.setHisParentId(externalDept.getFuKeSID());
         //閫氳繃his鐨勭埗绉戝ID鍘绘壘鍒扮瀹D,濉厖parentId
@@ -117,10 +119,10 @@
         }
         if (StringUtils.isNotEmpty(externalDept.getShiJianDM()) && externalDept.getShiJianDM().equals("1")) {
             int i = sysDeptMapper.insertDept(sysDept);
-            log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁鏂板鎴愬姛锛歿}", i);
+            log.info("ServiceExternalServiceImpl---addDeptInfo01鏄惁鏂板鎴愬姛锛歿}", i);
         } else {
             int i = sysDeptMapper.updateDept(sysDept);
-            log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁淇敼鎴愬姛锛歿}", i);
+            log.info("ServiceExternalServiceImpl---addDeptInfo02鏄惁淇敼鎴愬姛锛歿}", i);
         }
         return true;
     }
@@ -137,17 +139,20 @@
         SysUser sysUser = new SysUser();
         sysUser.setUserName(externalUserInfo.getYongHuDLM());
         sysUser.setOrgid(externalUserInfo.getZuZhiJGID());
+        //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+        sysUser.setCampusid("1");
         //鏍规嵁userName鍒ゆ柇涓�涓嬶紝鏄笉鏄箣鍓嶆湁鏂板
-        SysUser sysUser1 = sysUserMapper.selectUserByUserName(externalUserInfo.getYongHuDLM());
-
+        SysUser sysUser1 = null;
+        List<SysUser> sysUserList = sysUserMapper.selectUserList(sysUser);
+        if (CollectionUtils.isNotEmpty(sysUserList)) {
+            sysUser1 = sysUserList.get(0);
+            if (sysUserList.size() > 1) sysUser1 = getUser(sysUserList);
+        }
         sysUser.setGuid(externalUserInfo.getZuZhiJGID());
         sysUser.setNickName(externalUserInfo.getYongHuXM());
         sysUser.setUserType("");
         sysUser.setDeptId(null);
         sysUser.setTitle(null);
-
-        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
-        sysUser.setPassword(passwordEncoder.encode(defaultPwd));
 
         sysUser.setHisUserId(externalUserInfo.getYongHuID());
         sysUser.setPhonenumber(externalUserInfo.getLianXiDH());
@@ -163,15 +168,38 @@
         }
         sysUser.setBirthday(externalUserInfo.getChuShengRQ());
         if (ObjectUtils.isEmpty(sysUser1)) {
+            BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
+            sysUser.setPassword(passwordEncoder.encode(defaultPwd));
             int i = sysUserMapper.insertUser(sysUser);
             log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁鏂板鎴愬姛锛歿}", i);
         } else {
+            sysUser.setUserId(sysUser1.getUserId());
             int i = sysUserMapper.updateUser(sysUser);
-            log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁淇敼鎴愬姛锛歿}", i);
+            log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁淇敼鎴愬姛03锛歿}", i);
         }
         return true;
     }
 
+
+    private SysUser getUser(List<SysUser> sysUserList) {
+        SysUser sysUser = null;
+        if (CollectionUtils.isNotEmpty(sysUserList) && sysUserList.size() > 1) {
+            // 鎸塩reate_time闄嶅簭鎺掑簭锛岃幏鍙栨渶鏂扮殑璁板綍
+            List<SysUser> sortedList = sysUserList.stream().sorted(Comparator.comparing(SysUser::getCreateTime).reversed()).collect(Collectors.toList());
+
+            // 绗竴鏉★紙鏈�鏂扮殑锛夎祴鍊肩粰sysUser1
+            sysUser = sortedList.get(0);
+
+            // 鑾峰彇闇�瑕佸垹闄ょ殑ID锛堜粠绗簩鏉″紑濮嬶級
+            List<Long> idsToDelete = sortedList.stream().skip(1).map(SysUser::getUserId).collect(Collectors.toList());
+            Long[] idArray = idsToDelete.toArray(new Long[0]);
+            // 鎵归噺鍒犻櫎鍏朵粬璁板綍
+            if (!idsToDelete.isEmpty()) {
+                sysUserMapper.deleteUserByIds(idArray);
+            }
+        }
+        return sysUser;
+    }
 
     @Override
     public Boolean addOrganInfo(Map dataMap) {
@@ -190,6 +218,8 @@
         baseOrganization.setUpdateTime(externalOrganInfo.getUpdateTime());
         baseOrganization.setUpdateBy(externalOrganInfo.getUpdateBy());
         baseOrganization.setOrgid(externalOrganInfo.getZuZhiJGID());
+        //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+        baseOrganization.setCampusid("1");
         if (StringUtils.isNotEmpty(externalOrganInfo.getShiJianDM()) && externalOrganInfo.getShiJianDM().equals("1")) {
             int i = baseOrganizationMapper.insertBaseOrganization(baseOrganization);
             log.info("ServiceExternalServiceImpl---addOrganInfo鏄惁鏂板鎴愬姛锛歿}", i);
@@ -283,6 +313,8 @@
         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);
@@ -396,6 +428,7 @@
         //鏂板鎮h�呭熀鏈俊鎭柊澧炴垨淇敼
         PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo);
 
+
         PatMedInhosp patMedInhosp = new PatMedInhosp();
         patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
         patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
@@ -467,6 +500,12 @@
         if (CollectionUtils.isNotEmpty(patMedInhospList)) {
             patMedInhosp1.setUpdateTime(new Date());
             patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+            //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+            patMedInhosp1.setCampusid("1");
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁�
+                patMedInhosp1.setFuflag("1");
+            }
             int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
             if (i != 1) return false;
         } else {
@@ -476,6 +515,8 @@
                 patMedInhosp1.setLeavehospitaldistrictname(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQMC")) ? BingRenXX.get("DangQianBQMC").toString() : null);
                 patMedInhosp1.setLeavehospitaldistrictcode(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQID")) ? BingRenXX.get("DangQianBQID").toString() : null);
                 patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+                //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+                patMedInhosp1.setCampusid("1");
                 patMedInhosp1.setPatno(ObjectUtils.isNotEmpty(BingRenXX.get("BingRenID")) ? BingRenXX.get("BingRenID").toString() : null);
                 patMedInhosp1.setInhospno(ObjectUtils.isNotEmpty(BingRenXX.get("BingAnHao")) ? BingRenXX.get("BingAnHao").toString() : null);
                 patMedInhosp1.setSerialnum(ObjectUtils.isNotEmpty(BingRenXX.get("JiuZhenYWID")) ? BingRenXX.get("JiuZhenYWID").toString() : null);
@@ -484,6 +525,11 @@
             patMedInhosp1.setPatname(patArchive.getName());
 
             patMedInhosp1.setCreateTime(new Date());
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁�
+                patMedInhosp1.setFuflag("1");
+            }
+
             int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
             if (i != 1) return false;
         }
@@ -570,7 +616,8 @@
                 }
             }
             try {
-                patMedInhosp1.setFudate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(SuiFangJH.get("SuiFangRQ").toString()));
+                if (!Objects.isNull(SuiFangJH.get("SuiFangRQ")))
+                    patMedInhosp1.setFudate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(SuiFangJH.get("SuiFangRQ").toString()));
             } catch (ParseException e) {
                 e.printStackTrace();
             }
@@ -600,6 +647,10 @@
         if (CollectionUtils.isNotEmpty(patMedInhospList)) {
             patMedInhosp1.setUpdateTime(new Date());
             patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁�
+                patMedInhosp1.setFuflag("1");
+            }
             int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
             if (i != 1) return false;
         } else {
@@ -609,6 +660,8 @@
                 patMedInhosp1.setLeavehospitaldistrictname(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQMC")) ? BingRenXX.get("DangQianBQMC").toString() : null);
                 patMedInhosp1.setLeavehospitaldistrictcode(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQID")) ? BingRenXX.get("DangQianBQID").toString() : null);
                 patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+                //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+                patMedInhosp1.setCampusid("1");
                 patMedInhosp1.setPatno(ObjectUtils.isNotEmpty(BingRenXX.get("BingRenID")) ? BingRenXX.get("BingRenID").toString() : null);
                 patMedInhosp1.setInhospno(ObjectUtils.isNotEmpty(BingRenXX.get("BingAnHao")) ? BingRenXX.get("BingAnHao").toString() : null);
                 patMedInhosp1.setSerialnum(ObjectUtils.isNotEmpty(BingRenXX.get("JiuZhenYWID")) ? BingRenXX.get("JiuZhenYWID").toString() : null);
@@ -617,6 +670,10 @@
             patMedInhosp1.setPatname(patArchive.getName());
 
             patMedInhosp1.setCreateTime(new Date());
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁�
+                patMedInhosp1.setFuflag("1");
+            }
             int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
             if (i != 1) return false;
         }
@@ -809,6 +866,8 @@
                 patMedInhosp1.setLeavehospitaldistrictname(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQMC")) ? BingRenXX.get("DangQianBQMC").toString() : null);
                 patMedInhosp1.setLeavehospitaldistrictcode(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQID")) ? BingRenXX.get("DangQianBQID").toString() : null);
                 patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+                //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+                patMedInhosp1.setCampusid("1");
                 patMedInhosp1.setPatno(ObjectUtils.isNotEmpty(BingRenXX.get("BingRenID")) ? BingRenXX.get("BingRenID").toString() : null);
                 patMedInhosp1.setInhospno(ObjectUtils.isNotEmpty(BingRenXX.get("BingAnHao")) ? BingRenXX.get("BingAnHao").toString() : null);
                 patMedInhosp1.setSerialnum(ObjectUtils.isNotEmpty(BingRenXX.get("JiuZhenYWID")) ? BingRenXX.get("JiuZhenYWID").toString() : null);
@@ -826,6 +885,9 @@
     @Override
     public Boolean addFinshJZInfo(Map dataMap) {
         log.info("ServiceExternalServiceImpl---addFinshJZInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap);
+        //鍏堝琛ㄨ繘琛岀淮鎶�
+        tableMaintenance();
+
         Map yeWuXX = (Map) dataMap.get("YeWuXX");
         Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou");
         String FaSongJGID = ObjectUtils.isNotEmpty(XiaoXiTou.get("FaSongJGID")) ? XiaoXiTou.get("FaSongJGID").toString() : null;
@@ -867,6 +929,19 @@
         patMedOuthosp.setOuthospno(externalInHospPatientInfo.getBingAnHao());
         patMedOuthosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
         List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp);
+        for (PatMedOuthosp patMedOuthosp1 : patMedOuthosps) {
+            PatArchive pa = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid());
+            if (patArchive.getBirthdate() != null) {
+                Map<String, String> map = calculateAge(pa.getBirthdate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
+                pa.setAge(ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+                pa.setAgeUnit(map.get("ageUnit"));
+                pa.setAge2(ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+                pa.setAgeUnit2(map.get("ageUnit2"));
+                patMedOuthosp1.setAge(pa.getAge() + pa.getAgeUnit() + pa.getAge2() + pa.getAgeUnit2());
+                patMedOuthosp1.setTelcode(patArchive.getTelcode());
+                patMedOuthosp1.setIdcardno(patArchive.getIdcardno());
+            }
+        }
 
         patMedOuthosp.setPatid(patArchive.getId());
         patMedOuthosp.setPatno(externalInHospPatientInfo.getBingAnHao());
@@ -877,7 +952,13 @@
         patMedOuthosp.setDeptcode(externalJZInfo.getJiuZhenKSID());
         patMedOuthosp.setAdmitdate(externalJZInfo.getJiuZhenRQ());
         patMedOuthosp.setOrgid(FaSongJGID);
+        //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+        patMedOuthosp.setCampusid("1");
         patMedOuthosp.setHospitalname(FaSongJGMC);
+        patMedOuthosp.setIdcardno(patArchive.getIdcardno());
+
+        //杩欎釜闇�瑕佺瓑HIS閭h竟鍛婅瘔鍙栧摢涓瓧娈碉紝鐜板湪杩樻槸涓嶅鐨�
+        patMedOuthosp.setFudate(externalJZInfo.getSfrq());
 
         for (ExternalDiagnosisInfo externalDiagnosisInfo : externalDiagnosisInfoList) {
             if (externalDiagnosisInfo.getZhenDuanLBMC().equals("涓昏瘖鏂�")) {
@@ -885,6 +966,7 @@
                 patMedOuthosp.setDrcode(externalDiagnosisInfo.getZhenDuanYSID());
                 patMedOuthosp.setDrname(externalDiagnosisInfo.getZhenDuanYSXM());
                 patMedOuthosp.setIcd10code(externalDiagnosisInfo.getIcd10());
+                patMedOuthosp.setFuflag("0");
             }
         }
         for (ExternalWZInfo externalWZInfo : ExternalWZInfoList) {
@@ -899,17 +981,88 @@
         if (CollectionUtils.isNotEmpty(patMedOuthosps)) {
             patMedOuthosp.setId(patMedOuthosps.get(0).getId());
             patMedOuthosp.setUpdateTime(new Date());
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedOuthosp.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁匡紝鐢卞尰鐢熻嚜宸卞幓闅忚锛堜附姘翠腑鍖婚櫌棣栨鎻愬嚭锛�
+                patMedOuthosp.setFuflag("1");
+            }
             i = patMedOuthospMapper.updatePatMedOuthosp(patMedOuthosp);
         } else {
             patMedOuthosp.setCreateTime(new Date());
             patMedOuthosp.setUpdateTime(new Date());
+            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedOuthosp.getOrgid())) {
+                //涓嶉渶瑕侀暱鏈熶换鍔¢殢璁�
+                patMedOuthosp.setFuflag("1");
+            }
             i = patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp);
         }
+
+//        //鍏堥�氳繃韬唤璇佸拰绉戝鏌ヨ璇ユ偅鑰呮槸鍚︽湁闇�瑕侀殢璁跨殑(鏅畞鎻愬嚭鏉ョ殑)
+//        if (patMedOuthosp.getOrgid().equals("47255004333112711A1001") && StringUtils.isNotEmpty(patMedOuthosp.getIdcardno()) && StringUtils.isNotEmpty(patMedOuthosp.getDeptcode())) {
+//            ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+//            serviceSubtaskVO.setSfzh(patMedOuthosp.getIdcardno());
+//            serviceSubtaskVO.setDeptcode(patMedOuthosp.getDeptcode());
+//            serviceSubtaskVO.setSendstate(2L);
+//            List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+//            if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
+//                for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+//                    serviceSubtask.setSendstate(6L);
+//                    serviceSubtask.setRemark("鎮h�呭凡缁忓洖鏉ュ璇�");
+//                    serviceSubtask.setUpdateTime(new Date());
+//                    serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+//                }
+//            }
+//        }
+
         if (i > 0) {
             return true;
         }
-
         return false;
+    }
+
+
+    public void tableMaintenance() {
+        // 1. 鍒ゆ柇琛ㄦ暟鎹噺
+        int count = patMedOuthospMapper.countPatMedOuthosp();
+        if (count > 3000000) {
+            // 2. 鍐疯棌琛ㄥ苟鏂板缓
+            String timeSuffix = new SimpleDateFormat("yyyyMM").format(new Date());
+            String oldName = "pat_med_outhosp";
+            String newName = oldName + "_" + timeSuffix;
+
+            // 鍐疯棌
+            patMedOuthospMapper.renameTable(oldName, newName);
+
+            // 3. 璁$畻鎵�鏈夎〃鐨勬渶澶d
+            List<String> tableNames = patMedOuthospMapper.getAllOuthospTableNames();
+            long maxId = 0;
+            for (String tableName : tableNames) {
+                Long tableMaxId = patMedOuthospMapper.getMaxIdFromTable(tableName);
+                if (tableMaxId != null && tableMaxId > maxId) {
+                    maxId = tableMaxId;
+                }
+            }
+
+            // 4. 鏂板缓(姝ゆ椂鍙墿鍐疯〃锛孭atMedOuthosp娌′簡锛岄渶瑕佹柊寤轰竴涓�)
+            patMedOuthospMapper.createPatMedOuthosp(newName, oldName);
+
+            //5.璁剧疆鏂拌〃鑷涓婚敭
+            patMedOuthospMapper.createPatMedOuthospAutoAdd(oldName);
+            //6. 璁剧疆鏂拌〃鑷璧峰鍊�
+            patMedOuthospMapper.setAutoIncrement(oldName, maxId + 1);
+
+            // 7. 鏇存柊/鏂板缓瑙嗗浘
+            // 閲嶆柊鑾峰彇鎵�鏈夎〃鍚嶏紙鍖呭惈鍒氭柊寤虹殑涓昏〃锛�
+            List<String> allTables = patMedOuthospMapper.getAllOuthospTableNames();
+            StringBuilder sb = new StringBuilder();
+            sb.append("CREATE OR REPLACE VIEW v_pat_med_outhosp AS ");
+            for (int i = 0; i < allTables.size(); i++) {
+                sb.append("SELECT * FROM ").append(allTables.get(i));
+                if (i < allTables.size() - 1) {
+                    sb.append(" UNION ALL ");
+                }
+            }
+            patMedOuthospMapper.createOrReplaceView(sb.toString());
+        }
     }
 
     @Override
@@ -924,6 +1077,8 @@
         icd10.setIcdcode(externalDiseaseInfo.getIcD10());
         icd10.setDelFlag("0");
         icd10.setOrgid(FaSongJGID);
+        //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+        icd10.setCampusid("1");
         //閫氳繃icdCode鏌ヨ涓�涓嬶紝鏄惁瀛樺湪
         List<Icd10> icd10s = icd10Mapper.selectIcd10List(icd10);
         icd10.setHisIcdid(externalDiseaseInfo.getJiBingID());
@@ -950,6 +1105,8 @@
         ExternalWardArea externalWardArea = BeanUtil.mapToBean(bqxx, ExternalWardArea.class, true);
         SysDept sysDept = new SysDept();
         sysDept.setOrgid(externalWardArea.getZuZhiJGID());
+        //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+        sysDept.setCampusid("1");
         sysDept.setHisDeptId(externalWardArea.getBingQuID());
 
         sysDept.setDeptName(externalWardArea.getBingQuMC());
@@ -1057,6 +1214,8 @@
             patMedOperation.setPatno(externalInHospPatientInfo.getBingRenID());
             patMedOperation.setPatname(externalInHospPatientInfo.getXingMing());
             patMedOperation.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
+            //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+            patMedOperation.setCampusid("1");
             patMedOperation.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
             patMedOperation.setInhospno(externalInHospPatientInfo.getBingAnHao());
             patMedOperation.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC());
@@ -1120,6 +1279,8 @@
                 patMedOperationItem.setOpposition(externalOperationDetail.getShouShuBW());
                 patMedOperationItem.setDelFlag("0");
                 patMedOperationItem.setOrgid(patMedOperation.getOrgid());
+                //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+                patMedOperationItem.setCampusid("1");
                 if (externalOperationDetail.getZhuShouSBZ().equals("1") && addMianTableFalg == true) {
                     patMedOperation.setOpcode(externalOperationDetail.getShouShuMCID());
                     patMedOperation.setOpdesc(externalOperationDetail.getShouShuMC());
@@ -1150,7 +1311,12 @@
         PatArchive patArchive = new PatArchive();
         //濡傛灉鏄垰鍑虹敓鐨勫皬瀛╁瓙锛屾槸娌℃湁韬唤璇佺殑锛屾�庝箞澶勭悊锛燂紵锛燂紵锛燂紵锛燂紵
         patArchive.setIdcardno(externalInHospPatientInfo.getZhengJianHM());
+        //濡傛灉韬唤璇佷负绌虹殑璇濓紝灏辩敤灏辫瘖鍗″彿浠f浛
+        if (StringUtils.isEmpty(externalInHospPatientInfo.getZhengJianHM()))
+            patArchive.setIdcardno(externalInHospPatientInfo.getJiuZhenKH());
         patArchive.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
+        //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+        patArchive.setCampusid("1");
         List<PatArchive> patArchives = null;
         if (ObjectUtils.isNotEmpty(patArchive.getIdcardno()))
             patArchives = patArchiveMapper.selectPatArchiveList(patArchive);
@@ -1213,6 +1379,8 @@
                 patArchivecontact.setPatid(patArchive.getId());
                 patArchivecontact.setContactname(external.getLianXiRXM());
                 patArchivecontact.setOrgid(patArchive.getOrgid());
+                //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+                patArchivecontact.setCampusid("1");
                 List<PatArchivecontact> patArchivecontacts = patArchivecontactMapper.selectPatArchivecontactList(patArchivecontact);
                 patArchivecontact.setContactway(external.getLianXiRDH());
                 patArchivecontact.setRelation(external.getGuanXiMC());
@@ -1248,6 +1416,8 @@
             //杩欓噷鏄簥浣嶅悕绉拌繕鏄簥浣嶇紪鍙凤紵锛燂紵锛�
             patMedInhosp.setBedNo(externalInHospPatientInfo.getDangQianCWMC());
             patMedInhosp.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
+            //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+            patMedInhosp.setCampusid("1");
             patMedInhosp.setHospitaldistrictid(externalInHospPatientInfo.getDangQianBQID());
             patMedInhosp.setGuid(externalInHospPatientInfo.getZuZhiJGID());
             patMedInhosp.setInhospstate("0");
@@ -1262,6 +1432,8 @@
             patMedInhosp.setDrcode(externalInHospPatientInfo.getZhuZhiYSID());
             patMedInhosp.setNurseId(externalInHospPatientInfo.getZeRenHSID());
             patMedInhosp.setNurseName(externalInHospPatientInfo.getZeRenHSXM());
+            patMedInhosp.setManagementDoctor(externalInHospPatientInfo.getJingGuanYSXM());
+            patMedInhosp.setManagementDoctorCode(externalInHospPatientInfo.getJingGuanYSID());
         }
         if (ObjectUtils.isNotEmpty(externalInHospPatientDiagnoseInfo)) {
 //            patMedInhosp.setIcd10code(StringUtils.isNotEmpty(patMedInhosp.getIcd10code()) ? patMedInhosp.getIcd10code() + "," + externalInHospPatientDiagnoseInfo.getZhenDuanID() : externalInHospPatientDiagnoseInfo.getZhenDuanID());
@@ -1362,6 +1534,8 @@
             patMedInspection.setProjecttype(0);
         }
         patMedInspection.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
+        //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+        patMedInspection.setCampusid("1");
         patMedInspection.setInhospno(externalInHospPatientInfo.getBingAnHao());
         patMedInspection.setPatidHis(externalInHospPatientInfo.getBingRenID());
         patMedInspection.setPatname(externalInHospPatientInfo.getXingMing());
@@ -1444,6 +1618,8 @@
         if (CollectionUtils.isNotEmpty(patMedInspections)) {
             patMedInspection.setUpdateDate(new Date());
             patMedInspection.setOrgid(ObjectUtils.isNotEmpty(xiaoXiTou) && ObjectUtils.isNotEmpty(xiaoXiTou.get("FaSongJGID")) ? xiaoXiTou.get("FaSongJGID").toString() : null);
+            //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+            patMedInspection.setCampusid("1");
             //   鏇存柊鎿嶄綔
             int i = patMedInspectionMapper.updatePatMedInspection(patMedInspection);
             if (i != 1) return false;
@@ -1469,6 +1645,8 @@
         PatMedInspection patMedInspection = new PatMedInspection();
         PatMedInspectionItem patMedInspectionItem = new PatMedInspectionItem();
         patMedInspection.setOrgid(BingRenXX.get("ZuZhiJGID").toString());
+        //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+        patMedInspection.setCampusid("1");
         patMedInspection.setInhospno(BingRenXX.get("BingAnHao").toString());
         patMedInspection.setPatidHis(BingRenXX.get("BingRenID").toString());
         patMedInspection.setPatname(BingRenXX.get("XingMing").toString());
@@ -1484,6 +1662,8 @@
         }
         //妫�鏌ユ楠屾姤鍛婃暟鎹鐞�
         patMedInspectionItem.setOrgid(BingRenXX.get("ZuZhiJGID").toString());
+        //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+        patMedInspectionItem.setCampusid("1");
         List<PatMedInspectionItem> patMedInspectionItems = patMedInspectionItemMapper.selectPatMedInspectionItemList(patMedInspectionItem);
         if (ObjectUtils.isNotEmpty(JianChaBG)) {
             patMedInspectionItem.setInspectionName(JianChaBG.get("JianChaHao").toString());
@@ -1610,7 +1790,7 @@
                 log.info("鑽搧浜у湴浠锋牸鍏ュ弬绫诲瀷涓猴細{}", type);
                 return true;
             case "JZ_MZ_WanChengJZ":
-                log.info("瀹屾垚鎺ヨ瘖鍏ュ弬绫诲瀷涓猴細{}", type);
+                log.info("锛堥棬鎬ヨ瘖锛夊畬鎴愭帴璇婂叆鍙傜被鍨嬩负锛歿}", type);
                 return addFinshJZInfo(dataMap);
             case "JZ_ZY_RuYuanDJ":
                 log.info("鍏ラ櫌鐧昏鍏ュ弬绫诲瀷涓猴細{}", type);

--
Gitblit v1.9.3