From 7a5ef401fdbe6f67dd96255a47874f7a3656253b Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 03 九月 2026 18:26:29 +0800
Subject: [PATCH] 【丽水】处理超时随访任务
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 89 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 89 insertions(+), 0 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 d6e0ef9..805cca7 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
@@ -1555,6 +1555,27 @@
}
}
+ 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")) {
//璇存槑閮戒笉闇�瑕佹墽琛屼簡
@@ -1745,4 +1766,72 @@
// 鍑洪櫌(鍙戦��)鏃堕棿 + 鏈琛ュ伩鏃堕棿 灏忎簬褰撳墠鏃堕棿 -> 瓒呮椂
return deadline.getTime() < new Date().getTime();
}
+
+ /**
+ * 澶勭悊瓒呮椂闅忚浠诲姟
+ * @return
+ */
+ public void dealSubtaskDeadline(String orgid, Integer deadlineDay){
+ //鑾峰彇浠诲姟淇℃伅
+ ServiceTask st = new ServiceTask();
+ st.setDelFlag("0");
+ st.setLongTask(1);
+ st.setNexttaskflag("1");
+ st.setOrgid(orgid);
+ List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
+ for (ServiceTask serviceTask : serviceTasks) {
+ deadlineDay = -deadlineDay;
+ Date deadline = DateUtils.addDays(new Date(), deadlineDay);
+ //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭�,骞朵笖闅忚鏃堕棿寰楁槸浠婂ぉ涔嬪墠鐨�
+ ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
+ serviceSubtaskVO.setOrgid(orgid);
+ serviceSubtaskVO.setSendstate(7L);
+ //鍙壂鎻忛娆¢殢璁跨殑
+ serviceSubtaskVO.setVisitCount(1);
+ serviceSubtaskVO.setTaskid(serviceTask.getTaskid());
+ serviceSubtaskVO.setEndOutHospTime(deadline);
+ List<ServiceSubtask> serviceSubtaskList
+ = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ log.info("銆恉ealSubtaskDeadline銆戣幏鍙栧埌{}涓秴鏃朵换鍔�, taskid={}", serviceSubtaskList.size(), serviceTask.getTaskid());
+ for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+ PatMedInhosp patMedInhospVo = new PatMedInhosp();
+ patMedInhospVo.setOrgid(serviceSubtask.getOrgid());
+ patMedInhospVo.setInhospid(serviceSubtask.getInhospid());
+ List<PatMedInhosp> patMedInhospList = iPatMedInhospService.selectPatMedInhospList(patMedInhospVo);
+ PatMedInhosp patMedInhosp = new PatMedInhosp();
+ if (!patMedInhospList.isEmpty()) {
+ patMedInhosp = patMedInhospList.get(0);
+ }else {
+ continue;
+ }
+ if(ObjectUtils.isEmpty(serviceTask.getNexttaskid())){
+ continue;
+ }
+ ServiceTask nextServiceTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceTask.getNexttaskid());
+ PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtask.getPatid());
+ String config = configService.selectConfigByKey("visit.early.day");
+ Integer type = 1;
+
+ //鏂板鍐嶆闅忚浠诲姟
+ ServiceSubtask serviceSubtaskAgain = iPatMedInhospService.boxedServiceSubtask(nextServiceTask,
+ patMedInhosp, patArchive, config, type);
+ 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.setSendstate(5L);
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+ }
+ }
+ }
+ }
+
}
--
Gitblit v1.9.3