From 987e38327f849e1b13d8541246dde08d877db0e8 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 07 一月 2026 14:10:43 +0800
Subject: [PATCH] 【市一】调整mapper获取ordid

---
 smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml |  233 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 179 insertions(+), 54 deletions(-)

diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
index 5682971..74fd713 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -214,28 +214,30 @@
         pat_archive a ON a.id = b.patid
         LEFT JOIN
         pat_archivetag c ON c.patid = a.id AND (c.del_flag = 0 OR c.del_flag IS NULL)
-        <where>
-            a.del_flag = 0
+        WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
+            AND a.del_flag = 0
             AND b.del_flag = 0
             AND a.idcardno IS NOT NULL
             <if test="startOutHospTime != null ">and date_format(b.endtime,'%y%m%d') &gt;=
-                date_format(#{startOutHospTime},'%y%m%d')
+                AND date_format(#{startOutHospTime},'%y%m%d')
             </if>
             <if test="endOutHospTime != null ">and date_format(b.endtime,'%y%m%d') &lt;=
-                date_format(#{endOutHospTime},'%y%m%d')
+                AND date_format(#{endOutHospTime},'%y%m%d')
             </if>
             <if test="startInHospTime != null ">and date_format(b.starttime,'%y%m%d') &gt;=
-                date_format(#{startInHospTime},'%y%m%d')
+                AND date_format(#{startInHospTime},'%y%m%d')
             </if>
             <if test="endInHospTime != null ">and date_format(b.starttime,'%y%m%d') &lt;=
-                date_format(#{endInHospTime},'%y%m%d')
+                AND date_format(#{endInHospTime},'%y%m%d')
             </if>
-            <if test="hospitalname != null  and hospitalname != ''">and hospitalname like concat('%', #{hospitalname},
-                '%')
+            <if test="hospitalname != null  and hospitalname != ''">
+                and hospitalname like concat('%', #{hospitalname},'%')
             </if>
             <if test="patname != null  and patname != ''">and patname like concat('%', #{patname}, '%')</if>
-            <if test="hospitaldistrictname != null  and hospitaldistrictname != ''">and hospitaldistrictname like
-                concat('%', #{hospitaldistrictname}, '%')
+            <if test="hospitaldistrictname != null  and hospitaldistrictname != ''">
+                and hospitaldistrictname like concat('%', #{hospitaldistrictname}, '%')
             </if>
             <if test="endtime != null ">and b.endtime = #{endtime}</if>
             <if test="managementDoctor != null ">and b.management_doctor = #{managementDoctor}</if>
@@ -272,24 +274,24 @@
             <if test="patid != null  and patid != ''">and a.id =#{patid}
             </if>
             <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and
-                b.leavehospitaldistrictname like concat('%', #{leavehospitaldistrictname}, '%')
+                AND b.leavehospitaldistrictname like concat('%', #{leavehospitaldistrictname}, '%')
             </if>
 
             <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size()>0">
                 AND b.leavehospitaldistrictcode IN
                 <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
-                         close=")">
+                         AND close=")">
                     #{leavehospitaldistrictcode}
                 </foreach>
             </if>
             <if test="leaveldeptcodes != null and leaveldeptcodes.size()>0">
                 AND b.leaveldeptcode IN
                 <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
-                         close=")">
+                         AND close=")">
                     #{leaveldeptcode}
                 </foreach>
             </if>
-        </where>
+        
         GROUP BY
         b.inhospid,
         a.age,
@@ -371,10 +373,12 @@
         FROM
         pat_med_inhosp b
 
-        <where>
+        WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
             <if test="serialnum != null ">and b.serialnum = #{serialnum}</if>
 
-        </where>
+        
         order by b.inhospid desc
     </select>
 
@@ -448,19 +452,21 @@
         FROM
         pat_med_inhosp b,
         pat_archive a
-        <where>
-            a.del_flag=0
+        WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
+            AND a.del_flag=0
             and b.del_flag=0
             and a.id = b.patid
             AND a.idcardno != ''
-            <if test="hospitalname != null  and hospitalname != ''">and hospitalname like concat('%', #{hospitalname},
-                '%')
+            <if test="hospitalname != null  and hospitalname != ''">
+                and hospitalname like concat('%', #{hospitalname},'%')
             </if>
             <if test="managementDoctor != null ">and b.management_doctor = #{managementDoctor}</if>
             <if test="managementDoctorCode != null ">and b.management_doctor_code = #{managementDoctorCode}</if>
             <if test="patname != null  and patname != ''">and patname like concat('%', #{patname}, '%')</if>
-            <if test="hospitaldistrictname != null  and hospitaldistrictname != ''">and hospitaldistrictname like
-                concat('%', #{hospitaldistrictname}, '%')
+            <if test="hospitaldistrictname != null  and hospitaldistrictname != ''">
+                and hospitaldistrictname like concat('%', #{hospitaldistrictname}, '%')
             </if>
             <if test="endtime != null ">and b.endtime = #{endtime}</if>
             <if test="serialnum != null ">and b.serialnum = #{serialnum}</if>
@@ -481,18 +487,18 @@
             <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size()>0">
                 AND b.leavehospitaldistrictcode IN
                 <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
-                         close=")">
+                         AND close=")">
                     #{leavehospitaldistrictcode}
                 </foreach>
             </if>
             <if test="leaveldeptcodes != null and leaveldeptcodes.size()>0">
                 AND b.leaveldeptcode IN
                 <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
-                         close=")">
+                         AND close=")">
                     #{leaveldeptcode}
                 </foreach>
             </if>
-        </where>
+        
         order by b.inhospid desc
     </select>
 
@@ -513,8 +519,9 @@
     <select id="selectPatMedInhosp" parameterType="Long" resultMap="PatMedInhospResult">
         <include refid="selectPatMedInhospVo"/>
         where del_flag=0
-        <if test="cry != null and cry == 0 ">and endtime is null</if>
+        <if test="cry != null and cry == 0 ">and inhospstate=0</if>
         <if test="cry != null and cry == 1 ">and inhospstate=1</if>
+        <if test="cry != null and cry == 3 ">and inhospstate=3</if>
         <if test="serialnum != null">and serialnum = #{serialnum}</if>
         <if test="hospitalname != null">and hospitalname = #{hospitalname}</if>
         <if test="hospitalcode != null">and hospitalcode = #{hospitalcode}</if>
@@ -856,15 +863,17 @@
         <if test="mz != null">
             SELECT deptname
             FROM pat_med_outhosp
-            <where>
-                del_flag=0
+            WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
+                AND del_flag=0
                 <if test="deptcodeList != null   and deptcodeList.size() > 0">
                     and deptcode in
                     <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
-                        #{deptcode}
+                    #{deptcode}
                     </foreach>
                 </if>
-            </where>
+            
         </if>
         <if test="mz != null and zy != null">
             UNION ALL
@@ -872,46 +881,52 @@
         <if test="zy != null">
             SELECT deptname
             FROM pat_med_inhosp
-            <where>
-                del_flag=0
+            WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
+                AND del_flag=0
                 and inhospstate=0
                 <if test="deptcodeList != null   and deptcodeList.size() > 0">
                     and deptcode in
                     <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
-                        #{deptcode}
+                    #{deptcode}
                     </foreach>
                 </if>
-            </where>
+            
         </if>
         <if test="cy != null and zy != null">
             UNION ALL
             SELECT deptname
             FROM pat_med_inhosp
-            <where>
-                del_flag=0
+            WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
+                AND del_flag=0
                 and inhospstate=1
                 <if test="deptcodeList != null   and deptcodeList.size() > 0">
                     and deptcode in
                     <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
-                        #{deptcode}
+                    #{deptcode}
                     </foreach>
                 </if>
-            </where>
+            
         </if>
         <if test="mz != null and zy != null and cy==null">
             UNION ALL
             SELECT deptname
             FROM pat_med_inhosp
-            <where>
-                del_flag=0
+            WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
+                AND del_flag=0
                 and inhospstate=1
                 <if test="deptcodeList != null   and deptcodeList.size() > 0">
                     and deptcode in
                     <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
-                        #{deptcode}
+                    #{deptcode}
                     </foreach>
                 </if>
-            </where>
+            
         </if>
         ) AS combined
         GROUP BY deptname;
@@ -919,15 +934,24 @@
     <select id="selectPatMedInhospCount" parameterType="com.smartor.domain.PatMedReq"
             resultType="com.smartor.domain.PatMedRes">
         SELECT SUM( rs ) AS rs,
-        SUM( rc ) AS rc
+        SUM( rc ) AS rc,
+        SUM( scsf ) AS scsf,
+        SUM( zcsf ) AS zcsf,
+        SUM( zbsf ) AS zbsf
         FROM (
+        <!-- 鍑洪櫌浜烘-->
         SELECT
         COUNT(1) AS rc,
-        0 AS rs
+        0 AS rs,
+        0 AS scsf,
+        0 AS zcsf,
+        0 AS zbsf
         FROM
         pat_med_inhosp
-        <where>
-            del_flag=0
+        WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
+            AND del_flag=0
             <if test="orgid != null">
                 AND orgid = #{orgid}
             </if>
@@ -938,7 +962,7 @@
                 <if test="deptcodeList != null   and deptcodeList.size() > 0">
                     and deptcode in
                     <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
-                        #{deptcode}
+                    #{deptcode}
                     </foreach>
                 </if>
             </if>
@@ -949,20 +973,25 @@
                 <if test="deptcodeList != null   and deptcodeList.size() > 0">
                     and leaveldeptcode in
                     <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
-                        #{deptcode}
+                    #{deptcode}
                     </foreach>
                 </if>
             </if>
-
-        </where>
+        
+        <!-- 闅忚鏈嶅姟浜烘暟 -->
         union all
         select
         0 AS rc,
-        count(1) AS rs
+        count(1) AS rs,
+        0 AS scsf,
+        0 AS zcsf,
+        0 AS zbsf
         FROM
         service_subtask
-        <where>
-            del_flag = 0
+        WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
+            AND del_flag = 0
             and service_type=2
             <if test="orgid != null">
                 AND orgid = #{orgid}
@@ -979,7 +1008,103 @@
                     #{deptcode}
                 </foreach>
             </if>
-        </where>
+        
+        <!-- 棣栨闅忚浜烘暟 -->
+        union all
+        select
+        0 AS rc,
+        0 AS rs,
+        count(1) AS scsf,
+        0 AS zcsf,
+        0 AS zbsf
+        FROM
+        service_subtask
+        WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
+            AND del_flag = 0
+            and service_type=2
+            and is_visit_again = 0
+            <if test="orgid != null">
+                AND orgid = #{orgid}
+            </if>
+            <if test="startDate != null">
+                AND date_format( visit_time, '%y%m%d' ) &gt;= date_format( #{startDate}, '%y%m%d' )
+            </if>
+            <if test="endDate != null">
+                AND date_format( visit_time, '%y%m%d' ) &lt;= date_format(#{endDate},'%y%m%d')
+            </if>
+            <if test="deptcodeList != null   and deptcodeList.size() > 0">
+                and deptcode in
+                <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
+                    #{deptcode}
+                </foreach>
+            </if>
+        
+        <!-- 鍐嶆闅忚浜烘暟 -->
+        union all
+        select
+        0 AS rc,
+        0 AS rs,
+        0 AS scsf,
+        count(1) AS zcsf,
+        0 AS zbsf
+        FROM
+        service_subtask
+        WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
+            AND del_flag = 0
+            and service_type=2
+            and is_visit_again = 1
+            <if test="orgid != null">
+                AND orgid = #{orgid}
+            </if>
+            <if test="startDate != null">
+                AND date_format( visit_time, '%y%m%d' ) &gt;= date_format( #{startDate}, '%y%m%d' )
+            </if>
+            <if test="endDate != null">
+                AND date_format( visit_time, '%y%m%d' ) &lt;= date_format(#{endDate},'%y%m%d')
+            </if>
+            <if test="deptcodeList != null   and deptcodeList.size() > 0">
+                and deptcode in
+                <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
+                    #{deptcode}
+                </foreach>
+            </if>
+        
+        <!-- 涓撶梾闅忚浜烘暟 -->
+        union all
+        select
+        0 AS rc,
+        0 AS rs,
+        0 AS scsf,
+        0 AS zcsf,
+        count(1) AS zbsf
+        FROM
+        service_subtask
+        WHERE 1=1
+            <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+
+            AND del_flag = 0
+            and service_type=13
+            <if test="orgid != null">
+                AND orgid = #{orgid}
+            </if>
+            <if test="startDate != null">
+                AND date_format( visit_time, '%y%m%d' ) &gt;= date_format( #{startDate}, '%y%m%d' )
+            </if>
+            <if test="endDate != null">
+                AND date_format( visit_time, '%y%m%d' ) &lt;= date_format(#{endDate},'%y%m%d')
+            </if>
+            <if test="deptcodeList != null   and deptcodeList.size() > 0">
+                and deptcode in
+                <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
+                    #{deptcode}
+                </foreach>
+            </if>
+        
         ) AS combined_data
     </select>
+
 </mapper>

--
Gitblit v1.9.3