From 586a386b2d779e94002c8099ff62271b0e684d88 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 06 五月 2026 11:35:19 +0800
Subject: [PATCH] Merge branch 'master' into master-手术随访

---
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java |  477 ++++++++++++++++++++++++++++-------------------------------
 1 files changed, 227 insertions(+), 250 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 65a6ad4..19d5746 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -4,6 +4,7 @@
 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.utils.DateUtils;
 import com.ruoyi.common.utils.DtoConversionUtils;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -59,6 +60,8 @@
 
     @Value("${spring.profiles.active}")
     private String active;
+    @Autowired
+    private IConfigService iSysConfigService;
 
 
     /**
@@ -85,6 +88,16 @@
      */
     @Override
     public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp) {
+        if (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) {
+            patMedInhosp.setInhospstate("1");
+        }
+
         List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
         for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
             String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
@@ -146,16 +159,6 @@
     public PatMedRes selectPatMedInhospListCount(PatMedReq patMedReq) {
         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);
-        }
         patMedRes = patMedInhospMapper.selectPatMedInhospCount(patMedReq);
         return patMedRes;
     }
@@ -220,7 +223,91 @@
 
     @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.鍑洪櫌闅忚
         PatMedInhosp pmks = new PatMedInhosp();
         //鑾峰彇闇�瑕佸嚭闄㈤儴闂ㄩ殢璁匡紝鏈鐞嗙殑鏁版嵁
         pmks.setDeptcheckFlag("0");
@@ -249,13 +336,14 @@
                 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() + "璇ユ偅鑰呮墍鍦ㄧ瀹ゆ湭閰嶇疆闀挎湡浠诲姟;");
+                    patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ瀹ゆ湭閰嶇疆绂婚櫌闀挎湡浠诲姟;");
                     patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                 } else {
                     for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
@@ -299,17 +387,27 @@
                     continue;
                 }
                 try {
-                    ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
-                    serviceTaskdept.setLongtask(1L);
-                    serviceTaskdept.setDeptCode(pmiBQ1.getLeavehospitaldistrictcode());
-                    serviceTaskdept.setDeptType("2");
-                    serviceTaskdept.setOrgid(pmiBQ1.getOrgid());
-                    List<ServiceTaskdept> serviceTaskdeptList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
+                    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 (CollectionUtils.isEmpty(serviceTaskdeptList) || serviceTaskdeptList.size() == 0) {
+                    if (StringUtils.isNotEmpty(errorreason)) {
                         PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiBQ1.getInhospid());
                         pmiBQ1.setWardcheckFlag("2");
-                        pmiBQ1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ梾鍖烘湭閰嶇疆闀挎湡浠诲姟;");
+                        pmiBQ1.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorreason : errorreason);
                         patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
                     } else {
                         for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
@@ -351,21 +449,40 @@
                     continue;
                 }
                 try {
+                    String errorIcd = null;
                     if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) {
                         continue;
                     }
                     // 鏍规嵁鎮h�呯殑鐤剧梾锛岃幏鍙栬鐤剧梾鐨勯暱鏈熶换鍔�
                     ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
                     serviceTaskdiag.setLongtask(1L);
-                    serviceTaskdiag.setIcd10code(pmiJB.getLeaveicd10code());
+                    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.selectServiceTaskdiagList(serviceTaskdiag);
+
                     //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
-                    if (CollectionUtils.isEmpty(serviceTaskdiags) || serviceTaskdiags.size() == 0) {
+                    if (StringUtils.isNotEmpty(errorIcd)) {
                         PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid());
                         pmiJB.setDiagcheckFlag("2");
-                        pmiJB.setLongTaskReason(patMedInhosp.getLongTaskReason() + "鎵�鎮g殑鐤剧梾鏈厤缃暱鏈熶换鍔�;");
+                        pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd);
+                        patMedInhospMapper.updatePatMedInhosp(pmiJB);
+                    } else if (CollectionUtils.isEmpty(serviceTaskdiags)) {
+                        errorIcd = "璇ユ偅鑰呮墍鍦ㄧ梾鍖烘湭閰嶇疆闀挎湡浠诲姟;";
+                        PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid());
+                        pmiJB.setDiagcheckFlag("2");
+                        pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd);
                         patMedInhospMapper.updatePatMedInhosp(pmiJB);
                     } else {
                         for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) {
@@ -383,6 +500,60 @@
                     patMedInhospMapper.updatePatMedInhosp(pmiJB);
                 }
             }
+//            鎵嬫湳闅忚
+//            PatMedInhosp pmss = new PatMedInhosp();
+//            //鑾峰彇闇�瑕佸嚭闄㈢柧鐥呴殢璁匡紝鏈鐞嗙殑鏁版嵁
+//            pmss.setOpercheckFlag("0");
+//            pmss.setInhospstate("1");
+//            pmss.setFuflag("1");
+//            List<PatMedInhosp> patMedInhospSSs = patMedInhospMapper.selectPatMedInhospList(pmss);
+//            log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鐤剧梾鎮h�呬俊鎭細{}", CollectionUtils.isNotEmpty(patMedInhospSSs) ? patMedInhospSSs.size() : null);
+//            for (PatMedInhosp patMedInhosp1 : patMedInhospSSs) {
+//                String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
+//                patMedInhosp1.setTagname(tagname);
+//            }
+//
+//            for (PatMedInhosp pmiSS : patMedInhospSSs) {
+//                //鑾峰彇鎮h�呬俊鎭�
+//                PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiSS.getPatid());
+//                if (Objects.isNull(patArchive)) {
+//                    pmiSS.setDiagcheckFlag("2");
+//                    pmiSS.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
+//                    patMedInhospMapper.updatePatMedInhosp(pmiSS);
+//                    continue;
+//                }
+//                try {
+////                    if (StringUtils.isEmpty(pmiSS.getLeaveicd10code())) {
+////                        continue;
+////                    }
+//                    // 鏍规嵁鎮h�呯殑鐤剧梾锛岃幏鍙栬鐤剧梾鐨勯暱鏈熶换鍔�
+//                    ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
+//                    serviceTaskoper.setLongtask(1L);
+//                    serviceTaskoper.setOrgid(pmiSS.getOrgid());
+//                    //todo
+//                    serviceTaskoper.setOplevelcode("");
+//
+//                    List<ServiceTaskoper> serviceTaskopers = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper);
+//                    //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
+//                    if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) {
+//                        PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiSS.getInhospid());
+//                        pmiSS.setOpercheckFlag("2");
+//                        pmiSS.setLongTaskReason(patMedInhosp.getLongTaskReason() + "鎵�鎮g殑鎵嬫湳鏈厤缃暱鏈熶换鍔�;");
+//                        patMedInhospMapper.updatePatMedInhosp(pmiSS);
+//                    } else {
+//                        for (ServiceTaskoper serviceTaskoper1 : serviceTaskopers) {
+//                            writeInSubTask(serviceTaskoper1.getTaskId(), true, pmiSS, patArchive, 3, config);
+//                        }
+//                    }
+//
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                    log.error("浜哄憳鎵嬫湳澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
+//                    pmiSS.setOpercheckFlag("2");
+//                    pmiSS.setLongTaskReason("浜哄憳鎵嬫湳澶勭悊寮傚父锛�" + e.getMessage());
+//                    patMedInhospMapper.updatePatMedInhosp(pmiSS);
+//                }
+//            }
 //            鎵嬫湳闅忚
             PatMedOperationItem pmoi = new PatMedOperationItem();
             //鑾峰彇闇�瑕佸嚭闄㈢柧鐥呴殢璁匡紝鏈鐞嗙殑鏁版嵁
@@ -441,6 +612,7 @@
 
     /**
      * 澶氱淮搴﹂殢璁�
+     *
      * @param config
      * @return
      */
@@ -479,14 +651,12 @@
      * 鎸夌淮搴︽壘鍒版墍鏈夊尮閰嶉暱鏈熶换鍔★紝鎵归噺鐢熸垚 subtask
      * type: 1=绉戝, 2=鐥呭尯, 3=鐤剧梾
      */
-    private void processTasksByDimension(PatMedInhosp patMedInhosp1,
-            PatArchive patArchive,
-            String config, int type) {
+    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);
+            String reason = getDimensionReason(type);
+            markFlagAsNoConfig(patMedInhosp1, type, reason);
             return;
         }
 
@@ -496,11 +666,11 @@
         }
     }
 
-    private String getDimensionReason(int type){
+    private String getDimensionReason(int type) {
         switch (type) {
             case 1: { // 绉戝
                 return "鏈壘鍒扮瀹ゅ尮閰嶇殑闀挎湡浠诲姟";
-                 }
+            }
             case 2: { // 鐥呭尯
                 return "鏈壘鍒扮梾鍖哄尮閰嶇殑闀挎湡浠诲姟";
             }
@@ -511,9 +681,7 @@
         return "澶氱淮闀挎湡浠诲姟-鍖归厤绫诲瀷涓虹┖";
     }
 
-    private void markFlagAsNoConfig(PatMedInhosp patMedInhosp,
-                                    int type,
-                                    String reason){
+    private void markFlagAsNoConfig(PatMedInhosp patMedInhosp, int type, String reason) {
         switch (type) {
             case 1: { // 绉戝
                 patMedInhosp.setDeptcheckFlag("2");
@@ -537,14 +705,14 @@
 
     }
 
-    private void markAllFlagsAsError(PatMedInhosp patMedInhosp,
-                                    String reason){
+    private void markAllFlagsAsError(PatMedInhosp patMedInhosp, String reason) {
         patMedInhosp.setDeptcheckFlag("2");
         patMedInhosp.setWardcheckFlag("2");
         patMedInhosp.setDiagcheckFlag("2");
         patMedInhosp.setRemark(reason);
         patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
     }
+
     /**
      * 鏍规嵁缁村害绫诲瀷鏌ヨ鍖归厤鐨勯暱鏈熶换鍔� ID 鍒楄〃
      */
@@ -556,8 +724,7 @@
                 query.setDeptCode(patMedInhosp1.getLeaveldeptcode());
                 query.setDeptType("1");
                 query.setOrgid(patMedInhosp1.getOrgid());
-                return serviceTaskdeptMapper.selectServiceTaskdeptList(query)
-                        .stream().map(ServiceTaskdept::getTaskId).collect(Collectors.toList());
+                return serviceTaskdeptMapper.selectServiceTaskdeptList(query).stream().map(ServiceTaskdept::getTaskId).collect(Collectors.toList());
             }
             case 2: { // 鐥呭尯
                 ServiceTaskdept query = new ServiceTaskdept();
@@ -565,8 +732,7 @@
                 query.setDeptCode(patMedInhosp1.getLeavehospitaldistrictcode());
                 query.setDeptType("2");
                 query.setOrgid(patMedInhosp1.getOrgid());
-                return serviceTaskdeptMapper.selectServiceTaskdeptList(query)
-                        .stream().map(ServiceTaskdept::getTaskId).collect(Collectors.toList());
+                return serviceTaskdeptMapper.selectServiceTaskdeptList(query).stream().map(ServiceTaskdept::getTaskId).collect(Collectors.toList());
             }
             case 3: { // 鐤剧梾
                 if (StringUtils.isEmpty(patMedInhosp1.getLeaveicd10code())) return Collections.emptyList();
@@ -574,8 +740,7 @@
                 query.setLongtask(1L);
                 query.setIcd10code(patMedInhosp1.getLeaveicd10code());
                 query.setOrgid(patMedInhosp1.getOrgid());
-                return serviceTaskdiagMapper.selectServiceTaskdiagList(query)
-                        .stream().map(ServiceTaskdiag::getTaskId).collect(Collectors.toList());
+                return serviceTaskdiagMapper.selectServiceTaskdiagList(query).stream().map(ServiceTaskdiag::getTaskId).collect(Collectors.toList());
             }
         }
         return Collections.emptyList();
@@ -741,13 +906,12 @@
     }
 
     /**
-     *
-     * @param taskid 浠诲姟id
-     * @param check 鏄惁闇�瑕佹牎楠�
+     * @param taskid        浠诲姟id
+     * @param check         鏄惁闇�瑕佹牎楠�
      * @param patMedInhosp1 鐥呬汉鍑哄叆闄俊鎭�
-     * @param patArchive 鐥呬汉淇℃伅
-     * @param type 闅忚绫诲瀷(1-绉戝锛�2-鐥呭尯锛�3-鐤剧梾锛�
-     * @param config 閰嶇疆淇℃伅 visit.early.day
+     * @param patArchive    鐥呬汉淇℃伅
+     * @param type          闅忚绫诲瀷(1-绉戝锛�2-鐥呭尯锛�3-鐤剧梾锛�
+     * @param config        閰嶇疆淇℃伅 visit.early.day
      */
     //灏嗘偅鑰呮斁鍒皊ubtask涓�
     private void writeInSubTask(Long taskid, Boolean check, PatMedInhosp patMedInhosp1, PatArchive patArchive, Integer type, String config) {
@@ -951,133 +1115,6 @@
         }
     }
 
-
-    /**
-     *
-     * @param taskid 浠诲姟id
-     * @param check 鏄惁闇�瑕佹牎楠�
-     * @param patMedOperationItem 鎵嬫湳璁板綍
-     * @param config 閰嶇疆淇℃伅 visit.early.day
-     */
-    //灏嗘偅鑰呮斁鍒皊ubtask涓� 鎵嬫湳涓撶敤
-    private void writeInSubTaskForOp(Long taskid, Boolean check, PatMedOperationItem patMedOperationItem, String config) {
-        String longTaskReason = patMedOperationItem.getLongTaskReason();
-        String orgId = patMedOperationItem.getOrgid();
-        if (StringUtils.isEmpty(longTaskReason)) longTaskReason = "";
-        ServiceTask st = new ServiceTask();
-        st.setTaskid(taskid);
-        st.setSendState(2L);
-        List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
-        ServiceTask serviceTask = null;
-        if (CollectionUtils.isEmpty(serviceTasks)) {
-            log.info("璇ユ墜鏈搴旀墜鏈瓑绾х殑闀挎湡浠诲姟涓嶅瓨鍦�,浠诲姟ID涓猴細{}", taskid);
-            patMedOperationItem.setOpercheckFlag("2");
-            patMedOperationItem.setLongTaskReason(longTaskReason + " & 璇ユ墜鏈搴旀墜鏈瓑绾х殑闀挎湡浠诲姟涓嶅瓨鍦�,浠诲姟ID涓�:" + taskid);
-            patMedOperationItemMapper.insertPatMedOperationItem(patMedOperationItem);
-            return;
-        } else {
-            serviceTask = serviceTasks.get(0);
-        }
-        if (Objects.isNull(patMedOperationItem.getOpid())) {
-            return;
-        }
-        if (Objects.isNull(patMedOperationItem.getOplevelcode())) {
-            return;
-        }
-        PatMedOperation patMedOperation = patMedOperationMapper.selectPatMedOperationById(patMedOperationItem.getOpid());
-        if (Objects.isNull(patMedOperation)) {
-            return;
-        }
-        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperation.getPatid());
-        if (Objects.isNull(patArchive)) {
-            return;
-        }
-        //灏佽serviceSubtask
-        ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedOperation, patMedOperationItem, patArchive, config);
-        if (ObjectUtils.isEmpty(serviceSubtask)) {
-            return;
-        }
-        serviceSubtask.setVisitDeptCode(patMedOperation.getReqdeptcode());
-        serviceSubtask.setVisitDeptName(patMedOperation.getReqdeptname());
-        //璁板綍insertServiceSubtask璇彞杩斿洖鐘舵��
-        Integer i = 0;
-        try {
-            //鍏堝垽鏂竴涓嬶紝鏄惁闇�瑕佹牎楠�
-            if (check && (Objects.isNull(serviceSubtask.getTaskSituation()) || serviceSubtask.getTaskSituation() != 6)) {
-                //鍦ㄦ柊澧炰箣鍓嶏紝鍏堥�氳繃鎮h�匢D锛宻endstate=2鏌ヨ涓�涓嬶紝鍦ㄦ墍鏈夐暱鏈熶换鍔′腑锛屾槸涓嶆槸杩樻湁璇ユ偅鑰呭緟鎵ц鐨勪换鍔★紝鏈夌殑璇�,姣旇緝涔嬪墠鐨別ndtime鏄惁灏忎簬褰撳墠鐨別ndtaime,濡傛灉涔嬪墠鐨勫皬浜庣幇鍦ㄧ殑锛屽垯鐩存帴灏嗕箣鍓嶇殑鍋滄帀锛堝師鍥犲啀鍏ラ櫌锛�
-                ServiceSubtaskEntity subtask = new ServiceSubtaskEntity();
-                subtask.setPatid(patArchive.getId());
-                subtask.setSendstate(2L);
-                subtask.setTaskid(taskid);
-                List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(subtask);
-//                log.info("璇ユ偅鑰呭緟鎵ц鐨勪换鍔�:{}", CollectionUtils.isNotEmpty(selectServiceSubtaskList) ? selectServiceSubtaskList.size() : null);
-                if (CollectionUtils.isNotEmpty(selectServiceSubtaskList) && selectServiceSubtaskList.size() > 0) {
-                    for (ServiceSubtask serviceSubtask1 : selectServiceSubtaskList) {
-                        if (Objects.isNull(serviceSubtask1.getLongSendTime())) {
-                            //涓嶆槸闀挎湡浠诲姟锛屼笉澶勭悊
-                            continue;
-                        }
-                    }
-                } else {
-                    if (StringUtils.isEmpty(serviceSubtask.getPhone())) {
-                        if (StringUtils.isNotEmpty(serviceSubtask.getRemark()))
-                            serviceSubtask.setRemark(serviceSubtask.getRemark() + ",鎵嬫満鍙蜂负绌�");
-                        else serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�");
-                        serviceSubtask.setSendstate(4L);
-                        serviceSubtask.setResult("error");
-                    }
-                    serviceSubtask.setCreateBy(serviceTask.getCreateBy());
-                    serviceSubtask.setCreateTime(new Date());
-                    i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
-                    addServiceSubtaskPreachform(serviceSubtask, null);
-                }
-            } else if (serviceSubtask.getTaskSituation() == 6) {
-                //璇存槑璇ユ偅鑰呮槸琚繃婊ょ殑锛屼笉鐢ㄥ啀鎵ц浜�
-                serviceSubtask.setCreateBy(serviceTask.getCreateBy());
-                serviceSubtask.setCreateTime(new Date());
-                i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
-            } else {
-                if (StringUtils.isEmpty(serviceSubtask.getPhone())) {
-                    if (StringUtils.isNotEmpty(serviceSubtask.getRemark()))
-                        serviceSubtask.setRemark(serviceSubtask.getRemark() + ",鎵嬫満鍙蜂负绌�");
-                    else serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�");
-                    serviceSubtask.setSendstate(4L);
-                    serviceSubtask.setResult("error");
-                }
-                serviceSubtask.setCreateBy(serviceTask.getCreateBy());
-                serviceSubtask.setCreateTime(new Date());
-                i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
-                addServiceSubtaskPreachform(serviceSubtask, null);
-            }
-
-            //灏哻heck_flag鏀规垚1锛堝凡澶勭悊锛�
-            if (i == 1) {
-                PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem();
-                patMedOperationItem2.setId(patMedOperationItem.getId());
-                patMedOperationItem2.setOpercheckFlag("1");
-                patMedOperationItemMapper.updatePatMedOperationItem(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);
-            }
-        } catch (Exception e) {
-            //鍑洪敊鍥炴粴浜嬪姟
-
-            log.info("鐢熸垚瀛愪换鍔℃姤閿欏洖婊歴serviceSubtask鐨則askid涓猴細{},patid涓猴細{}", serviceSubtask.getTaskid(), serviceSubtask.getPatid());
-            PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem();
-            patMedOperationItem2.setId(patMedOperationItem.getId());
-            patMedOperationItem2.setOpercheckFlag("2");
-            patMedOperationItem2.setRemark("鐢熸垚瀛愪换鍔℃姤閿欏洖婊� 4");
-            patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2);
-            e.printStackTrace();
-        }
-    }
-
     private Integer addServiceSubtaskPreachform(ServiceSubtask serviceSubtask, String sendstate) {
         //灏唒reachformDesc鐨刯son瀵硅薄锛屾斁鍒發ist闆嗗悎涓�
         ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
@@ -1203,71 +1240,6 @@
         return serviceSubtask;
     }
 
-    //灏佽serviceSubtask
-    private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedOperation patMedOperation, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) {
-        ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
-        serviceSubtask.setTaskid(serviceTask.getTaskid());
-        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.setTemplateid(serviceTask.getTemplateid());
-        serviceSubtask.setTemplatename(serviceTask.getTemplatename());
-        serviceSubtask.setPatid(patArchive.getId());
-        serviceSubtask.setSendname(patArchive.getName());
-        serviceSubtask.setSfzh(patArchive.getIdcardno());
-        serviceSubtask.setPhone(patArchive.getTelcode());
-        if (StringUtils.isBlank(patArchive.getTelcode())) serviceSubtask.setPhone(patArchive.getRelativetelcode());
-        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.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.setOperationItemId(patMedOperationItem.getId());
-        serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
-        serviceSubtask.setUpdateTime(new Date());
-        //璁剧疆鍙戦�佹椂闂�
-        if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L);
-        Date newDate = null;
-        //todo
-        newDate = addDays(patMedOperation.getCreateTime(), serviceTask.getSendDay().intValue());
-        serviceSubtask.setLongSendTime(newDate);
-        serviceSubtask.setVisitTime(newDate);
-
-        //濡傛灉鏄�氱煡鐨勮瘽锛岄渶瑕佹彁鍓嶅嚑澶╁皢閫氳繃鐭俊鍙戝嚭鍘伙紙鍏蜂綋鍑犲ぉ锛岃繖涓彲浠ラ厤缃湪sys_conf琛ㄤ腑锛�
-        if ("3".equals(serviceTask.getType())) {
-            serviceSubtask.setVisitTime(minusDay(newDate, StringUtils.isNotEmpty(config) ? Integer.parseInt(config) : 0));
-        }
-
-        //鎮h�呭彂閫佹椂闂�
-        if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) {
-            String remark = patArchive.getNotrequiredreason();
-            serviceSubtask.setRemark(remark);
-            serviceSubtask.setResult("error");
-            serviceSubtask.setTaskSituation(6);
-            //涓嶆墽琛�
-            serviceSubtask.setSendstate(4L);
-        }
-        return serviceSubtask;
-    }
-
     /**
      * 鍑忓幓鐩稿簲澶╂暟
      *
@@ -1302,20 +1274,25 @@
                             //涓嶆槸闀挎湡浠诲姟锛屼笉澶勭悊
                             continue;
                         }
-                        if (serviceSubtask1.getEndtime().before(patMedInhosp1.getStarttime())) {
-                            //濡傛灉褰撳墠寰幆鐨勫瓙浠诲姟鐨勫嚭闄㈡椂闂村湪鈥滃噯澶囨柊澧炵殑瀛愪换鍔♀�濈殑鍑洪櫌鏃堕棿涔嬪墠锛屽垯灏嗗惊鐜殑瀛愪换鍔″仠鎺�
-//                            log.error("鎮h�呭啀鍏ラ櫌鐨剆erviceSubtask1涓�:{}", serviceSubtask1);
-                            serviceSubtask1.setSendstate(4L);
-                            serviceSubtask1.setRemark("鎮h�呭啀鍏ラ櫌");
-                            serviceSubtask1.setResult("error");
-//                            serviceSubtask1.setFinishtime(new Date());
-                            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
+                        //鏅畞 鍑洪櫌棣栨锛�7澶╋級闅忚涓�瀹氳鍋�
+                        boolean firstVisit = false;
+                        if (serviceSubtask1.getOrgid().equals("47255004333112711A1001") && serviceSubtask1.getVisitCount() != null && serviceSubtask1.getVisitCount() == 1) {
+                            firstVisit = true;
                         }
+                        if (!firstVisit) {
+                            if (serviceSubtask1.getEndtime().before(patMedInhosp1.getStarttime())) {
+                                //濡傛灉褰撳墠寰幆鐨勫瓙浠诲姟鐨勫嚭闄㈡椂闂村湪鈥滃噯澶囨柊澧炵殑瀛愪换鍔♀�濈殑鍑洪櫌鏃堕棿涔嬪墠锛屽垯灏嗗惊鐜殑瀛愪换鍔″仠鎺�
+//                            log.error("鎮h�呭啀鍏ラ櫌鐨剆erviceSubtask1涓�:{}", serviceSubtask1);
+                                serviceSubtask1.setSendstate(4L);
+                                serviceSubtask1.setIsVisitAgain(2);
+                                serviceSubtask1.setRemark("鎮h�呭啀鍏ラ櫌");
+                                serviceSubtask1.setResult("error");
+                                serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
+                            }
+                        }
+
                     }
                 }
-                //灏嗘偅鍏ョ殑鍏ラ櫌鏁版嵁璁剧疆涓哄凡澶勭悊
-                //鏇存柊鐘舵�佸�� patMedInhosp1.setDeptcheckFlag("0");
-                //patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
             } catch (Exception e) {
                 log.error("鍏ラ櫌鏁版嵁淇℃伅鍑哄紓甯镐簡锛歿},{}", patMedInhosp1, e.getMessage());
             }

--
Gitblit v1.9.3