From 55f5271f893a25a7be671b24938e49976936a67b Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 29 九月 2025 18:30:00 +0800
Subject: [PATCH] 新增Orgid

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java |  126 ++++++++++++++++++++++++++++-------------
 1 files changed, 85 insertions(+), 41 deletions(-)

diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
index 0fc6d71..0ef55b5 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
@@ -85,6 +85,7 @@
 
     /**
      * 鍚屾浠诲姟
+     *
      * @param
      * @return
      */
@@ -104,15 +105,15 @@
             //鍚屾浣忛櫌鐥呬汉淇℃伅
             List<Map<String, Object>> syncTemp = syncList.stream().filter(row -> row.get("syncName").equals("pat_med_inhosp")).collect(Collectors.toList());
             if (syncTemp.size() > 0) {
-                count+=syncMedInhosp(syncTemp.get(0).get("startTime") + "", endTime);
-                utilsMapper.updateSql("update sys_sync_time set startTime='"+endTime+"' where syncName='pat_med_inhosp' ");
+                count += syncMedInhosp(syncTemp.get(0).get("startTime") + "", endTime);
+                utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_inhosp' ");
             }
 
             //鍚屾闂ㄨ瘖淇℃伅
             syncTemp = syncList.stream().filter(row -> row.get("syncName").equals("pat_med_outhosp")).collect(Collectors.toList());
             if (syncTemp.size() > 0) {
-                count+=syncOuthosp(syncTemp.get(0).get("startTime") + "", endTime);
-                utilsMapper.updateSql("update sys_sync_time set startTime='"+endTime+"' where syncName='pat_med_outhosp' ");
+                count += syncOuthosp(syncTemp.get(0).get("startTime") + "", endTime);
+                utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_outhosp' ");
             }
 
 
@@ -124,10 +125,11 @@
 
     /**
      * 鍚屾鎮h�呭熀鏈俊鎭�
+     *
      * @param
      * @return
      */
-    private  Integer syncArchive(String startTime,String endTime) {
+    private Integer syncArchive(String startTime, String endTime) {
         Integer count = 0;
         PatArchive pa = new PatArchive();
         pa.setLastStartTime(startTime);
@@ -148,8 +150,8 @@
                     count += patArchiveMapper.insertPatArchiveSingle(pm);
 
                 }
-            }catch (Exception ex){
-                log.info("鍙悓鎮h�呭熀鏈俊鎭�:"+ex.getMessage());
+            } catch (Exception ex) {
+                log.info("鍙悓鎮h�呭熀鏈俊鎭�:" + ex.getMessage());
             }
         }
 
@@ -158,10 +160,11 @@
 
     /**
      * 鍚屾鍑哄叆闄俊鎭�
+     *
      * @param
      * @return
      */
-    private  Integer syncMedInhosp(String startTime,String endTime) {
+    private Integer syncMedInhosp(String startTime, String endTime) {
         Integer count = 0;
         PatMedInhosp patMedInhosp = new PatMedInhosp();
         patMedInhosp.setLastStartTime(startTime);
@@ -169,30 +172,38 @@
         List<PatMedInhosp> patMedInhospList = chMapper.selectPatMedInhospList(patMedInhosp);
         log.info("鍙悓姝ュ嚭鍏ラ櫌鏁伴噺" + patMedInhospList.size());
         for (PatMedInhosp pm : patMedInhospList) {
+            List<PatArchive> patArchives1 = new ArrayList<>();
+
             try {
                 //鎮h�呭熀鏈俊鎭�
-                PatArchive patArchive = new PatArchive();
-                patArchive.setPatientno(pm.getPatno());
-                List<PatArchive> patArchives = chMapper.selectPatArchiveList(patArchive);
-                if (patArchives.size() > 0) {
-                    PatArchive pa1 = new PatArchive();
-                    pa1.setPatientno(pm.getPatno());
-                    List<PatArchive> patArchives1 = patArchiveMapper.selectPatArchiveList(pa1);
-                    if (CollectionUtils.isNotEmpty(patArchives1)) {
-                        patArchives.get(0).setId(patArchives1.get(0).getId());
-                        patArchives.get(0).setUpdateTime(new Date());
-                        count += patArchiveMapper.updatePatArchive(patArchives.get(0));
-                    } else {
-                        patArchives.get(0).setCreateTime(new Date());
-                        count += patArchiveMapper.insertPatArchiveSingle(patArchives.get(0));
-
+                if (ObjectUtils.isNotEmpty(pm.getPatno())) {
+                    PatArchive patArchive = new PatArchive();
+                    patArchive.setPatientno(pm.getPatno());
+                    patArchive.setPageSize(5);
+                    List<PatArchive> patArchives = chMapper.selectPatArchiveList(patArchive);
+                    if (patArchives.size() > 0) {
+                        PatArchive pa1 = new PatArchive();
+                        pa1.setPatientno(pm.getPatno());
+                        patArchives1 = patArchiveMapper.selectPatArchiveList(pa1);
+                        if (CollectionUtils.isNotEmpty(patArchives1)) {
+                            patArchives.get(0).setId(patArchives1.get(0).getId());
+                            patArchives.get(0).setUpdateTime(new Date());
+                            count += patArchiveMapper.updatePatArchive(patArchives.get(0));
+                        } else {
+                            patArchives.get(0).setCreateTime(new Date());
+                            count += patArchiveMapper.insertPatArchiveSingle(patArchives.get(0));
+                            patArchives1 = patArchiveMapper.selectPatArchiveList(pa1);
+                        }
                     }
                 }
-            }catch (Exception ex) {
+            } catch (Exception ex) {
                 log.info("鍚屾偅鑰呭熀鏈俊鎭�:" + ex.getMessage());
             }
 
             try {
+                if (patArchives1.size() > 0) {
+                    pm.setPatid(patArchives1.get(0).getId());
+                }
                 //鍚屾鍑哄叆闄�
                 PatMedInhosp pmi = new PatMedInhosp();
                 pmi.setSerialnum(pm.getSerialnum());
@@ -214,10 +225,11 @@
 
     /**
      * 鍚屾闂ㄨ瘖淇℃伅
+     *
      * @param
      * @return
      */
-    private  Integer syncOuthosp(String startTime,String endTime) {
+    private Integer syncOuthosp(String startTime, String endTime) {
         Integer count = 0;
         PatMedOuthosp patMedOuthosp = new PatMedOuthosp();
         patMedOuthosp.setLastStartTime(startTime);
@@ -244,7 +256,7 @@
 
                     }
                 }
-            }catch (Exception ex) {
+            } catch (Exception ex) {
                 log.info("鍚屾偅鑰呭熀鏈俊鎭�:" + ex.getMessage());
             }
 
@@ -270,7 +282,7 @@
     @Override
     public Integer selectPatMedInhospList(PatMedInhosp patMedInhosp) {
         List<PatMedInhosp> patMedInhospList = chMapper.selectPatMedInhospList(patMedInhosp);
-        log.info("鍙悓姝ョ梾浜烘暟閲�"+patMedInhospList.size());
+        log.info("鍙悓姝ョ梾浜烘暟閲�" + patMedInhospList.size());
         for (PatMedInhosp pm : patMedInhospList) {
             PatArchive patArchive = new PatArchive();
             patArchive.setPatientno(pm.getPatno());
@@ -315,10 +327,8 @@
 
     @Override
     public Boolean hnDataGather(HnDataGatherVO hnDataGatherVO) {
-        if(ObjectUtils.isEmpty(hnDataGatherVO.getStartTime()) )
-            hnDataGatherVO.setStartTime(new Date());
-        if(ObjectUtils.isEmpty(hnDataGatherVO.getEndTime()) )
-            hnDataGatherVO.setEndTime(new Date());
+        if (ObjectUtils.isEmpty(hnDataGatherVO.getStartTime())) hnDataGatherVO.setStartTime(new Date());
+        if (ObjectUtils.isEmpty(hnDataGatherVO.getEndTime())) hnDataGatherVO.setEndTime(new Date());
         LocalDate startDate = hnDataGatherVO.getStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
         LocalDate endDate = hnDataGatherVO.getEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
 
@@ -407,10 +417,10 @@
     @Override
     public Integer selectUserList(SysUser sysUser) {
         List<SysUser> sysUserList = chMapper.selectUserList(sysUser);
-        SysUser suerTemp=new SysUser();
+        SysUser suerTemp = new SysUser();
         List<SysUserDept> sysUserDeptAll = chMapper.yhyksxx(suerTemp);
         log.info("sysUserList鐨勯噰闆嗗埌鐨勬暟閲忎负锛歿}", sysUserList.size());
-        int i =0;// sysUser2Mapper.batchUser(sysUserList);
+        int i = 0;// sysUser2Mapper.batchUser(sysUserList);
         for (SysUser sysUser1 : sysUserList) {
 //            log.info("sysUser1鐨処D涓猴細{}", sysUser1.getUserId());
 //            log.info("sysUser1鐨凥ISUSERID涓猴細{}", sysUser1.getHisUserId());
@@ -430,16 +440,11 @@
 
             //鏂板鐢ㄦ埛涓庨儴闂�
             //List<SysUserDept> sysUserDept = chMapper.yhyksxx(sysUser1);
-            List<SysUserDept> sysUserDept = sysUserDeptAll.stream()
-                    .filter((SysUserDept b) -> b.getUserCode().equals(sysUser1.getHisUserId()))
-                    .collect(Collectors.toList());
+            List<SysUserDept> sysUserDept = sysUserDeptAll.stream().filter((SysUserDept b) -> b.getUserCode().equals(sysUser1.getHisUserId())).collect(Collectors.toList());
 
             for (SysUserDept sud : sysUserDept) {
                 if (usersTemp.size() > 0) {
                     sud.setUserId(usersTemp.get(0).getUserId());
-                    SysDept sysDeptTemp = sysDept2Mapper.selectDeptByCode(sud.getDeptCode());
-                    if (sysDeptTemp != null)
-                        sud.setDeptId(sysDeptTemp.getDeptId());
                     sysUserDeptMapper.insertSysUserDept(sud);
                 }
             }
@@ -450,10 +455,49 @@
 
     @Override
     public Integer selectDeptList(SysDept dept) {
+        int count = 0;
         List<SysDept> sysDepts = chMapper.selectDeptList(dept);
         log.info("selectDeptList鐨勯噰闆嗗埌鐨勬暟閲忎负锛歿}", sysDepts.size());
-        int i = sysDept2Mapper.batchDept(sysDepts);
-        return i;
+        // count = sysDept2Mapper.batchDept(sysDepts);
+        for (SysDept row : sysDepts) {
+            SysDept sysDeptTemp = sysDept2Mapper.selectDeptByCode(row.getDeptCode(), null);
+            if (sysDeptTemp != null && sysDeptTemp.getDeptName() != null) {
+                row.setDeptId(sysDeptTemp.getDeptId());
+                count += sysDept2Mapper.updateDept(row);
+            } else {
+                count += sysDept2Mapper.insertDept(row);
+            }
+        }
+        return count;
+    }
+
+
+    /**
+     * 妫�鏌ュ苟鎵ц鍒嗚〃鐨勬牳蹇冩柟娉�
+     *
+     * @param tableName 瑕佹鏌ョ殑琛ㄥ悕
+     */
+    private synchronized void checkAndShard(String tableName) {
+        long currentCount = shardingMapper.getTableCount(tableName);
+
+        if (currentCount >= SHARDING_THRESHOLD) {
+            log.warn("琛� '{}' 宸茶揪鍒板垎琛ㄩ槇鍊� {}锛屽噯澶囨墽琛屽垎琛ㄦ搷浣�...", tableName, SHARDING_THRESHOLD);
+
+            String newTableName = tableName + "_" + java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyy_MM"));
+            Long maxId = shardingMapper.getMaxId(tableName);
+            if (maxId == null) maxId = 0L;
+
+            shardingMapper.renameTable(tableName, newTableName);
+            log.info("宸插皢琛� '{}' 閲嶅懡鍚嶄负 '{}'", tableName, newTableName);
+
+            shardingMapper.createLikeTable(tableName, newTableName);
+            log.info("宸插垱寤烘柊琛� '{}'", tableName);
+
+            shardingMapper.setAutoIncrement(tableName, maxId + 1);
+            log.info("宸茶缃柊琛� '{}' 鐨勮嚜澧濱D璧峰鍊间负 {}", tableName, maxId + 1);
+
+            log.info("琛� '{}' 鐨勫垎琛ㄦ搷浣滃畬鎴愶紒", tableName);
+        }
     }
 
 }

--
Gitblit v1.9.3