From db13d846510525ddd4d5c48ee0c549c62cf93efa Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 20 三月 2025 19:01:42 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml |   46 +++++++++++++++++++++++++++++-----------------
 1 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
index 1282926..332b6ca 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -60,6 +60,7 @@
         <result property="operator" column="operator"/>
         <result property="operatorId" column="operator_id"/>
         <result property="remark" column="remark"/>
+        <result property="tagname" column="tagname"/>
     </resultMap>
 
     <sql id="selectPatMedInhospVo">
@@ -122,10 +123,6 @@
         select CONCAT( a.age, a.age_unit ) AS age,
         a.telcode as telcode,
         a.sex,
-        b.guid,
-        b.operator,
-        b.remark,
-        b.operator_id,
         b.inhospid,
         b.nurse_id,
         b.nurse_name,
@@ -173,28 +170,37 @@
         b.deptid,
         b.leaveldeptid,
         b.long_task_reason,
-        b.schemetime
+        b.schemetime,
+        COALESCE (
+        (
+        SELECT string_agg(d.tagname, ', ')
+        FROM pat_archivetag d
+        WHERE d.patid = a.id
+        AND d.del_flag = 0
+        ), '') AS tagname
         FROM
-        pat_med_inhosp b,
-        pat_archive a
+        pat_med_inhosp b
+        JOIN
+        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
-            and b.del_flag=0
-            and a.id = b.patid
-            AND a.idcardno != ''
+            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 TO_DATE(b.endtime,'YYYY-MM-DD') &gt;= TO_DATE(#{startOutHospTime},'YYYY-MM-DD')
             </if>
             <if test="endOutHospTime != null">
-                AND date_format(b.endtime,'%y%m%d') &lt;= date_format(#{endOutHospTime},'%y%m%d')
+                AND TO_DATE(b.endtime,'YYYY-MM-DD') &lt;= TO_DATE(#{endOutHospTime},'YYYY-MM-DD')
             </if>
-
+            <if test="tagname != null  and tagname != ''">and c.tagname like concat('%', #{tagname}, '%')</if>
 
             <if test="startInHospTime != null">
-                AND date_format(b.starttime,'%y%m%d') &gt;= date_format(#{startInHospTime},'%y%m%d')
+                AND TO_DATE(b.starttime, 'YYYY-MM-DD') >= TO_DATE(#{startInHospTime}, 'YYYY-MM-DD')
             </if>
             <if test="endInHospTime != null">
-                AND date_format(b.starttime,'%y%m%d') &lt;= date_format(#{endInHospTime},'%y%m%d')
+                AND TO_DATE(b.starttime, 'YYYY-MM-DD') &lt;= TO_DATE(#{startInHospTime}, 'YYYY-MM-DD')
             </if>
             <if test="hospitalname != null  and hospitalname != ''">and hospitalname like concat('%', #{hospitalname},
                 '%')
@@ -245,9 +251,15 @@
                 </foreach>
             </if>
         </where>
+        GROUP BY
+        b.inhospid,
+        a.age,
+        a.age_unit,
+        a.telcode,
+        a.id,
+        a.sex
         order by b.inhospid desc
     </select>
-
     <select id="selectPatMedInhospListByCondition" parameterType="com.smartor.domain.PatMedInhospVO"
             resultMap="PatMedInhospResult">
         select CONCAT( a.age, a.age_unit ) AS age,

--
Gitblit v1.9.3