From ab2884ade73fed97d1e7d7daf4b9b5b6dee83fdd Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 29 十月 2026 09:26:12 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java |  975 ++++++++++++++++-----------------------------------------
 1 files changed, 272 insertions(+), 703 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 a7ed6a4..6c08431 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -1,16 +1,17 @@
 package com.smartor.service.impl;
 
+import com.ruoyi.othervisit.api.OtherVisitFacade;
+import com.ruoyi.inhospvisit.api.InhospVisitFacade;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.ruoyi.common.core.domain.entity.SysDept;
-import com.ruoyi.common.core.service.IConfigService;
+import com.ruoyi.common.core.service.dto.PatMedReq;
+import com.ruoyi.common.core.service.dto.PatMedRes;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DtoConversionUtils;
-import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.smartor.domain.*;
-import com.smartor.domain.entity.ServiceSubtaskEntity;
+import com.ruoyi.inhospvisit.domain.PatMedInhospDTO;
 import com.smartor.mapper.*;
 import com.smartor.service.IPatMedInhospService;
 import lombok.extern.slf4j.Slf4j;
@@ -20,12 +21,36 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
-import java.io.IOException;
 import java.time.Instant;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
-import java.util.stream.Collectors;
-
+import com.ruoyi.othervisit.domain.PatMedOperationItem;
+import com.ruoyi.inhospvisit.domain.PatMedInhospVO;
+import com.ruoyi.inhospvisit.domain.PatMedInhosp;
+import com.ruoyi.common.core.domain.entity.PatArchive;
+import com.ruoyi.task.domain.entity.ServiceSubtaskEntity;
+import com.ruoyi.task.domain.ServiceSubtask;
+import com.ruoyi.task.domain.ServiceTask;
+import com.ruoyi.task.domain.ServiceTaskdept;
+import com.ruoyi.task.domain.ServiceTaskdiag;
+import com.ruoyi.task.domain.ServiceTaskoper;
+import com.ruoyi.task.domain.ServiceTaskRule;
+import com.ruoyi.task.domain.ServiceTaskSchedule;
+import com.ruoyi.task.domain.ServiceTaskScheduleDetail;
+import com.ruoyi.task.mapper.ServiceSubtaskMapper;
+import com.ruoyi.task.mapper.ServiceTaskdeptMapper;
+import com.ruoyi.task.mapper.ServiceTaskdiagMapper;
+import com.ruoyi.task.mapper.ServiceTaskMapper;
+import com.ruoyi.task.mapper.ServiceTaskoperMapper;
+import com.ruoyi.task.mapper.ServiceTaskRuleMapper;
+import com.ruoyi.task.mapper.ServiceTaskScheduleDetailMapper;
+import com.ruoyi.task.mapper.ServiceTaskScheduleMapper;
+import com.ruoyi.task.domain.ServiceSubtaskPreachform;
+import com.ruoyi.task.common.ScheduleSubtaskBuilder;
+import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper;
+import com.ruoyi.patarchive.domain.PatArchiveImport;
+import com.ruoyi.patarchive.mapper.PatArchiveImportMapper;
+import com.ruoyi.patarchive.mapper.PatArchiveMapper;
 /**
  * 鎮h�呬綇闄㈣褰昐ervice涓氬姟灞傚鐞�
  *
@@ -35,8 +60,15 @@
 @Slf4j
 @Service
 public class PatMedInhospServiceImpl implements IPatMedInhospService {
+
     @Autowired
-    private PatMedInhospMapper patMedInhospMapper;
+    private InhospVisitFacade inhospVisitFacade;
+
+    /**
+     * 鎵嬫湳鏁版嵁涓�寰嬬粡 ruoyi-othervisit 鐨勯棬闈㈠彇鐢紙璺ㄦā鍧楁暟鎹闂師鍒欙級銆�
+     */
+    @Autowired
+    private OtherVisitFacade otherVisitFacade;
     @Autowired
     private ServiceTaskdeptMapper serviceTaskdeptMapper;
     @Autowired
@@ -54,32 +86,21 @@
     @Autowired
     private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper;
     @Autowired
-    private PatMedOperationMapper patMedOperationMapper;
-    @Autowired
-    private PatMedOperationItemMapper patMedOperationItemMapper;
-    @Autowired
     private ServiceTaskRuleMapper serviceTaskRuleMapper;
 
     @Value("${spring.profiles.active}")
     private String active;
     @Autowired
-    private IConfigService iSysConfigService;
+    private ServiceTaskScheduleMapper serviceTaskScheduleMapper;
 
-
-    /**
-     * 鏌ヨ鎮h�呬綇闄㈣褰�
-     *
-     * @param inhospid 鎮h�呬綇闄㈣褰曚富閿�
-     * @return 鎮h�呬綇闄㈣褰�
-     */
-    @Override
-    public PatMedInhosp selectPatMedInhospByInhospid(Long inhospid) {
-        return patMedInhospMapper.selectPatMedInhospByInhospid(inhospid);
-    }
+    @Autowired
+    private ScheduleSubtaskBuilder scheduleSubtaskBuilder;
+    @Autowired
+    private ServiceTaskScheduleDetailMapper serviceTaskScheduleDetailMapper;
 
     @Override
     public List<PatMedInhosp> selectPatMedInhosp(PatMedInhosp patMedInhosp) {
-        return patMedInhospMapper.selectPatMedInhosp(patMedInhosp);
+        return inhospVisitFacade.selectPatMedInhosp(patMedInhosp);
     }
 
     /**
@@ -90,35 +111,110 @@
      */
     @Override
     public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp) {
-        if (patMedInhosp.getCry() == 0) {
+        //鍏ラ櫌搴婁綅鎺掑簭鍙湪銆屽湪闄€�嶆煡璇紙cry=0锛変笅鐢熸晥锛屽叾瀹冩煡璇竴寰嬪拷鐣ワ紝淇濊瘉鍘熸湁鎺掑簭涓嶅彉
+        patMedInhosp.setBedSort(normalizeBedSort(patMedInhosp.getCry(), patMedInhosp.getBedSort()));
+        if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 0) {
             patMedInhosp.setDeptcodeList(patMedInhosp.getLeaveldeptcodes());
             patMedInhosp.setHospitaldistrictcodeList(patMedInhosp.getLeavehospitaldistrictcodes());
             patMedInhosp.setLeaveldeptcodes(null);
             patMedInhosp.setLeavehospitaldistrictcodes(null);
             patMedInhosp.setInhospstate("0");
-        } else if (patMedInhosp.getCry() == 1) {
+        } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 1) {
             patMedInhosp.setInhospstate("1");
+        } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 2) {
+            patMedInhosp.setInhospstate("2");
+        } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 3) {
+            patMedInhosp.setInhospstate("3");
         }
 
-        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
-        for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
-            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
-            patMedInhosp1.setTagname(tagname);
-        }
+        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
+        fillTagname(patMedInhospList);
         return patMedInhospList;
     }
 
-    @Override
-    public Map<String, Integer> queryPersonCount(PatServiceCount patServiceCount) {
-        if (patServiceCount.getInterval() == 1) {
-            //鍛�
-        } else if (patServiceCount.getInterval() == 2) {
-            //鏈�
-        } else if (patServiceCount.getInterval() == 3) {
-            //骞�
+    /**
+     * 鎵归噺濉厖鎮h�呮爣绛�
+     * <p>
+     * 鍘熷疄鐜版槸姣忚璋冧竴娆� getTagnameBypatid锛孲QL 寰�杩旀鏁伴殢 pageSize 绾挎�у闀匡紱
+     * 杩欓噷鎸� patid 鍘婚噸鍚庡垎鎵逛竴娆℃煡鍥烇紝缁撴灉涓庨�愯鏌ヨ瀹屽叏涓�鑷达紙鎮h�呮棤鏍囩鏃朵粛涓� null锛夈��
+     *
+     * @param patMedInhospList 寰呭~鍏呯殑浣忛櫌璁板綍锛屽厑璁镐负绌�
+     */
+    private void fillTagname(List<PatMedInhosp> patMedInhospList) {
+        if (CollectionUtils.isEmpty(patMedInhospList)) {
+            return;
+        }
+        // LinkedHashSet 鍘婚噸鍚屾椂淇濇寔椤哄簭锛岄伩鍏� IN 鍒楄〃鍑虹幇閲嶅 patid
+        Set<Long> patids = new LinkedHashSet<>();
+        for (PatMedInhosp patMedInhosp : patMedInhospList) {
+            if (patMedInhosp.getPatid() != null) {
+                patids.add(patMedInhosp.getPatid());
+            }
+        }
+        if (patids.isEmpty()) {
+            return;
         }
 
+        Map<Long, String> tagnameMap = new HashMap<>();
+        List<Long> patidList = new ArrayList<>(patids);
+        // 鍒嗙墖锛岄槻姝� IN 鍙傛暟杩囧
+        int batchSize = 1000;
+        for (int i = 0; i < patidList.size(); i += batchSize) {
+            List<Long> batch = patidList.subList(i, Math.min(i + batchSize, patidList.size()));
+            List<Map<String, Object>> rows = inhospVisitFacade.getTagnameByPatids(batch);
+            if (CollectionUtils.isEmpty(rows)) {
+                continue;
+            }
+            for (Map<String, Object> row : rows) {
+                Object patid = row.get("patid");
+                Object tagname = row.get("tagname");
+                if (patid != null) {
+                    tagnameMap.put(((Number) patid).longValue(), tagname == null ? null : tagname.toString());
+                }
+            }
+        }
+
+        for (PatMedInhosp patMedInhosp : patMedInhospList) {
+            if (patMedInhosp.getPatid() != null) {
+                patMedInhosp.setTagname(tagnameMap.get(patMedInhosp.getPatid()));
+            }
+        }
+    }
+
+    /**
+     * 褰掍竴鍖栧叆闄㈠簥浣嶆帓搴忓弬鏁�
+     * <p>
+     * asc / 1 -> asc锛堝簥浣嶆搴忥級锛宒esc / 2 -> desc锛堝簥浣嶅�掑簭锛夛紝鍏朵綑锛堝惈涓嶄紶锛�-> null锛堜笉鎺掑簭锛夈��
+     * 鍙銆屽湪闄€�嶆偅鑰呮煡璇紙cry=0锛夌敓鏁堬紝鍑洪櫌/杞绛夋煡璇㈠拷鐣ヨ鍙傛暟銆�
+     *
+     * @param cry     鍑哄叆闄㈡爣璇嗭細0鍏ラ櫌 1鍑洪櫌 2杞 3棰勫叆闄�
+     * @param bedSort 鍓嶇浼犲叆鐨勫簥浣嶆帓搴忓��
+     * @return 褰掍竴鍖栧悗鐨勬帓搴忓�硷紙asc / desc / null锛�
+     */
+    private String normalizeBedSort(Integer cry, String bedSort) {
+        if (cry == null || cry != 0 || StringUtils.isEmpty(bedSort)) return null;
+        String value = bedSort.trim().toLowerCase();
+        if ("asc".equals(value) || "1".equals(value)) return "asc";
+        if ("desc".equals(value) || "2".equals(value)) return "desc";
         return null;
+    }
+
+    @Override
+    public List<PatMedInhospDTO> selectPatMedInhospByApplication(PatMedInhosp patMedInhosp) {
+        List<PatMedInhosp> patMedInhosps = selectPatMedInhospList(patMedInhosp);
+        if (!org.springframework.util.CollectionUtils.isEmpty(patMedInhosps)) {
+            return null;
+        }
+        List<PatMedInhospDTO> patMedInhospDTOList = DtoConversionUtils.sourceToTarget(patMedInhosps, PatMedInhospDTO.class);
+        for (PatMedInhospDTO pmd : patMedInhospDTOList) {
+            ServiceSubtaskEntity serviceSubtask = new ServiceSubtaskEntity();
+            serviceSubtask.setServiceType("4");
+            serviceSubtask.setInhospid(pmd.getInhospid());
+            List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtask);
+            if (CollectionUtils.isNotEmpty(serviceSubtasks)) pmd.setFinishFlag("1");
+        }
+
+        return patMedInhospDTOList;
     }
 
     /**
@@ -128,7 +224,7 @@
      * @return
      */
     public List<PatMedInhosp> selectPatMedInhospListByCondition(PatMedInhospVO patMedInhospVO) {
-        return patMedInhospMapper.selectPatMedInhospListByCondition(patMedInhospVO);
+        return inhospVisitFacade.selectPatMedInhospListByCondition(patMedInhospVO);
     }
 
 
@@ -152,20 +248,6 @@
     }
 
     /**
-     * 鏌ヨ鍑哄叆闄汉娆�
-     *
-     * @param patMedReq
-     * @return
-     */
-    @Override
-    public PatMedRes selectPatMedInhospListCount(PatMedReq patMedReq) {
-        PatMedRes patMedRes = null;
-        // 鑾峰彇褰撳墠鐧婚檰浜虹殑閮ㄩ棬鏉冮檺
-        patMedRes = patMedInhospMapper.selectPatMedInhospCount(patMedReq);
-        return patMedRes;
-    }
-
-    /**
      * 鏂板鎮h�呬綇闄㈣褰�
      *
      * @param patMedInhosp 鎮h�呬綇闄㈣褰�
@@ -175,7 +257,7 @@
     public int insertPatMedInhosp(PatMedInhosp patMedInhosp) {
         patMedInhosp.setCreateTime(DateUtils.getNowDate());
         patMedInhosp.setUpdateTime(DateUtils.getNowDate());
-        return patMedInhospMapper.insertPatMedInhosp(patMedInhosp);
+        return inhospVisitFacade.insertPatMedInhosp(patMedInhosp);
     }
 
     /**
@@ -187,283 +269,8 @@
     @Override
     public int updatePatMedInhosp(PatMedInhosp patMedInhosp) {
         patMedInhosp.setUpdateTime(DateUtils.getNowDate());
-        return patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
+        return inhospVisitFacade.updatePatMedInhosp(patMedInhosp);
     }
-
-    /**
-     * 鎵归噺鍒犻櫎鎮h�呬綇闄㈣褰�
-     *
-     * @param inhospids 闇�瑕佸垹闄ょ殑鎮h�呬綇闄㈣褰曚富閿�
-     * @return 缁撴灉
-     */
-    @Override
-    public int deletePatMedInhospByInhospids(Long[] inhospids) {
-        return patMedInhospMapper.deletePatMedInhospByInhospids(inhospids);
-    }
-
-    /**
-     * 鍒犻櫎鎮h�呬綇闄㈣褰曚俊鎭�
-     *
-     * @param inhospid 鎮h�呬綇闄㈣褰曚富閿�
-     * @return 缁撴灉
-     */
-    @Override
-    public int deletePatMedInhospByInhospid(Long inhospid) {
-        return patMedInhospMapper.deletePatMedInhospByInhospid(inhospid);
-    }
-
-    /**
-     * 鍒犻櫎鎮h�呬綇闄㈣褰曚俊鎭�
-     *
-     * @param inhospno 鎮h�呬綇闄㈢紪鐮�
-     * @return 缁撴灉
-     */
-    @Override
-    public int deletePatMedInhospByInhospno(String inhospno) {
-        return patMedInhospMapper.deletePatMedInhospByInhospno(inhospno);
-    }
-
-    @Override
-    public int dealOutHospInfo(String config) {
-        //1.鍏ラ櫌瀹f暀
-        String helibrarySwitch = iSysConfigService.selectConfigByKey("in.helibrary.switch");
-        if (StringUtils.isNotEmpty(helibrarySwitch) && "2".equals(helibrarySwitch)) {
-            PatMedInhosp inhosp = new PatMedInhosp();
-            inhosp.setInDeptcheckFlag("0");
-            inhosp.setInhospstate("0");
-            inhosp.setFuflag("1");
-            List<PatMedInhosp> inPatMedInhosps = patMedInhospMapper.selectPatMedInhospList(inhosp);
-
-            //1.1 绉戝
-            for (PatMedInhosp patMedInhosp1 : inPatMedInhosps) {
-                //鑾峰彇鎮h�呬俊鎭�
-                PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid());
-                if (Objects.isNull(patArchive)) {
-                    patMedInhosp1.setInDeptcheckFlag("2");
-                    patMedInhosp1.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
-                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-                    continue;
-                }
-                try {
-                    //鏍规嵁鎮h�呮墍鍦ㄧ瀹わ紝鑾峰彇璇ョ瀹ょ殑鍏ラ櫌闀挎湡瀹f暀浠诲姟
-                    ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
-                    serviceTaskdept.setLongtask(1L);
-                    serviceTaskdept.setDeptCode(patMedInhosp1.getDeptcode());
-                    serviceTaskdept.setDeptType("1");
-                    serviceTaskdept.setServiceType("17");
-                    serviceTaskdept.setOrgid(patMedInhosp1.getOrgid());
-                    List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
-                    //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
-                    if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) {
-                        PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
-                        patMedInhosp1.setInDeptcheckFlag("2");
-                        patMedInhosp1.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ瀹ゆ湭閰嶇疆鍏ラ櫌闀挎湡瀹f暀浠诲姟;" : "璇ユ偅鑰呮墍鍦ㄧ瀹ゆ湭閰嶇疆鍏ラ櫌闀挎湡瀹f暀浠诲姟;");
-                        patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-                    } else {
-                        for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
-                            writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 4, config);
-                        }
-                    }
-
-                } catch (Exception e) {
-                    log.error("浜哄憳鍏ラ櫌绉戝澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
-                    patMedInhosp1.setInDeptcheckFlag("2");
-                    patMedInhosp1.setLongTaskReason("浜哄憳鍏ラ櫌绉戝澶勭悊鍑哄紓甯镐簡锛�" + e.getMessage());
-                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-                }
-            }
-
-
-            //1.2 鐥呭尯
-            inhosp.setInDeptcheckFlag(null);
-            inhosp.setInWardcheckFlag("0");
-            List<PatMedInhosp> inPatMedInhospsWard = patMedInhospMapper.selectPatMedInhospList(inhosp);
-            for (PatMedInhosp patMedInhosp1 : inPatMedInhospsWard) {
-                //鑾峰彇鎮h�呬俊鎭�
-                PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid());
-                if (Objects.isNull(patArchive)) {
-                    patMedInhosp1.setInDeptcheckFlag("2");
-                    patMedInhosp1.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
-                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-                    continue;
-                }
-                //鏍规嵁鎮h�呮墍鍦ㄧ梾鍖猴紝鑾峰彇璇ョ梾鍖虹殑鍏ラ櫌闀挎湡瀹f暀浠诲姟锛堜細鍑虹幇涓�涓棶棰橈紝绉戝鍜岀梾鍖哄彂鐨勫悓涓�涓ā鏉匡級
-                ServiceTaskdept serviceTaskWard = new ServiceTaskdept();
-                serviceTaskWard.setLongtask(1L);
-                serviceTaskWard.setDeptCode(patMedInhosp1.getHospitaldistrictcode());
-                serviceTaskWard.setDeptType("2");
-                serviceTaskWard.setServiceType("17");
-                serviceTaskWard.setOrgid(patMedInhosp1.getOrgid());
-                List<ServiceTaskdept> serviceTaskWardList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskWard);
-                //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
-                if (CollectionUtils.isEmpty(serviceTaskWardList) || serviceTaskWardList.size() == 0) {
-                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
-                    patMedInhosp1.setInDeptcheckFlag("2");
-                    patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ梾鍖烘湭閰嶇疆鍏ラ櫌闀挎湡瀹f暀浠诲姟;");
-                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-                } else {
-                    for (ServiceTaskdept serviceTaskdept1 : serviceTaskWardList) {
-                        writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 5, config);
-                    }
-                }
-            }
-        }
-
-        //2.鍑洪櫌闅忚 - 鍩轰簬瑙勫垯鐨勪换鍔$敓鎴�
-        addSubTaskByRule(config);
-        //鏍规嵁鎮h�呮墍鍦ㄧ梾鍖猴紝鑾峰彇璇ョ梾鍖虹殑闀挎湡浠诲姟,鏂板崕鍖婚櫌鍙互鍏堜笉鐢ㄦ牴鎹梾鍖哄拰鐤剧梾鏉ュ仛
-        if (!active.equals("xh")) {
-            addOperationSubTask(config);
-        }
-
-
-        //鑾峰彇鏈鐞嗗湪闄㈢殑鏁版嵁(濡傛灉鍒氬垰鍑洪櫌鐨勬偅鑰呮暟鎹殑鍑洪櫌鏃堕棿,鍦ㄤ笅闈㈡煡璇㈠嚭鐨勫叆闄㈡椂闂翠箣鍓�,閭d箣鍓嶇殑鍑洪櫌鎮h�呯殑鏁版嵁,涔熷緱鍋滄帀,鍥犱负鍙堝叆闄簡)
-        PatMedInhosp patMedInhosp = new PatMedInhosp();
-        patMedInhosp.setDeptcheckFlag("0");
-        patMedInhosp.setInhospstate("0");
-        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
-        if (CollectionUtils.isNotEmpty(patMedInhospList) && patMedInhospList.size() > 0) {
-            dealInHospInfo(patMedInhospList);
-        }
-        return 1;
-    }
-
-    /**
-     * 澶氱淮搴﹂殢璁�
-     *
-     * @param config
-     * @return
-     */
-    public int dealOutHospInfoByDimension(String config) {
-        // 涓�娆℃�ф煡鍑烘墍鏈夐渶瑕佸鐞嗙殑鍑洪櫌鎮h�咃紙涓変釜缁村害浠绘剰涓�涓湭瀹屾垚锛�
-        List<PatMedInhosp> patList = patMedInhospMapper.selectNeedProcessList();
-        log.info("銆愮粺涓�鎵弿銆戝緟澶勭悊鎮h�呮暟锛歿}", patList.size());
-
-        for (PatMedInhosp patMedInhosp1 : patList) {
-            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid());
-            if (Objects.isNull(patArchive)) {
-                // 涓変釜缁村害閮芥爣璁颁负澶辫触
-                markAllFlagsAsError(patMedInhosp1, "鎮h�呭熀鏈俊鎭负绌�");
-                continue;
-            }
-
-            // 鈹�鈹� 缁村害1锛氱瀹� 鈹�鈹�
-            if ("0".equals(patMedInhosp1.getDeptcheckFlag())) {
-                processTasksByDimension(patMedInhosp1, patArchive, config, 1);
-            }
-
-            // 鈹�鈹� 缁村害2锛氱梾鍖� 鈹�鈹�锛堟柊鍗庡尰闄㈣烦杩囷級
-            if (!active.equals("xh") && "0".equals(patMedInhosp1.getWardcheckFlag())) {
-                processTasksByDimension(patMedInhosp1, patArchive, config, 2);
-            }
-
-            // 鈹�鈹� 缁村害3锛氱柧鐥� 鈹�鈹�锛堟柊鍗庡尰闄㈣烦杩囷級
-            if (!active.equals("xh") && "0".equals(patMedInhosp1.getDiagcheckFlag())) {
-                processTasksByDimension(patMedInhosp1, patArchive, config, 3);
-            }
-        }
-        return 1;
-    }
-
-    /**
-     * 鎸夌淮搴︽壘鍒版墍鏈夊尮閰嶉暱鏈熶换鍔★紝鎵归噺鐢熸垚 subtask
-     * type: 1=绉戝, 2=鐥呭尯, 3=鐤剧梾
-     */
-    private void processTasksByDimension(PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, int type) {
-        List<Long> matchedTaskIds = findMatchingTaskIds(patMedInhosp1, type);
-
-        if (CollectionUtils.isEmpty(matchedTaskIds)) {
-            String reason = getDimensionReason(type);
-            markFlagAsNoConfig(patMedInhosp1, type, reason);
-            return;
-        }
-
-        // 涓�鏉� inhosp 璁板綍 鈫� 澶氫釜鍖归厤浠诲姟 鈫� 澶氭潯 subtask
-        for (Long taskId : matchedTaskIds) {
-            writeInSubTask(taskId, true, patMedInhosp1, patArchive, type, config);
-        }
-    }
-
-    private String getDimensionReason(int type) {
-        switch (type) {
-            case 1: { // 绉戝
-                return "鏈壘鍒扮瀹ゅ尮閰嶇殑闀挎湡浠诲姟";
-            }
-            case 2: { // 鐥呭尯
-                return "鏈壘鍒扮梾鍖哄尮閰嶇殑闀挎湡浠诲姟";
-            }
-            case 3: { // 鐤剧梾
-                return "鏈壘鍒扮柧鐥呭尮閰嶇殑闀挎湡浠诲姟";
-            }
-        }
-        return "澶氱淮闀挎湡浠诲姟-鍖归厤绫诲瀷涓虹┖";
-    }
-
-    private void markFlagAsNoConfig(PatMedInhosp patMedInhosp, int type, String reason) {
-        switch (type) {
-            case 1: { // 绉戝
-                patMedInhosp.setDeptcheckFlag("2");
-                patMedInhosp.setRemark(reason);
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
-                break;
-            }
-            case 2: { // 鐥呭尯
-                patMedInhosp.setWardcheckFlag("2");
-                patMedInhosp.setRemark(reason);
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
-                break;
-            }
-            case 3: { // 鐤剧梾
-                patMedInhosp.setDiagcheckFlag("2");
-                patMedInhosp.setRemark(reason);
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
-                break;
-            }
-        }
-
-    }
-
-    private void markAllFlagsAsError(PatMedInhosp patMedInhosp, String reason) {
-        patMedInhosp.setDeptcheckFlag("2");
-        patMedInhosp.setWardcheckFlag("2");
-        patMedInhosp.setDiagcheckFlag("2");
-        patMedInhosp.setRemark(reason);
-        patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
-    }
-
-    /**
-     * 鏍规嵁缁村害绫诲瀷鏌ヨ鍖归厤鐨勯暱鏈熶换鍔� ID 鍒楄〃
-     */
-    private List<Long> findMatchingTaskIds(PatMedInhosp patMedInhosp1, int type) {
-        switch (type) {
-            case 1: { // 绉戝
-                ServiceTaskdept query = new ServiceTaskdept();
-                query.setLongtask(1L);
-                query.setDeptCode(patMedInhosp1.getLeaveldeptcode());
-                query.setDeptType("1");
-                query.setOrgid(patMedInhosp1.getOrgid());
-                return serviceTaskdeptMapper.selectServiceTaskdeptList(query).stream().map(ServiceTaskdept::getTaskId).collect(Collectors.toList());
-            }
-            case 2: { // 鐥呭尯
-                ServiceTaskdept query = new ServiceTaskdept();
-                query.setLongtask(1L);
-                query.setDeptCode(patMedInhosp1.getLeavehospitaldistrictcode());
-                query.setDeptType("2");
-                query.setOrgid(patMedInhosp1.getOrgid());
-                return serviceTaskdeptMapper.selectServiceTaskdeptList(query).stream().map(ServiceTaskdept::getTaskId).collect(Collectors.toList());
-            }
-            case 3: { // 鐤剧梾
-                if (StringUtils.isEmpty(patMedInhosp1.getLeaveicd10code())) return Collections.emptyList();
-                ServiceTaskdiag query = new ServiceTaskdiag();
-                query.setLongtask(1L);
-                query.setIcd10code(patMedInhosp1.getLeaveicd10code());
-                query.setOrgid(patMedInhosp1.getOrgid());
-                return serviceTaskdiagMapper.selectServiceTaskdiagList(query).stream().map(ServiceTaskdiag::getTaskId).collect(Collectors.toList());
-            }
-        }
-        return Collections.emptyList();
-    }
-
 
     /**
      * 鑾峰彇鍑洪櫌锛屼綇闄紝闂ㄨ瘖鏈嶅姟浜烘
@@ -479,9 +286,9 @@
 
     @Override
     public List<PatMedInhosp> getDocAndPat(PatMedInhosp patMedInhosp) {
-        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
+        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
         for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
-            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
+            String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid());
             patMedInhosp1.setTagname(tagname);
         }
         if (StringUtils.isNotEmpty(patMedInhosp.getPatname()) || StringUtils.isNotEmpty(patMedInhosp.getNurseName()) || StringUtils.isNotEmpty(patMedInhosp.getDrname())) {
@@ -526,7 +333,7 @@
      * @param check         鏄惁闇�瑕佹牎楠�
      * @param patMedInhosp1 鐥呬汉鍑哄叆闄俊鎭�
      * @param patArchive    鐥呬汉淇℃伅
-     * @param type          闅忚绫诲瀷(1-绉戝锛�2-鐥呭尯锛�3-鐤剧梾 4-鍏ラ櫌绉戝 5-鍏ラ櫌鐥呭尯)
+     * @param type          闅忚绫诲瀷(0-瀹f暀锛�1-绉戝锛�2-鐥呭尯锛�3-鐤剧梾 4-鍏ラ櫌绉戝 5-鍏ラ櫌鐥呭尯)
      * @param config        閰嶇疆淇℃伅 visit.early.day
      */
     //灏嗘偅鑰呮斁鍒皊ubtask涓�
@@ -540,31 +347,38 @@
         List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
         ServiceTask serviceTask = null;
         if (CollectionUtils.isEmpty(serviceTasks)) {
+            if (type == 0) {
+                log.info("璇ユ偅鑰呰嵂鍝佸鏁欓暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓猴細{}", taskid);
+                patMedInhosp1.setMedcheckFlag("2");
+                patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呰嵂鍝佸鏁欓暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
+                return;
+            }
             if (type == 1) {
                 log.info("璇ユ偅鑰呭嚭闄㈤殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓猴細{}", taskid);
                 patMedInhosp1.setDeptcheckFlag("2");
                 patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯闄㈢瀹ら暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                 return;
             } else if (type == 2) {
                 patMedInhosp1.setWardcheckFlag("2");
                 patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯闄㈢梾鍖洪暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                 return;
             } else if (type == 3) {
                 patMedInhosp1.setDiagcheckFlag("2");
                 patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯柧鐥呴暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                 return;
             } else if (type == 4) {
                 patMedInhosp1.setInDeptcheckFlag("2");
                 patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呭叆闄㈢瀹ら暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                 return;
             } else if (type == 5) {
                 patMedInhosp1.setInWardcheckFlag("2");
                 patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呭叆闄㈢梾鍖洪暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                 return;
             }
         } else {
@@ -639,7 +453,7 @@
                             //鍐嶅叆闄㈤�昏緫
                             //鏅畞 鍑洪櫌棣栨锛�7澶╋級闅忚涓�瀹氳鍋�
                             boolean firstVisit = false;
-                            if (orgId.equals("47255004333112711A1001") && serviceSubtask1.getVisitCount() != null && serviceSubtask1.getVisitCount() == 1) {
+                            if (orgId.equals("47255004333112711A1001")) {
                                 firstVisit = true;
                             }
                             if (!firstVisit) {
@@ -718,7 +532,7 @@
                 addServiceSubtaskPreachform(serviceSubtask, null);
             }
 
-            //灏哻heck_flag鏀规垚1锛堝凡澶勭悊锛�
+            //灏� check_flag 鏀规垚 1锛堝凡澶勭悊锛�
             if (i == 1) {
                 PatMedInhosp patMedInhosp2 = new PatMedInhosp();
                 patMedInhosp2.setInhospid(patMedInhosp1.getInhospid());
@@ -727,7 +541,7 @@
                 if (type == 3) patMedInhosp2.setDiagcheckFlag("1");
                 if (type == 4) patMedInhosp2.setInDeptcheckFlag("1");
                 if (type == 5) patMedInhosp2.setInWardcheckFlag("1");
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp2);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp2);
             } else {
                 //鐢熸垚瀛愪换鍔″け璐ワ紝
                 log.info("鐢熸垚瀛愪换鍔″け璐erviceSubtask鐨則askid涓猴細{},patid涓猴細{}", serviceSubtask.getTaskid(), serviceSubtask.getPatid());
@@ -739,7 +553,7 @@
                 if (type == 4) patMedInhosp2.setInDeptcheckFlag("2");
                 if (type == 5) patMedInhosp2.setInWardcheckFlag("2");
                 patMedInhosp2.setRemark("鐢熸垚瀛愪换鍔″け璐� " + type);
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp2);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp2);
             }
         } catch (Exception e) {
             //鍑洪敊鍥炴粴浜嬪姟
@@ -749,8 +563,9 @@
             if (type == 1) patMedInhosp2.setDeptcheckFlag("2");
             if (type == 2) patMedInhosp2.setWardcheckFlag("2");
             if (type == 3) patMedInhosp2.setDiagcheckFlag("2");
+            if (type == 0) patMedInhosp2.setMedcheckFlag("2");
             patMedInhosp2.setRemark("鐢熸垚瀛愪换鍔℃姤閿欏洖婊� " + type);
-            patMedInhospMapper.updatePatMedInhosp(patMedInhosp2);
+            inhospVisitFacade.updatePatMedInhosp(patMedInhosp2);
             e.printStackTrace();
         }
     }
@@ -776,48 +591,48 @@
         if (CollectionUtils.isEmpty(serviceTasks)) {
             log.info("璇ユ墜鏈搴旀墜鏈瓑绾х殑闀挎湡浠诲姟涓嶅瓨鍦�,浠诲姟ID涓猴細{}", taskid);
             patMedOperationItem.setOpercheckFlag("2");
-            patMedOperationItem.setLongTaskReason(longTaskReason + " & 璇ユ墜鏈搴旀墜鏈瓑绾х殑闀挎湡浠诲姟涓嶅瓨鍦�,浠诲姟ID涓�:" + taskid);
-            patMedOperationItemMapper.insertPatMedOperationItem(patMedOperationItem);
+            patMedOperationItem.setLongTaskReason(" & 璇ユ墜鏈搴旀墜鏈瓑绾х殑闀挎湡浠诲姟涓嶅瓨鍦�,浠诲姟ID涓�:" + taskid +";");
+            otherVisitFacade.updateOperationItem(patMedOperationItem);
             return;
         } else {
             serviceTask = serviceTasks.get(0);
         }
-        if (Objects.isNull(patMedOperationItem.getOpid())) {
-            return;
-        }
         if (Objects.isNull(patMedOperationItem.getOplevelcode())) {
             return;
         }
-        PatMedOperation patMedOperationVo = new PatMedOperation();
-        PatMedOperation patMedOperation = new PatMedOperation();
-        patMedOperationVo.setOpid(patMedOperationItem.getOpid());
-        List<PatMedOperation> patMedOperationList = patMedOperationMapper.selectPatMedOperationList(patMedOperationVo);
-        if (CollectionUtils.isEmpty(patMedOperationList)) {
+        if (Objects.isNull(patMedOperationItem.getPatid())) {
             return;
-        }else {
-            patMedOperation = patMedOperationList.get(0);
         }
-        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperation.getPatid());
+        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid());
         if (Objects.isNull(patArchive)) {
             return;
         }
         PatMedInhosp patMedInhosp = new PatMedInhosp();
-        patMedInhosp.setPatid(patMedOperation.getPatid());
+        patMedInhosp.setPatid((patMedOperationItem.getPatid()));
         patMedInhosp.setInhospstate("1");
         patMedInhosp.setFuflag("1");
-        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
+        //鎵嬫湳闅忚
+        if(!active.equals("hzszlyy")){
+            patMedInhosp.setSerialnum(patMedOperationItem.getSerialnum());
+        }
+        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
 
         if (CollectionUtils.isEmpty(patMedInhospList)) {
             return;
         }
 
         //灏佽serviceSubtask
-        ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperation, patMedOperationItem, patArchive, config);
-        if (ObjectUtils.isEmpty(serviceSubtask)) {
+        ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperationItem, patArchive, config);
+        if (ObjectUtils.isEmpty(serviceSubtask) || Objects.isNull(serviceSubtask.getTaskid())) {
             return;
         }
-        serviceSubtask.setVisitDeptCode(patMedOperation.getReqdeptcode());
-        serviceSubtask.setVisitDeptName(patMedOperation.getReqdeptname());
+        if (StringUtils.isNotEmpty(patMedOperationItem.getLeaveldeptcode())) {
+            serviceSubtask.setVisitDeptCode(patMedOperationItem.getLeaveldeptcode());
+            serviceSubtask.setVisitDeptName(patMedOperationItem.getLeaveldeptname());
+        } else {
+            serviceSubtask.setVisitDeptCode(patMedOperationItem.getLeavehospitaldistrictcode());
+            serviceSubtask.setVisitDeptName(patMedOperationItem.getLeavehospitaldistrictname());
+        }
         //璁板綍insertServiceSubtask璇彞杩斿洖鐘舵��
         Integer i = 0;
         try {
@@ -875,25 +690,28 @@
                 PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem();
                 patMedOperationItem2.setId(patMedOperationItem.getId());
                 patMedOperationItem2.setOpercheckFlag("1");
-                patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2);
+                otherVisitFacade.updateOperationItem(patMedOperationItem2);
             } else {
                 //鐢熸垚瀛愪换鍔″け璐ワ紝
                 log.info("鐢熸垚瀛愪换鍔″け璐erviceSubtask鐨則askid涓猴細{},patid涓猴細{}", serviceSubtask.getTaskid(), serviceSubtask.getPatid());
                 PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem();
                 patMedOperationItem2.setId(patMedOperationItem.getId());
                 patMedOperationItem2.setOpercheckFlag("2");
-                patMedOperationItem2.setRemark("鐢熸垚瀛愪换鍔″け璐� 4");
-                patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2);
+                patMedOperationItem2.setLongTaskReason("鐢熸垚瀛愪换鍔″け璐� 4;");
+                patMedOperationItem2.setUpdateTime(new Date());
+                otherVisitFacade.updateOperationItem(patMedOperationItem2);
             }
         } catch (Exception e) {
             //鍑洪敊鍥炴粴浜嬪姟
 
-            log.info("鐢熸垚瀛愪换鍔℃姤閿欏洖婊歴serviceSubtask鐨則askid涓猴細{},patid涓猴細{}", serviceSubtask.getTaskid(), serviceSubtask.getPatid());
+            log.error("鐢熸垚瀛愪换鍔℃姤閿欏洖婊歴serviceSubtask鐨則askid涓猴細{},patid涓猴細{},鎵嬫湳璇︽儏ID涓猴細{}",
+                    serviceSubtask.getTaskid(), serviceSubtask.getPatid(), patMedOperationItem.getId(), e);
             PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem();
             patMedOperationItem2.setId(patMedOperationItem.getId());
             patMedOperationItem2.setOpercheckFlag("2");
-            patMedOperationItem2.setRemark("鐢熸垚瀛愪换鍔℃姤閿欏洖婊� 4");
-            patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2);
+            patMedOperationItem2.setUpdateTime(new Date());
+            patMedOperationItem2.setLongTaskReason("鐢熸垚瀛愪换鍔℃姤閿欏洖婊� 4;");
+            otherVisitFacade.updateOperationItem(patMedOperationItem2);
             e.printStackTrace();
         }
     }
@@ -901,6 +719,10 @@
     private Integer addServiceSubtaskPreachform(ServiceSubtask serviceSubtask, String sendstate) {
         //灏唒reachformDesc鐨刯son瀵硅薄锛屾斁鍒發ist闆嗗悎涓�
         ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+        if (Objects.isNull(serviceTask)) {
+            log.error("addServiceSubtaskPreachform taskid={} 鏌ヤ笉鍒颁换鍔★紝璺宠繃preachform瀛愯〃鐢熸垚", serviceSubtask.getTaskid());
+            return 0;
+        }
         String preachformDesc = serviceTask.getPreachformDesc();
 
         ObjectMapper objectMapper = new ObjectMapper();
@@ -911,6 +733,11 @@
                 });
             } catch (JsonProcessingException e) {
                 log.error("preachform杞琇ist<ServiceSubtaskPreachform>鎶ラ敊浜嗭細{}", e.getMessage());
+            }
+            if (CollectionUtils.isEmpty(serviceSubtaskPreachformList)) {
+                log.error("preachformDesc瑙f瀽鍚庝负绌猴紝璺宠繃preachform瀛愯〃鐢熸垚锛宼askid涓猴細{}锛宲reachformDesc涓猴細{}",
+                        serviceSubtask.getTaskid(), preachformDesc);
+                return 0;
             }
             for (ServiceSubtaskPreachform serviceSubtaskPreachform : serviceSubtaskPreachformList) {
                 serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid());
@@ -935,13 +762,16 @@
 
 
     //灏佽serviceSubtask
-    private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type) {
+    @Override
+    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type) {
         //澧炲姞serviceTask鍒ょ┖
 //        if(Objects.isNull(serviceTask)){
 //            return null;
 //        }
         ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
         serviceSubtask.setTaskid(serviceTask.getTaskid());
+        serviceSubtask.setOrgid(serviceTask.getOrgid());
+        serviceSubtask.setCampusid(serviceTask.getCampusid());
         if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
             serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
         serviceSubtask.setNurseId(patMedInhosp1.getNurseId());
@@ -949,19 +779,20 @@
         serviceSubtask.setInhospid(patMedInhosp1.getInhospid());
         serviceSubtask.setDrcode(patMedInhosp1.getDrcode());
         serviceSubtask.setDrname(patMedInhosp1.getDrname());
-        serviceSubtask.setDeptcode(patMedInhosp1.getLeaveldeptcode());
-        serviceSubtask.setDeptname(patMedInhosp1.getLeaveldeptname());
+        serviceSubtask.setLeaveldeptcode(patMedInhosp1.getLeaveldeptcode());
+        serviceSubtask.setLeaveldeptname(patMedInhosp1.getLeaveldeptname());
         serviceSubtask.setLeavehospitaldistrictcode(patMedInhosp1.getLeavehospitaldistrictcode());
         serviceSubtask.setLeavehospitaldistrictname(patMedInhosp1.getLeavehospitaldistrictname());
         if (type == 4 || type == 5) {
             //璁剧疆鍏ラ櫌鐨�
-            serviceSubtask.setDeptcode(patMedInhosp1.getDeptcode());
-            serviceSubtask.setDeptname(patMedInhosp1.getDeptname());
+            serviceSubtask.setLeaveldeptcode(patMedInhosp1.getDeptcode());
+            serviceSubtask.setLeaveldeptname(patMedInhosp1.getDeptname());
             serviceSubtask.setLeavehospitaldistrictcode(patMedInhosp1.getHospitaldistrictcode());
             serviceSubtask.setLeavehospitaldistrictname(patMedInhosp1.getHospitaldistrictname());
         }
         serviceSubtask.setLeaveicd10code(patMedInhosp1.getLeaveicd10code());
-        serviceSubtask.setLeavediagname(patMedInhosp1.getDiagname());
+        serviceSubtask.setLeavediagname(patMedInhosp1.getLeavediagname());
+        serviceSubtask.setDiagname(patMedInhosp1.getDiagname());
         serviceSubtask.setTemplateid(serviceTask.getTemplateid());
         serviceSubtask.setTemplatename(serviceTask.getTemplatename());
         serviceSubtask.setPatid(patArchive.getId());
@@ -972,6 +803,7 @@
         serviceSubtask.setSex(patArchive.getSex());
         serviceSubtask.setAge(patArchive.getAge());
         serviceSubtask.setSendstate(2L);
+        serviceSubtask.setCampusid(patMedInhosp1.getCampusid());
         serviceSubtask.setManagementDoctor(patMedInhosp1.getManagementDoctor());
         serviceSubtask.setManagementDoctorCode(patMedInhosp1.getManagementDoctorCode());
         serviceSubtask.setStarttime(patMedInhosp1.getStarttime());
@@ -999,7 +831,7 @@
             if (type != 4 && type != 5) {
                 patMedInhosp1.setDeptcheckFlag("2");
                 patMedInhosp1.setRemark(patMedInhosp1.getRemark() + "& 璇ユ偅鑰呯柧鐥呭嚭闄㈡椂闂翠负绌�,鍑洪櫌璁板綍ID涓�:" + patMedInhosp1.getInhospid());
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                 //濡傛灉鍑洪櫌鏃堕棿涓虹┖锛屽垯杩斿洖涓�涓柊瀵硅薄
                 return new ServiceSubtask();
             }
@@ -1027,6 +859,13 @@
             }
 
         }
+        //濡傛灉鎮h�呯殑鍏ラ櫌鍜屽嚭闄㈡椂闂翠竴鑷达紝鍙互涓嶇敤闅忚锛堝崡鍗庨檮涓�鑲跨槫涓�鐥呭尯鎻愬嚭锛�
+        if (active.equals("nhfy") && patMedInhosp1.getStarttime() != null && patMedInhosp1.getEndtime() != null && DateUtils.differentDaysByMillisecond(patMedInhosp1.getStarttime(), patMedInhosp1.getEndtime()) == 0) {
+            serviceSubtask.setRemark("鎮h�呭綋澶╁嚭闄紝涓嶇敤闅忚");
+            serviceSubtask.setResult("error");
+            //涓嶆墽琛�
+            serviceSubtask.setSendstate(4L);
+        }
 
         //鎮h�呭彂閫佹椂闂�
         if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) {
@@ -1041,18 +880,22 @@
     }
 
     //灏佽serviceSubtask
-    private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatMedOperation patMedOperation, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) {
+    private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) {
         ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
         serviceSubtask.setTaskid(serviceTask.getTaskid());
+        serviceSubtask.setOrgid(serviceTask.getOrgid());
+        serviceSubtask.setCampusid(serviceTask.getCampusid());
         if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
             serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
-        serviceSubtask.setNurseId(patMedOperation.getNurseId());
-        serviceSubtask.setNurseName(patMedOperation.getNurseName());
-//        serviceSubtask.setInhospid(patMedInhosp.getInhospid());
-        serviceSubtask.setDrcode(patMedOperation.getDrcode());
-        serviceSubtask.setDrname(patMedOperation.getDrname());
-        serviceSubtask.setDeptcode(patMedOperation.getDeptcode());
-        serviceSubtask.setDeptname(patMedOperation.getDeptname());
+        serviceSubtask.setNurseId(patMedInhosp1.getNurseId());
+        serviceSubtask.setNurseName(patMedInhosp1.getNurseName());
+        serviceSubtask.setInhospid(patMedInhosp1.getInhospid());
+        serviceSubtask.setDrcode(patMedInhosp1.getDrcode());
+        serviceSubtask.setDrname(patMedInhosp1.getDrname());
+        serviceSubtask.setLeaveldeptcode(patMedInhosp1.getLeaveldeptcode());
+        serviceSubtask.setLeaveldeptname(patMedInhosp1.getLeaveldeptname());
+        serviceSubtask.setLeavehospitaldistrictcode(patMedInhosp1.getLeavehospitaldistrictcode());
+        serviceSubtask.setLeavehospitaldistrictname(patMedInhosp1.getLeavehospitaldistrictname());
 
         serviceSubtask.setTemplateid(serviceTask.getTemplateid());
         serviceSubtask.setTemplatename(serviceTask.getTemplatename());
@@ -1064,35 +907,36 @@
         serviceSubtask.setSex(patArchive.getSex());
         serviceSubtask.setAge(patArchive.getAge());
         serviceSubtask.setSendstate(2L);
-        serviceSubtask.setManagementDoctor(patMedOperation.getDrname());
-        serviceSubtask.setManagementDoctorCode(patMedOperation.getDrcode());
-//        serviceSubtask.setStarttime(patMedInhosp.getStarttime());
-//        serviceSubtask.setEndtime(patMedInhosp.getEndtime());
+        serviceSubtask.setManagementDoctor(patMedInhosp1.getDrname());
+        serviceSubtask.setManagementDoctorCode(patMedInhosp1.getDrcode());
+
+        serviceSubtask.setStarttime(patMedInhosp1.getStarttime());
+        serviceSubtask.setEndtime(patMedInhosp1.getEndtime());
 
         serviceSubtask.setServiceType(serviceTask.getServiceType());
         serviceSubtask.setPreachform(serviceTask.getPreachform());
         serviceSubtask.setHospType("2");
         serviceSubtask.setCreateTime(new Date());
         serviceSubtask.setUpdateTime(new Date());
-        serviceSubtask.setCreateBy(patMedOperation.getNurseName());
-//        serviceSubtask.setLeavehospitaldistrictcode(patArchive.getLeavehospitaldistrictcode());
-//        serviceSubtask.setLeavehospitaldistrictname(patArchive.getLeavehospitaldistrictname());
+        serviceSubtask.setCreateBy(patMedInhosp1.getNurseName());
         serviceSubtask.setOperationItemId(patMedOperationItem.getId());
         serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
         serviceSubtask.setUpdateTime(new Date());
 
-        //todo
         //璁剧疆鍙戦�佹椂闂�
         if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L);
         Date newDate = null;
         if (!Objects.isNull(patMedInhosp1.getEndtime())) {
             newDate = addDays(patMedInhosp1.getEndtime(), serviceTask.getSendDay().intValue());
         } else {
-            patMedInhosp1.setDeptcheckFlag("2");
-            patMedInhosp1.setRemark(patMedInhosp1.getRemark() + "& 璇ユ偅鑰呮墜鏈嚭闄㈡椂闂翠负绌�,鍑洪櫌璁板綍ID涓�:" + patMedInhosp1.getInhospid());
-            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+            patMedOperationItem.setOpercheckFlag("2");
+            patMedOperationItem.setLongTaskReason("璇ユ偅鑰呮墜鏈嚭闄㈡椂闂翠负绌�,鎵嬫湳璇︽儏ID涓�:" + patMedOperationItem.getId() + ";");
+            otherVisitFacade.updateOperationItem(patMedOperationItem);
+//            patMedInhosp1.setDeptcheckFlag("2");
+//            patMedInhosp1.setRemark(patMedInhosp1.getRemark() + "& 璇ユ偅鑰呮墜鏈嚭闄㈡椂闂翠负绌�,鍑洪櫌璁板綍ID涓�:" + patMedInhosp1.getInhospid());
+//            inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
             //濡傛灉鍑洪櫌鏃堕棿涓虹┖锛屽垯杩斿洖涓�涓柊瀵硅薄
-            return new ServiceSubtask();
+            return null;
         }
         serviceSubtask.setLongSendTime(newDate);
         serviceSubtask.setVisitTime(newDate);
@@ -1149,7 +993,7 @@
                         }
                         //鏅畞 鍑洪櫌棣栨锛�7澶╋級闅忚涓�瀹氳鍋�
                         boolean firstVisit = false;
-                        if (serviceSubtask1.getOrgid().equals("47255004333112711A1001") && serviceSubtask1.getVisitCount() != null && serviceSubtask1.getVisitCount() == 1) {
+                        if (serviceSubtask1.getOrgid().equals("47255004333112711A1001")) {
                             firstVisit = true;
                         }
                         if (!firstVisit) {
@@ -1168,272 +1012,6 @@
                 }
             } catch (Exception e) {
                 log.error("鍏ラ櫌鏁版嵁淇℃伅鍑哄紓甯镐簡锛歿},{}", patMedInhosp1, e.getMessage());
-            }
-        }
-    }
-
-    @Override
-    public void addOperationSubTask(String config) {
-        //            鎵嬫湳闅忚
-        PatMedOperationItem pmoi = new PatMedOperationItem();
-        //鑾峰彇闇�瑕佸嚭闄㈢柧鐥呴殢璁匡紝鏈鐞嗙殑鏁版嵁
-        pmoi.setOpercheckFlag("0");
-        pmoi.setMainFlag("1");
-
-        List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectPatMedOperationItemList(pmoi);
-        log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鎵嬫湳鎮h�呬俊鎭細{}", CollectionUtils.isNotEmpty(patMedOperationItems) ? patMedOperationItems.size() : null);
-
-        for (PatMedOperationItem opItem : patMedOperationItems) {
-
-            try {
-                if (StringUtils.isEmpty(opItem.getOplevelcode())) {
-                    continue;
-                }
-                // 鏍规嵁鎮h�呯殑鐤剧梾锛岃幏鍙栬鐤剧梾鐨勯暱鏈熶换鍔�
-                ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
-                serviceTaskoper.setLongtask(1L);
-                serviceTaskoper.setOrgid(opItem.getOrgid());
-                serviceTaskoper.setOplevelcode(opItem.getOplevelcode());
-
-                List<ServiceTaskoper> serviceTaskopers = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper);
-                //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
-                if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) {
-                    PatMedOperationItem patMedOperationItem = patMedOperationItemMapper.selectPatMedOperationItemById(opItem.getId());
-                    patMedOperationItem.setOpercheckFlag("2");
-                    patMedOperationItem.setLongTaskReason(patMedOperationItem.getLongTaskReason() + "鎵�鎮g殑鎵嬫湳鏈厤缃暱鏈熶换鍔�;");
-                    patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem);
-                } else {
-                    for (ServiceTaskoper serviceTaskoper1 : serviceTaskopers) {
-                        writeInSubTaskForOp(serviceTaskoper1.getTaskId(), true, opItem, config);
-                    }
-                }
-
-            } catch (Exception e) {
-                e.printStackTrace();
-                log.error("浜哄憳鎵嬫湳澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
-                opItem.setOpercheckFlag("2");
-                opItem.setLongTaskReason("浜哄憳鎵嬫湳澶勭悊寮傚父");
-                patMedOperationItemMapper.updatePatMedOperationItem(opItem);
-            }
-        }
-    }
-
-    private void addIcd10SubTask(String config) {
-        PatMedInhosp pmjb = new PatMedInhosp();
-        //鑾峰彇闇�瑕佸嚭闄㈢柧鐥呴殢璁匡紝鏈鐞嗙殑鏁版嵁
-        pmjb.setDiagcheckFlag("0");
-        pmjb.setInhospstate("1");
-        pmjb.setFuflag("1");
-        List<PatMedInhosp> patMedInhospJBs = patMedInhospMapper.selectPatMedInhospList(pmjb);
-        log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鐤剧梾鎮h�呬俊鎭細{}", CollectionUtils.isNotEmpty(patMedInhospJBs) ? patMedInhospJBs.size() : null);
-        for (PatMedInhosp patMedInhosp1 : patMedInhospJBs) {
-            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
-            patMedInhosp1.setTagname(tagname);
-        }
-
-        for (PatMedInhosp pmiJB : patMedInhospJBs) {
-            //鑾峰彇鎮h�呬俊鎭�
-            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiJB.getPatid());
-            if (Objects.isNull(patArchive)) {
-                pmiJB.setDiagcheckFlag("2");
-                pmiJB.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
-                patMedInhospMapper.updatePatMedInhosp(pmiJB);
-                continue;
-            }
-            try {
-                String errorIcd = null;
-                if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) {
-                    continue;
-                }
-                // 鏍规嵁鎮h�呯殑鐤剧梾锛岃幏鍙栬鐤剧梾鐨勯暱鏈熶换鍔�
-                ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
-                serviceTaskdiag.setLongtask(1L);
-                serviceTaskdiag.setServiceType("2");
-                if (active.equals("nhfy")) {
-                    //鍗楀崕闄勪竴鐨刬cd10code鏈夐噸澶嶏紝鎵�浠ョ敤涓昏瘖鏂悕绉板幓鏌ヨ
-                    serviceTaskdiag.setIcd10name(pmiJB.getLeavediagname());
-                    if (StringUtils.isEmpty(pmiJB.getLeavediagname())) {
-                        errorIcd = "璇ユ偅鑰呬富璇婃柇鍚嶇О涓虹┖;";
-                    }
-                } else {
-                    serviceTaskdiag.setIcd10code(pmiJB.getLeaveicd10code());
-                    if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) {
-                        errorIcd = "璇ユ偅鑰呬富璇婃柇ICD10鐮佷负绌�;";
-                    }
-                }
-                serviceTaskdiag.setOrgid(pmiJB.getOrgid());
-                List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagListByIcdName(serviceTaskdiag);
-
-                //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
-                if (StringUtils.isNotEmpty(errorIcd)) {
-                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid());
-                    pmiJB.setDiagcheckFlag("2");
-                    pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd);
-                    patMedInhospMapper.updatePatMedInhosp(pmiJB);
-                } else if (CollectionUtils.isEmpty(serviceTaskdiags)) {
-                    errorIcd = "璇ユ偅鑰呮墍鎮g柧鐥呮湭閰嶇疆闀挎湡浠诲姟;";
-                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid());
-                    pmiJB.setDiagcheckFlag("2");
-                    pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd);
-                    patMedInhospMapper.updatePatMedInhosp(pmiJB);
-                } else {
-                    int flag = 0;
-                    for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) {
-                        //蹇呴』绉戝鎴栫梾鍖鸿兘鍖归厤涓�,鎵嶅彲浠ョ敤杩欎釜鐤剧梾鍒涘缓瀛愪换鍔★紙涓昏澶勭悊涓�涓柧鐥呭湪澶氫釜鐥呭尯鎴栫瀹ゅ嚭鐜帮級
-                        if (StringUtils.isNotEmpty(serviceTaskdept1.getDeptCode()) && serviceTaskdept1.getDeptCode().equals(pmiJB.getLeaveldeptcode())) {
-                            writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config);
-                            flag = 1;
-                        } else if (StringUtils.isNotEmpty(serviceTaskdept1.getWardCode()) && serviceTaskdept1.getWardCode().equals(pmiJB.getLeavehospitaldistrictcode())) {
-                            writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config);
-                            flag = 1;
-                        }
-                    }
-                    if (flag == 0) {
-                        log.error("璇ョ瀹ゆ垨鐥呭尯瀵逛簬鎮h�呮墍鎮g柧鐥呮湭閰嶇疆闀挎湡浠诲姟,鎮h�咃細{}", pmiJB.getInhospid());
-                        errorIcd = "璇ョ瀹ゆ垨鐥呭尯瀵逛簬鎮h�呮墍鎮g柧鐥呮湭閰嶇疆闀挎湡浠诲姟;";
-                        PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid());
-                        pmiJB.setDiagcheckFlag("2");
-                        pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd);
-                        patMedInhospMapper.updatePatMedInhosp(pmiJB);
-                    }
-
-                }
-
-            } catch (Exception e) {
-                e.printStackTrace();
-                log.error("浜哄憳鐤剧梾澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
-                pmiJB.setDiagcheckFlag("2");
-                pmiJB.setLongTaskReason("浜哄憳鐤剧梾澶勭悊寮傚父");
-                patMedInhospMapper.updatePatMedInhosp(pmiJB);
-            }
-        }
-    }
-
-    private void addWardSubTask(String config) {
-        PatMedInhosp pmbq = new PatMedInhosp();
-        //鑾峰彇闇�瑕佸嚭闄㈤儴闂ㄩ殢璁匡紝鏈鐞嗙殑鏁版嵁
-        pmbq.setWardcheckFlag("0");
-        pmbq.setInhospstate("1");
-        pmbq.setFuflag("1");
-        List<PatMedInhosp> patMedInhospBQs = patMedInhospMapper.selectPatMedInhospList(pmbq);
-        log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鐥呭尯鎮h�呬俊鎭細{}", CollectionUtils.isNotEmpty(patMedInhospBQs) ? patMedInhospBQs.size() : null);
-        for (PatMedInhosp patMedInhosp1 : patMedInhospBQs) {
-            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
-            patMedInhosp1.setTagname(tagname);
-        }
-
-        //鐥呭尯鏁版嵁澶勭悊
-        for (PatMedInhosp pmiBQ1 : patMedInhospBQs) {
-            if ("1".equals(pmiBQ1.getLeavehospitaldistrictcode()) && pmiBQ1.getDiagcheckFlag().equals("1")) {
-                pmiBQ1.setWardcheckFlag("2");
-                pmiBQ1.setLongTaskReason("鏍规嵁浜ゅ弶鐢熸垚闅忚浠诲姟瑙勫垯锛岀梾鍖轰换鍔″彲浠ヤ笉鐢ㄧ敓鎴�");
-                patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
-                continue;
-            }
-
-            //鑾峰彇鎮h�呬俊鎭�
-            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiBQ1.getPatid());
-            if (Objects.isNull(patArchive)) {
-                pmiBQ1.setWardcheckFlag("2");
-                pmiBQ1.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
-                patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
-                continue;
-            }
-            try {
-                String errorreason = null;
-                List<ServiceTaskdept> serviceTaskdeptList = null;
-                if (!StringUtils.isEmpty(pmiBQ1.getLeavehospitaldistrictcode())) {
-                    ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
-                    serviceTaskdept.setLongtask(1L);
-                    serviceTaskdept.setDeptCode(pmiBQ1.getLeavehospitaldistrictcode());
-                    serviceTaskdept.setDeptType("2");
-                    serviceTaskdept.setServiceType("2");
-                    serviceTaskdept.setOrgid(pmiBQ1.getOrgid());
-                    serviceTaskdeptList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
-                    if (CollectionUtils.isEmpty(serviceTaskdeptList)) {
-                        errorreason = "璇ユ偅鑰呮墍鍦ㄧ梾鍖烘湭閰嶇疆闀挎湡浠诲姟;";
-                    }
-                } else {
-                    errorreason = "绂婚櫌鐥呭尯涓虹┖;";
-                }
-                //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
-                if (StringUtils.isNotEmpty(errorreason)) {
-                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiBQ1.getInhospid());
-                    pmiBQ1.setWardcheckFlag("2");
-                    pmiBQ1.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorreason : errorreason);
-                    patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
-                } else {
-                    for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
-                        writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config);
-                    }
-                }
-
-            } catch (Exception e) {
-                e.printStackTrace();
-                log.error("浜哄憳鐥呭尯澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
-                pmiBQ1.setWardcheckFlag("2");
-                pmiBQ1.setLongTaskReason("浜哄憳鐥呭尯澶勭悊寮傚父");
-                patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
-            }
-        }
-    }
-
-    private void addDeptSubTask(String config) {
-        //鑾峰彇闇�瑕佸嚭闄㈤儴闂ㄩ殢璁匡紝鏈鐞嗙殑鏁版嵁
-        PatMedInhosp pmks = new PatMedInhosp();
-        pmks.setDeptcheckFlag("0");
-        pmks.setInhospstate("1");
-        pmks.setFuflag("1");
-        List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks);
-        log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌閮ㄩ棬鎮h�呬俊鎭細{}", CollectionUtils.isNotEmpty(patMedInhosps) ? patMedInhosps.size() : null);
-        for (PatMedInhosp patMedInhosp1 : patMedInhosps) {
-            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
-            patMedInhosp1.setTagname(tagname);
-        }
-
-        //绉戝
-        for (PatMedInhosp patMedInhosp1 : patMedInhosps) {
-            if ("1".equals(patMedInhosp1.getLeavehospitaldistrictcode()) && patMedInhosp1.getDiagcheckFlag().equals("1")) {
-                patMedInhosp1.setDeptcheckFlag("2");
-                patMedInhosp1.setLongTaskReason("鏍规嵁浜ゅ弶鐢熸垚闅忚浠诲姟瑙勫垯锛岄儴闂ㄤ换鍔″彲浠ヤ笉鐢ㄧ敓鎴�");
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-                continue;
-            }
-            //鑾峰彇鎮h�呬俊鎭�
-            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid());
-            if (Objects.isNull(patArchive)) {
-                patMedInhosp1.setDeptcheckFlag("2");
-                patMedInhosp1.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-                continue;
-            }
-            try {
-                //鏍规嵁鎮h�呮墍鍦ㄧ瀹わ紝鑾峰彇璇ョ瀹ょ殑闀挎湡浠诲姟
-                ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
-                serviceTaskdept.setLongtask(1L);
-                serviceTaskdept.setDeptCode(patMedInhosp1.getLeaveldeptcode());
-                serviceTaskdept.setDeptType("1");
-                serviceTaskdept.setServiceType("2");
-                serviceTaskdept.setOrgid(patMedInhosp1.getOrgid());
-                List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
-                //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
-                if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) {
-                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
-                    patMedInhosp1.setDeptcheckFlag("2");
-                    patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ瀹ゆ湭閰嶇疆绂婚櫌闀挎湡浠诲姟;");
-                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-                } else {
-                    for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
-                        writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config);
-                    }
-                }
-
-            } catch (Exception e) {
-                e.printStackTrace();
-                log.error("浜哄憳绉戝澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
-                patMedInhosp1.setDeptcheckFlag("2");
-                patMedInhosp1.setLongTaskReason("浜哄憳绉戝澶勭悊寮傚父");
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
             }
         }
     }
@@ -1469,7 +1047,7 @@
         if (StringUtils.isNotEmpty(remark)) {
             updateObj.setRemark(remark + " (type=" + type + ")");
         }
-        patMedInhospMapper.updatePatMedInhosp(updateObj);
+        inhospVisitFacade.updatePatMedInhosp(updateObj);
     }
 
     /**
@@ -1477,22 +1055,14 @@
      * 鏍规嵁鎮h�呯闄㈢瀹ゆ垨鐥呭尯鏌ヨservice_task_rule锛岃幏鍙杁eptRule銆亀radRule銆乨iagRule
      * 鏍规嵁瑙勫垯鍊煎喅瀹氳皟鐢ㄥ摢涓柟娉曠敓鎴愰殢璁夸换鍔�
      */
-    private void addSubTaskByRule(String config) {
-        // 鑾峰彇鎵�鏈夐渶瑕佸鐞嗙殑鍑洪櫌鎮h�咃紙绉戝缁村害鏈鐞嗭級
-        PatMedInhosp pmks = new PatMedInhosp();
-        pmks.setDeptcheckFlag("0");
-        pmks.setInhospstate("1");
-        pmks.setFuflag("1");
-        List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks);
-        log.info("銆愬熀浜庤鍒欍�戦渶瑕佸鐞嗙殑鍑洪櫌鎮h�呬俊鎭細{}", CollectionUtils.isNotEmpty(patMedInhosps) ? patMedInhosps.size() : null);
-
+    private void addSubTaskByRule(String config, List<PatMedInhosp> patMedInhosps) {
         for (PatMedInhosp patMedInhosp1 : patMedInhosps) {
             // 鑾峰彇鎮h�呭熀鏈俊鎭�
             PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid());
             if (Objects.isNull(patArchive)) {
                 patMedInhosp1.setDeptcheckFlag("2");
                 patMedInhosp1.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                 continue;
             }
 
@@ -1557,52 +1127,52 @@
                             // 鈥斺�� 灏�=2鐨勬瑕佽鍒欏搴攆lag璁句负"2"锛堣烦杩囷級
                             log.info("銆愬熀浜庤鍒欍�戦瑕佽鍒欐湁鎴愬姛(count={})锛屽皢娆¤瑙勫垯瀵瑰簲flag璁句负2", primaryGeneratedCount);
                             if (deptIsSecondary) {
-                                updateCheckFlag(patMedInhosp1, 1, "2", StringUtils.isNotEmpty(remark)?remark+";棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃":"棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃");
+                                updateCheckFlag(patMedInhosp1, 1, "2", StringUtils.isNotEmpty(remark) ? remark + ";棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃" : "棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃");
                             }
                             if (!active.equals("xh")) {
                                 if (wardIsSecondary) {
-                                    updateCheckFlag(patMedInhosp1, 2, "2", StringUtils.isNotEmpty(remark)?remark+";棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃":"棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃");
+                                    updateCheckFlag(patMedInhosp1, 2, "2", StringUtils.isNotEmpty(remark) ? remark + ";棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃" : "棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃");
                                 }
                                 if (diagIsSecondary) {
-                                    updateCheckFlag(patMedInhosp1, 3, "2", StringUtils.isNotEmpty(remark)?remark+";棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃":"棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃");
+                                    updateCheckFlag(patMedInhosp1, 3, "2", StringUtils.isNotEmpty(remark) ? remark + ";棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃" : "棣栬瑙勫垯宸茬敓鎴愶紝娆¤瑙勫垯璺宠繃");
                                 }
                             }
                             // 鈥斺�� 瀵逛簬=1涓旂敓鎴愭垚鍔熺殑锛屽皢鍏跺搴攆lag璁句负"1"
                             if (deptIsPrimary && deptGenCount > 0) {
-                                updateCheckFlag(patMedInhosp1, 1, "1", StringUtils.isNotEmpty(remark)?remark+";绉戝棣栬瑙勫垯鐢熸垚鎴愬姛":"绉戝棣栬瑙勫垯鐢熸垚鎴愬姛");
+                                updateCheckFlag(patMedInhosp1, 1, "1", StringUtils.isNotEmpty(remark) ? remark + ";绉戝棣栬瑙勫垯鐢熸垚鎴愬姛" : "绉戝棣栬瑙勫垯鐢熸垚鎴愬姛");
                             }
                             if (!active.equals("xh")) {
                                 if (wardIsPrimary && wardGenCount > 0) {
-                                    updateCheckFlag(patMedInhosp1, 2, "1", StringUtils.isNotEmpty(remark)?remark+";鐥呭尯棣栬瑙勫垯鐢熸垚鎴愬姛":"鐥呭尯棣栬瑙勫垯鐢熸垚鎴愬姛");
+                                    updateCheckFlag(patMedInhosp1, 2, "1", StringUtils.isNotEmpty(remark) ? remark + ";鐥呭尯棣栬瑙勫垯鐢熸垚鎴愬姛" : "鐥呭尯棣栬瑙勫垯鐢熸垚鎴愬姛");
                                 }
                                 if (diagIsPrimary && diagGenCount > 0) {
-                                    updateCheckFlag(patMedInhosp1, 3, "1", StringUtils.isNotEmpty(remark)?remark+";鐤剧梾棣栬瑙勫垯鐢熸垚鎴愬姛":"鐤剧梾棣栬瑙勫垯鐢熸垚鎴愬姛");
+                                    updateCheckFlag(patMedInhosp1, 3, "1", StringUtils.isNotEmpty(remark) ? remark + ";鐤剧梾棣栬瑙勫垯鐢熸垚鎴愬姛" : "鐤剧梾棣栬瑙勫垯鐢熸垚鎴愬姛");
                                 }
                             }
                             // 鈥斺�� 瀵逛簬=1浣嗙敓鎴愬け璐ョ殑锛屽皢鍏跺搴攆lag璁句负"2"
                             if (deptIsPrimary && deptGenCount == 0) {
-                                updateCheckFlag(patMedInhosp1, 1, "2", StringUtils.isNotEmpty(remark)?remark+";绉戝棣栬瑙勫垯鐢熸垚澶辫触":"绉戝棣栬瑙勫垯鐢熸垚澶辫触");
+                                updateCheckFlag(patMedInhosp1, 1, "2", StringUtils.isNotEmpty(remark) ? remark + ";绉戝棣栬瑙勫垯鐢熸垚澶辫触" : "绉戝棣栬瑙勫垯鐢熸垚澶辫触");
                             }
                             if (!active.equals("xh")) {
                                 if (wardIsPrimary && wardGenCount == 0) {
-                                    updateCheckFlag(patMedInhosp1, 2, "2", StringUtils.isNotEmpty(remark)?remark+";鐥呭尯棣栬瑙勫垯鐢熸垚澶辫触":"鐥呭尯棣栬瑙勫垯鐢熸垚澶辫触");
+                                    updateCheckFlag(patMedInhosp1, 2, "2", StringUtils.isNotEmpty(remark) ? remark + ";鐥呭尯棣栬瑙勫垯鐢熸垚澶辫触" : "鐥呭尯棣栬瑙勫垯鐢熸垚澶辫触");
                                 }
                                 if (diagIsPrimary && diagGenCount == 0) {
-                                    updateCheckFlag(patMedInhosp1, 3, "2", StringUtils.isNotEmpty(remark)?remark+";鐤剧梾棣栬瑙勫垯鐢熸垚澶辫触":"鐤剧梾棣栬瑙勫垯鐢熸垚澶辫触");
+                                    updateCheckFlag(patMedInhosp1, 3, "2", StringUtils.isNotEmpty(remark) ? remark + ";鐤剧梾棣栬瑙勫垯鐢熸垚澶辫触" : "鐤剧梾棣栬瑙勫垯鐢熸垚澶辫触");
                                 }
                             }
                         } else {
                             // 鎵�鏈夐瑕佽鍒欏叏閮ㄥけ璐ワ紝灏�=1鐨刦lag璁句负"2"锛岀劧鍚庢墽琛�=2鐨勬柟娉�
                             log.info("銆愬熀浜庤鍒欍�戦瑕佽鍒欏叏閮ㄥけ璐ワ紝灏�=1鐨刦lag璁句负2锛屽紑濮嬫墽琛屾瑕佽鍒�");
                             if (deptIsPrimary) {
-                                updateCheckFlag(patMedInhosp1, 1, "2", StringUtils.isNotEmpty(remark)?remark+";绉戝棣栬瑙勫垯鍏ㄩ儴澶辫触":"绉戝棣栬瑙勫垯鍏ㄩ儴澶辫触");
+                                updateCheckFlag(patMedInhosp1, 1, "2", StringUtils.isNotEmpty(remark) ? remark + ";绉戝棣栬瑙勫垯鍏ㄩ儴澶辫触" : "绉戝棣栬瑙勫垯鍏ㄩ儴澶辫触");
                             }
                             if (!active.equals("xh")) {
                                 if (wardIsPrimary) {
-                                    updateCheckFlag(patMedInhosp1, 2, "2", StringUtils.isNotEmpty(remark)?remark+";鐥呭尯棣栬瑙勫垯鍏ㄩ儴澶辫触":"鐥呭尯棣栬瑙勫垯鍏ㄩ儴澶辫触");
+                                    updateCheckFlag(patMedInhosp1, 2, "2", StringUtils.isNotEmpty(remark) ? remark + ";鐥呭尯棣栬瑙勫垯鍏ㄩ儴澶辫触" : "鐥呭尯棣栬瑙勫垯鍏ㄩ儴澶辫触");
                                 }
                                 if (diagIsPrimary) {
-                                    updateCheckFlag(patMedInhosp1, 3, "2", StringUtils.isNotEmpty(remark)?remark+";鐤剧梾棣栬瑙勫垯鍏ㄩ儴澶辫触":"鐤剧梾棣栬瑙勫垯鍏ㄩ儴澶辫触");
+                                    updateCheckFlag(patMedInhosp1, 3, "2", StringUtils.isNotEmpty(remark) ? remark + ";鐤剧梾棣栬瑙勫垯鍏ㄩ儴澶辫触" : "鐤剧梾棣栬瑙勫垯鍏ㄩ儴澶辫触");
                                 }
                             }
                             // 鎵ц娆¤瑙勫垯(=2)鐨勬柟娉�
@@ -1638,7 +1208,7 @@
                 log.error("銆愬熀浜庤鍒欍�戞偅鑰厈}澶勭悊寮傚父锛歿}", patMedInhosp1.getInhospid(), e.getMessage());
                 patMedInhosp1.setDeptcheckFlag("2");
                 patMedInhosp1.setLongTaskReason("鍩轰簬瑙勫垯澶勭悊寮傚父");
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
             }
         }
     }
@@ -1661,12 +1231,12 @@
             List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
 
             if (CollectionUtils.isEmpty(serviceTaskdepts)) {
-                PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
+                PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                 patMedInhosp1.setDeptcheckFlag("2");
                 patMedInhosp1.setWardcheckFlag(patMedInhosp.getWardcheckFlag());
                 patMedInhosp1.setDiagcheckFlag(patMedInhosp.getDiagcheckFlag());
                 patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ瀹ゆ湭閰嶇疆绂婚櫌闀挎湡浠诲姟;");
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
             } else {
                 for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
                     writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config);
@@ -1678,7 +1248,7 @@
             log.error("銆愮瀹や换鍔°�戞偅鑰厈}澶勭悊寮傚父锛歿}", patMedInhosp1.getInhospid(), e.getMessage());
             patMedInhosp1.setDeptcheckFlag("2");
             patMedInhosp1.setLongTaskReason("绉戝浠诲姟澶勭悊寮傚父");
-            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+            inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
         }
         return generatedCount;
     }
@@ -1709,12 +1279,12 @@
             }
 
             if (StringUtils.isNotEmpty(errorreason)) {
-                PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
+                PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                 patMedInhosp1.setWardcheckFlag("2");
                 patMedInhosp1.setDeptcheckFlag(patMedInhosp.getDeptcheckFlag());
                 patMedInhosp1.setDiagcheckFlag(patMedInhosp.getDiagcheckFlag());
                 patMedInhosp1.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorreason : errorreason);
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
             } else {
                 for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
                     writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 2, config);
@@ -1726,7 +1296,7 @@
             log.error("銆愮梾鍖轰换鍔°�戞偅鑰厈}澶勭悊寮傚父锛歿}", patMedInhosp1.getInhospid(), e.getMessage());
             patMedInhosp1.setWardcheckFlag("2");
             patMedInhosp1.setLongTaskReason("鐥呭尯浠诲姟澶勭悊寮傚父");
-            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+            inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
         }
         return generatedCount;
     }
@@ -1745,14 +1315,14 @@
 
             ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
             serviceTaskdiag.setLongtask(1L);
-            serviceTaskdiag.setServiceType("2");
+//            serviceTaskdiag.setServiceType("2");
             if (active.equals("nhfy")) {
                 serviceTaskdiag.setIcd10name(patMedInhosp1.getLeavediagname());
                 if (StringUtils.isEmpty(patMedInhosp1.getLeavediagname())) {
-                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
+                    PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                     patMedInhosp1.setDiagcheckFlag("2");
                     patMedInhosp1.setLongTaskReason("璇ユ偅鑰呬富璇婃柇鍚嶇О涓虹┖;");
-                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                    inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                     return 0;
                 }
             } else {
@@ -1762,10 +1332,10 @@
             List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagListByIcdName(serviceTaskdiag);
 
             if (CollectionUtils.isEmpty(serviceTaskdiags)) {
-                PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
+                PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                 patMedInhosp.setDiagcheckFlag("2");
                 patMedInhosp.setLongTaskReason("璇ユ偅鑰呮墍鎮g柧鐥呮湭閰嶇疆闀挎湡浠诲姟;");
-                patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
+                inhospVisitFacade.updatePatMedInhosp(patMedInhosp);
             } else {
                 int flag = 0;
                 for (ServiceTaskdiag serviceTaskdiag1 : serviceTaskdiags) {
@@ -1781,10 +1351,10 @@
                 }
                 if (flag == 0) {
                     log.error("璇ョ瀹ゆ垨鐥呭尯瀵逛簬鎮h�呮墍鎮g柧鐥呮湭閰嶇疆闀挎湡浠诲姟,鎮h�咃細{}", patMedInhosp1.getInhospid());
-                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
+                    PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                     patMedInhosp.setDiagcheckFlag("2");
                     patMedInhosp.setLongTaskReason("璇ョ瀹ゆ垨鐥呭尯瀵逛簬鎮h�呮墍鎮g柧鐥呮湭閰嶇疆闀挎湡浠诲姟;");
-                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
+                    inhospVisitFacade.updatePatMedInhosp(patMedInhosp);
                 }
             }
         } catch (Exception e) {
@@ -1792,10 +1362,9 @@
             log.error("銆愮柧鐥呬换鍔°�戞偅鑰厈}澶勭悊寮傚父锛歿}", patMedInhosp1.getInhospid(), e.getMessage());
             patMedInhosp1.setDiagcheckFlag("2");
             patMedInhosp1.setLongTaskReason("鐤剧梾浠诲姟澶勭悊寮傚父");
-            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+            inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
         }
         return generatedCount;
     }
-
 
 }

--
Gitblit v1.9.3