From 0dffefa0ba7f38d54852b3c3f97158df236bfe34 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 21 七月 2026 16:42:40 +0800
Subject: [PATCH] 【丽水】病人出院记录查询慢问题处理

---
 smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml |   42 ++++++++++++++++++++++++++++--------------
 1 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml
index 2aa5822..ef03c5f 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml
@@ -389,20 +389,34 @@
         <if test="leavehospitaldistrictname != null  ">and service_task.leavehospitaldistrictname =
             #{leavehospitaldistrictname}
         </if>
-        <if test="leavehospitaldistrictcodes!=null and leavehospitaldistrictcodes.size()>0">
-            AND service_task.leavehospitaldistrictcode IN
-            <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
-                     close=")">
-                #{leavehospitaldistrictcode}
-            </foreach>
-        </if>
-        <if test="leaveldeptcodes!=null and leaveldeptcodes.size()>0">
-            AND service_task.deptcode IN
-            <foreach collection="leaveldeptcodes" item="deptcode" open="(" separator=","
-                     close=")">
-                #{deptcode}
-            </foreach>
-        </if>
+        <choose>
+            <when test="(leavehospitaldistrictcodes!=null and leavehospitaldistrictcodes.size()>0) and (leaveldeptcodes!=null and leaveldeptcodes.size()>0)">
+                AND (
+                    service_task.leavehospitaldistrictcode IN
+                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," close=")">
+                        #{leavehospitaldistrictcode}
+                    </foreach>
+                    OR service_task.deptcode IN
+                    <foreach collection="leaveldeptcodes" item="deptcode" open="(" separator="," close=")">
+                        #{deptcode}
+                    </foreach>
+                )
+            </when>
+            <otherwise>
+                <if test="leavehospitaldistrictcodes!=null and leavehospitaldistrictcodes.size()>0">
+                    AND service_task.leavehospitaldistrictcode IN
+                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," close=")">
+                        #{leavehospitaldistrictcode}
+                    </foreach>
+                </if>
+                <if test="leaveldeptcodes!=null and leaveldeptcodes.size()>0">
+                    AND service_task.deptcode IN
+                    <foreach collection="leaveldeptcodes" item="deptcode" open="(" separator="," close=")">
+                        #{deptcode}
+                    </foreach>
+                </if>
+            </otherwise>
+        </choose>
         <if test="leavehospitaldistrictcode != null  ">and service_task.leavehospitaldistrictcode =
             #{leavehospitaldistrictcode}
         </if>

--
Gitblit v1.9.3