From 066e23c438ec762c522d39817b513a13ec6b3767 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 14 九月 2026 14:03:38 +0800
Subject: [PATCH] 【景宁】景宁 只要存在相同诊断、患者的门诊记录则当再次随访处理
---
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java | 101 +++++++++++++++++++++++++++++++++++---------------
1 files changed, 71 insertions(+), 30 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
index 226d9b9..3f00820 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
@@ -21,6 +21,7 @@
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.*;
+import java.util.stream.Collectors;
/**
* 鎮h�呴棬璇婅褰昐ervice涓氬姟灞傚鐞�
@@ -543,15 +544,44 @@
@Override
public Integer dealPatMedOuthosp(PatMedOuthosp patMedOuthosp, Integer visitTimeNum){
Integer num = 0;
- ServiceSubtaskEntity serviceSubtask = new ServiceSubtaskEntity();
- serviceSubtask.setInhospid(patMedOuthosp.getId());
- serviceSubtask.setServiceType("3");
- serviceSubtask.setVisitCount(1);
- List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtask);
- if(CollectionUtils.isEmpty(serviceSubtasks)){
- num = followUpByPatMedOuthosp(patMedOuthosp, visitTimeNum);
+
+ //鏅畞 瀛樺湪鐩稿悓璇婃柇鐨勯棬璇婅褰曞垯鏂板鍐嶆闅忚,鍚﹀垯鏂板闅忚
+ if(patMedOuthosp.getOrgid().equals("47255004333112711A1001")){
+ PatMedOuthosp patMedOuthospVo = new PatMedOuthosp();
+ List<PatMedOuthosp> patMedOuthosps = new ArrayList<>();
+ patMedOuthospVo.setOrgid(patMedOuthosp.getOrgid());
+ patMedOuthospVo.setPatid(patMedOuthosp.getPatid());
+ patMedOuthospVo.setIcd10code(patMedOuthosp.getIcd10code());
+ // 鍚屼竴涓偅鑰� + 鍚屼竴涓瘖鏂紝鍘嗗彶涓婂凡缁忔湁闂ㄨ瘖闅忚璁板綍锛堟帓闄ゆ湰娆″氨璇婏紝鏈鍦ㄨ皟鐢ㄥ墠宸茶惤搴擄級
+ patMedOuthosps = selectPatMedOuthospList(patMedOuthospVo);
+ Long currentId = patMedOuthosp.getId();
+ List<Long> ids = patMedOuthosps.stream().map(PatMedOuthosp::getId).filter(ObjectUtils::isNotEmpty)
+ .filter(id -> !id.equals(currentId))
+ .distinct()
+ .collect(Collectors.toList());
+ ServiceSubtaskEntity serviceSubtask = new ServiceSubtaskEntity();
+ //鏅畞 鍙瀛樺湪鐩稿悓璇婃柇銆佹偅鑰呯殑闂ㄨ瘖璁板綍鍒欏綋鍐嶆闅忚澶勭悊
+ serviceSubtask.setInhospids(ids);
+ serviceSubtask.setServiceType("3");
+ List<ServiceSubtask> serviceSubtasks = CollectionUtils.isEmpty(ids)
+ ? new ArrayList<>()
+ : serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtask);
+ if(CollectionUtils.isEmpty(serviceSubtasks)){
+ num = followUpByPatMedOuthosp(patMedOuthosp, visitTimeNum);
+ }else {
+ num = followUpAgainByPatMedOuthosp(patMedOuthosp, visitTimeNum, ids);
+ }
}else {
- num = followUpAgainByPatMedOuthosp(patMedOuthosp, visitTimeNum);
+ ServiceSubtaskEntity serviceSubtask = new ServiceSubtaskEntity();
+ serviceSubtask.setInhospid(patMedOuthosp.getId());
+ serviceSubtask.setServiceType("3");
+ serviceSubtask.setVisitCount(1);
+ List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtask);
+ if(CollectionUtils.isEmpty(serviceSubtasks)){
+ num = followUpByPatMedOuthosp(patMedOuthosp, visitTimeNum);
+ }else {
+ num = followUpAgainByPatMedOuthosp(patMedOuthosp, visitTimeNum, null);
+ }
}
return num;
}
@@ -610,7 +640,7 @@
* @return
*/
@Override
- public Integer followUpAgainByPatMedOuthosp(PatMedOuthosp patMedOuthosp, Integer visitTimeNum) {
+ public Integer followUpAgainByPatMedOuthosp(PatMedOuthosp patMedOuthosp, Integer visitTimeNum, List<Long> inhospids) {
Date adminDate = patMedOuthosp.getAdmitdate();
Date newDate = addDays(adminDate, visitTimeNum);
@@ -622,32 +652,43 @@
serviceSubtaskEntity0.setOrgid(patMedOuthosp.getOrgid());
serviceSubtaskEntity0.setSendstates(new ArrayList<>(Arrays.asList(1L, 2L, 3L, 7L)));
serviceSubtaskEntity0.setPatid(patid);
- serviceSubtaskEntity0.setDeptcode(deptcode);
+ //鏅畞鏍规嵁璇婃柇鍐嶆闅忚
+ if(patMedOuthosp.getOrgid().equals("47255004333112711A1001") && !CollectionUtils.isEmpty(inhospids)){
+ serviceSubtaskEntity0.setInhospids(inhospids);
+ }else {
+ serviceSubtaskEntity0.setDeptcode(deptcode);
+ }
+
serviceSubtaskEntity0.setSort(0);
List<ServiceSubtask> serviceSubtaskList0 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskEntity0);
if (!CollectionUtils.isEmpty(serviceSubtaskList0)) {
- ServiceSubtask serviceSubtask0 = serviceSubtaskList0.get(0);
- serviceSubtask0.setSendstate(6L);
- serviceSubtask0.setUpdateTime(new Date());
- serviceSubtask0.setFinishtime(adminDate);
- serviceSubtaskMapper.updateServiceSubtask(serviceSubtask0);
+ for (ServiceSubtask serviceSubtask0 : serviceSubtaskList0) {
+ serviceSubtask0.setSendstate(6L);
+ serviceSubtask0.setUpdateTime(new Date());
+ serviceSubtask0.setFinishtime(adminDate);
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask0);
- ServiceSubtask serviceSubtask1 = DtoConversionUtils.sourceToTarget(serviceSubtask0, ServiceSubtask.class);
- serviceSubtask1.setId(null);
- serviceSubtask1.setSendstate(2L);
- serviceSubtask1.setUpid(serviceSubtask0.getId().intValue());
- serviceSubtask1.setVisitCount(serviceSubtask0.getVisitCount() + 1);
- serviceSubtask1.setVisitType(serviceSubtask0.getVisitType());
- serviceSubtask1.setVisitDeptCode(serviceSubtask0.getVisitDeptCode());
- serviceSubtask1.setVisitDeptName(serviceSubtask0.getVisitDeptName());
- serviceSubtask1.setCreateTime(new Date());
- serviceSubtask1.setUpdateTime(new Date());
- serviceSubtask1.setFinishtime(null);
- serviceSubtask1.setAdmindate(adminDate);
+ ServiceSubtask serviceSubtask1 = DtoConversionUtils.sourceToTarget(serviceSubtask0, ServiceSubtask.class);
+ serviceSubtask1.setId(null);
+ serviceSubtask1.setSendstate(2L);
+ serviceSubtask1.setUpid(serviceSubtask0.getId().intValue());
+ //鑰佹暟鎹殑visit_count鍙兘涓虹┖锛岄粯璁ゆ寜绗�1娆$畻
+ Integer visitCount = ObjectUtils.isEmpty(serviceSubtask0.getVisitCount()) ? 1 : serviceSubtask0.getVisitCount();
+ serviceSubtask1.setVisitCount(visitCount + 1);
+ serviceSubtask1.setVisitType(serviceSubtask0.getVisitType());
+ serviceSubtask1.setVisitDeptCode(serviceSubtask0.getVisitDeptCode());
+ serviceSubtask1.setVisitDeptName(serviceSubtask0.getVisitDeptName());
+ //鏂颁换鍔$瀹ゆ槸褰撳墠鍑洪櫌绉戝
+ serviceSubtask1.setDeptcode(patMedOuthosp.getDeptcode());
+ serviceSubtask1.setCreateTime(new Date());
+ serviceSubtask1.setUpdateTime(new Date());
+ serviceSubtask1.setFinishtime(null);
+ serviceSubtask1.setAdmindate(adminDate);
- serviceSubtask1.setVisitTime(newDate);
- serviceSubtask1.setLongSendTime(newDate);
- i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask1);
+ serviceSubtask1.setVisitTime(newDate);
+ serviceSubtask1.setLongSendTime(newDate);
+ i = i + serviceSubtaskMapper.insertServiceSubtask(serviceSubtask1);
+ }
} else {
//鏌ョ湅宸插畬鎴愮殑浠诲姟
// ServiceSubtaskEntity serviceSubtaskEntity = new ServiceSubtaskEntity();
--
Gitblit v1.9.3