From dc4df9a530016c4fd24f9aebc6ccf1b95310ff1f Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期三, 02 七月 2025 11:13:06 +0800
Subject: [PATCH] Changes

---
 smartor/src/main/java/com/smartor/domain/PatArchiveReq.java                                    |    2 
 smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java                          |    8 
 .idea/jarRepositories.xml                                                                      |   25 --
 ruoyi-admin/src/main/resources/application-local.yml                                           |    4 
 smartor/src/main/java/com/smartor/service/impl/ExternalInfoServiceImpl.java                    |  229 +++++++++++++---------
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java         |    9 
 smartor/src/main/java/com/smartor/domain/ExternalOutHospInfo.java                              |    4 
 smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java                      |   22 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ExternalInfoController.java         |    2 
 ruoyi-admin/src/main/resources/application.yml                                                 |   22 ++
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml                             |   11 
 smartor/src/main/java/com/smartor/domain/PatArchive.java                                       |   13 +
 smartor/src/main/java/com/smartor/domain/PatReservationRecord.java                             |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatReservationRecordController.java |   26 +-
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java                  |   23 -
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java           |    2 
 ruoyi-admin/src/main/resources/logback.xml                                                     |   93 ++++----
 smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java                     |   84 ++++----
 .idea/compiler.xml                                                                             |    1 
 19 files changed, 337 insertions(+), 245 deletions(-)

diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 4d765fa..47c11f7 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -12,7 +12,6 @@
         <module name="ruoyi-generator" />
         <module name="ruoyi-common" />
         <module name="smartor-admin" />
-        <module name="smartor-wuxi (1)" />
         <module name="ruoyi-quartz" />
       </profile>
     </annotationProcessing>
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index f246c6b..18a3157 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -2,11 +2,6 @@
 <project version="4">
   <component name="RemoteRepositoriesConfiguration">
     <remote-repository>
-      <option name="id" value="aliyun" />
-      <option name="name" value="aliyun" />
-      <option name="url" value="https://maven.aliyun.com/repository/public/" />
-    </remote-repository>
-    <remote-repository>
       <option name="id" value="central" />
       <option name="name" value="Central Repository" />
       <option name="url" value="https://repo.maven.apache.org/maven2" />
@@ -15,11 +10,6 @@
       <option name="id" value="jcenter" />
       <option name="name" value="jcenter" />
       <option name="url" value="https://maven.aliyun.com/repository/public" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://maven.aliyun.com/repository/public/" />
     </remote-repository>
     <remote-repository>
       <option name="id" value="releases" />
@@ -72,11 +62,6 @@
       <option name="url" value="http://repo2.maven.org/maven2/" />
     </remote-repository>
     <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="central" />
-      <option name="url" value="https://maven.aliyun.com/repository/public/" />
-    </remote-repository>
-    <remote-repository>
       <option name="id" value="snapshots" />
       <option name="name" value="local private nexus snapshots" />
       <option name="url" value="http://122.49.30.5:8981/nexus/content/repositories/snapshots/" />
@@ -85,16 +70,6 @@
       <option name="id" value="maven_repos" />
       <option name="name" value="maven_repos" />
       <option name="url" value="https://nexus.cmread.com:9343/nexus/content/repositories/migu" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="jcenter" />
-      <option name="name" value="jcenter" />
-      <option name="url" value="https://maven.aliyun.com/repository/public/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="public" />
-      <option name="name" value="aliyun nexus" />
-      <option name="url" value="https://maven.aliyun.com/repository/public/" />
     </remote-repository>
     <remote-repository>
       <option name="id" value="jboss.community" />
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ExternalInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ExternalInfoController.java
index 4554ff1..d355035 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ExternalInfoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ExternalInfoController.java
@@ -88,7 +88,7 @@
     //@PreAuthorize("@ss.hasPermi('smartor:patarchive:list')")
     @PostMapping("/getExternalLeaveHospPatientInfo30Day")
     public Boolean getExternalLeaveHospPatientInfo30Day() {
-        Boolean externalInHospPatientInfoBY250325 = externalInfoService.getExternalInHospPatientInfoBY250325();
+//        Boolean externalInHospPatientInfoBY250325 = externalInfoService.getExternalInHospPatientInfoBY250325();
         Boolean externalInHospPatientInfo = externalInfoService.getExternalLeaveHospPatientInfo30Day();
         return externalInHospPatientInfo;
     }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java
index cec33b0..f77ae57 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java
@@ -48,7 +48,7 @@
     //@PreAuthorize("@ss.hasPermi('smartor:patarchive:list')")
     @PostMapping("/list")
     public TableDataInfo list(@RequestBody PatArchive patArchive) {
-        startPage();
+        PageUtils.startPageByPost(patArchive.getPageNum(), patArchive.getPageSize());
         List<PatArchive> list = patArchiveService.selectPatArchiveList(patArchive);
         return getDataTable(list);
     }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
index e407fd3..8b77350 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
@@ -4,6 +4,8 @@
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.PageUtils;
@@ -41,6 +43,13 @@
     //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:list')")
     @PostMapping("/selectPatMedInhospList")
     public TableDataInfo selectPatMedInhosplist(@RequestBody PatMedInhosp patMedInhosp) {
+        //鑾峰彇褰撳墠鐧婚檰浜�
+        LoginUser loginUser = getLoginUser();
+        SysUser user = loginUser.getUser();
+        if (!"admin".equals(user.getUserName()) && CollectionUtils.isEmpty(patMedInhosp.getDeptcodes()) && CollectionUtils.isEmpty(patMedInhosp.getHospitaldistrictcodes()))
+            //濡傛灉鍦ㄩ櫌鐥呭尯绉戝鍚屾椂闂翠负绌猴紝杩斿洖绌�
+            return getDataTable2(0, null);
+
         PageUtils.startPageByPost(patMedInhosp.getPageNum(), patMedInhosp.getPageSize());
         List<PatMedInhosp> list = patMedInhospService.selectPatMedInhospList(patMedInhosp);
         long count = PageUtils.count(new ISelect() {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatReservationRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatReservationRecordController.java
index 579cba2..47b5eaf 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatReservationRecordController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatReservationRecordController.java
@@ -17,12 +17,12 @@
 import java.util.List;
 
 /**
- * 銆愯濉啓鍔熻兘鍚嶇О銆慍ontroller
+ * 鎮h�呴绾﹁褰旵ontroller
  *
  * @author lihu
  * @date 2025-06-24
  */
-@Api("銆愯濉啓鍔熻兘鍚嶇О銆�")
+@Api("鎮h�呴绾﹁褰�")
 @RestController
 @RequestMapping("/smartor/record")
 public class PatReservationRecordController extends BaseController {
@@ -30,9 +30,9 @@
     private IPatReservationRecordService patReservationRecordService;
 
     /**
-     * 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛�
+     * 鏌ヨ鎮h�呴绾﹁褰曞垪琛�
      */
-    @ApiOperation("鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛�")
+    @ApiOperation("鏌ヨ鎮h�呴绾﹁褰曞垪琛�")
     //@PreAuthorize("@ss.hasPermi('smartor:record:list')")
     @PostMapping("/list")
     public TableDataInfo list(@RequestBody PatReservationRecord patReservationRecord) {
@@ -42,9 +42,9 @@
     }
 
     /**
-     * 瀵煎嚭銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛�
+     * 瀵煎嚭鎮h�呴绾﹁褰曞垪琛�
      */
-    @ApiOperation("瀵煎嚭銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛�")
+    @ApiOperation("瀵煎嚭鎮h�呴绾﹁褰曞垪琛�")
     //@PreAuthorize("@ss.hasPermi('smartor:record:export')")
     @Log(title = "銆愯濉啓鍔熻兘鍚嶇О銆�", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
@@ -57,7 +57,7 @@
     /**
      * 鑾峰彇銆愯濉啓鍔熻兘鍚嶇О銆戣缁嗕俊鎭�
      */
-    @ApiOperation("鑾峰彇銆愯濉啓鍔熻兘鍚嶇О銆戣缁嗕俊鎭�")
+    @ApiOperation("鑾峰彇鎮h�呴绾﹁褰曡缁嗕俊鎭�")
     //@PreAuthorize("@ss.hasPermi('smartor:record:query')")
     @GetMapping(value = "/getInfo/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id) {
@@ -65,9 +65,9 @@
     }
 
     /**
-     * 鏂板銆愯濉啓鍔熻兘鍚嶇О銆�
+     * 鏂板鎮h�呴绾﹁褰�
      */
-    @ApiOperation("鏂板銆愯濉啓鍔熻兘鍚嶇О銆�")
+    @ApiOperation("鏂板鎮h�呴绾﹁褰�")
     //@PreAuthorize("@ss.hasPermi('smartor:record:add')")
     @Log(title = "銆愯濉啓鍔熻兘鍚嶇О銆�", businessType = BusinessType.INSERT)
     @PostMapping("/add")
@@ -76,9 +76,9 @@
     }
 
     /**
-     * 淇敼銆愯濉啓鍔熻兘鍚嶇О銆�
+     * 淇敼鎮h�呴绾﹁褰�
      */
-    @ApiOperation("淇敼銆愯濉啓鍔熻兘鍚嶇О銆�")
+    @ApiOperation("淇敼鎮h�呴绾﹁褰�")
     //@PreAuthorize("@ss.hasPermi('smartor:record:edit')")
     @Log(title = "銆愯濉啓鍔熻兘鍚嶇О銆�", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
@@ -87,9 +87,9 @@
     }
 
     /**
-     * 鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆�
+     * 鍒犻櫎鎮h�呴绾﹁褰�
      */
-    @ApiOperation("鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆�")
+    @ApiOperation("鍒犻櫎鎮h�呴绾﹁褰�")
     //@PreAuthorize("@ss.hasPermi('smartor:record:remove')")
     @Log(title = "銆愯濉啓鍔熻兘鍚嶇О銆�", businessType = BusinessType.DELETE)
     @GetMapping("/remove/{ids}")
diff --git a/ruoyi-admin/src/main/resources/application-local.yml b/ruoyi-admin/src/main/resources/application-local.yml
index ce671d2..d934e92 100644
--- a/ruoyi-admin/src/main/resources/application-local.yml
+++ b/ruoyi-admin/src/main/resources/application-local.yml
@@ -19,7 +19,7 @@
         #        password: csbsbxt@123
         #        driver-class-name: org.postgresql.Driver
         #      鏈湴楂樻柉
-        url: jdbc:postgresql://192.168.100.122:5432/postgres
+        url: jdbc:postgresql://127.0.0.1:5432/postgres
         username: gaussdb
         password: Ls@123456
         driver-class-name: org.postgresql.Driver
@@ -90,7 +90,7 @@
 #    port: 6020
 
     # 鍦板潃锛堝叕鍙革級
-    host: 116.62.18.175
+    host: 127.0.0.1
     port: 6020
     # 鏁版嵁搴撶储寮�
     database: 0
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 8bdc232..6152ad3 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -37,9 +37,27 @@
 logging:
   # 鏃ュ織璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/logs锛孡inux閰嶇疆 /home/ruoyi/logs,涓嶅~鍚岀骇鐩綍logs锛�
   path: D:/ruoyi/ls/logs
+  # 瀛楃缂栫爜
+  charset:
+    console: UTF-8
+    file: UTF-8
+  # 鏃ュ織鏂囦欢閰嶇疆
+  file:
+    name: ${logging.path}/ruoyi.log
+    max-size: 100MB
+    max-history: 30
+  # 鏃ュ織绾у埆閰嶇疆
   level:
-    com.ruoyi: debug
+    com.ruoyi: info
+    com.smartor: info
     org.springframework: warn
+    org.apache.ibatis: warn
+    # 鎺у埗鍙拌緭鍑虹骇鍒�
+    root: info
+  # 鏃ュ織鏍煎紡閰嶇疆
+  pattern:
+    console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"
+    file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"
 
 # 鐢ㄦ埛閰嶇疆
 user:
@@ -56,7 +74,7 @@
     # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
     basename: i18n/messages
   profiles:
-    active: local
+    active: wx
   # 鏂囦欢涓婁紶
   servlet:
     multipart:
diff --git a/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml
index 9dfaf9a..324bbf8 100644
--- a/ruoyi-admin/src/main/resources/logback.xml
+++ b/ruoyi-admin/src/main/resources/logback.xml
@@ -1,31 +1,35 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
-    <!-- 鏃ュ織瀛樻斁璺緞 -->
-	<property name="log.path" value="D:/lihu/logs" />
+    <!-- 鏃ュ織瀛樻斁璺緞 8095-->
+    <property name="log.path" value="D:/lihu/logs"/>
+    <!-- 鏃ュ織瀛樻斁璺緞 8096-->
+    <!--    <property name="log.path" value="D:/lihu/logs"/>-->
+    <!-- 涓芥按鏃ュ織瀛樻斁璺緞 -->
+    <!--	<property name="log.path" value="/home/software/smartor-logs" />-->
     <!-- 鏃ュ織杈撳嚭鏍煎紡 -->
-	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
 
-	<!-- 鎺у埗鍙拌緭鍑� -->
-	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-	</appender>
+    <!-- 鎺у埗鍙拌緭鍑� -->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder charset="UTF-8">
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
 
-	<!-- 绯荤粺鏃ュ織杈撳嚭 -->
-	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/sys-info.log</file>
+    <!-- 绯荤粺鏃ュ織杈撳嚭 -->
+    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/sys-info.log</file>
         <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
-			<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
-			<maxHistory>60</maxHistory>
-		</rollingPolicy>
-		<encoder>l
-			<pattern>${og.pattern}</pattern>
-		</encoder>
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder charset="UTF-8">
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <!-- 杩囨护鐨勭骇鍒� -->
             <level>INFO</level>
             <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
@@ -33,60 +37,61 @@
             <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
             <onMismatch>DENY</onMismatch>
         </filter>
-	</appender>
+    </appender>
 
-	<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/sys-error.log</file>
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/sys-error.log</file>
         <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
             <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
-			<maxHistory>60</maxHistory>
+            <!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
+            <maxHistory>60</maxHistory>
         </rollingPolicy>
-        <encoder>
+        <encoder charset="UTF-8">
             <pattern>${log.pattern}</pattern>
         </encoder>
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <!-- 杩囨护鐨勭骇鍒� -->
             <level>ERROR</level>
-			<!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
+            <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
             <onMatch>ACCEPT</onMatch>
-			<!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
+            <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
             <onMismatch>DENY</onMismatch>
         </filter>
     </appender>
 
-	<!-- 鐢ㄦ埛璁块棶鏃ュ織杈撳嚭  -->
+    <!-- 鐢ㄦ埛璁块棶鏃ュ織杈撳嚭  -->
     <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${log.path}/sys-user.log</file>
+        <file>${log.path}/sys-user.log</file>
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 鎸夊ぉ鍥炴粴 daily -->
             <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
             <!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
             <maxHistory>60</maxHistory>
         </rollingPolicy>
-        <encoder>
+        <encoder charset="UTF-8">
             <pattern>${log.pattern}</pattern>
         </encoder>
     </appender>
 
-	<!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗  -->
-	<logger name="com.ruoyi" level="info" />
-	<!-- Spring鏃ュ織绾у埆鎺у埗  -->
-	<logger name="org.springframework" level="warn" />
+    <!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗  -->
+    <logger name="com.ruoyi" level="info"/>
+    <logger name="com.smartor" level="info"/>
+    <!-- Spring鏃ュ織绾у埆鎺у埗  -->
+    <logger name="org.springframework" level="warn"/>
 
-	<root level="info">
-		<appender-ref ref="console" />
-	</root>
-
-	<!--绯荤粺鎿嶄綔鏃ュ織-->
     <root level="info">
-        <appender-ref ref="file_info" />
-        <appender-ref ref="file_error" />
+        <appender-ref ref="console"/>
     </root>
 
-	<!--绯荤粺鐢ㄦ埛鎿嶄綔鏃ュ織-->
+    <!--绯荤粺鎿嶄綔鏃ュ織-->
+    <root level="info">
+        <appender-ref ref="file_info"/>
+        <appender-ref ref="file_error"/>
+    </root>
+
+    <!--绯荤粺鐢ㄦ埛鎿嶄綔鏃ュ織-->
     <logger name="sys-user" level="info">
         <appender-ref ref="sys-user"/>
     </logger>
diff --git a/smartor/src/main/java/com/smartor/domain/ExternalOutHospInfo.java b/smartor/src/main/java/com/smartor/domain/ExternalOutHospInfo.java
index 30b1a00..dc4b75d 100644
--- a/smartor/src/main/java/com/smartor/domain/ExternalOutHospInfo.java
+++ b/smartor/src/main/java/com/smartor/domain/ExternalOutHospInfo.java
@@ -37,13 +37,13 @@
     private Long czbz;
 
     @ApiModelProperty(value = "灏辫瘖绉戝浠g爜")
-    private Long ksdm;
+    private String ksdm;
 
     @ApiModelProperty(value = "灏辫瘖绉戝")
     private String ksmc;
 
     @ApiModelProperty(value = "鍖荤敓浠g爜")
-    private Long ysdm;
+    private String ysdm;
 
     @ApiModelProperty(value = "鍖荤敓")
     private String ysmc;
diff --git a/smartor/src/main/java/com/smartor/domain/PatArchive.java b/smartor/src/main/java/com/smartor/domain/PatArchive.java
index 17b3c01..a11633e 100644
--- a/smartor/src/main/java/com/smartor/domain/PatArchive.java
+++ b/smartor/src/main/java/com/smartor/domain/PatArchive.java
@@ -376,5 +376,18 @@
     @ApiModelProperty("涓昏鐓ф姢浜哄勾榫�")
     @Excel(name = "涓昏鐓ф姢浜哄勾榫�")
     private String casePersonAge;
+    /**
+     * pageNum
+     */
+    @ApiModelProperty(value = "pageNum")
+    @Excel(name = "pageNum")
+    private Integer pageNum;
+
+    /**
+     * pageSize
+     */
+    @ApiModelProperty(value = "pageSize")
+    @Excel(name = "pageSize")
+    private Integer pageSize;
 
 }
diff --git a/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java b/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java
index 1feae69..2f5b18e 100644
--- a/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java
+++ b/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java
@@ -96,7 +96,7 @@
     /**
      * 鏌ョ湅鍏ㄩ儴  0   鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3
      */
-    @ApiModelProperty(value = " 鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3")
+    @ApiModelProperty(value = " 鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3   鏌ョ湅鍑洪櫌  4")
     private Long allhosp;
 
 
diff --git a/smartor/src/main/java/com/smartor/domain/PatReservationRecord.java b/smartor/src/main/java/com/smartor/domain/PatReservationRecord.java
index 15bca95..df617d8 100644
--- a/smartor/src/main/java/com/smartor/domain/PatReservationRecord.java
+++ b/smartor/src/main/java/com/smartor/domain/PatReservationRecord.java
@@ -13,7 +13,7 @@
  * @date 2025-06-24
  */
 @Data
-@ApiModel("銆愯濉啓鍔熻兘鍚嶇О銆�")
+@ApiModel("鎮h�呴绾﹁褰�")
 public class PatReservationRecord extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java
index 2a00dd7..c66753b 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java
@@ -191,6 +191,14 @@
     @ApiModelProperty(value = "闂缁撴灉 ,缁�=鈥滃�肩被鍨嬧�濇槸鏂囨湰鎴栬�呮暟鍊肩敤鐨�")
     private String scriptResult;
 
+
+    /**
+     * 棰樼洰涓婚
+     */
+    @Excel(name = "棰樼洰缁撴灉")
+    @ApiModelProperty("棰樼洰缁撴灉ID(service_subtask_detail閲岀殑涓婚敭)")
+    private String scriptResultId;
+
     /**
      * 鍙橀噺鍙傛暟闆嗗悎
      */
diff --git a/smartor/src/main/java/com/smartor/service/impl/ExternalInfoServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ExternalInfoServiceImpl.java
index e5007ef..ee6a7a5 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ExternalInfoServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ExternalInfoServiceImpl.java
@@ -15,6 +15,7 @@
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.Period;
@@ -583,105 +584,149 @@
      */
     @Override
     public Boolean getExternalLeaveHospPatientInfo30Day() {
-        String startTime = null;
-        String endTime = null;
-        Date date = patMedInhospMapper.selectEndtimeMax();
-        if (ObjectUtils.isNotEmpty(date)) {
-            Date now = new Date();
-            // 浣跨敤Calendar璁$畻30澶╁墠
-            Calendar cal = Calendar.getInstance();
-            cal.setTime(now);
-            cal.add(Calendar.DAY_OF_MONTH, -30);
-            Date before30Days = cal.getTime();
-
-
+        try {
+            // 鍥哄畾寮�濮嬫椂闂�
+            String fixedStartTime = "2025-03-25";
             SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
-//            startTime = formatter.format(date);
-//            startTime = formatter.format(before30Days);
-            startTime = "2025-03-25";
-            endTime = formatter.format(new Date());
-        }
-        List<ExternalLeaveHospPatientInfo> externalLeaveHospPatientInfo = externalInfoMapper.getExternalLeaveHospPatientInfo(startTime, endTime);
-        for (ExternalLeaveHospPatientInfo externalLeaveHospPatientInfo1 : externalLeaveHospPatientInfo) {
-            //鍏堝鎮h�呭熀鏈俊鎭繘琛屽鐞�
-            Long patid = dealPatArchive(externalLeaveHospPatientInfo1.getBrid());
-            //鏂板鍑洪櫌鏁版嵁
-            //鏍规嵁浣忛櫌鍙锋煡璇㈠叆闄俊鎭�
-            PatMedInhosp pmi = new PatMedInhosp();
-            pmi.setInhospno(externalLeaveHospPatientInfo1.getZybm());
-            List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList2(pmi);
-            log.error("閫氳繃浣忛櫌鍙凤細{}锛屾煡璇㈡偅鑰呭叆闄㈢殑淇℃伅涓�:{}", externalLeaveHospPatientInfo1.getZybm(), patMedInhospList);
-//            log.error("externalLeaveHospPatientInfo1鐨勭粨鏋滀负锛歿}", externalLeaveHospPatientInfo1);
-            if (CollectionUtils.isEmpty(patMedInhospList)) {
-                //濡傛灉涓嶅瓨鍦ㄥ叆闄俊鎭紝鏄笉鏄渶瑕佽幏鍙栦竴涓嬪叆闄俊鎭紝鍒欒繘琛屾柊澧烇紙锛�
-                List<ExternalInHospPatientInfo> externalInHospPatientInfo1 = externalInfoMapper.getExternalInHospPatientInfo(null, null, externalLeaveHospPatientInfo1.getBrid());
-                if (CollectionUtils.isNotEmpty(externalInHospPatientInfo1)) {
-                    //鍏堝鎮h�呭熀鏈俊鎭繘琛屽鐞�
-                    Long pid = dealPatArchive(externalInHospPatientInfo1.get(0).getBrid());
-                    PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patid);
-                    //鏂板鍏ラ櫌鏁版嵁
-                    PatMedInhosp inhosp = new PatMedInhosp();
-                    inhosp.setInhospno(externalInHospPatientInfo1.get(0).getZyhm());
-                    inhosp.setSerialnum(externalInHospPatientInfo1.get(0).getZyhm());
-                    inhosp.setNurseId(externalInHospPatientInfo1.get(0).getZrhsbm());
-                    inhosp.setNurseName(externalInHospPatientInfo1.get(0).getZrhs());
-                    inhosp.setStarttime(externalInHospPatientInfo1.get(0).getRyrq());
-                    inhosp.setDiagname(externalInHospPatientInfo1.get(0).getRyqk());
-                    inhosp.setDeptcode(externalLeaveHospPatientInfo1.getCyks());
-                    inhosp.setDeptname(externalLeaveHospPatientInfo1.getCyksdm());
-                    inhosp.setDrname(externalLeaveHospPatientInfo1.getZrys());
-                    inhosp.setDrcode(externalLeaveHospPatientInfo1.getZrysbm());
-                    inhosp.setHospitaldistrictid("" + externalInHospPatientInfo1.get(0).getBrbqdm());
-                    inhosp.setBedNo("" + externalInHospPatientInfo1.get(0).getBrch());
-                    inhosp.setPatid(pid);
-                    inhosp.setPatname(patArchive.getName());
-                    inhosp.setTelcode(patArchive.getTelcode());
-                    inhosp.setPatno(patArchive.getPatientno());
-                    inhosp.setOutWayName(externalLeaveHospPatientInfo1.getCyfs());
-                    inhosp.setEndtime(externalLeaveHospPatientInfo1.getCysq());
-                    inhosp.setLeavediagname(externalLeaveHospPatientInfo1.getCyzd());
-                    inhosp.setLeavehospitaldistrictcode(externalLeaveHospPatientInfo1.getCybqdm());
-                    inhosp.setLeavehospitaldistrictname(externalLeaveHospPatientInfo1.getCybq());
-                    inhosp.setLeaveldeptcode(externalLeaveHospPatientInfo1.getCyksdm());
-                    inhosp.setLeaveldeptname(externalLeaveHospPatientInfo1.getCyks());
+            String today = formatter.format(new Date());
 
-                    inhosp.setSchemestatus(2L);
-                    inhosp.setInhospstate("1");
-                    inhosp.setCreateTime(new Date());
-//                    log.error("鏂板鐨刾atMedInhosp涓猴細{}", inhosp);
-                    int i = patMedInhospMapper.insertPatMedInhosp(inhosp);
-                    log.error("鏂板鐨刾atMedInhosp缁撴灉涓猴細{}", i);
+            log.info("寮�濮嬪垎鎵规煡璇㈠嚭闄㈡偅鑰呬俊鎭紝鎬绘椂闂磋寖鍥达細{} 鑷� {}", fixedStartTime, today);
 
-                } else {
-                    log.error("璇ョ梾浜轰笉瀛樺湪鍏ラ櫌淇℃伅锛岀梾浜篒D锛歿}", externalLeaveHospPatientInfo1.getBrid());
-                }
+            // 璁$畻闇�瑕佹煡璇㈢殑娆℃暟
+            Calendar startCal = Calendar.getInstance();
+            Calendar endCal = Calendar.getInstance();
+            Calendar currentCal = Calendar.getInstance();
 
-            } else if (CollectionUtils.isNotEmpty(patMedInhospList)) {
-                //濡傛灉瀛樺湪鍏ラ櫌淇℃伅锛屽垯杩涜淇敼
-                pmi = patMedInhospList.get(0);
-                pmi.setOutWayName(externalLeaveHospPatientInfo1.getCyfs());
-                pmi.setEndtime(externalLeaveHospPatientInfo1.getCysq());
-                pmi.setLeavediagname(externalLeaveHospPatientInfo1.getCyzd());
-                pmi.setLeaveldeptcode(externalLeaveHospPatientInfo1.getCyksdm());
-                pmi.setLeaveldeptname(externalLeaveHospPatientInfo1.getCyks());
-                pmi.setDeptname(externalLeaveHospPatientInfo1.getCyks());
-                pmi.setDeptcode(externalLeaveHospPatientInfo1.getCyksdm());
-                pmi.setLeavehospitaldistrictcode(externalLeaveHospPatientInfo1.getCybqdm());
-                pmi.setLeavehospitaldistrictname(externalLeaveHospPatientInfo1.getCybq());
-//                pmi.setSchemestatus(2L);
-                pmi.setInhospstate("1");
-//                pmi.setUpdateTime(new Date());
-                pmi.setNurseId(externalLeaveHospPatientInfo1.getZrhsbm());
-                pmi.setNurseName(externalLeaveHospPatientInfo1.getZrhs());
-                pmi.setDrcode(externalLeaveHospPatientInfo1.getZrysbm());
-                pmi.setDrname(externalLeaveHospPatientInfo1.getZrys());
-
-                log.error("淇敼鐨刾mi缁撴灉涓猴細{}", pmi);
-                patMedInhospMapper.updatePatMedInhosp(pmi);
+            try {
+                startCal.setTime(formatter.parse(fixedStartTime));
+                endCal.setTime(formatter.parse(today));
+            } catch (ParseException e) {
+                log.error("鏃ユ湡瑙f瀽澶辫触锛歿}", e.getMessage(), e);
+                return false;
             }
 
+            int totalDays = (int) ((endCal.getTimeInMillis() - startCal.getTimeInMillis()) / (1000 * 60 * 60 * 24));
+            int batchSize = 10; // 姣忔壒10澶�
+            int totalBatches = (int) Math.ceil((double) totalDays / batchSize);
+
+            log.info("鎬诲叡闇�瑕佹煡璇� {} 澶╋紝鍒嗕负 {} 鎵规锛屾瘡鎵� {} 澶�", totalDays, totalBatches, batchSize);
+
+            int totalSuccessCount = 0;
+            int totalFailCount = 0;
+
+            // 鍒嗘壒鏌ヨ
+            for (int batch = 0; batch < totalBatches; batch++) {
+                // 璁$畻褰撳墠鎵规鐨勫紑濮嬪拰缁撴潫鏃堕棿
+                Calendar batchStartCal = (Calendar) startCal.clone();
+                batchStartCal.add(Calendar.DAY_OF_MONTH, batch * batchSize);
+
+                Calendar batchEndCal = (Calendar) batchStartCal.clone();
+                batchEndCal.add(Calendar.DAY_OF_MONTH, batchSize - 1);
+
+                // 纭繚涓嶈秴杩囦粖澶�
+                if (batchEndCal.after(endCal)) {
+                    batchEndCal = (Calendar) endCal.clone();
+                }
+
+                String batchStartTime = formatter.format(batchStartCal.getTime());
+                String batchEndTime = formatter.format(batchEndCal.getTime());
+
+                log.info("寮�濮嬫煡璇㈢ {} 鎵规锛屾椂闂磋寖鍥达細{} 鑷� {}", batch + 1, batchStartTime, batchEndTime);
+
+                try {
+                    // 鏌ヨ褰撳墠鎵规鐨勫閮ㄥ嚭闄㈡偅鑰呬俊鎭�
+                    List<ExternalOutHospInfo> externalOutHospInfos = externalInfoMapper.getExternalOutHospInfo(batchStartTime, batchEndTime);
+                    log.info("绗� {} 鎵规鏌ヨ鍒板嚭闄㈡偅鑰呬俊鎭暟閲忥細{}", batch + 1, externalOutHospInfos.size());
+
+                    int batchSuccessCount = 0;
+                    int batchFailCount = 0;
+
+                    // 澶勭悊褰撳墠鎵规鐨勬暟鎹�
+                    for (ExternalOutHospInfo externalOutHospInfo : externalOutHospInfos) {
+                        try {
+                            // 澶勭悊鎮h�呮。妗�
+                            Long patid = dealPatArchive(externalOutHospInfo.getBrid());
+                            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patid);
+
+                            // 鍒涘缓闂ㄨ瘖璁板綍瀵硅薄
+                            PatMedOuthosp patMedOuthosp = new PatMedOuthosp();
+
+                            // 璁剧疆鍩烘湰淇℃伅
+                            patMedOuthosp.setOuthospno(externalOutHospInfo.getJzkh());
+                            patMedOuthosp.setSerialnum(externalOutHospInfo.getJzkh());
+                            patMedOuthosp.setPatid(patid);
+
+                            // 璁剧疆鎮h�呭鍚�
+                            if (ObjectUtils.isNotEmpty(patArchive)) {
+                                patMedOuthosp.setPatname(patArchive.getName());
+                            }
+
+                            // 璁剧疆璇婃柇淇℃伅
+                            patMedOuthosp.setIcd10code(externalOutHospInfo.getZddm());
+                            patMedOuthosp.setDiagname(externalOutHospInfo.getZdmc());
+
+                            // 璁剧疆绉戝淇℃伅
+                            patMedOuthosp.setDeptcode(String.valueOf(externalOutHospInfo.getKsdm()));
+                            patMedOuthosp.setDeptname(externalOutHospInfo.getKsmc());
+
+                            // 璁剧疆鍖荤敓淇℃伅
+                            patMedOuthosp.setDrcode(String.valueOf(externalOutHospInfo.getYsdm()));
+                            patMedOuthosp.setDrname(externalOutHospInfo.getYsmc());
+
+                            // 璁剧疆鍏朵粬淇℃伅
+                            patMedOuthosp.setHpi(externalOutHospInfo.getXbs());
+                            patMedOuthosp.setMainsuit(externalOutHospInfo.getZs());
+                            patMedOuthosp.setCategory(externalOutHospInfo.getLb());
+                            patMedOuthosp.setAdmitdate(externalOutHospInfo.getJzrq());
+
+                            // 璁剧疆鏃堕棿瀛楁
+                            Date now = new Date();
+                            patMedOuthosp.setUploadTime(now);
+                            patMedOuthosp.setCreateTime(now);
+                            patMedOuthosp.setUpdateTime(now);
+
+                            // 璁剧疆榛樿鍊�
+                            patMedOuthosp.setDelFlag("0");  // 鍒犻櫎鏍囧織
+                            patMedOuthosp.setIsupload(0L);   // 涓婁紶鏍囧織
+
+                            // 鎻掑叆鏁版嵁
+                            int result = patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp);
+                            if (result > 0) {
+                                batchSuccessCount++;
+                                totalSuccessCount++;
+                            } else {
+                                batchFailCount++;
+                                totalFailCount++;
+                            }
+
+                        } catch (Exception e) {
+                            batchFailCount++;
+                            totalFailCount++;
+                            log.error("澶勭悊鎮h�呴棬璇婅褰曟椂鍙戠敓寮傚父锛屾偅鑰匢D锛歿}锛岄棬璇婂彿锛歿}锛屽紓甯镐俊鎭細{}",
+                                    externalOutHospInfo.getBrid(), externalOutHospInfo.getJzkh(), e.getMessage(), e);
+                        }
+                    }
+
+                    log.info("绗� {} 鎵规澶勭悊瀹屾垚锛屾垚鍔燂細{}锛屽け璐ワ細{}", batch + 1, batchSuccessCount, batchFailCount);
+
+                    // 姣忔壒娆″鐞嗗畬鍚庣◢浣滃欢杩燂紝閬垮厤瀵规暟鎹簱閫犳垚杩囧ぇ鍘嬪姏
+                    if (batch < totalBatches - 1) {
+                        Thread.sleep(1000); // 寤惰繜1绉�
+                    }
+
+                } catch (Exception e) {
+                    log.error("绗� {} 鎵规鏌ヨ澶勭悊鏃跺彂鐢熷紓甯革細{}", batch + 1, e.getMessage(), e);
+                    totalFailCount++;
+                }
+            }
+
+            log.info("鎵�鏈夋壒娆″鐞嗗畬鎴愶紝鎬昏鎴愬姛锛歿}锛屽け璐ワ細{}", totalSuccessCount, totalFailCount);
+            return true;
+
+        } catch (Exception e) {
+            log.error("鑾峰彇鍑洪櫌鎮h�呬俊鎭椂鍙戠敓寮傚父锛歿}", e.getMessage(), e);
+            return false;
         }
-        return null;
     }
 
 
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
index ebea5be..c555ed7 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -124,6 +124,13 @@
             if (CollectionUtils.isNotEmpty(patArchives3)) {
                 patArchiveList.addAll(patArchives3);
             }
+        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 4) {
+            //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3   鏌ョ湅鍑洪櫌 4
+            patArchiveReq.setCry(1);
+            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchiveReq);
+            if (CollectionUtils.isNotEmpty(patArchives1)) {
+                patArchiveList.addAll(patArchives1);
+            }
         }
 
         return patArchiveList;
@@ -282,6 +289,7 @@
         List<PatArchiveOthreInfo> patArchiveList = new ArrayList<>();
         if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 1) {
             //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3
+            patArchiveReq.setCry(0);
             List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhosp(patArchiveReq);
             if (CollectionUtils.isNotEmpty(patArchives1)) {
                 patArchiveList.addAll(patArchives1);
@@ -297,6 +305,13 @@
             List<PatArchiveOthreInfo> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchiveReq);
             if (CollectionUtils.isNotEmpty(patArchives3)) {
                 patArchiveList.addAll(patArchives3);
+            }
+        }else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 4) {
+            //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3   鏌ョ湅鍑洪櫌 4
+            patArchiveReq.setCry(1);
+            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchiveReq);
+            if (CollectionUtils.isNotEmpty(patArchives1)) {
+                patArchiveList.addAll(patArchives1);
             }
         }
 
@@ -605,6 +620,13 @@
             if (CollectionUtils.isNotEmpty(patArchives3)) {
                 patArchiveList.addAll(patArchives3);
             }
+        }else if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 4) {
+            //  鏌ョ湅浣忛櫌  1  鏌ョ湅闂ㄨ瘖  2   鏌ョ湅浣撴  3   鏌ョ湅鍑洪櫌 4
+            patArchive.setCry(1);
+            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchive);
+            if (CollectionUtils.isNotEmpty(patArchives1)) {
+                patArchiveList.addAll(patArchives1);
+            }
         }
 
         //鏍规嵁鎮h�匢D杩涜鍒嗙粍
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 a24a473..e7fa277 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -251,8 +251,6 @@
     @Override
     public List<ServiceSubtask> patItem(ServiceSubtaskVO serviceSubtaskVO) {
         List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
-        //鏍规嵁鍑洪櫌 鏃堕棿鍊掑簭
-//        List<ServiceSubtask> sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime).reversed()).collect(Collectors.toList());
         return selectServiceSubtaskList;
     }
 
@@ -269,6 +267,7 @@
 
     @Override
     public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO) {
+        serviceSubtaskVO.setSendstate(null);
         serviceSubtaskVO.setPageSize(99999999);
         serviceSubtaskVO.setPageNum(1);
         List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
@@ -278,18 +277,15 @@
         Integer yc = 0;
         Integer fssb = 0;
         Integer yfs = 0;
-        Integer xj = 0;
-        Integer dfs = 0;
-        Integer ywc = 0;
-        Integer ywc2 = 0;
+        Integer blq = 0;
+        Integer dsf = 0;
         for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
             if (serviceSubtask.getSendstate() == 4L) wzx = wzx + 1;
             else if (serviceSubtask.getSendstate() != 4L) ysf = ysf + 1;
             if (serviceSubtask.getSendstate() == 5L) fssb = fssb + 1;
-            if (serviceSubtask.getSendstate() == 3L) yfs = yfs + 1;
-            if (serviceSubtask.getSendstate() == 1L) xj = xj + 1;
-            if (serviceSubtask.getSendstate() == 2L) dfs = dfs + 1;
-            if (serviceSubtask.getSendstate() == 6L) ywc = ywc + 1;
+            if (serviceSubtask.getSendstate() >= 3L || serviceSubtask.getSendstate() == 1L) yfs = yfs + 1;
+            if (serviceSubtask.getSendstate() == 2L) dsf = dsf + 1;
+            if (serviceSubtask.getSendstate() == 1L) blq = blq + 1;
             if (StringUtils.isNotEmpty(serviceSubtask.getExcep()) && serviceSubtask.getExcep().equals("1")) yc = yc + 1;
         }
         map.put("wzx", wzx);
@@ -297,10 +293,9 @@
         map.put("yc", yc);
         map.put("fssb", fssb);
         map.put("yfs", yfs);
-        map.put("xj", xj);
-        map.put("dfs", dfs);
-        map.put("ywc", ywc);
-        map.put("yfs2", yfs + ywc);
+        map.put("blq", blq);
+        map.put("dsf", dsf);
+
         return map;
     }
 
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
index 838b0c0..024bb98 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -52,7 +52,7 @@
     private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper;
 
     @Autowired
-    private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper;
+    private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper;
 
     @Autowired
     private PatArchiveMapper patArchiveMapper;
@@ -65,7 +65,7 @@
     private PatReservationRecordMapper patReservationRecordMapper;
 
     @Autowired
-    private SvyTaskTemplateTargetoptionMapper svyTaskTemplateTargetoptionMapper;
+    private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
 
     @Autowired
     private RedisCache redisCache;
@@ -309,55 +309,57 @@
             }
         }
 
-        // 閫氳繃妯℃澘ID鑾峰彇闂淇℃伅
-        SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript();
-        svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
-        svyTaskTemplateScript.setDelFlag("0");
-        List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
-        if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) {
-            log.warn("svyTaskTemplateScripts涓虹┖锛岃灏藉揩鑱旂郴绠$悊鍛樺鐞�");
-            return Collections.emptyList();
+        //閫氳繃妯℃澘ID鑾峰彇闂淇℃伅
+        SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
+        svyLibTemplateScript.setSvyid(Long.valueOf(serviceTask.getLibtemplateid()));
+        svyLibTemplateScript.setDelFlag("0");
+        List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript);
+        if (CollectionUtils.isEmpty(svyLibTemplateScripts) || svyLibTemplateScripts.size() == 0) {
+            log.info("ivrLibaTemplateScripts涓虹┖浜嗭紝璇峰敖蹇仈绯荤鐞嗗憳澶勭悊");
+            return new ArrayList<>();
         }
-        List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class);
+        List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyLibTemplateScripts, SvyLibTemplateScriptVO.class);
 
-        // 鑾峰彇鎮h�呬俊鎭�
+        //鑾峰彇鎮h�呬俊鎭�
         PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patid);
 
-        // 瑙f瀽textParam
-        Map<String, Map<String, String>> ivrTaskMap = Collections.emptyMap();
+        //閫氳繃鎮h�呬俊鎭拰浠诲姟淇℃伅涓殑textParam瀵归棶棰樹腑鐨勫彉閲忚繘琛屽~鍏�
+        ObjectMapper objectMapper = new ObjectMapper();
+        Map<String, Map<String, String>> ivrTaskMap = null;
         try {
-            ObjectMapper objectMapper = new ObjectMapper();
             ivrTaskMap = objectMapper.readValue(serviceTask.getTextParam(), Map.class);
-        } catch (Exception e) {
-            log.error("瑙f瀽textParam澶辫触", e);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
         }
-        List<Map<String, String>> mapList = new ArrayList<>(ivrTaskMap.values());
+        List<Map<String, String>> mapList = new ArrayList<>();
 
-        // 鏇挎崲妯℃澘闂璇濇湳閲岀殑閫氶厤绗�
-        for (SvyTaskTemplateScriptVO scriptVO : svyTaskTemplateScriptVOS) {
-            String content = scriptVO.getScriptContent();
-            if (StringUtils.isNotEmpty(content)) {
-                // 鏇挎崲鍙橀噺
+        for (Map<String, String> map : ivrTaskMap.values()) {
+            mapList.add(map);
+        }
+
+        //灏嗘ā鏉块棶棰樿瘽鏈噷鐨勯�氶厤绗︽浛鎹�
+        for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOS) {
+            if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) {
                 for (Map<String, String> map : mapList) {
-                    for (Map.Entry<String, String> entry : map.entrySet()) {
-                        String key = entry.getKey();
-                        String value = StringUtils.defaultString(entry.getValue());
-                        content = content.replace(key, value);
+                    for (String key : map.keySet()) {
+
+                        svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""));
                     }
                 }
-                // 鏇挎崲鎮h�呬釜浜轰俊鎭�
-                content = content.replace("${name}", StringUtils.defaultString(patArchive.getName()))
-                        .replace("${dzz}", StringUtils.defaultString(patArchive.getPlaceOfResidence()))
-                        .replace("${dhh}", StringUtils.defaultString(patArchive.getTelcode()));
-                scriptVO.setScriptContent(content);
-
-                // 鑾峰彇闂閫夐」
-                SvyTaskTemplateTargetoption optionQuery = new SvyTaskTemplateTargetoption();
-                optionQuery.setScriptid(scriptVO.getId());
-                List<SvyTaskTemplateTargetoption> options = svyTaskTemplateTargetoptionMapper.selectSvyTaskTemplateTargetoptionList(optionQuery);
+                //鏇挎崲鎮h�呬釜浜轰俊鎭暟鎹�
+                log.error("闂id锛歿},   闂鍐呭锛歿}", svyLibTemplateScriptVO.getId(), svyLibTemplateScriptVO.getScriptContent());
+                if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) {
+                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
+                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
+                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
+                }
+                //鑾峰彇闂閫夐」
+                SvyLibTemplateTargetoption svyLibTemplateTargetoption = new SvyLibTemplateTargetoption();
+                svyLibTemplateTargetoption.setScriptid(svyLibTemplateScriptVO.getId());
+                List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(svyLibTemplateTargetoption);
 
                 // 鍒ゆ柇棰勭害浜烘暟
-                for (SvyTaskTemplateTargetoption stt : options) {
+                for (SvyLibTemplateTargetoption stt : svyLibTemplateTargetoptions) {
                     Boolean full = patReservationRecordMapper.existsEqualNum(stt.getId());
                     if (Boolean.TRUE.equals(full)) {
                         stt.setPerson(-1L);
@@ -368,11 +370,11 @@
                     stt.setJmid(id);
                     stt.setId(null);
                 }
-                scriptVO.setSvyTaskTemplateTargetoptions(options);
+                svyLibTemplateScriptVO.setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions);
             }
         }
-        svyTaskTemplateScriptVOS.sort(Comparator.comparingLong(SvyTaskTemplateScriptVO::getSort));
-        return svyTaskTemplateScriptVOS;
+        svyLibTemplateScriptVOS.sort(Comparator.comparingLong(SvyLibTemplateScriptVO::getSort));
+        return svyLibTemplateScriptVOS;
     }
 
     private List xjInfo(Long templateId, Long taskid, Long patid, Boolean isFinish) {
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 5b846e7..049578b 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -393,12 +393,13 @@
         a.leavehospitaldistrictcode,
         a.leavehospitaldistrictname,
         a.diagname
-        <if test="serviceType != null  and serviceType != ''and serviceType != '2'and serviceType != '3'">order by
-            a.long_send_time desc
+        order by a.visit_time desc
+        <if test="serviceType != null  and serviceType != ''and serviceType != '2'and serviceType != '3'">
+            ,a.long_send_time desc
         </if>
-        <if test="serviceType != null  and serviceType != ''and serviceType == '2'">order by a.endtime desc</if>
-        <if test="serviceType != null  and serviceType != ''and serviceType == '3'">order by a.admindate desc</if>
-        -- order by update_time desc,id desc
+        <if test="serviceType != null  and serviceType != ''and serviceType == '2'">,a.endtime desc</if>
+        <if test="serviceType != null  and serviceType != ''and serviceType == '3'">,a.admindate desc</if>
+
 
     </select>
 

--
Gitblit v1.9.3