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