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 |   99 +++++++++++++++++++++++++++++--------------------
 1 files changed, 58 insertions(+), 41 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 a7b1e7b..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
@@ -1771,48 +1771,65 @@
      * 澶勭悊瓒呮椂闅忚浠诲姟
      * @return
      */
-    public void dealSubtaskDeadline(Integer deadlineDay){
+    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;
 
-        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);
+                //鏂板鍐嶆闅忚浠诲姟
+                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