From eb782eaac8f706a005ce18ed0b73fda22ac36113 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期三, 22 十月 2025 10:27:14 +0800
Subject: [PATCH] 日期格式
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java | 291 +++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 238 insertions(+), 53 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 80a5a2f..7612fae 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
@@ -3,7 +3,6 @@
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.entity.SysUserDept;
-import com.ruoyi.common.core.domain.entity.SysUserRole;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.quartz.mapper.CollectHISMapper;
import com.ruoyi.quartz.service.ICollectHISService;
@@ -20,6 +19,8 @@
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
@Slf4j
@Service
@@ -57,6 +58,9 @@
@Autowired
private ShardingMapper shardingMapper;
+ @Autowired
+ private UtilsMapper utilsMapper;
+
private static final long SHARDING_THRESHOLD = 5_000_000L;
private static final String PAT_ARCHIVE_TABLE = "pat_archive";
private static final String PAT_MED_INHOSP_TABLE = "pat_med_inhosp";
@@ -79,6 +83,197 @@
// return 0; // 杩斿洖0琛ㄧず浠诲姟宸叉彁浜ゅ埌鍚庡彴鎵ц
// }
+ /**
+ * 鍚屾浠诲姟
+ * @param
+ * @return
+ */
+ @Override
+ public Integer sync() {
+ Integer count = 0;
+ List<Map<String, Object>> syncList = utilsMapper.getList("SELECT id,syncName,DATE_FORMAT(ADDDATE(startTime, INTERVAL -1 MINUTE), '%Y-%m-%d %H:%i:%s') startTime FROM sys_sync_time where state=0");
+ if (syncList.size() > 0) {
+ String endTime = chMapper.getSqlString("select sysdate from healthy_inhosp where rownum=1");
+ //鍚屾鎮h�呭熀鏈俊鎭�
+// List<Map<String, Object>> syncTemp = syncList.stream().filter(row -> row.get("syncName").equals("pat_archive")).collect(Collectors.toList());
+// if (syncTemp.size() > 0) {
+// count+=syncArchive(syncTemp.get(0).get("startTime") + "", endTime);
+// utilsMapper.updateSql("update sys_sync_time set startTime='"+endTime+"' where syncName='pat_archive' ");
+// }
+
+ //鍚屾浣忛櫌鐥呬汉淇℃伅
+ 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' ");
+ }
+
+ //鍚屾闂ㄨ瘖淇℃伅
+ 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' ");
+ }
+
+
+ } else {
+ log.info("鍚屾浠诲姟鏃堕棿sys_sync_time琛ㄤ腑娌℃湁闇�瑕佸悓姝ョ殑浠诲姟");
+ }
+ return count;
+ }
+
+ /**
+ * 鍚屾鎮h�呭熀鏈俊鎭�
+ * @param
+ * @return
+ */
+ private Integer syncArchive(String startTime,String endTime) {
+ Integer count = 0;
+ PatArchive pa = new PatArchive();
+ pa.setLastStartTime(startTime);
+ pa.setLastEndTime(endTime);
+ List<PatArchive> patArchives = chMapper.selectPatArchiveList(pa);
+ log.info("鍙悓鎮h�呭熀鏈俊鎭暟閲�" + patArchives.size());
+ for (PatArchive pm : patArchives) {
+ try {
+ PatArchive pa1 = new PatArchive();
+ pa1.setPatientno(pm.getPatientno());
+ List<PatArchive> patArchives1 = patArchiveMapper.selectPatArchiveList(pa1);
+ if (CollectionUtils.isNotEmpty(patArchives1)) {
+ pm.setId(patArchives1.get(0).getId());
+ pm.setUpdateTime(new Date());
+ count += patArchiveMapper.updatePatArchive(pm);
+ } else {
+ pm.setCreateTime(new Date());
+ count += patArchiveMapper.insertPatArchiveSingle(pm);
+
+ }
+ }catch (Exception ex){
+ log.info("鍙悓鎮h�呭熀鏈俊鎭�:"+ex.getMessage());
+ }
+ }
+
+ return count;
+ }
+
+ /**
+ * 鍚屾鍑哄叆闄俊鎭�
+ * @param
+ * @return
+ */
+ private Integer syncMedInhosp(String startTime,String endTime) {
+ Integer count = 0;
+ PatMedInhosp patMedInhosp = new PatMedInhosp();
+ patMedInhosp.setLastStartTime(startTime);
+ patMedInhosp.setLastEndTime(endTime);
+ List<PatMedInhosp> patMedInhospList = chMapper.selectPatMedInhospList(patMedInhosp);
+ log.info("鍙悓姝ュ嚭鍏ラ櫌鏁伴噺" + patMedInhospList.size());
+ for (PatMedInhosp pm : patMedInhospList) {
+ List<PatArchive> patArchives1=new ArrayList<>();
+
+ try {
+ //鎮h�呭熀鏈俊鎭�
+ 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) {
+ log.info("鍚屾偅鑰呭熀鏈俊鎭�:" + ex.getMessage());
+ }
+
+ try {
+ if(patArchives1.size()>0) {
+ pm.setPatid(patArchives1.get(0).getId());
+ }
+ //鍚屾鍑哄叆闄�
+ PatMedInhosp pmi = new PatMedInhosp();
+ pmi.setSerialnum(pm.getSerialnum());
+ List<PatMedInhosp> patMedInhospList1 = patMedInhospMapper.selectPatMedInhospListBySerialnum(pmi);
+ if (patMedInhospList1.size() == 0) {
+ pm.setCreateTime(new Date());
+ count += patMedInhospMapper.insertPatMedInhosp(pm);
+ } else {
+ pm.setInhospid(patMedInhospList1.get(0).getInhospid());
+ pm.setUpdateTime(new Date());
+ count += patMedInhospMapper.updatePatMedInhosp(pm);
+ }
+ } catch (Exception ex) {
+ log.info("鍚屾鍑哄叆闄�:" + ex.getMessage());
+ }
+ }
+ return count;
+ }
+
+ /**
+ * 鍚屾闂ㄨ瘖淇℃伅
+ * @param
+ * @return
+ */
+ private Integer syncOuthosp(String startTime,String endTime) {
+ Integer count = 0;
+ PatMedOuthosp patMedOuthosp = new PatMedOuthosp();
+ patMedOuthosp.setLastStartTime(startTime);
+ patMedOuthosp.setLastEndTime(endTime);
+ List<PatMedOuthosp> patMedOuthosps = chMapper.selectPatMedOuthospList(patMedOuthosp);
+ log.info("鍚屾闂ㄨ瘖淇℃伅鏁伴噺" + patMedOuthosps.size());
+ for (PatMedOuthosp patMedOuthosp1 : patMedOuthosps) {
+ try {
+ //鎮h�呭熀鏈俊鎭�
+ PatArchive patArchive = new PatArchive();
+ patArchive.setPatientno(patMedOuthosp1.getPatno());
+ List<PatArchive> patArchives = chMapper.selectPatArchiveList(patArchive);
+ if (patArchives.size() > 0) {
+ PatArchive pa1 = new PatArchive();
+ pa1.setPatientno(patMedOuthosp1.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));
+
+ }
+ }
+ }catch (Exception ex) {
+ log.info("鍚屾偅鑰呭熀鏈俊鎭�:" + ex.getMessage());
+ }
+
+ try {
+ PatMedOuthosp patMedOuthospTemp = new PatMedOuthosp();
+ patMedOuthospTemp.setSerialnum(patMedOuthosp1.getSerialnum());
+ List<PatMedOuthosp> patMedOuthospsTemp = chMapper.selectPatMedOuthospList(patMedOuthosp);
+ if (patMedOuthospsTemp.size() > 0) {
+ patMedOuthosp1.setUpdateTime(new Date());
+ patMedOuthosp1.setId(patMedOuthospsTemp.get(0).getId());
+ count += patMedOuthospMapper.updatePatMedOuthosp(patMedOuthosp1);
+ } else {
+ patMedOuthosp1.setCreateTime(new Date());
+ count += patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp1);
+ }
+ } catch (Exception ex) {
+ log.info("鍚屾鍑哄叆闄�:" + ex.getMessage());
+ }
+ }
+ return count;
+ }
@Override
public Integer selectPatMedInhospList(PatMedInhosp patMedInhosp) {
@@ -220,33 +415,42 @@
@Override
public Integer selectUserList(SysUser sysUser) {
List<SysUser> sysUserList = chMapper.selectUserList(sysUser);
+ SysUser suerTemp=new SysUser();
+ List<SysUserDept> sysUserDeptAll = chMapper.yhyksxx(suerTemp);
log.info("sysUserList鐨勯噰闆嗗埌鐨勬暟閲忎负锛歿}", sysUserList.size());
- int i = 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());
- //鏂板鐢ㄦ埛涓庤鑹�
- SysUserRole yhyjsxx = chMapper.yhyjsxx(sysUser1);
- if (yhyjsxx == null) continue;
- yhyjsxx.setUserId(sysUser1.getUserId());
- List<SysUserRole> userRoleList = new ArrayList<>();
- userRoleList.add(yhyjsxx);
- sysUserRoleMapper.batchUserRole(userRoleList);
+// log.info("sysUser1鐨処D涓猴細{}", sysUser1.getUserId());
+// log.info("sysUser1鐨凥ISUSERID涓猴細{}", sysUser1.getHisUserId());
+ if (StringUtils.isEmpty(sysUser1.getHisUserId())) continue;
+ SysUser suTemp = new SysUser();
+ suTemp.setHisUserId(sysUser1.getHisUserId());
+ List<SysUser> usersTemp = sysUser2Mapper.selectUserList(suTemp);
+ if (usersTemp.size() > 0) {
+ sysUser1.setUserId(usersTemp.get(0).getUserId());
+ sysUser1.setUserName(sysUser1.getHisUserId());
+ sysUser2Mapper.updateUser(sysUser1);
+ } else {
+ sysUser1.setUserName(sysUser1.getHisUserId());
+ sysUser2Mapper.insertUser(sysUser1);
+ usersTemp = sysUser2Mapper.selectUserList(suTemp);
+ }
//鏂板鐢ㄦ埛涓庨儴闂�
- if (StringUtils.isEmpty(sysUser1.getHisUserId())) continue;
- SysUserDept sysUserDept = chMapper.yhyksxx(sysUser1);
- if (Objects.isNull(sysUserDept) || sysUserDept.getDeptId() == null) continue;
- SysDept dept = new SysDept();
- dept.setHisDeptId(sysUserDept.getDeptId().toString());
- List<SysDept> sysDepts = sysDept2Mapper.selectDeptList(dept);
- if (CollectionUtils.isNotEmpty(sysDepts)) {
- sysUserDept.setDeptId(sysDepts.get(0).getDeptId());
- sysUserDept.setDeptCode(sysDepts.get(0).getDeptCode());
- }
- sysUserDept.setUserId(sysUser1.getUserId());
- sysUserDeptMapper.insertSysUserDept(sysUserDept);
+ //List<SysUserDept> sysUserDept = chMapper.yhyksxx(sysUser1);
+ 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);
+ }
+ }
}
return i;
@@ -254,39 +458,20 @@
@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;
- }
-
-
- /**
- * 妫�鏌ュ苟鎵ц鍒嗚〃鐨勬牳蹇冩柟娉�
- *
- * @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);
+ // count = sysDept2Mapper.batchDept(sysDepts);
+ for(SysDept row : sysDepts){
+ SysDept sysDeptTemp= sysDept2Mapper.selectDeptByCode(row.getDeptCode());
+ if(sysDeptTemp!=null&&sysDeptTemp.getDeptName()!=null){
+ row.setDeptId(sysDeptTemp.getDeptId());
+ count+=sysDept2Mapper.updateDept(row);
+ }else{
+ count+=sysDept2Mapper.insertDept(row);
+ }
}
+ return count;
}
}
--
Gitblit v1.9.3