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 | 96 ++++++++++++++++++++++++++++++----------------- 1 files changed, 61 insertions(+), 35 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 7612fae..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,11 +172,11 @@ List<PatMedInhosp> patMedInhospList = chMapper.selectPatMedInhospList(patMedInhosp); log.info("鍙悓姝ュ嚭鍏ラ櫌鏁伴噺" + patMedInhospList.size()); for (PatMedInhosp pm : patMedInhospList) { - List<PatArchive> patArchives1=new ArrayList<>(); + List<PatArchive> patArchives1 = new ArrayList<>(); try { //鎮h�呭熀鏈俊鎭� - if(ObjectUtils.isNotEmpty(pm.getPatno())) { + if (ObjectUtils.isNotEmpty(pm.getPatno())) { PatArchive patArchive = new PatArchive(); patArchive.setPatientno(pm.getPatno()); patArchive.setPageSize(5); @@ -193,12 +196,12 @@ } } } - }catch (Exception ex) { + } catch (Exception ex) { log.info("鍚屾偅鑰呭熀鏈俊鎭�:" + ex.getMessage()); } try { - if(patArchives1.size()>0) { + if (patArchives1.size() > 0) { pm.setPatid(patArchives1.get(0).getId()); } //鍚屾鍑哄叆闄� @@ -222,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); @@ -252,7 +256,7 @@ } } - }catch (Exception ex) { + } catch (Exception ex) { log.info("鍚屾偅鑰呭熀鏈俊鎭�:" + ex.getMessage()); } @@ -278,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()); @@ -323,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(); @@ -415,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()); @@ -438,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); } } @@ -458,20 +455,49 @@ @Override public Integer selectDeptList(SysDept dept) { - int count=0; + int count = 0; List<SysDept> sysDepts = chMapper.selectDeptList(dept); log.info("selectDeptList鐨勯噰闆嗗埌鐨勬暟閲忎负锛歿}", sysDepts.size()); - // count = sysDept2Mapper.batchDept(sysDepts); - for(SysDept row : sysDepts){ - SysDept sysDeptTemp= sysDept2Mapper.selectDeptByCode(row.getDeptCode()); - if(sysDeptTemp!=null&&sysDeptTemp.getDeptName()!=null){ + // 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); + 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