From 9b1f0d5ff6e503060797083aa6693cc3fb6c35eb Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 27 八月 2026 18:22:35 +0800
Subject: [PATCH] 【丽水】门诊完成接诊-生成随访任务逻辑
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 110 insertions(+), 5 deletions(-)
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index 5e4760f..a7b1e7b 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -6,6 +6,7 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
+import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.dx.MessageSend;
@@ -48,6 +49,7 @@
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
+import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -287,6 +289,17 @@
}
/**
+ * 姣忔湀15鍙峰拰鏈堝簳锛屾煡璇㈠苟澶勭悊 HIS 鏁版嵁锛堝悓寰凤紝鍗楀崕锛�
+ */
+ public void dealHisDataHalfMonth() {
+ LocalDateTime now = LocalDateTime.now();
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ String formattedNow = now.format(formatter);
+ dealHisData(formattedNow);
+ }
+
+
+ /**
* HIS鏁版嵁閲囬泦
* 瀹氭椂浠诲姟锛氶噰闆嗘偅鑰呬俊鎭�佸嚭闄€�侀棬璇婃暟鎹�
* todayZeroStr 褰撳墠鐨勬椂闂� 渚嬪锛�2026-05-06 00:00:00
@@ -423,7 +436,7 @@
list.add("FH0109.23");
list.add("FH0109.53");
serviceSLTDInhospReqVO.setStatusList(list);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
+// log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濈祼鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
@@ -441,7 +454,7 @@
List<String> listStr = new ArrayList<>();
listStr.add("FH0109.24");
serviceSLTDInhospReqVO.setStatusList(listStr);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
+// log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濈祼鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
@@ -464,7 +477,7 @@
//棰勫嚭闄�
list2.add("FH0109.25");
serviceSLTDInhospReqVO.setStatusList(list2);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
+// log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
}
@@ -485,7 +498,7 @@
* @param endDateStr 鏃ユ湡缁撴潫 yyyy-MM-dd
*/
private void collectSegmentData(Long cid, String startDateStr, String endDateStr) {
- // 棰勫叆闄�
+// // 棰勫叆闄�
log.info("銆恉ealHisData銆戦鍏ラ櫌寮�濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr);
ServiceSLTDInhospReqVO reqVO = new ServiceSLTDInhospReqVO();
reqVO.setOrgId("20001001");
@@ -1522,6 +1535,47 @@
}
}
+ public void collectHISYesterday() {
+ try {
+ // 鑾峰彇鏄ㄥぉ0鐐瑰埌浠婂ぉ0鐐圭殑鏃堕棿鑼冨洿
+ LocalDateTime todayZero = LocalDateTime.now().with(LocalTime.MIN);
+ LocalDateTime yesterdayZero = todayZero.minusDays(1);
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ String startTime = yesterdayZero.format(formatter);
+ String endTime = todayZero.format(formatter);
+ // HIS鏁版嵁閲囬泦
+ log.info("銆恈ollectHISYesterday銆慔IS寮�濮嬮噰闆嗘暟鎹�");
+ // 绔嬪嵆杩斿洖锛屽悗鍙板紓姝ユ墽琛�
+ CompletableFuture.runAsync(() -> {
+ ichService.syncMedInhosp(startTime, endTime);
+ });
+ log.info("銆恈ollectHISYesterday銆慔IS缁撴潫閲囬泦鏁版嵁");
+ } catch (Exception e) {
+ log.error("銆恈ollectHISYesterday銆慔IS鏁版嵁閲囬泦寮傚父", e);
+ }
+ }
+
+ public void collectHISDaysBefore(Long daysBefore) {
+ try {
+ // 鑾峰彇daysBefore 0鐐瑰埌daysBefore-1 0鐐圭殑鏃堕棿鑼冨洿
+ LocalDateTime todayZero = LocalDateTime.now().with(LocalTime.MIN);
+ LocalDateTime daysBeforeZeroStart = todayZero.minusDays(daysBefore);
+ LocalDateTime daysBeforeZeroEnd = todayZero.minusDays(daysBefore-1L);
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ String startTime = daysBeforeZeroStart.format(formatter);
+ String endTime = daysBeforeZeroEnd.format(formatter);
+ // HIS鏁版嵁閲囬泦
+ log.info("銆恈ollectHISDaysBefore銆慔IS寮�濮嬮噰闆嗘暟鎹�: startTime:{}, endtime:{}",startTime, endTime);
+ // 绔嬪嵆杩斿洖锛屽悗鍙板紓姝ユ墽琛�
+ CompletableFuture.runAsync(() -> {
+ ichService.syncMedInhosp(startTime, endTime);
+ });
+ log.info("銆恈ollectHISDaysBefore銆慔IS缁撴潫閲囬泦鏁版嵁: startTime:{}, endtime:{}",startTime, endTime);
+ } catch (Exception e) {
+ log.error("銆恈ollectHISDaysBefore銆慔IS鏁版嵁閲囬泦寮傚父", e);
+ }
+ }
+
public Boolean setSuccessPreachForm(ServiceSubtask serviceSubtask, String preachform, String remark, String failSendstate) {
if (preachform.equals("-1")) {
//璇存槑閮戒笉闇�瑕佹墽琛屼簡
@@ -1550,7 +1604,7 @@
// //浜哄伐鐨勬湭鍙戦�佺姸鎬侊紝闇�瑕佹煡2
// if (preachform.equals("1") && StringUtils.isNotEmpty(failSendstate) && Long.valueOf(failSendstate) > 2)
// serviceSubtaskPreachform.setSendstate("2");
-
+ log.error("-----serviceSubtaskPreachform鐨勫叆鍙傛槸锛焮}", serviceSubtaskPreachform);
List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) {
ServiceSubtaskPreachform serviceSubtaskPreachform1 = serviceSubtaskPreachforms.get(0);
@@ -1712,4 +1766,55 @@
// 鍑洪櫌(鍙戦��)鏃堕棿 + 鏈琛ュ伩鏃堕棿 灏忎簬褰撳墠鏃堕棿 -> 瓒呮椂
return deadline.getTime() < new Date().getTime();
}
+
+ /**
+ * 澶勭悊瓒呮椂闅忚浠诲姟
+ * @return
+ */
+ public void dealSubtaskDeadline(Integer deadlineDay){
+
+ Date deadline = DateUtils.addDays(new Date(), deadlineDay);
+ //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭�,骞朵笖闅忚鏃堕棿寰楁槸浠婂ぉ涔嬪墠鐨�
+ ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
+ serviceSubtaskVO.setSendstate(7L);
+ serviceSubtaskVO.setVisitCount(1);
+ serviceSubtaskVO.setEndOutHospTime(deadline);
+ List<ServiceSubtask> serviceSubtaskList
+ = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ log.info("銆恉ealSubtaskDeadline銆戣幏鍙栧埌{}涓秴鏃朵换鍔�", serviceSubtaskList.size());
+ for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+ PatMedInhosp patMedInhosp = new PatMedInhosp();
+ patMedInhosp.setInhospid(serviceSubtask.getInhospid());
+ List<PatMedInhosp> patMedInhospList = iPatMedInhospService.selectPatMedInhospList(patMedInhosp);
+
+ if (patMedInhospList.size() > 0) {
+ serviceSubtask.setIsVisitAgain(2);
+ serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + ";鎮h�呭啀鍏ラ櫌浜�" : "鎮h�呭啀鍏ラ櫌浜�");
+ serviceSubtask.setSendstate(4L);
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+ //return "鏃犻渶鍐嶆闅忚锛屾偅鑰呭啀鍏ラ櫌浜�";
+ }else {
+ continue;
+ }
+ //鏂板鍐嶆闅忚浠诲姟
+ ServiceSubtask serviceSubtaskAgain = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtask.class);
+ serviceSubtaskAgain.setId(null);
+ serviceSubtaskAgain.setUpid(serviceSubtask.getId().intValue());
+ serviceSubtaskAgain.setVisitCount(serviceSubtask.getVisitCount() + 1);
+ serviceSubtaskAgain.setSendstate(2L);
+ serviceSubtaskAgain.setCreateTime(new Date());
+ serviceSubtaskAgain.setUpdateTime(new Date());
+ serviceSubtaskAgain.setVisitType(serviceSubtask.getVisitType());
+ serviceSubtaskAgain.setVisitDeptCode(serviceSubtask.getVisitDeptCode());
+ serviceSubtaskAgain.setVisitDeptName(serviceSubtask.getVisitDeptName());
+ int i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtaskAgain);
+ if (i == 1) {
+ //鍐嶆闅忚浠诲姟鍒涘缓鎴愬姛鍚庯紝鍘熶换鍔℃敼涓哄け璐ョ姸鎬�
+ serviceSubtask.setIsVisitAgain(2);
+ serviceSubtask.setSendstate(5L);
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+ }
+ }
+ }
+
}
--
Gitblit v1.9.3