From bd0634ddee19487b1f82e782ff1fa9f18cb88a3d Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 09 六月 2026 18:02:20 +0800
Subject: [PATCH] 【市一】手术随访对接
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java | 76 +++++++++++++++++++++++++++++++++++++
1 files changed, 75 insertions(+), 1 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 5569719..bc6375d 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
@@ -334,9 +334,22 @@
patMedOperation.setLastStartTime(startTime);
patMedOperation.setLastEndTime(endTime);
List<PatMedOperation> patMedOperations = chMapper.selectOperList(patMedOperation);
+ Map<String, Long> patIdHisMap = buildOperationPatIdHisMap(patMedOperations);
+
log.info("鍚屾鎵嬫湳淇℃伅鏁伴噺" + patMedOperations.size());
for (PatMedOperation operation : patMedOperations) {
try {
+ Long patId = patIdHisMap.get(operation.getPatidHis());
+ if (patId == null) {
+ patId = syncSinglePatient(operation.getPatidHis());
+ if (patId != null) {
+ patIdHisMap.put(operation.getPatidHis(), patId);
+ }
+ }
+
+ if (patId != null) {
+ operation.setPatid(patId);
+ }
PatMedOperation oper = new PatMedOperation();
oper.setOpid(operation.getOpid());
List<PatMedOperation> patMedOperations1 = patMedOperationMapper.selectPatMedOperationList(oper);
@@ -368,7 +381,9 @@
PatMedOperationItem patMedOperationItem = new PatMedOperationItem();
patMedOperationItem.setOrgid(operation.getOrgid());
if(StringUtils.isNotEmpty(operation.getOpid())){
- patMedOperationItem.setOpid(Long.valueOf(operation.getOpid()));
+ patMedOperationItem.setOpid(operation.getOpid());
+ patMedOperationItem.setLastStartTime(operation.getLastStartTime());
+ patMedOperationItem.setLastEndTime(operation.getLastEndTime());
List<PatMedOperationItem> patMedOperationItems = chMapper.selectOperItemList(patMedOperationItem);
log.info("鍚屾鎵嬫湳璇︽儏淇℃伅鏁伴噺" + patMedOperationItems.size());
for (PatMedOperationItem operationItem : patMedOperationItems) {
@@ -389,9 +404,68 @@
log.info("鍚屾鎵嬫湳璇︽儏淇℃伅:" + ex.getMessage());
}
}
+
+// try {
+// patMedOperationItemMapper.deleteHardPatMedOperationItemByOpId(operation.getOpid());
+// count += patMedOperationItemMapper.insertPatMedOperationItems(patMedOperationItems);
+// }catch (Exception ex) {
+// log.info("鍚屾鎵嬫湳璇︽儏淇℃伅:" + ex.getMessage());
+// }
}
return count;
}
+
+ private Map<String, Long> buildOperationPatIdHisMap(List<PatMedOperation> operations) {
+ List<String> patidHiss = operations.stream()
+ .map(PatMedOperation::getPatidHis)
+ .filter(StringUtils::isNotEmpty)
+ .distinct()
+ .collect(Collectors.toList());
+
+ if (CollectionUtils.isEmpty(patidHiss)) {
+ return new HashMap<>();
+ }
+
+ return patArchiveMapper.selectPatArchiveByPatidHiss(patidHiss).stream()
+ .filter(item -> StringUtils.isNotEmpty(item.getPatidHis()) && item.getId() !=
+ null)
+ .collect(Collectors.toMap(
+ PatArchive::getPatidHis,
+ PatArchive::getId,
+ (a, b) -> a
+ ));
+ }
+
+ private Long syncSinglePatient(String patidHis) {
+ if (StringUtils.isEmpty(patidHis)) {
+ return null;
+ }
+
+ PatArchive hisQuery = new PatArchive();
+ hisQuery.setPatidHis(patidHis);
+ hisQuery.setPageSize(5);
+ List<PatArchive> hisArchives = chMapper.selectPatArchiveList(hisQuery);
+ if (CollectionUtils.isEmpty(hisArchives)) {
+ return null;
+ }
+
+ PatArchive localQuery = new PatArchive();
+ localQuery.setPatidHis(patidHis);
+ List<PatArchive> localArchives = patArchiveMapper.selectPatArchiveList(localQuery);
+
+ PatArchive hisArchive = hisArchives.get(0);
+ if (CollectionUtils.isNotEmpty(localArchives)) {
+ hisArchive.setId(localArchives.get(0).getId());
+ hisArchive.setUpdateTime(new Date());
+ patArchiveMapper.updatePatArchive(hisArchive);
+ return localArchives.get(0).getId();
+ } else {
+ hisArchive.setCreateTime(new Date());
+ patArchiveMapper.insertPatArchiveSingle(hisArchive);
+ return hisArchive.getId();
+ }
+ }
+
@Override
public Integer selectPatMedInhospList(PatMedInhosp patMedInhosp) {
List<PatMedInhosp> patMedInhospList = chMapper.selectPatMedInhospList(patMedInhosp);
--
Gitblit v1.9.3