From 2e952232f71eae1bf92590471fc7f5d20a1af873 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 31 七月 2025 11:30:48 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java |   85 ++++++++++++++++++++++++++++++------------
 1 files changed, 61 insertions(+), 24 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
index 93d6c7f..dbf6662 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -14,6 +14,8 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -130,15 +132,16 @@
         PatMedRes patMedRes = null;
         // 鑾峰彇褰撳墠鐧婚檰浜虹殑閮ㄩ棬鏉冮檺
         if (org.springframework.util.CollectionUtils.isEmpty(patMedReq.getDeptcodeList())) {
-            Long userId = SecurityUtils.getUserId();
-            List<SysDept> sysDepts = sysUserDeptMapper.selectDeptListByUserId(userId);
-            List<String> deptCode = new ArrayList<>();
-            for (SysDept sysDept : sysDepts) {
-                deptCode.add(sysDept.getDeptId().toString());
-            }
-            patMedReq.setDeptcodeList(deptCode);
-            patMedRes = patMedInhospMapper.selectPatMedInhospCount(patMedReq);
+//            Long userId = SecurityUtils.getUserId();
+//            List<SysDept> sysDepts = sysUserDeptMapper.selectDeptListByUserId(userId);
+//            List<String> deptCode = new ArrayList<>();
+//            for (SysDept sysDept : sysDepts) {
+//                deptCode.add(sysDept.getDeptId().toString());
+//            }
+//            patMedReq.setDeptcodeList(deptCode);
+//            patMedRes = patMedInhospMapper.selectPatMedInhospCount(patMedReq);
         }
+        patMedRes = patMedInhospMapper.selectPatMedInhospCount(patMedReq);
         return patMedRes;
     }
 
@@ -209,7 +212,7 @@
         pmks.setInhospstate("1");
         pmks.setFuflag("1");
         List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks);
-        log.error("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌閮ㄩ棬鎮h�呬俊鎭細{}", patMedInhosps);
+        log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌閮ㄩ棬鎮h�呬俊鎭細{}", patMedInhosps);
         for (PatMedInhosp patMedInhosp1 : patMedInhosps) {
             String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
             patMedInhosp1.setTagname(tagname);
@@ -262,7 +265,7 @@
             pmbq.setInhospstate("1");
             pmbq.setFuflag("1");
             List<PatMedInhosp> patMedInhospBQs = patMedInhospMapper.selectPatMedInhospList(pmbq);
-            log.error("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鐥呭尯鎮h�呬俊鎭細{}", patMedInhosps);
+            log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鐥呭尯鎮h�呬俊鎭細{}", patMedInhosps);
             for (PatMedInhosp patMedInhosp1 : patMedInhospBQs) {
                 String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
                 patMedInhosp1.setTagname(tagname);
@@ -312,7 +315,7 @@
             pmjb.setInhospstate("1");
             pmjb.setFuflag("1");
             List<PatMedInhosp> patMedInhospJBs = patMedInhospMapper.selectPatMedInhospList(pmjb);
-            log.error("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鐤剧梾鎮h�呬俊鎭細{}", patMedInhosps);
+            log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鐤剧梾鎮h�呬俊鎭細{}", patMedInhosps);
             for (PatMedInhosp patMedInhosp1 : patMedInhospJBs) {
                 String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
                 patMedInhosp1.setTagname(tagname);
@@ -482,7 +485,7 @@
     @Override
     public List<PatMedRes> getDeptRanking(PatMedReq patMedReq) {
 
-        return patMedInhospMapper.getDeptRanking(patMedReq);
+        return serviceSubtaskMapper.getDeptRanking(patMedReq);
     }
 
     @Override
@@ -538,7 +541,7 @@
         st.setSendState(2L);
         List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
         if (CollectionUtils.isEmpty(serviceTasks)) {
-            log.error("璇ユ偅鑰呭嚭闄㈤殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓猴細{}", taskid);
+            log.info("璇ユ偅鑰呭嚭闄㈤殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓猴細{}", taskid);
             patMedInhosp1.setDeptcheckFlag("2");
             patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呭嚭闄㈤殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
             patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
@@ -547,6 +550,16 @@
         ServiceTask serviceTask = serviceTasks.get(0);
         //灏佽serviceSubtask
         ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedInhosp1, patArchive);
+        if (type != 2) {
+            //绉戝鍜岀柧鐥� 閮界敤 绉戝濉厖
+            serviceSubtask.setVisitDeptCode(patMedInhosp1.getLeaveldeptcode());
+            serviceSubtask.setVisitDeptName(patMedInhosp1.getLeaveldeptname());
+        } else if (type == 2) {
+            serviceSubtask.setVisitDeptCode(patMedInhosp1.getLeavehospitaldistrictcode());
+            serviceSubtask.setVisitDeptName(patMedInhosp1.getLeavehospitaldistrictname());
+        }
+
+
         Integer i = 0;
         //鍏堝垽鏂竴涓嬶紝鏄惁闇�瑕佹牎楠�
         if (check) {
@@ -556,7 +569,7 @@
             subtask.setSendstate(2L);
             subtask.setTaskid(taskid);
             List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(subtask);
-            log.error("璇ユ偅鑰呭緟鎵ц鐨勪换鍔�:{}", selectServiceSubtaskList);
+            log.info("璇ユ偅鑰呭緟鎵ц鐨勪换鍔�:{}", selectServiceSubtaskList);
             if (CollectionUtils.isNotEmpty(selectServiceSubtaskList) && selectServiceSubtaskList.size() > 0) {
                 for (ServiceSubtask serviceSubtask1 : selectServiceSubtaskList) {
                     if (Objects.isNull(serviceSubtask1.getLongSendTime())) {
@@ -570,7 +583,7 @@
                             serviceSubtask1.setSendstate(4L);
                             serviceSubtask1.setRemark("鎮h�呭啀鍏ラ櫌");
                             serviceSubtask1.setResult("error");
-                            serviceSubtask1.setFinishtime(new Date());
+//                            serviceSubtask1.setFinishtime(new Date());
                             serviceSubtask1.setUpdateBy(serviceTask.getUpdateBy());
                             serviceSubtask1.setUpdateTime(new Date());
                             Boolean aBoolean = serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
@@ -578,7 +591,7 @@
                         } else {
                             //鐩稿弽,鍒欏皢褰撴湁鐨勬暟鎹仠鎺�
                             serviceSubtask.setResult("error");
-                            serviceSubtask.setFinishtime(new Date());
+//                            serviceSubtask.setFinishtime(new Date());
                             serviceSubtask.setSendstate(4L);
                             serviceSubtask.setRemark("褰撳墠鎮h�呭嚭闄㈡椂闂村悗鏈夊緟鎵ц鐨勫嚭闄㈤殢璁块暱鏈熶换鍔�");
                             serviceSubtask.setCreateBy(serviceTask.getCreateBy());
@@ -591,7 +604,7 @@
                         serviceSubtask1.setSendstate(4L);
                         serviceSubtask1.setRemark("鐤剧梾鎮h�呭啀鍏ラ櫌");
                         serviceSubtask1.setResult("error");
-                        serviceSubtask1.setFinishtime(new Date());
+//                        serviceSubtask1.setFinishtime(new Date());
                         serviceSubtask1.setUpdateBy(serviceTask.getUpdateBy());
                         serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
                         //閲嶆柊鏂板瀛愪换鍔�
@@ -604,7 +617,7 @@
                     serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�");
                     serviceSubtask.setSendstate(4L);
                     serviceSubtask.setResult("error");
-                    serviceSubtask.setFinishtime(new Date());
+//                    serviceSubtask.setFinishtime(new Date());
                 }
                 serviceSubtask.setCreateBy(serviceTask.getCreateBy());
                 serviceSubtask.setCreateTime(new Date());
@@ -615,7 +628,7 @@
                 serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�");
                 serviceSubtask.setSendstate(4L);
                 serviceSubtask.setResult("error");
-                serviceSubtask.setFinishtime(new Date());
+//                serviceSubtask.setFinishtime(new Date());
 
             }
             serviceSubtask.setCreateBy(serviceTask.getCreateBy());
@@ -633,7 +646,7 @@
             patMedInhospMapper.updatePatMedInhosp(patMedInhosp2);
         } else {
             //鐢熸垚瀛愪换鍔″け璐ワ紝
-            log.error("鐢熸垚瀛愪换鍔″け璐erviceSubtask涓猴細{}", serviceSubtask);
+            log.info("鐢熸垚瀛愪换鍔″け璐erviceSubtask涓猴細{}", serviceSubtask);
             PatMedInhosp patMedInhosp2 = new PatMedInhosp();
             patMedInhosp2.setInhospid(patMedInhosp1.getInhospid());
             if (type == 1) patMedInhosp2.setDeptcheckFlag("2");
@@ -685,16 +698,40 @@
         if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L);
         Date newDate = addDays(patMedInhosp1.getEndtime(), serviceTask.getSendDay().intValue());
         serviceSubtask.setLongSendTime(newDate);
+        serviceSubtask.setVisitTime(newDate);
+        //濡傛灉鏄�氱煡鐨勮瘽锛岄渶瑕佹彁鍓嶅嚑澶╁皢閫氳繃鐭俊鍙戝嚭鍘伙紙鍏蜂綋鍑犲ぉ锛岃繖涓彲浠ラ厤缃湪sys_conf琛ㄤ腑锛�
+        if ("3".equals(serviceTask.getType())) {
+            serviceSubtask.setVisitTime(minusDay(newDate, 2));
+        }
+
+
         //鎮h�呭彂閫佹椂闂�
         if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) {
             String remark = patArchive.getNotrequiredreason();
             serviceSubtask.setRemark(remark);
             serviceSubtask.setResult("error");
-            serviceSubtask.setFinishtime(new Date());
             //涓嶆墽琛�
             serviceSubtask.setSendstate(4L);
         }
         return serviceSubtask;
+    }
+
+    /**
+     * 鍑忓幓鐩稿簲澶╂暟
+     *
+     * @param originalDate
+     * @param day
+     * @return
+     */
+    public Date minusDay(Date originalDate, Integer day) {
+        // 1. 灏� Date 杞崲涓� Instant
+        Instant instant = originalDate.toInstant();
+
+        // 2. 鍦� Instant 涓婂噺鍘�2澶�
+        Instant twoDaysAgoInstant = instant.minus(2, ChronoUnit.DAYS);
+
+        // 3. 灏嗚绠楀悗鐨� Instant 杞洖 Date
+        return Date.from(twoDaysAgoInstant);
     }
 
     //澶勭悊鍏ラ櫌淇℃伅
@@ -706,7 +743,7 @@
                 subtask.setPatid(patMedInhosp1.getPatid());
                 subtask.setSendstate(2L);
                 List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(subtask);
-                log.error("鍏ラ櫌鐨勬偅鑰呭緟鎵ц鐨勪换鍔�:{}", selectServiceSubtaskList);
+//                log.error("鍏ラ櫌鐨勬偅鑰呭緟鎵ц鐨勪换鍔�:{}", selectServiceSubtaskList);
                 if (CollectionUtils.isNotEmpty(selectServiceSubtaskList) && selectServiceSubtaskList.size() > 0) {
                     for (ServiceSubtask serviceSubtask1 : selectServiceSubtaskList) {
                         if (Objects.isNull(serviceSubtask1.getLongSendTime())) {
@@ -715,11 +752,11 @@
                         }
                         if (serviceSubtask1.getEndtime().before(patMedInhosp1.getStarttime())) {
                             //濡傛灉褰撳墠寰幆鐨勫瓙浠诲姟鐨勫嚭闄㈡椂闂村湪鈥滃噯澶囨柊澧炵殑瀛愪换鍔♀�濈殑鍑洪櫌鏃堕棿涔嬪墠锛屽垯灏嗗惊鐜殑瀛愪换鍔″仠鎺�
-                            log.error("鎮h�呭啀鍏ラ櫌鐨剆erviceSubtask1涓�:{}", serviceSubtask1);
+//                            log.error("鎮h�呭啀鍏ラ櫌鐨剆erviceSubtask1涓�:{}", serviceSubtask1);
                             serviceSubtask1.setSendstate(4L);
                             serviceSubtask1.setRemark("鎮h�呭啀鍏ラ櫌");
                             serviceSubtask1.setResult("error");
-                            serviceSubtask1.setFinishtime(new Date());
+//                            serviceSubtask1.setFinishtime(new Date());
                             serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
                         }
                     }

--
Gitblit v1.9.3