From dfdedd9df6386d062a8889d1cb5883f3294e0bb5 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 29 七月 2026 09:10:12 +0800
Subject: [PATCH] 【丽水】JZ_MZ_WanChengJZ 就诊信息同步生成随访任务
---
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java | 99 ++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 89 insertions(+), 10 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 6d833d5..74c33b8 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
@@ -74,6 +74,13 @@
@Override
public List<PatMedOuthosp> selectPatMedOuthospList(PatMedOuthosp patMedOuthosp) {
PatMedOuthospQueryReq patMedOuthospQueryReq = DtoConversionUtils.sourceToTarget(patMedOuthosp, PatMedOuthospQueryReq.class);
+ patMedOuthospQueryReq.setBeginAdmitdate(patMedOuthosp.getBeginTime());
+ patMedOuthospQueryReq.setEndAdmitdate(patMedOuthosp.getEndTime());
+ if(!CollectionUtils.isEmpty(patMedOuthosp.getDeptcodes())) {
+ String result = String.join(",", patMedOuthosp.getDeptcodes());
+ patMedOuthospQueryReq.setDeptcode(result);
+ }
+
List<PatMedOuthosp> patMedOuthospQueryResps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthospQueryReq);
if (patMedOuthosp.getPageNum() != null) {
for (PatMedOuthosp patMedOuthosp1 : patMedOuthospQueryResps) {
@@ -166,20 +173,28 @@
*/
@Override
public int insertPatMedOuthosp(PatMedOuthosp patMedOuthosp) {
- if (patMedOuthosp.getAdmitdate() != null) {
+ if (patMedOuthosp.getAdmitdate() == null) {
log.error("闂ㄦ�ュ氨璇婃椂闂翠笉鑳戒负绌�");
return 0;
+ }
+ // 闇�瑕佹彃鍏ュ埌鍝釜琛紝鏍规嵁灏辫瘖鏃堕棿鐨勬棩鏈熸潵瀹氾紝濡傛灉鏍规嵁灏辫瘖鏃堕棿鏉ョ‘瀹氱殑琛ㄤ笉瀛樺湪锛屽垯瀛樺湪pat_med_outhosp琛ㄤ腑
+ String targetTable = resolveTargetTable(patMedOuthosp.getAdmitdate());
+ if (targetTable == null) {
+ return 0;
+ }
+ // 鎻掑叆鍓嶆寜 serialnum 鏌ラ噸锛岄槻姝㈤噸澶嶉噰闆嗗鑷撮噸澶嶅叆搴�
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(patMedOuthosp.getSerialnum())) {
+ int exists = patMedOuthospMapper.countBySerialnum(targetTable, patMedOuthosp.getSerialnum());
+ if (exists > 0) {
+ log.info("[insert] serialnum={} 宸插瓨鍦ㄤ簬琛� {}锛岃烦杩囨彃鍏�", patMedOuthosp.getSerialnum(), targetTable);
+ return 0;
+ }
}
patMedOuthosp.setCreateTime(DateUtils.getNowDate());
patMedOuthosp.setUpdateTime(DateUtils.getNowDate());
patMedOuthosp.setGuid(UUID.randomUUID().toString());
- //闇�瑕佹彃鍏ュ埌鍝釜琛紝鏍规嵁灏辫瘖鏃堕棿鐨勬棩鏈熸潵瀹氾紝濡傛灉鏍规嵁灏辫瘖鏃堕棿鏉ョ‘瀹氱殑琛ㄤ笉瀛樺湪锛屽垯瀛樺湪pat_med_outhosp琛ㄤ腑
- String targetTable = resolveTargetTable(patMedOuthosp.getAdmitdate());
- if (targetTable != null) {
- log.info("[insert] 璺敱鍒板垎琛�: {}", targetTable);
- return patMedOuthospMapper.insertIntoTable(targetTable, patMedOuthosp);
- }
- return 0;
+ log.info("[insert] 璺敱鍒板垎琛�: {}", targetTable);
+ return patMedOuthospMapper.insertIntoTable(targetTable, patMedOuthosp);
}
/**
@@ -294,7 +309,7 @@
PatMedOuthospQueryReq req = new PatMedOuthospQueryReq();
String deptcodes = CollectionUtils.isEmpty(patMedReq.getDeptcodeList()) ? null : String.join(",", patMedReq.getDeptcodeList());
req.setBeginAdmitdate(patMedReq.getStartDate());
- req.setEndAdmitdate(patMedReq.getEndDate());
+ req.setEndAdmitdate(DateUtils.addDays(patMedReq.getEndDate(),1));
req.setDeptcode(deptcodes);
req.setOrgid(patMedReq.getOrgid());
// req.setCampusid(patMedReq.getCampusid());
@@ -324,6 +339,7 @@
public Integer dealOutpatientInfo() {
PatMedOuthosp patMedOuthosp = new PatMedOuthosp();
patMedOuthosp.setDiagcheckFlag("0");
+ patMedOuthosp.setFuflag("1");
List<PatMedOuthosp> patMedOuthosps = selectPatMedOuthospList(patMedOuthosp);
for (PatMedOuthosp patMedOuthosp1 : patMedOuthosps) {
PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid());
@@ -459,7 +475,8 @@
}
//灏佽serviceSubtask
- private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive) {
+ @Override
+ public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive) {
ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
serviceSubtask.setTaskid(serviceTask.getTaskid());
if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
@@ -514,6 +531,68 @@
return serviceSubtask;
}
+ /**
+ *
+ * @param patMedOuthosp
+ * @return
+ */
+ @Override
+ public Integer followUpAgainByPatMedOuthosp(PatMedOuthosp patMedOuthosp,Date adminDate, Integer visitTimeNum){
+ int hoursToAdd = visitTimeNum * 24;
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(adminDate);
+ calendar.add(Calendar.HOUR_OF_DAY, hoursToAdd);
+ Date newDate = calendar.getTime();
+
+ Integer i = 0;
+ String deptcode = patMedOuthosp.getDeptcode();
+ Long patid = patMedOuthosp.getPatid();
+ //鏌ョ湅鏈夋棤杩涜涓殑浠诲姟
+ ServiceSubtaskEntity serviceSubtaskEntity0 = new ServiceSubtaskEntity();
+ serviceSubtaskEntity0.setOrgid(patMedOuthosp.getOrgid());
+ serviceSubtaskEntity0.setSendstates(new ArrayList<>(Arrays.asList(1L, 2L, 3L, 7L)));
+ serviceSubtaskEntity0.setPatid(patid);
+ 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);
+
+ ServiceSubtask serviceSubtask1 = serviceSubtaskList0.get(0);
+ serviceSubtask1.setSendstate(2L);
+ serviceSubtask1.setCreateTime(new Date());
+ serviceSubtask1.setUpdateTime(new Date());
+
+ serviceSubtask1.setVisitTime(newDate);
+ serviceSubtask1.setLongSendTime(newDate);
+ i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask1);
+ }else {
+ //鏌ョ湅宸插畬鎴愮殑浠诲姟
+// ServiceSubtaskEntity serviceSubtaskEntity = new ServiceSubtaskEntity();
+// serviceSubtaskEntity0.setOrgid(patMedOuthosp.getOrgid());
+// serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(6L)));
+// serviceSubtaskEntity.setPatid(patid);
+// serviceSubtaskEntity.setDeptcode(deptcode);
+// serviceSubtaskEntity.setSort(0);
+// List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskEntity);
+// if(!CollectionUtils.isEmpty(serviceSubtaskList)){
+// ServiceSubtask serviceSubtask = serviceSubtaskList.get(0);
+// serviceSubtask.setSendstate(2L);
+// serviceSubtask.setCreateTime(new Date());
+// serviceSubtask.setUpdateTime(new Date());
+//
+// serviceSubtask.setVisitTime(newDate);
+// serviceSubtask.setLongSendTime(newDate);
+// i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
+// }
+ }
+ return i;
+ }
+
private Date addDays(Date date, Integer days) {
if (days == null) {
days = 1;
--
Gitblit v1.9.3