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/domain/ServiceSubtask.java                               |    6 
 smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java |   50 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10Controller.java            |   11 
 smartor/src/main/java/com/smartor/domain/ServiceTaskdept.java                              |    6 
 ruoyi-admin/src/main/resources/application-sltd.yml                                        |    2 
 smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java                                |    6 
 smartor/src/main/java/com/smartor/domain/ServiceTaskoper.java                              |    6 
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java                |  653 ++++++++++++--------------
 smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml                           |   28 +
 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java         |   19 
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java              |   22 
 smartor/src/main/java/com/smartor/service/IIcd10Service.java                               |   24 
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskRes.java                            |    6 
 smartor/src/main/java/com/smartor/service/impl/UserExtInfoServiceImpl.java                 |   21 
 smartor/src/main/java/com/smartor/mapper/Icd10Mapper.java                                  |   14 
 smartor/src/main/java/com/smartor/service/impl/Icd10ServiceImpl.java                       |  208 +++++++
 smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml                                  |   10 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java               |   46 +
 ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml                         |    2 
 smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java                               |   12 
 smartor/src/main/java/com/smartor/domain/ServiceTask.java                                  |    6 
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                               |   31 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java           |  173 ++++--
 smartor/src/main/java/com/smartor/domain/PatMedInhosp.java                                 |   16 
 ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java                      |    6 
 smartor/src/main/java/com/smartor/domain/ServiceTaskdiag.java                              |    6 
 ruoyi-admin/src/main/resources/application-nhfy.yml                                        |    2 
 27 files changed, 888 insertions(+), 504 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
index eb55162..115081f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -1,9 +1,15 @@
 package com.ruoyi.web.controller.common;
 
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.gson.Gson;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.dx.MessageSend;
+import com.ruoyi.common.utils.HttpUtil;
 import com.ruoyi.common.utils.RSAPublicKeyExample;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.sms.smsUtils;
+import com.smartor.common.MtSubmitSmUtil;
 import com.smartor.domain.ServiceOutPath;
 import com.smartor.domain.smsVO;
 import com.smartor.mapper.UtilsMapper;
@@ -20,7 +26,11 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import java.io.UnsupportedEncodingException;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 @RestController
 @Api(description = "鐭ヤ俊鎺ュ彛")
@@ -29,6 +39,9 @@
 public class SmsController {
     @Value("${xhsmsPath}")
     private String xhsmsPath;
+
+    @Autowired
+    private MtSubmitSmUtil mtSubmitSmUtil;
 
     @Value("${xhsmsAccount}")
     private String xhsmsAccount;
@@ -48,8 +61,8 @@
     @Autowired
     private IServiceOutPathService iServiceOutPathService;
 
-    @Autowired
-    private UtilsMapper utilsMapper;
+    @Value("${spring.profiles.active}")
+    private String active;
 
     /**
      * @param
@@ -91,9 +104,34 @@
 
         if (ObjectUtils.isNotEmpty(vo.getContent())) content = vo.getContent();
 
-        String sendMsg = "";
+        String sendMsg = "false";
         try {
-            sendMsg = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, vo.getPhone(), content);
+            if (active.equals("hzszlyy")) {
+                sendMsg = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, vo.getPhone(), content);
+            } else if (active.equals("nhfy")) {
+                Map<String, Object> smsResult = mtSubmitSmUtil.submitSm(vo.getPhone(), content);
+                if (smsResult != null && smsResult.get("result") != null && smsResult.get("result").toString().equals("0")) {
+                    sendMsg = "true";
+                }
+            } else if (active.equals("sltd")) {
+                String data = MessageSend.sendMsg(content, "6", vo.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
+                if (StringUtils.isNotEmpty(data)) {
+                    ObjectMapper mapper = new ObjectMapper();
+                    JsonNode root = mapper.readTree(data);
+                    String status = root.get("result").get(0).get("status").asText();
+                    if (status.equals("00000")) {
+                        sendMsg = "true";
+                    }
+                }
+            } else if (active.equals("xh")) {
+                Map<String, String> req = new HashMap<>();
+                req.put("phone", vo.getPhone());
+                req.put("content", vo.getContent());
+                sendMsg = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
+            } else if (active.equals("ls")) {
+                //涓芥按13瀹跺尰闄紝鏈夌偣涓嶆柟渚匡紝鏈夌┖鍐嶆帴
+                return AjaxResult.error("璇ョ煭淇″姛鑳借繕鏈紑閫�");
+            }
             log.info(sendMsg);
         } catch (Exception ex) {
             log.error(ex.getMessage());
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10Controller.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10Controller.java
index 62e3b89..0b83b7c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10Controller.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10Controller.java
@@ -47,6 +47,17 @@
     }
 
     /**
+     * 鏌ヨ鐤剧梾鍒楄〃
+     */
+    @ApiOperation("鏌ヨ鐤剧梾鍒楄〃")
+    //@PreAuthorize("@ss.hasPermi('system:icd10:list')")
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @GetMapping("/queryAddIcd10")
+    public void queryAddIcd10() {
+        int list = icd10Service.queryAddIcd10();
+    }
+
+    /**
      * 瀵煎嚭鐤剧梾鍒楄〃
      */
     @ApiOperation("瀵煎嚭鐤剧梾鍒楄〃")
diff --git a/ruoyi-admin/src/main/resources/application-nhfy.yml b/ruoyi-admin/src/main/resources/application-nhfy.yml
index 6f97acf..1fa9f95 100644
--- a/ruoyi-admin/src/main/resources/application-nhfy.yml
+++ b/ruoyi-admin/src/main/resources/application-nhfy.yml
@@ -242,7 +242,7 @@
 lwl_app_key: ak-LMyQUE4rjW25UO7otb8XMXzv
 
 # 鍗楀崕闄勪竴鍙栨暟鎹叕鍏辨帴鍙�
-sltd_pub_path: "http://open.nhyfy.cn/kapi/gw-api/"
+sltd_pub_path: "http://open.nhyfy.cn/kapi/gw-api"
 
 sms_accountName: S200232
 sms_password: lD94Yo
diff --git a/ruoyi-admin/src/main/resources/application-sltd.yml b/ruoyi-admin/src/main/resources/application-sltd.yml
index e145f70..4280067 100644
--- a/ruoyi-admin/src/main/resources/application-sltd.yml
+++ b/ruoyi-admin/src/main/resources/application-sltd.yml
@@ -247,3 +247,5 @@
 
 # 鏉ユ湭鏉pp_key
 lwl_app_key: ak-zUMiOWhqXiJQWPB1pCbz0pjr
+
+sltd_pub_path: "http://open-tdyy.cfuture.shop/kapi/gw-api"
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
index ae8fe92..8d6aff4 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
@@ -72,6 +72,8 @@
             connection.setRequestProperty("accept", "*/*");
             connection.setRequestProperty("connection", "Keep-Alive");
             connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            connection.setConnectTimeout(5000);
+            connection.setReadTimeout(10000);
             connection.connect();
             in = new BufferedReader(new InputStreamReader(connection.getInputStream(), contentType));
             String line;
@@ -120,6 +122,8 @@
             conn.setRequestProperty("Accept-Charset", "utf-8");
             conn.setRequestProperty("Charsert", "UTF-8");
             conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
+            conn.setConnectTimeout(5000);
+            conn.setReadTimeout(10000);
             conn.setDoOutput(true);
             conn.setDoInput(true);
             out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8));
@@ -167,6 +171,8 @@
             conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
             conn.setRequestProperty("Accept-Charset", "utf-8");
             conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
+            conn.setConnectTimeout(5000);
+            conn.setReadTimeout(10000);
             conn.setDoOutput(true);
             conn.setDoInput(true);
             if (!Objects.isNull(headers)) {
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index ef578e7..87b791f 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -222,15 +222,22 @@
     }
 
     /**
-     * 璁板綍鐧诲綍淇℃伅
+     * 璁板綍鐧诲綍淇℃伅锛堝紓姝ユ墽琛岋紝涓嶉樆濉炵櫥褰曚富娴佺▼锛�
      *
      * @param userId 鐢ㄦ埛ID
      */
     public void recordLoginInfo(Long userId) {
-        SysUser sysUser = new SysUser();
-        sysUser.setUserId(userId);
-        sysUser.setLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
-        sysUser.setLoginDate(DateUtils.getNowDate());
-        userService.updateUserProfile(sysUser);
+        // 鍦ㄥ紓姝ュ墠鎹曡幏IP锛岄伩鍏嶅紓姝ョ嚎绋嬩腑Request涓婁笅鏂囧け鏁�
+        String loginIp = IpUtils.getIpAddr(ServletUtils.getRequest());
+        AsyncManager.me().execute(new java.util.TimerTask() {
+            @Override
+            public void run() {
+                SysUser sysUser = new SysUser();
+                sysUser.setUserId(userId);
+                sysUser.setLoginIp(loginIp);
+                sysUser.setLoginDate(DateUtils.getNowDate());
+                userService.updateUserProfile(sysUser);
+            }
+        });
     }
 }
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index c3c9e67..27e9d0f 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -130,7 +130,7 @@
     private IServiceSubtaskRecordService serviceSubtaskRecordService;
 
     @Autowired
-    IBaseSmsaccountService baseSmsaccountService;
+    IIcd10Service iIcd10Service;
 
     @Autowired
     IPatArchiveService patArchiveService;
@@ -253,7 +253,8 @@
             } catch (Exception e) {
                 log.error("銆恉ealHisData銆戞柊鍗庢暟鎹噰闆嗗紓甯�", e);
             }
-        } else if (active.trim().equals("hn")) {
+        }
+        else if (active.trim().equals("hn")) {
             try {
                 // 娌冲崡鏁版嵁閲囬泦
                 HnDataGatherVO hnDataGatherVO = new HnDataGatherVO();
@@ -268,7 +269,8 @@
             } catch (Exception e) {
                 log.error("銆恉ealHisData銆戞渤鍗楁暟鎹噰闆嗗紓甯�", e);
             }
-        } else if (active.trim().equals("sltd") || active.trim().equals("nhfy")) {
+        }
+        else if (active.trim().equals("sltd") || active.trim().equals("nhfy")) {
             //鐪佺珛鍚屽痉涓庡崕鍗楅檮涓�鐢ㄥ悓涓�濂楅噰闆嗘柟娉曪紙閮芥槸鏉ユ湭鏉ユ彁渚涳級
 
             try {
@@ -315,6 +317,9 @@
                     }
                     log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滅敤鎴蜂俊鎭�濈粨鏉熼噰闆嗘暟鎹細{}", aBoolean);
                 }
+                //鐤剧梾瀛楀吀閲囬泦
+                iIcd10Service.queryAddIcd10();
+
                 // 鐪佺珛鍚屽痉鏁版嵁閲囬泦
                 for (Long cid : campusidList) {
                     log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
@@ -324,6 +329,10 @@
                     serviceSLTDInhospReqVO.setCampusId(cid);
                     serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime);
                     serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime);
+                    if(active.trim().equals("nhfy")) {
+                        serviceSLTDInhospReqVO.setEncounterTimeStart(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                        serviceSLTDInhospReqVO.setEncounterTimeEnd(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                    }
                     List<String> list = new ArrayList<>();
                     list.add("FH0109.22");
                     list.add("FH0109.23");
@@ -340,6 +349,10 @@
                     serviceSLTDInhospReqVO.setEncounterTimeEnd(null);
                     serviceSLTDInhospReqVO.setStartHeadTime(nowTime);
                     serviceSLTDInhospReqVO.setStartTailTime(nowTime);
+                    if(active.trim().equals("nhfy")) {
+                        serviceSLTDInhospReqVO.setStartHeadTime(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                        serviceSLTDInhospReqVO.setStartTailTime(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                    }
                     List<String> listStr = new ArrayList<>();
                     listStr.add("FH0109.26");
                     serviceSLTDInhospReqVO.setStatusList(listStr);
@@ -353,6 +366,10 @@
                     serviceSLTDInhospReqVO.setStartTailTime(null);
                     serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime);
                     serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime);
+                    if(active.trim().equals("nhfy")) {
+                        serviceSLTDInhospReqVO.setEncounterTimeStart(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                        serviceSLTDInhospReqVO.setEncounterTimeEnd(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                    }
                     serviceSLTDInhospReqVO.setStatusList(null);
                     List<String> list1 = new ArrayList<>();
                     list1.add("FH0108.01");
@@ -387,6 +404,10 @@
                     serviceSLTDInhospReqVO.setEncounterTimeEnd(null);
                     serviceSLTDInhospReqVO.setPreOutHospitalHeadDate(nowTime);
                     serviceSLTDInhospReqVO.setPreOutHospitalTailDate(nowTime);
+                    if(active.trim().equals("nhfy")) {
+                        serviceSLTDInhospReqVO.setPreOutHospitalHeadDate(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                        serviceSLTDInhospReqVO.setPreOutHospitalTailDate(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                    }
                     serviceSLTDInhospReqVO.setHealthcareRecordTypeList(null);
                     List<String> list2 = new ArrayList<>();
 //                    list2.add("FH0108.02");
@@ -435,9 +456,7 @@
             log.error("銆恉ealHisData銆戠渷绔嬪悓寰锋暟鎹噰闆嗗紓甯�", e);
         }
 
-    }
-
-    /**
+    }    /**
      * 杩欎釜鍙槸鏂板崕涓存椂浣跨敤锛屽钩鏃剁敤涓嶅埌
      */
     public void dealHisData2() {
diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
index 5c0653a..ed32dc8 100644
--- a/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
+++ b/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
@@ -198,6 +198,8 @@
         <result property="inhospstate" column="inhospstate"/>
         <result property="deptcheckFlag" column="deptcheck_flag"/>
         <result property="wardcheckFlag" column="wardcheck_flag"/>
+        <result property="inDeptcheckFlag" column="in_deptcheck_flag"/>
+        <result property="inWardcheckFlag" column="in_wardcheck_flag"/>
         <result property="diagcheckFlag" column="diagcheck_flag"/>
         <result property="age" column="age"/>
         <result property="sex" column="sex"/>
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index d242f63..1c28e14 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -28,6 +28,9 @@
 
 import javax.validation.Validator;
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.Executor;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -177,87 +180,103 @@
     public SysUser selectUserByUserName2(String userName) {
         String[] split = userName.split("&");
         SysUser sysUser = userMapper.selectUserByUserNameByCondition(split[0], split[1], null);
+        if (Objects.isNull(sysUser)) return sysUser;
 
-        //鑾峰彇褰撳墠鐧婚檰浜虹殑鏈烘瀯鍜岄櫌锟�?
+        boolean isAdmin = StringUtils.isNotEmpty(split[0]) && "admin".equals(split[0]);
         IUserExtInfoService userExtInfoService = SpringUtils.getBean(IUserExtInfoService.class);
-        Map<String, String> userOrgInfo = userExtInfoService.getUserOrgInfo(
-                sysUser.getUserId().toString(),
-                split[1],
-                split[2]);
+        Executor executor = SpringUtils.getBean("threadPoolTaskExecutor");
+
+        // === 骞惰鏌ヨ: 鐢ㄦ埛鏈烘瀯淇℃伅 + 閮ㄩ棬鍒楄〃 ===
+        CompletableFuture<Map<String, String>> orgInfoFuture = CompletableFuture.supplyAsync(() ->
+                userExtInfoService.getUserOrgInfo(sysUser.getUserId().toString(), split[1], split[2]), executor);
+
+        CompletableFuture<List<SysDept>> deptsFuture;
+        if (isAdmin) {
+            SysDept dept = new SysDept();
+            dept.setOrgid(split[1]);
+            deptsFuture = CompletableFuture.supplyAsync(() -> sysDeptMapper.selectDeptList(dept), executor);
+        } else {
+            deptsFuture = CompletableFuture.supplyAsync(() -> sysUserDeptMapper.selectDeptListByUserId(sysUser.getUserId()), executor);
+        }
+
+        // 绛夊緟鏈烘瀯淇℃伅
+        Map<String, String> userOrgInfo = new HashMap<>();
+        try {
+            userOrgInfo = orgInfoFuture.get(5, TimeUnit.SECONDS);
+        } catch (Exception e) {
+            log.warn("鑾峰彇鐢ㄦ埛鏈烘瀯淇℃伅瓒呮椂鎴栧紓甯�", e);
+        }
         if (!userOrgInfo.isEmpty()) {
             sysUser.setOrgid(userOrgInfo.get("orgid"));
             sysUser.setCampusid(userOrgInfo.get("campusid"));
         }
 
-        if (Objects.isNull(sysUser)) return sysUser;
-        List<SysDept> sysDepts = null;
-        if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
-            SysDept dept = new SysDept();
-            dept.setOrgid(split[1]);
-            sysDepts = sysDeptMapper.selectDeptList(dept);
-        } else {
-            sysDepts = sysUserDeptMapper.selectDeptListByUserId(sysUser.getUserId());
+        // 绛夊緟閮ㄩ棬鍒楄〃
+        List<SysDept> sysDepts = new ArrayList<>();
+        try {
+            sysDepts = deptsFuture.get(5, TimeUnit.SECONDS);
+        } catch (Exception e) {
+            log.warn("鑾峰彇閮ㄩ棬鍒楄〃瓒呮椂鎴栧紓甯�", e);
         }
+
         List<Long> deptIds = new ArrayList<>();
         for (SysDept sysDept : sysDepts) {
             deptIds.add(sysDept.getDeptId());
         }
-        SysUserDept sysUserDept = new SysUserDept();
-        sysUserDept.setUserId(sysUser.getUserId());
-        sysUserDept.setDeptType(sysUser.getSearchscope());
-        sysUserDept.setOrgid(split[1]);
+
+        // === 鏌ヨ绉戝鍜岀梾鍖轰俊鎭� ===
         List<SysUserDept> sysUserDeptKSs = null;
         List<SysUserDept> sysUserDeptBQs = null;
-        if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("0")) {
-            if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
-                sysUserDept.setUserId(null);
-            }
-            sysUserDept.setDeptType("1");
-            sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
-            sysUserDept.setDeptType("2");
-            sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
-            //濡傛灉鏄痑dmin锛岄渶瑕佸sysUserDeptBQs锛宻ysUserDeptBQs鍘婚噸
-            if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
-                //濡傛灉鏄痑dmin锛屽彧鑳藉幓sys_dept鍘诲彇鏁版嵁
-                SysDept dept = new SysDept();
-                dept.setOrgid(split[1]);
-                dept.setDeptType("1");
-                sysDepts = sysDeptMapper.selectDeptList(dept);
-                sysUserDeptKSs = DtoConversionUtils.sourceToTarget(sysDepts, SysUserDept.class);
-
-                dept.setDeptType("2");
-                sysDepts = sysDeptMapper.selectDeptList(dept);
-                sysUserDeptBQs = DtoConversionUtils.sourceToTarget(sysDepts, SysUserDept.class);
-
-                List<SysUserDept> distinctUserDepts = new ArrayList<>();
-                Set<String> uniqueDeptCodes = new HashSet<>();
-                for (SysUserDept userDept : sysUserDeptKSs) {
-                    String deptCode = userDept.getDeptCode();
-                    if (StringUtils.isNotEmpty(deptCode) && !uniqueDeptCodes.contains(deptCode)) {
-                        distinctUserDepts.add(userDept);
-                        uniqueDeptCodes.add(deptCode);
+        if (StringUtils.isNotEmpty(sysUser.getSearchscope())) {
+            if ("0".equals(sysUser.getSearchscope())) {
+                if (isAdmin) {
+                    // admin鐩存帴浠巗ys_dept鏌ヨ锛岃烦杩囨棤鎰忎箟鐨剆electSysUserDeptList
+                    SysDept deptKS = new SysDept();
+                    deptKS.setOrgid(split[1]);
+                    deptKS.setDeptType("1");
+                    SysDept deptBQ = new SysDept();
+                    deptBQ.setOrgid(split[1]);
+                    deptBQ.setDeptType("2");
+                    CompletableFuture<List<SysDept>> ksFuture = CompletableFuture.supplyAsync(() -> sysDeptMapper.selectDeptList(deptKS), executor);
+                    CompletableFuture<List<SysDept>> bqFuture = CompletableFuture.supplyAsync(() -> sysDeptMapper.selectDeptList(deptBQ), executor);
+                    try {
+                        sysUserDeptKSs = distinctByDeptCode(DtoConversionUtils.sourceToTarget(ksFuture.get(5, TimeUnit.SECONDS), SysUserDept.class));
+                        sysUserDeptBQs = distinctByDeptCode(DtoConversionUtils.sourceToTarget(bqFuture.get(5, TimeUnit.SECONDS), SysUserDept.class));
+                    } catch (Exception e) {
+                        log.warn("鑾峰彇admin绉戝/鐥呭尯淇℃伅瓒呮椂鎴栧紓甯�", e);
+                    }
+                } else {
+                    // 骞惰鏌ヨ绉戝鍜岀梾鍖�
+                    SysUserDept queryKS = new SysUserDept();
+                    queryKS.setUserId(sysUser.getUserId());
+                    queryKS.setDeptType("1");
+                    queryKS.setOrgid(split[1]);
+                    SysUserDept queryBQ = new SysUserDept();
+                    queryBQ.setUserId(sysUser.getUserId());
+                    queryBQ.setDeptType("2");
+                    queryBQ.setOrgid(split[1]);
+                    CompletableFuture<List<SysUserDept>> ksFuture = CompletableFuture.supplyAsync(() -> sysUserDeptMapper.selectSysUserDeptList(queryKS), executor);
+                    CompletableFuture<List<SysUserDept>> bqFuture = CompletableFuture.supplyAsync(() -> sysUserDeptMapper.selectSysUserDeptList(queryBQ), executor);
+                    try {
+                        sysUserDeptKSs = ksFuture.get(5, TimeUnit.SECONDS);
+                        sysUserDeptBQs = bqFuture.get(5, TimeUnit.SECONDS);
+                    } catch (Exception e) {
+                        log.warn("鑾峰彇绉戝/鐥呭尯淇℃伅瓒呮椂鎴栧紓甯�", e);
                     }
                 }
-
-                List<SysUserDept> distinctUserBQs = new ArrayList<>();
-                Set<String> uniqueBQCodes = new HashSet<>();
-                for (SysUserDept userDept : sysUserDeptBQs) {
-                    String deptCode = userDept.getDeptCode();
-                    if (StringUtils.isNotEmpty(deptCode) && !uniqueBQCodes.contains(deptCode)) {
-                        distinctUserBQs.add(userDept);
-                        uniqueBQCodes.add(deptCode);
-                    }
-                }
-                sysUserDeptKSs = distinctUserDepts;
-                sysUserDeptBQs = distinctUserBQs;
+            } else if ("1".equals(sysUser.getSearchscope())) {
+                SysUserDept queryKS = new SysUserDept();
+                queryKS.setUserId(sysUser.getUserId());
+                queryKS.setDeptType("1");
+                queryKS.setOrgid(split[1]);
+                sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(queryKS);
+            } else if ("2".equals(sysUser.getSearchscope())) {
+                SysUserDept queryBQ = new SysUserDept();
+                queryBQ.setUserId(sysUser.getUserId());
+                queryBQ.setDeptType("2");
+                queryBQ.setOrgid(split[1]);
+                sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(queryBQ);
             }
-
-        } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("1")) {
-            sysUserDept.setDeptType("1");
-            sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
-        } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("2")) {
-            sysUserDept.setDeptType("2");
-            sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
         }
 
         sysUser.setDepts(deptIds);
@@ -285,16 +304,32 @@
                 if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("deptName", sud.getDeptName());
                 list.add(map);
             }
-            //鑾峰彇褰撳墠鏈烘瀯鐨勬弧鎰忓害闂鍒嗙被
             sysUser.setBelongDepts(list);
-            Map<String, Object> satisfactionCategories = new HashMap<>();
-            //璁剧疆褰撳墠鐢ㄦ埛鐨勫0闊抽棶棰樺垎绫诲拰闂嵎闂鍒嗙被
-            IUserExtInfoService userExtInfoService3 = SpringUtils.getBean(IUserExtInfoService.class);
-            sysUser.setSatisfactionCategories(userExtInfoService3.getSatisfactionCategories(sysUser.getOrgid()));
+            // 璁剧疆婊℃剰搴﹀垎绫伙紙璧扮紦瀛橈級
+            sysUser.setSatisfactionCategories(userExtInfoService.getSatisfactionCategories(sysUser.getOrgid()));
         }
         return sysUser;
     }
 
+    /**
+     * 鎸塪eptCode鍘婚噸
+     */
+    private List<SysUserDept> distinctByDeptCode(List<SysUserDept> list) {
+        if (CollectionUtils.isEmpty(list)) {
+            return list;
+        }
+        List<SysUserDept> result = new ArrayList<>();
+        Set<String> uniqueCodes = new HashSet<>();
+        for (SysUserDept item : list) {
+            String deptCode = item.getDeptCode();
+            if (StringUtils.isNotEmpty(deptCode) && !uniqueCodes.contains(deptCode)) {
+                result.add(item);
+                uniqueCodes.add(deptCode);
+            }
+        }
+        return result;
+    }
+
     @Override
     public SysUser selectUserByUserNameAndDeptId(String userName) {
         String[] split = userName.split("&");
diff --git a/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java b/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
index 80119b4..14ec743 100644
--- a/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
+++ b/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
@@ -207,9 +207,9 @@
     private String drname;
 
     /**
-     * 鏄惁鐢熸垚鏂规鐘舵��;0鏈敓鎴� 1鐢熸垚鍏ラ櫌 2鐢熸垚鍑洪櫌 9鏃犲尮閰嶆柟妗�   3鐢熸垚鍏ラ櫌鎾ら攢   4鐢熸垚鍑洪櫌鎾ら攢
+     * 鏄惁鐢熸垚鏂规鐘舵��;0棰勫叆闄� 1鐢熸垚鍏ラ櫌 2鐢熸垚鍑洪櫌 9鏃犲尮閰嶆柟妗�   3鐢熸垚鍏ラ櫌鎾ら攢   4鐢熸垚鍑洪櫌鎾ら攢
      */
-    @ApiModelProperty(value = "鏄惁鐢熸垚鏂规鐘舵��;0鏈敓鎴� 1鐢熸垚鍏ラ櫌 2鐢熸垚鍑洪櫌 9鏃犲尮閰嶆柟妗�   3鐢熸垚鍏ラ櫌鎾ら攢   4鐢熸垚鍑洪櫌鎾ら攢")
+    @ApiModelProperty(value = "鏄惁鐢熸垚鏂规鐘舵��;0棰勫叆闄� 1鐢熸垚鍏ラ櫌 2鐢熸垚鍑洪櫌 9鏃犲尮閰嶆柟妗�   3鐢熸垚鍏ラ櫌鎾ら攢   4鐢熸垚鍑洪櫌鎾ら攢")
     private Long schemestatus;
 
     /**
@@ -309,6 +309,18 @@
     private String diagcheckFlag;
 
     /**
+     * 鍏ラ櫌绉戝闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊
+     */
+    @ApiModelProperty(value = "鍏ラ櫌绉戝闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊鎴愬姛    2澶勭悊澶辫触 ")
+    private String  inDeptcheckFlag;
+
+    /**
+     * 鍏ラ櫌鐥呭尯闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊
+     */
+    @ApiModelProperty(value = "鍏ラ櫌鐥呭尯闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊鎴愬姛    2澶勭悊澶辫触 ")
+    private String inWardcheckFlag;
+
+    /**
      * 骞撮緞
      */
     @ApiModelProperty(value = "骞撮緞")
diff --git a/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java b/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java
index a725272..08ce3c5 100644
--- a/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java
+++ b/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java
@@ -57,6 +57,18 @@
     private String deptcheckFlag;
 
     /**
+     * 鍏ラ櫌绉戝闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊
+     */
+    @ApiModelProperty(value = "鍏ラ櫌绉戝闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊鎴愬姛    2澶勭悊澶辫触 ")
+    private String  inDeptcheckFlag;
+
+    /**
+     * 鍏ラ櫌鐥呭尯闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊
+     */
+    @ApiModelProperty(value = "鍏ラ櫌鐥呭尯闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊鎴愬姛    2澶勭悊澶辫触 ")
+    private String inWardcheckFlag;
+
+    /**
      * 鎶ゅ+ID
      */
     @ApiModelProperty(value = "鎶ゅ+ID")
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
index 380051c..03c9436 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -156,10 +156,10 @@
     private String type;
 
     /**
-     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚)
+     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�
      */
-    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚")
-    @ApiModelProperty(value = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿  16璇鹃闅忚")
+    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�")
+    @ApiModelProperty(value = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�")
     private String serviceType;
 
     @ApiModelProperty(value = "鏈嶅姟绫诲瀷闆嗗悎锛屾寜閫楀彿鍒嗗壊")
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskRes.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskRes.java
index 2359194..c433d10 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskRes.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskRes.java
@@ -156,10 +156,10 @@
     private String type;
 
     /**
-     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚)
+     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�
      */
-    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚")
-    @ApiModelProperty(value = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿  16璇鹃闅忚")
+    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁縗n")
+    @ApiModelProperty(value = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁縗n")
     private String serviceType;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceTask.java b/smartor/src/main/java/com/smartor/domain/ServiceTask.java
index 53b0d91..f1435c8 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceTask.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceTask.java
@@ -172,10 +172,10 @@
     private String type;
 
     /**
-     * "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿"
+     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�
      */
-    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚")
-    @ApiModelProperty(value = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚")
+    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�")
+    @ApiModelProperty(value = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�")
     private String serviceType;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java b/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
index 23a40ab..771d890 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
@@ -331,10 +331,10 @@
     private String showDate;
 
     /**
-     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)
+     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�
      */
-    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)")
-    @ApiModelProperty(value = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)")
+    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�")
+    @ApiModelProperty(value = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�")
     private String serviceType;
 
     @ApiModelProperty(value = "寮�鍦虹櫧")
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceTaskdept.java b/smartor/src/main/java/com/smartor/domain/ServiceTaskdept.java
index 907b14b..c2cb6e0 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceTaskdept.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceTaskdept.java
@@ -45,10 +45,10 @@
     private Long longtask;
 
     /**
-     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)
+     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�
      */
-    @ApiModelProperty("鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)")
-    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)")
+    @ApiModelProperty("鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�")
+    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�")
     private String serviceType;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceTaskdiag.java b/smartor/src/main/java/com/smartor/domain/ServiceTaskdiag.java
index 9697a7b..d5f572c 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceTaskdiag.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceTaskdiag.java
@@ -46,10 +46,10 @@
     private String taskName;
 
     /**
-     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)
+     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�
      */
-    @ApiModelProperty("鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)")
-    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)")
+    @ApiModelProperty("鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9銆佷綋妫�闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿  16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�)")
+    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9銆佷綋妫�闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿  16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�)")
     private String serviceType;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceTaskoper.java b/smartor/src/main/java/com/smartor/domain/ServiceTaskoper.java
index 2030660..fd644b1 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceTaskoper.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceTaskoper.java
@@ -46,10 +46,10 @@
     private String taskName;
 
     /**
-     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)
+     * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�
      */
-    @ApiModelProperty("鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)")
-    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)")
+    @ApiModelProperty("鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�")
+    @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�(鍑洪櫌)  5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚  11锛屽奖鍍忎笓绉戦殢璁�  12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚   14銆侀棬璇婃弧鎰忓害璋冩煡  15鎶曡瘔寤鸿 16璇鹃闅忚  17銆佸鏁欏叧鎬�(鍏ラ櫌)  18銆佸叆闄㈤殢璁�)")
     private String serviceType;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/mapper/Icd10Mapper.java b/smartor/src/main/java/com/smartor/mapper/Icd10Mapper.java
index 2354f6f..1c8f307 100644
--- a/smartor/src/main/java/com/smartor/mapper/Icd10Mapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/Icd10Mapper.java
@@ -2,6 +2,7 @@
 
 import com.smartor.domain.Icd10;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -37,8 +38,21 @@
      */
     public int insertIcd10(Icd10 icd10);
 
+    /**
+     * 鎵归噺鏂板鐤剧梾
+     *
+     * @param icd10s 鐤剧梾闆嗗悎
+     * @return 缁撴灉
+     */
     public int batchIcd10(List<Icd10> icd10s);
 
+    /**
+     * 鎵归噺鏌ヨ宸插瓨鍦ㄧ殑 icdcode锛堢敤浜庡幓閲嶏級
+     *
+     * @param icdcodes icdcode闆嗗悎
+     * @return 宸插瓨鍦ㄧ殑 icdcode 闆嗗悎
+     */
+    public List<String> selectExistingIcdcodes(@Param("icdnames") List<String> icdnames);
 
     /**
      * 淇敼鐤剧梾
diff --git a/smartor/src/main/java/com/smartor/service/IIcd10Service.java b/smartor/src/main/java/com/smartor/service/IIcd10Service.java
index c036844..4e3f0e4 100644
--- a/smartor/src/main/java/com/smartor/service/IIcd10Service.java
+++ b/smartor/src/main/java/com/smartor/service/IIcd10Service.java
@@ -6,15 +6,14 @@
 
 /**
  * 鐤剧梾Service鎺ュ彛
- * 
+ *
  * @author ruoyi
  * @date 2023-12-21
  */
-public interface IIcd10Service 
-{
+public interface IIcd10Service {
     /**
      * 鏌ヨ鐤剧梾
-     * 
+     *
      * @param icdid 鐤剧梾涓婚敭
      * @return 鐤剧梾
      */
@@ -22,7 +21,7 @@
 
     /**
      * 鏌ヨ鐤剧梾鍒楄〃
-     * 
+     *
      * @param icd10 鐤剧梾
      * @return 鐤剧梾闆嗗悎
      */
@@ -30,7 +29,7 @@
 
     /**
      * 鏂板鐤剧梾
-     * 
+     *
      * @param icd10 鐤剧梾
      * @return 缁撴灉
      */
@@ -38,7 +37,7 @@
 
     /**
      * 淇敼鐤剧梾
-     * 
+     *
      * @param icd10 鐤剧梾
      * @return 缁撴灉
      */
@@ -46,7 +45,7 @@
 
     /**
      * 鎵归噺鍒犻櫎鐤剧梾
-     * 
+     *
      * @param icdids 闇�瑕佸垹闄ょ殑鐤剧梾涓婚敭闆嗗悎
      * @return 缁撴灉
      */
@@ -54,9 +53,16 @@
 
     /**
      * 鍒犻櫎鐤剧梾淇℃伅
-     * 
+     *
      * @param icdid 鐤剧梾涓婚敭
      * @return 缁撴灉
      */
     public int deleteIcd10ByIcdid(Long icdid);
+
+    /**
+     * 浠庤繙绋嬫帴鍙o紙鏉ユ湭鏉ワ級鍒嗛〉鎷夊彇骞跺閲忓啓鍏� icd10 琛�
+     *
+     * @return 鏂板鏉℃暟
+     */
+    public int queryAddIcd10();
 }
diff --git a/smartor/src/main/java/com/smartor/service/impl/Icd10ServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/Icd10ServiceImpl.java
index e84b6a3..5b2d4a9 100644
--- a/smartor/src/main/java/com/smartor/service/impl/Icd10ServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/Icd10ServiceImpl.java
@@ -1,97 +1,261 @@
 package com.smartor.service.impl;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.google.gson.Gson;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.http.HttpUtils;
 import com.smartor.domain.Icd10;
 import com.smartor.mapper.Icd10Mapper;
 import com.smartor.service.IIcd10Service;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 鐤剧梾Service涓氬姟灞傚鐞�
- * 
+ *
  * @author ruoyi
  * @date 2023-12-21
  */
+@Slf4j
 @Service
-public class Icd10ServiceImpl implements IIcd10Service
-{
+public class Icd10ServiceImpl implements IIcd10Service {
+
     @Autowired
     private Icd10Mapper icd10Mapper;
 
+    @Value("${sltd_pub_path}")
+    private String sltdPubPath;
+
+    @Value("${lwl_app_key}")
+    private String APP_KEY;
+
+    /**
+     * 鍥哄畾 orgId
+     */
+    private static final long ORG_ID = 20001001L;
+    /**
+     * 姣忛〉鎷夊彇鏉℃暟锛堟帴鍙f渶澶у厑璁� 1000锛�
+     */
+    private static final int PAGE_SIZE = 1000;
+    /**
+     * 鎵归噺鍐欏叆鍗曟壒鏈�澶ф潯鏁�
+     */
+    private static final int BATCH_SIZE = 500;
+
     /**
      * 鏌ヨ鐤剧梾
-     * 
+     *
      * @param icdid 鐤剧梾涓婚敭
      * @return 鐤剧梾
      */
     @Override
-    public Icd10 selectIcd10ByIcdid(Long icdid)
-    {
+    public Icd10 selectIcd10ByIcdid(Long icdid) {
         return icd10Mapper.selectIcd10ByIcdid(icdid);
     }
 
     /**
      * 鏌ヨ鐤剧梾鍒楄〃
-     * 
+     *
      * @param icd10 鐤剧梾
      * @return 鐤剧梾
      */
     @Override
-    public List<Icd10> selectIcd10List(Icd10 icd10)
-    {
+    public List<Icd10> selectIcd10List(Icd10 icd10) {
         return icd10Mapper.selectIcd10List(icd10);
     }
 
     /**
      * 鏂板鐤剧梾
-     * 
+     *
      * @param icd10 鐤剧梾
      * @return 缁撴灉
      */
     @Override
-    public int insertIcd10(Icd10 icd10)
-    {
+    public int insertIcd10(Icd10 icd10) {
         icd10.setCreateTime(DateUtils.getNowDate());
         return icd10Mapper.insertIcd10(icd10);
     }
 
     /**
      * 淇敼鐤剧梾
-     * 
+     *
      * @param icd10 鐤剧梾
      * @return 缁撴灉
      */
     @Override
-    public int updateIcd10(Icd10 icd10)
-    {
+    public int updateIcd10(Icd10 icd10) {
         icd10.setUpdateTime(DateUtils.getNowDate());
         return icd10Mapper.updateIcd10(icd10);
     }
 
     /**
      * 鎵归噺鍒犻櫎鐤剧梾
-     * 
+     *
      * @param icdids 闇�瑕佸垹闄ょ殑鐤剧梾涓婚敭
      * @return 缁撴灉
      */
     @Override
-    public int deleteIcd10ByIcdids(Long[] icdids)
-    {
+    public int deleteIcd10ByIcdids(Long[] icdids) {
         return icd10Mapper.deleteIcd10ByIcdids(icdids);
     }
 
     /**
      * 鍒犻櫎鐤剧梾淇℃伅
-     * 
+     *
      * @param icdid 鐤剧梾涓婚敭
      * @return 缁撴灉
      */
     @Override
-    public int deleteIcd10ByIcdid(Long icdid)
-    {
+    public int deleteIcd10ByIcdid(Long icdid) {
         return icd10Mapper.deleteIcd10ByIcdid(icdid);
     }
+
+    /**
+     * 浠庤繙绋嬫帴鍙o紙鏉ユ湭鏉ワ級鍒嗛〉鎷夊彇骞跺閲忓啓鍏� icd10 琛ㄣ��
+     * <p>
+     * 浼樺寲瑕佺偣锛�
+     * 1. 姣忛〉鏈�澶ф媺鍙� 1000 鏉★紝鍑忓皯璇锋眰娆℃暟銆�
+     * 2. 姣忛〉鎶婂綋鍓嶉〉鎵�鏈� icdcode 鐢ㄤ竴鏉� IN SQL 涓�娆℃壒閲忔煡搴擄紝閬垮厤寰幆 N 娆″崟鏉℃煡璇€��
+     * 3. 灏嗕笉瀛樺湪鐨勮褰曟敹闆嗗悗鍒嗘壒锛堟瘡鎵� 500 鏉★級鎵归噺鎻掑叆銆�
+     * </p>
+     *
+     * @return 鏈杩愯鏂板鎬绘潯鏁�
+     */
+    @Override
+    public int queryAddIcd10() {
+        int totalInserted = 0;
+        long current = 1;
+        long totalPages = 1; // 棣栨寰幆鍓嶅厛鎵ц涓�娆�
+
+        log.info("[寮�濮媇 浠庢潵鏈潵鎷夊彇 ICD10 澧為噺鏁版嵁锛宱rgId={}", ORG_ID);
+
+        do {
+            // 鏋勫缓璇锋眰浣�
+            Map<String, Object> requestBody = new HashMap<>();
+            requestBody.put("orgId", ORG_ID);
+            requestBody.put("searchText", "");
+            requestBody.put("size", PAGE_SIZE);
+            requestBody.put("current", current);
+
+            String responseStr;
+            try {
+                Map<String, String> headers = buildRequestHeaders();
+                responseStr = HttpUtils.sendPostByHeader(sltdPubPath + "/hbos-thirdparty-integration/standard/base/dtc/pageDiagnosisDict", new Gson().toJson(requestBody), headers);
+
+            } catch (Exception e) {
+                log.error("[绗瑊}椤礭 璇锋眰鏉ユ湭鏉ユ帴鍙eけ璐�", current, e);
+                break;
+            }
+
+            if (responseStr == null || responseStr.isEmpty()) {
+                log.warn("[绗瑊}椤礭 鎺ュ彛杩斿洖绌猴紝鍋滄閲囬泦", current);
+                break;
+            }
+
+            JSONObject resp = JSON.parseObject(responseStr);
+            if (resp == null || !Boolean.TRUE.equals(resp.getBoolean("success"))) {
+                log.error("[绗瑊}椤礭 鎺ュ彛杩斿洖澶辫触锛歿}", current, responseStr);
+                break;
+            }
+
+            JSONObject data = resp.getJSONObject("data");
+            if (data == null) {
+                break;
+            }
+
+            // 璁$畻鎬婚〉鏁�
+            long total = data.getLongValue("total");
+            long pageSize = data.getLongValue("size");
+            if (pageSize <= 0) {
+                break;
+            }
+            totalPages = (total + pageSize - 1) / pageSize;
+
+            JSONArray records = data.getJSONArray("records");
+            if (records == null || records.isEmpty()) {
+                break;
+            }
+
+            log.info("[绗瑊}/{}椤礭 鑾峰彇 {} 鏉¤褰曪紝鎬粄}鏉�", current, totalPages, records.size(), total);
+
+            // 瑙f瀽褰撳墠椤垫暟鎹�
+            List<String> pageNames = new ArrayList<>();
+            List<Icd10> pageList = new ArrayList<>();
+            for (int i = 0; i < records.size(); i++) {
+                JSONObject rec = records.getJSONObject(i);
+                String icdCode = rec.getString("icdCode");
+                if (icdCode == null || icdCode.isEmpty()) {
+                    continue;
+                }
+                String icdName = StringUtils.isEmpty(rec.getString("name")) ? null : rec.getString("name").trim();
+                if (icdName == null || icdName.isEmpty()) {
+                    continue;
+                }
+                pageNames.add(icdName);
+
+                Icd10 icd10 = new Icd10();
+                icd10.setIcdcode(icdCode);
+                icd10.setIcdname(icdName);
+                icd10.setIcdpym(rec.getString("pinyin"));
+                icd10.setHisIcdid(rec.getString("his_icdid"));
+                icd10.setOrgid(String.valueOf(ORG_ID));
+                icd10.setDelFlag("0");
+                icd10.setCreateTime(DateUtils.getNowDate());
+                pageList.add(icd10);
+            }
+
+            if (pageNames.isEmpty()) {
+                current++;
+                continue;
+            }
+
+            // 涓�娆� IN 鏌ュ簱锛岃幏鍙栧凡瀛樺湪鐨� icdname锛堟牳蹇冨幓閲嶄紭鍖栫偣锛夊崡鍗庨檮涓�鐨刬cdname涓嶄細閲嶅锛宨cd10code浼氶噸澶�
+            Set<String> existingNames = new HashSet<>(icd10Mapper.selectExistingIcdcodes(pageNames));
+
+            // 杩囨护鍑轰笉瀛樺湪鐨勮褰�
+            List<Icd10> newList = pageList.stream().filter(item -> !existingNames.contains(item.getIcdname())).collect(Collectors.toList());
+
+            log.info("[绗瑊}/{}椤礭 褰撳墠椤靛叡 {} 鏉★紝宸插瓨鍦� {} 鏉★紝闇�鏂板叆搴� {} 鏉�", current, totalPages, pageList.size(), existingNames.size(), newList.size());
+
+            // 鍒嗘壒鎵归噺鎻掑叆
+            int inserted = batchInsert(newList);
+            totalInserted += inserted;
+
+            current++;
+        } while (current <= totalPages);
+
+        log.info("[瀹屾垚] ICD10 澧為噺閲囬泦缁撴潫锛屾湰娆″叡鏂板 {} 鏉�", totalInserted);
+        return totalInserted;
+    }
+
+    /**
+     * 鍒嗘壒鎵归噺鎻掑叆锛屾瘡鎵规渶澶� BATCH_SIZE 鏉�
+     */
+    private int batchInsert(List<Icd10> list) {
+        if (list == null || list.isEmpty()) {
+            return 0;
+        }
+        int total = 0;
+        int size = list.size();
+        for (int start = 0; start < size; start += BATCH_SIZE) {
+            int end = Math.min(start + BATCH_SIZE, size);
+            total += icd10Mapper.batchIcd10(list.subList(start, end));
+        }
+        return total;
+    }
+
+    private Map<String, String> buildRequestHeaders() {
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("app-key", APP_KEY);
+        return headers;
+    }
 }
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 dadc6ce..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;
 
 
     /**
@@ -220,167 +223,335 @@
 
     @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);
 
-//        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) {
-//            //鑾峰彇鎮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.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() + "璇ユ偅鑰呮墍鍦ㄧ瀹ゆ湭閰嶇疆闀挎湡浠诲姟;");
+            //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");
+        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) {
+            //鑾峰彇鎮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);
+                    }
+//                    patMedInhosp1.setDeptcheckFlag("1");
 //                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-//                } else {
-//                    for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
-//                        writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config);
-//                    }
-////                    patMedInhosp1.setDeptcheckFlag("1");
-////                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-//                }
-//
-//            } catch (Exception e) {
-//                e.printStackTrace();
-//                log.error("浜哄憳绉戝澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
-//                patMedInhosp1.setDeptcheckFlag("2");
-//                patMedInhosp1.setLongTaskReason("浜哄憳绉戝澶勭悊寮傚父锛�" + e.getMessage());
-//                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-//            }
-//        }
+                }
+
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("浜哄憳绉戝澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
+                patMedInhosp1.setDeptcheckFlag("2");
+                patMedInhosp1.setLongTaskReason("浜哄憳绉戝澶勭悊寮傚父锛�" + e.getMessage());
+                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+            }
+        }
 
         //鏍规嵁鎮h�呮墍鍦ㄧ梾鍖猴紝鑾峰彇璇ョ梾鍖虹殑闀挎湡浠诲姟,鏂板崕鍖婚櫌鍙互鍏堜笉鐢ㄦ牴鎹梾鍖哄拰鐤剧梾鏉ュ仛
         if (!active.equals("xh")) {
-//            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) {
-//                //鑾峰彇鎮h�呬俊鎭�
-//                PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiBQ1.getPatid());
-//                if (Objects.isNull(patArchive)) {
-//                    pmiBQ1.setWardcheckFlag("2");
-//                    pmiBQ1.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
-//                    patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
-//                    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);
-//                    //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
-//                    if (CollectionUtils.isEmpty(serviceTaskdeptList) || serviceTaskdeptList.size() == 0) {
-//                        PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiBQ1.getInhospid());
-//                        pmiBQ1.setWardcheckFlag("2");
-//                        pmiBQ1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ梾鍖烘湭閰嶇疆闀挎湡浠诲姟;");
+            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) {
+                //鑾峰彇鎮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);
+                        }
+//                        pmiBQ1.setWardcheckFlag("1");
 //                        patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
-//                    } else {
-//                        for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
-//                            writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config);
-//                        }
-////                        pmiBQ1.setWardcheckFlag("1");
-////                        patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
-//                    }
-//
-//
-//                } catch (Exception e) {
-//                    e.printStackTrace();
-//                    log.error("浜哄憳鐥呭尯澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
-//                    pmiBQ1.setWardcheckFlag("2");
-//                    pmiBQ1.setLongTaskReason("浜哄憳鐥呭尯澶勭悊寮傚父锛�" + e.getMessage());
-//                    patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
-//                }
-//            }
-//
-//            PatMedInhosp pmjb = new PatMedInhosp();
+                    }
+
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    log.error("浜哄憳鐥呭尯澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
+                    pmiBQ1.setWardcheckFlag("2");
+                    pmiBQ1.setLongTaskReason("浜哄憳鐥呭尯澶勭悊寮傚父锛�" + e.getMessage());
+                    patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
+                }
+            }
+
+            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.selectServiceTaskdiagList(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 = "璇ユ偅鑰呮墍鍦ㄧ梾鍖烘湭閰嶇疆闀挎湡浠诲姟;";
+                        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) {
+                            writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config);
+                        }
+//                        pmiJB.setDiagcheckFlag("1");
+//                        patMedInhospMapper.updatePatMedInhosp(pmiJB);
+                    }
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    log.error("浜哄憳鐤剧梾澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
+                    pmiJB.setDiagcheckFlag("2");
+                    pmiJB.setLongTaskReason("浜哄憳鐤剧梾澶勭悊寮傚父锛�" + e.getMessage());
+                    patMedInhospMapper.updatePatMedInhosp(pmiJB);
+                }
+            }
+//            鎵嬫湳闅忚
+//            PatMedInhosp pmss = 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) {
+//            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 pmiJB : patMedInhospJBs) {
+//            for (PatMedInhosp pmiSS : patMedInhospSSs) {
 //                //鑾峰彇鎮h�呬俊鎭�
-//                PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiJB.getPatid());
+//                PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiSS.getPatid());
 //                if (Objects.isNull(patArchive)) {
-//                    pmiJB.setDiagcheckFlag("2");
-//                    pmiJB.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
-//                    patMedInhospMapper.updatePatMedInhosp(pmiJB);
+//                    pmiSS.setDiagcheckFlag("2");
+//                    pmiSS.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
+//                    patMedInhospMapper.updatePatMedInhosp(pmiSS);
 //                    continue;
 //                }
 //                try {
-//                    if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) {
-//                        continue;
-//                    }
+////                    if (StringUtils.isEmpty(pmiSS.getLeaveicd10code())) {
+////                        continue;
+////                    }
 //                    // 鏍规嵁鎮h�呯殑鐤剧梾锛岃幏鍙栬鐤剧梾鐨勯暱鏈熶换鍔�
-//                    ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
-//                    serviceTaskdiag.setLongtask(1L);
-//                    serviceTaskdiag.setIcd10code(pmiJB.getLeaveicd10code());
-//                    serviceTaskdiag.setOrgid(pmiJB.getOrgid());
+//                    ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
+//                    serviceTaskoper.setLongtask(1L);
+//                    serviceTaskoper.setOrgid(pmiSS.getOrgid());
+//                    //todo
+//                    serviceTaskoper.setOplevelcode("");
 //
-//                    List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagList(serviceTaskdiag);
+//                    List<ServiceTaskoper> serviceTaskopers = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper);
 //                    //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
-//                    if (CollectionUtils.isEmpty(serviceTaskdiags) || serviceTaskdiags.size() == 0) {
-//                        PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid());
-//                        pmiJB.setDiagcheckFlag("2");
-//                        pmiJB.setLongTaskReason(patMedInhosp.getLongTaskReason() + "鎵�鎮g殑鐤剧梾鏈厤缃暱鏈熶换鍔�;");
-//                        patMedInhospMapper.updatePatMedInhosp(pmiJB);
+//                    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 (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) {
-//                            writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config);
+//                        for (ServiceTaskoper serviceTaskoper1 : serviceTaskopers) {
+//                            writeInSubTask(serviceTaskoper1.getTaskId(), true, pmiSS, patArchive, 3, config);
 //                        }
-////                        pmiJB.setDiagcheckFlag("1");
-////                        patMedInhospMapper.updatePatMedInhosp(pmiJB);
 //                    }
 //
 //                } catch (Exception e) {
 //                    e.printStackTrace();
-//                    log.error("浜哄憳鐤剧梾澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
-//                    pmiJB.setDiagcheckFlag("2");
-//                    pmiJB.setLongTaskReason("浜哄憳鐤剧梾澶勭悊寮傚父锛�" + e.getMessage());
-//                    patMedInhospMapper.updatePatMedInhosp(pmiJB);
+//                    log.error("浜哄憳鎵嬫湳澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
+//                    pmiSS.setOpercheckFlag("2");
+//                    pmiSS.setLongTaskReason("浜哄憳鎵嬫湳澶勭悊寮傚父锛�" + e.getMessage());
+//                    patMedInhospMapper.updatePatMedInhosp(pmiSS);
 //                }
 //            }
 //            鎵嬫湳闅忚
@@ -944,143 +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;
-        }
-        PatMedInhosp patMedInhosp = new PatMedInhosp();
-        patMedInhosp.setPatid(patMedOperation.getPatid());
-        patMedInhosp.setInhospstate("1");
-        patMedInhosp.setFuflag("1");
-        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
-
-        if (CollectionUtils.isEmpty(patMedInhospList)) {
-            return;
-        }
-
-        //灏佽serviceSubtask
-        ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), 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());
@@ -1194,79 +1228,6 @@
 
         }
 
-        //鎮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;
-    }
-
-    //灏佽serviceSubtask
-    private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, 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());
-
-        //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);
-            //濡傛灉鍑洪櫌鏃堕棿涓虹┖锛屽垯杩斿洖涓�涓柊瀵硅薄
-            return new ServiceSubtask();
-        }
-        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();
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
index 6df1fae..9644504 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -79,7 +79,8 @@
         try {
             Map<String, Object> requestParams = buildRequestParams(reqVO);
             Map<String, String> headers = buildRequestHeaders();
-            String result = HttpUtils.sendPostByHeader(sltdPubPath + "osj/hbos-thirdparty-integration/standard/common/healthcareRecord/dtcQueryHealthcareRecordList", new Gson().toJson(requestParams), headers);
+            log.info("璇锋眰鍙傛暟鍑洪櫌鏁版嵁鍦板潃锛歿},appKey:{}", sltdPubPath + "/osj/hbos-thirdparty-integration/standard/common/healthcareRecord/dtcQueryHealthcareRecordList", APP_KEY);
+            String result = HttpUtils.sendPostByHeader(sltdPubPath + "/osj/hbos-thirdparty-integration/standard/common/healthcareRecord/dtcQueryHealthcareRecordList", new Gson().toJson(requestParams), headers);
 
             String cry = determineCry(reqVO);
             log.info("cry鐨勫�间负锛歿}", cry);
@@ -88,7 +89,7 @@
             return serviceSLTDInhospResDTOS;
         } catch (Exception e) {
             log.error("銆恞ueryHealthcareRecordList銆戣皟鐢ㄧ渷绔嬪悓寰峰仴搴疯褰曟煡璇㈡帴鍙e紓甯革紝璇锋眰鍙傛暟锛歿}", reqVO, e);
-            throw new RuntimeException("璋冪敤鐪佺珛鍚屽痉鍋ュ悍璁板綍鏌ヨ鎺ュ彛澶辫触", e);
+            throw new RuntimeException("璋冪敤鐪佺珛鍚屽痉鍋ュ悍璁板綍鏌ヨ鎺ュ彛澶辫触:" + e.getMessage());
         }
     }
 
@@ -584,6 +585,7 @@
         queryInhosp.setSerialnum(StringUtils.trim(patMedInhosp.getSerialnum()));
         queryInhosp.setOrgid(StringUtils.trim(dto.getOrgId()));
         queryInhosp.setInhospstate(cry);
+        queryInhosp.setSchemestatus(0L);
         log.info("----------------杩欓噷鐨勫叆鍙備负锛歿},{}", queryInhosp.getPatno(), queryInhosp.getSerialnum());
         List<PatMedInhosp> existingInhosps = patMedInhospService.selectPatMedInhosp(queryInhosp);
 
@@ -707,11 +709,43 @@
         patMedInhosp.setSerialnum(dto.getHealthcareRecordNo());
         patMedInhosp.setInhospno(dto.getHealthcareRecordNo());
         patMedInhosp.setFuflag("1");
+
+
         if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1"))
             patMedInhosp.setFuflag("0");
-        if ("0".equals(cry)) patMedInhosp.setInhospstate("0");
-        if ("1".equals(cry)) patMedInhosp.setInhospstate("1");
-        if ("3".equals(cry)) patMedInhosp.setInhospstate("3");
+        if ("0".equals(cry)) {
+            patMedInhosp.setInhospstate("0");
+            if (CollectionUtils.isNotEmpty(dto.getDiagnosisList()) && dto.getDiagnosisList().size() > 0) {
+                for (ServiceSLTDDiagnosisResDTO diagnosis : dto.getDiagnosisList()) {
+                    if (diagnosis.getIsMainDiagnosis() == 1) {
+                        patMedInhosp.setDiagname(diagnosis.getDiagnosisDictName() == null ? "" : diagnosis.getDiagnosisDictName());
+                        patMedInhosp.setIcd10code(diagnosis.getDiagnosisDictCode() == null ? "" : diagnosis.getDiagnosisDictCode());
+                    }
+                }
+            }
+        }
+        if ("1".equals(cry)) {
+            patMedInhosp.setInhospstate("1");
+            if (CollectionUtils.isNotEmpty(dto.getDiagnosisList()) && dto.getDiagnosisList().size() > 0) {
+                for (ServiceSLTDDiagnosisResDTO diagnosis : dto.getDiagnosisList()) {
+                    if (diagnosis.getIsMainDiagnosis() == 1) {
+                        patMedInhosp.setLeavediagname(diagnosis.getDiagnosisDictName() == null ? "" : diagnosis.getDiagnosisDictName());
+                        patMedInhosp.setLeaveicd10code(diagnosis.getDiagnosisDictCode() == null ? "" : diagnosis.getDiagnosisDictCode());
+                    }
+                }
+            }
+        }
+        if ("3".equals(cry)) {
+            patMedInhosp.setInhospstate("3");
+            if (CollectionUtils.isNotEmpty(dto.getDiagnosisList()) && dto.getDiagnosisList().size() > 0) {
+                for (ServiceSLTDDiagnosisResDTO diagnosis : dto.getDiagnosisList()) {
+                    if (diagnosis.getIsMainDiagnosis() == 1) {
+                        patMedInhosp.setDiagname(diagnosis.getDiagnosisDictName() == null ? "" : diagnosis.getDiagnosisDictName());
+                        patMedInhosp.setIcd10code(diagnosis.getDiagnosisDictCode() == null ? "" : diagnosis.getDiagnosisDictCode());
+                    }
+                }
+            }
+        }
         patMedInhosp.setHospitalcode(dto.getOrgId());
         patMedInhosp.setBedNo(dto.getBedNumber());
         patMedInhosp.setStarttime(parseDate(dto.getStartTime()));
@@ -765,12 +799,6 @@
             queryByPatientNo.setIdcardno(StringUtils.isNotEmpty(dto.getIdCardNo()) ? dto.getIdCardNo().trim() : null);
             existingArchives = patArchiveService.selectPatArchiveList(queryByPatientNo);
         }
-//        if (CollectionUtils.isEmpty(existingArchives) && !StringUtils.isEmpty(dto.getIdCardNo())) {
-//            PatArchive queryByIdCard = new PatArchive();
-//            queryByIdCard.setIdcardno(dto.getIdCardNo().trim());
-//            existingArchives = patArchiveService.selectPatArchiveList(queryByIdCard);
-//        }
-
         PatArchive patArchive = buildPatientArchive(dto);
 
         if (CollectionUtils.isEmpty(existingArchives)) {
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 0568ae2..61d3e86 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -165,6 +165,12 @@
     @Value("${phoneEndHour}")
     private Integer phoneEndHour;
 
+    @Autowired
+    private Icd10Mapper icd10Mapper;
+
+    @Value("${spring.profiles.active}")
+    private String active;
+
     /**
      * 鏌ヨ鍗曚竴浠诲姟锛堥殢璁匡級
      *
@@ -615,10 +621,19 @@
                     ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
                     serviceTaskdiag.setTaskId(serviceTask.getTaskid());
                     serviceTaskdiag.setTaskName(serviceTask.getTaskName());
+                    serviceTaskdiag.setServiceType(serviceTaskVO.getServiceType());
                     serviceTaskdiag.setLongtask(Long.valueOf(serviceTask.getLongTask()));
                     if (serviceTaskVO.getLongTask() == 1) serviceTaskdiag.setLongtask(1L);
                     serviceTaskdiag.setIcd10code(serviceTaskVO.getIcd10code());
                     serviceTaskdiag.setIcd10name(serviceTaskVO.getIcd10name());
+                    //鍗楀崕闄勪竴鐨刬cd10code鏄湁閲嶅鐨勶紝鎵�浠ヤ笉鑳界敤鍗楀崕闄勪竴鐨刬cd10code鍘绘煡璇�
+                    if (!active.equals("nhfy") && StringUtils.isEmpty(serviceTaskVO.getIcd10name())) {
+                        Icd10 icd10 = new Icd10();
+                        icd10.setIcdcode(serviceTaskVO.getIcd10code());
+                        List<Icd10> icd10s = icd10Mapper.selectIcd10List(icd10);
+                        if (CollectionUtils.isNotEmpty(icd10s))
+                            serviceTaskdiag.setIcd10name(icd10s.get(0).getIcdname());
+                    }
                     serviceTaskdiag.setGuid(serviceTask.getGuid());
                     serviceTaskdiag.setOrgid(serviceTask.getOrgid());
                     serviceTaskdiag.setCreateTime(new Date());
@@ -756,7 +771,8 @@
                 }
             }
 
-        } else if (serviceTaskVO.getIsoperation() != null && serviceTaskVO.getIsoperation() == 2) {
+        }
+        else if (serviceTaskVO.getIsoperation() != null && serviceTaskVO.getIsoperation() == 2) {
             //浠诲姟淇敼
             if (ObjectUtils.isNotEmpty(serviceTaskVO.getSendTimeslot()))
                 serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot()));
@@ -4249,7 +4265,7 @@
         }
         // 1. 鏌ヨ鍒嗙粍缁熻锛堝彂閫佹�婚噺銆佸彂閫佹垚鍔熼噺銆佸凡璇婚噺锛�
         List<Map<String, Object>> groupStats = serviceSubtaskMapper.getHeLibraryCount(heLibraryCountVO);
-    
+
         // 2. 璁$畻鍚勭粍鐨勫彂閫佹垚鍔熺巼鍜屽凡璇荤巼
         List<Map<String, Object>> result = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(groupStats)) {
@@ -4266,7 +4282,7 @@
                 result.add(row);
             }
         }
-    
+
         Map<String, Object> resultMap = new HashMap<>();
         resultMap.put("list", result);
         resultMap.put("total", result.size());
diff --git a/smartor/src/main/java/com/smartor/service/impl/UserExtInfoServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/UserExtInfoServiceImpl.java
index 9bf78d7..4e4fdbf 100644
--- a/smartor/src/main/java/com/smartor/service/impl/UserExtInfoServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/UserExtInfoServiceImpl.java
@@ -1,6 +1,7 @@
 package com.smartor.service.impl;
 
 import com.ruoyi.common.core.service.IUserExtInfoService;
+import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.StringUtils;
 import com.smartor.domain.IvrLibaScriptAssort;
 import com.smartor.domain.SvyLibScriptCategory;
@@ -16,6 +17,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 鐢ㄦ埛鎵╁睍淇℃伅鏈嶅姟瀹炵幇锛坰martor 妯″潡锛�
@@ -23,6 +25,9 @@
  */
 @Service
 public class UserExtInfoServiceImpl implements IUserExtInfoService {
+
+    private static final String SATISFACTION_CACHE_KEY = "satisfaction:categories:";
+    private static final int SATISFACTION_CACHE_TTL = 30;
 
     @Autowired
     private SysUserOrgMapper sysUserOrgMapper;
@@ -32,6 +37,9 @@
 
     @Autowired
     private SvyLibScriptCategoryMapper svyLibScriptCategoryMapper;
+
+    @Autowired
+    private RedisCache redisCache;
 
     /**
      * 鑾峰彇鐢ㄦ埛鏈烘瀯/闄㈠尯淇℃伅
@@ -52,10 +60,18 @@
     }
 
     /**
-     * 鑾峰彇婊℃剰搴﹂棶棰樺垎绫伙紙璇煶 + 闂嵎锛�
+     * 鑾峰彇婊℃剰搴﹂棶棰樺垎绫伙紙璇煶 + 闂嵎锛夛紝甯edis缂撳瓨
      */
     @Override
+    @SuppressWarnings("unchecked")
     public Map<String, Object> getSatisfactionCategories(String orgid) {
+        // 鍏堟煡缂撳瓨
+        String cacheKey = SATISFACTION_CACHE_KEY + orgid;
+        Map<String, Object> cached = redisCache.getCacheObject(cacheKey);
+        if (cached != null) {
+            return cached;
+        }
+
         Map<String, Object> satisfactionCategories = new HashMap<>();
 
         // 鑾峰彇璇煶闂鍒嗙被
@@ -90,6 +106,9 @@
         }
         satisfactionCategories.put("questionnaireCategorys", questionnaireCategorys);
 
+        // 鍐欏叆缂撳瓨
+        redisCache.setCacheObject(cacheKey, satisfactionCategories, SATISFACTION_CACHE_TTL, TimeUnit.MINUTES);
+
         return satisfactionCategories;
     }
 }
diff --git a/smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml b/smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml
index 3c97d8e..e979d62 100644
--- a/smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml
@@ -176,4 +176,14 @@
             #{icdid}
         </foreach>
     </delete>
+
+    <!-- 鎵归噺鏌ヨ宸插瓨鍦ㄧ殑 icdcode锛岀敤浜庡垎椤垫媺鍙栧悗鍘婚噸 -->
+    <select id="selectExistingIcdcodes" resultType="java.lang.String">
+        select icdname from icd10
+        where del_flag = 0
+          and icdname in
+        <foreach item="icdname" collection="icdnames" open="(" separator="," close=")">
+            #{icdname}
+        </foreach>
+    </select>
 </mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
index 405bc68..b71c096 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -48,6 +48,8 @@
         <result property="patno" column="patno"/>
         <result property="inhospstate" column="inhospstate"/>
         <result property="deptcheckFlag" column="deptcheck_flag"/>
+        <result property="inWardcheckFlag" column="in_wardcheck_flag"/>
+        <result property="inDeptcheckFlag" column="in_deptcheck_flag"/>
         <result property="wardcheckFlag" column="wardcheck_flag"/>
         <result property="diagcheckFlag" column="diagcheck_flag"/>
         <result property="age" column="age"/>
@@ -98,6 +100,8 @@
                nurse_name,
                deptcheck_flag,
                wardcheck_flag,
+               in_deptcheck_flag,
+               in_wardcheck_flag,
                diagcheck_flag,
                inhospstate,
                patno,
@@ -157,6 +161,8 @@
         b.out_way_name,
         b.deptcheck_flag,
         b.wardcheck_flag,
+        b.in_deptcheck_flag,
+        b.in_wardcheck_flag,
         b.diagcheck_flag,
         b.inhospstate,
         b.patno,
@@ -248,6 +254,8 @@
         <if test="nurseName != null and nurseName != ''">and b.nurse_name = #{nurseName}</if>
         <if test="deptcheckFlag != null ">and b.deptcheck_flag = #{deptcheckFlag}</if>
         <if test="wardcheckFlag != null ">and b.wardcheck_flag = #{wardcheckFlag}</if>
+        <if test="inDeptcheckFlag != null ">and b.in_deptcheck_flag = #{inDeptcheckFlag}</if>
+        <if test="inWardcheckFlag != null ">and b.in_wardcheck_flag = #{inWardcheckFlag}</if>
         <if test="diagcheckFlag != null ">and b.diagcheck_flag = #{diagcheckFlag}</if>
         <if test="cry != null and cry == 0 ">and b.endtime is null</if>
         <if test="cry != null and cry == 1 ">and b.inhospstate=1</if>
@@ -331,6 +339,8 @@
         b.out_way_name,
         b.deptcheck_flag,
         b.wardcheck_flag,
+        b.in_deptcheck_flag,
+        b.in_wardcheck_flag,
         b.diagcheck_flag,
         b.inhospstate,
         b.patno,
@@ -409,8 +419,9 @@
         b.nurse_id,
         b.nurse_name,
         b.deptcheck_flag,
-        b.diagcheck_flag,
         b.wardcheck_flag,
+        b.in_deptcheck_flag,
+        b.in_wardcheck_flag,
         b.inhospstate,
         b.patno,
         b.inhospno,
@@ -489,6 +500,8 @@
         <if test="diagcheckFlag != null ">and b.diagcheck_flag = #{diagcheckFlag}</if>
         <if test="deptcheckFlag != null ">and b.deptcheck_flag = #{deptcheckFlag}</if>
         <if test="wardcheckFlag != null ">and b.wardcheck_flag = #{wardcheckFlag}</if>
+        <if test="inDeptcheckFlag != null ">and b.in_deptcheck_flag = #{inDeptcheckFlag}</if>
+        <if test="inWardcheckFlag != null ">and b.in_wardcheck_flag = #{inWardcheckFlag}</if>
         <if test="inhospstate != null ">and b.inhospstate = #{inhospstate}</if>
         <if test="schemestatus != null ">and b.schemestatus = #{schemestatus}</if>
         <if test="leavediagname != null  and leavediagname != ''">and b.leavediagname like concat('%',
@@ -573,6 +586,9 @@
         <if test="inhospstate != null">and inhospstate = #{inhospstate}</if>
         <if test="deptcheckFlag != null">and deptcheck_flag = #{deptcheckFlag}</if>
         <if test="wardcheckFlag != null">and wardcheck_flag = #{wardcheckFlag}</if>
+        <if test="inDeptcheckFlag != null">and in_deptcheck_flag = #{inDeptcheckFlag}</if>
+        <if test="inWardcheckFlag != null">and in_wardcheck_flag = #{inWardcheckFlag}</if>
+        <if test="wardcheckFlag != null">and wardcheck_flag = #{wardcheckFlag}</if>
         <if test="diagcheckFlag != null">and diagcheck_flag = #{diagcheckFlag}</if>
         <if test="longTaskReason != null">and long_task_reason = #{longTaskReason}</if>
         <if test="nurseId != null ">and nurse_id = #{nurseId}</if>
@@ -642,6 +658,8 @@
             <if test="inhospstate != null">inhospstate,</if>
             <if test="deptcheckFlag != null">deptcheck_flag,</if>
             <if test="wardcheckFlag != null">wardcheck_flag,</if>
+            <if test="inDeptcheckFlag != null">in_deptcheck_flag,</if>
+            <if test="inWardcheckFlag != null">in_wardcheck_flag,</if>
             <if test="diagcheckFlag != null">diagcheck_flag,</if>
             <if test="longTaskReason != null">long_task_reason,</if>
             <if test="nurseId != null ">nurse_id,</if>
@@ -707,6 +725,8 @@
             <if test="inhospstate != null">#{inhospstate},</if>
             <if test="deptcheckFlag != null">#{deptcheckFlag},</if>
             <if test="wardcheckFlag != null">#{wardcheckFlag},</if>
+            <if test="inDeptcheckFlag != null">#{inDeptcheckFlag},</if>
+            <if test="inWardcheckFlag != null">#{inWardcheckFlag},</if>
             <if test="diagcheckFlag != null">#{diagcheckFlag},</if>
             <if test="longTaskReason != null">#{longTaskReason},</if>
             <if test="nurseId != null ">#{nurseId},</if>
@@ -742,7 +762,7 @@
         schemestatus, generalschemestatus, leaveldeptcode, leaveldeptname, hospitaldistrictid,
         leavehospitaldistrictcode, leavehospitaldistrictname, leavehospitaldistrictid,
         deptid, leaveldeptid, schemetime, patname, patno, inhospstate,
-        deptcheck_flag, wardcheck_flag, diagcheck_flag, long_task_reason,
+        deptcheck_flag, wardcheck_flag,in_deptcheck_flag, in_wardcheck_flag, diagcheck_flag, long_task_reason,
         nurse_id, nurse_name, out_way_id, out_way_name, guid,
         operator, operator_id, inhospno, remark,
         fuflag, fudate, fuperiod, futypecode, futypedesc, fuadvice, fuspecialadvice, management_doctor,
@@ -764,7 +784,7 @@
             #{item.leavehospitaldistrictcode}, #{item.leavehospitaldistrictname}, #{item.leavehospitaldistrictid},
             #{item.deptid}, #{item.leaveldeptid}, #{item.schemetime}, #{item.patname}, #{item.patno},
             #{item.inhospstate},
-            #{item.deptcheckFlag}, #{item.wardcheckFlag}, #{item.diagcheckFlag}, #{item.longTaskReason},
+            #{item.deptcheckFlag}, #{item.wardcheckFlag},#{item.inDeptcheckFlag}, #{item.inWardcheckFlag}, #{item.diagcheckFlag}, #{item.longTaskReason},
             #{item.nurseId}, #{item.nurseName}, #{item.outWayId}, #{item.outWayName}, #{item.guid},
             #{item.operator}, #{item.operatorId}, #{item.inhospno}, #{item.remark},
             #{item.fuflag}, #{item.fudate}, #{item.fuperiod}, #{item.futypecode}, #{item.futypedesc}, #{item.fuadvice},
@@ -819,6 +839,8 @@
             <if test="inhospstate != null">inhospstate = #{inhospstate},</if>
             <if test="deptcheckFlag != null">deptcheck_flag = #{deptcheckFlag},</if>
             <if test="wardcheckFlag != null">wardcheck_flag = #{wardcheckFlag},</if>
+            <if test="inDeptcheckFlag != null">in_deptcheck_flag = #{inDeptcheckFlag},</if>
+            <if test="inWardcheckFlag != null">in_wardcheck_flag = #{inWardcheckFlag},</if>
             <if test="diagcheckFlag != null">diagcheck_flag = #{diagcheckFlag},</if>
             <if test="longTaskReason != null">long_task_reason = #{longTaskReason},</if>
             <if test="nurseId != null ">nurse_id = #{nurseId},</if>

--
Gitblit v1.9.3