From 67d934b740862de1db1951137b5590410f3eb92b Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 15 八月 2025 13:34:39 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml |  232 ++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 144 insertions(+), 88 deletions(-)

diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
index 28364e0..4441177 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -70,70 +70,74 @@
         <result property="futypedesc" column="futypedesc"/>
         <result property="fuadvice" column="fuadvice"/>
         <result property="fuspecialadvice" column="fuspecialadvice"/>
+        <result property="managementDoctor" column="management_doctor"/>
+        <result property="managementDoctorCode" column="management_doctor_code"/>
     </resultMap>
 
     <sql id="selectPatMedInhospVo">
         select inhospid,
-               patname,
-               fuflag,
-               fudate,
-               fuperiod,
-               futypecode,
-               futypedesc,
-               fuadvice,
-               fuspecialadvice,
-               remark,
-               guid,
-               operator,
-               operator_id,
-               out_way_id,
-               out_way_name,
-               nurse_id,
-               nurse_name,
-               deptcheck_flag,
-               wardcheck_flag,
-               diagcheck_flag,
-               inhospstate,
-               patno,
-               long_task_reason,
-               inhospno,
-               serialnum,
-               hospitalname,
-               hospitalcode,
-               hospitaldistrictcode,
-               hospitaldistrictname,
-               icd10code,
-               diagname,
-               starttime,
-               endtime,
-               deptcode,
-               deptname,
-               roomno,
-               bed_no,
-               orgid,
-               del_flag,
-               update_by,
-               update_time,
-               create_by,
-               create_time,
-               isupload,
-               upload_time,
-               patid,
-               leavediagname,
-               leaveicd10code,
-               drcode,
-               drname,
-               schemestatus,
-               generalschemestatus,
-               leaveldeptcode,
-               leaveldeptname,
-               hospitaldistrictid,
-               leavehospitaldistrictcode,
-               leavehospitaldistrictname,
-               leavehospitaldistrictid,
-               deptid,
-               leaveldeptid,
-               schemetime
+        patname,
+        fuflag,
+        management_doctor,
+        management_doctor_code,
+        fudate,
+        fuperiod,
+        futypecode,
+        futypedesc,
+        fuadvice,
+        fuspecialadvice,
+        remark,
+        guid,
+        operator,
+        operator_id,
+        out_way_id,
+        out_way_name,
+        nurse_id,
+        nurse_name,
+        deptcheck_flag,
+        wardcheck_flag,
+        diagcheck_flag,
+        inhospstate,
+        patno,
+        long_task_reason,
+        inhospno,
+        serialnum,
+        hospitalname,
+        hospitalcode,
+        hospitaldistrictcode,
+        hospitaldistrictname,
+        icd10code,
+        diagname,
+        starttime,
+        endtime,
+        deptcode,
+        deptname,
+        roomno,
+        bed_no,
+        orgid,
+        del_flag,
+        update_by,
+        update_time,
+        create_by,
+        create_time,
+        isupload,
+        upload_time,
+        patid,
+        leavediagname,
+        leaveicd10code,
+        drcode,
+        drname,
+        schemestatus,
+        generalschemestatus,
+        leaveldeptcode,
+        leaveldeptname,
+        hospitaldistrictid,
+        leavehospitaldistrictcode,
+        leavehospitaldistrictname,
+        leavehospitaldistrictid,
+        deptid,
+        leaveldeptid,
+        schemetime
         from pat_med_inhosp
     </sql>
 
@@ -145,6 +149,8 @@
         b.nurse_id,
         b.nurse_name,
         b.patname,
+        b.management_doctor,
+        b.management_doctor_code,
         b.out_way_id,
         b.out_way_name,
         b.deptcheck_flag,
@@ -204,25 +210,11 @@
         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)
+        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.idcardno IS NOT NULL
-            <!--<if test="startOutHospTime != null">
-                AND STR_TO_DATE(b.endtime,'%Y-%m-%d') &gt;= STR_TO_DATE(#{startOutHospTime},'%Y-%m-%d')
-            </if>
-            <if test="endOutHospTime != null">
-                AND STR_TO_DATE(b.endtime,'%Y-%m-%d') &lt;= STR_TO_DATE(#{endOutHospTime},'%Y-%m-%d')
-            </if>
-            <if test="tagname != null  and tagname != ''">and c.tagname like concat('%', #{tagname}, '%')</if>
-
-            <if test="startInHospTime != null">
-                AND STR_TO_DATE(b.starttime, '%Y-%m-%d') >= STR_TO_DATE(#{startInHospTime}, '%Y-%m-%d')
-            </if>
-            <if test="endInHospTime != null">
-                AND STR_TO_DATE(b.starttime, '%Y-%m-%d') &lt;= STR_TO_DATE(#{startInHospTime}, '%Y-%m-%d')
-            </if>-->
             <if test="startOutHospTime != null ">and date_format(b.endtime,'%y%m%d') &gt;=
                 date_format(#{startOutHospTime},'%y%m%d')
             </if>
@@ -243,8 +235,11 @@
                 concat('%', #{hospitaldistrictname}, '%')
             </if>
             <if test="endtime != null ">and b.endtime = #{endtime}</if>
+            <if test="managementDoctor != null ">and b.management_doctor = #{managementDoctor}</if>
+            <if test="managementDoctorCode != null ">and b.management_doctor_code = #{managementDoctorCode}</if>
             <if test="inhospno != null ">and b.inhospno = #{inhospno}</if>
             <if test="fuflag != null ">and b.fuflag = #{fuflag}</if>
+            <if test="orgid != null ">and b.orgid = #{orgid}</if>
             <if test="serialnum != null ">and b.serialnum = #{serialnum}</if>
             <if test="endtime != null ">and b.endtime = #{endtime}</if>
             <if test="patno != null ">and b.patno = #{patno}</if>
@@ -259,12 +254,16 @@
             <if test="schemestatus != null ">and b.schemestatus = #{schemestatus}</if>
             <if test="outWayId != null ">and b.out_way_id = #{outWayId}</if>
             <if test="outWayName != null ">and b.out_way_name = #{outWayName}</if>
+            <if test="leaveldeptcode != null ">and b.leaveldeptcode = #{leaveldeptcode}</if>
             <if test="leavediagname != null  and leavediagname != ''">and b.leavediagname like concat('%',
                 #{leavediagname}, '%')
             </if>
             <if test="drname != null  and drname != ''">and b.drname like concat('%', #{drname}, '%')</if>
             <if test="leaveldeptname != null  and leaveldeptname != ''">and b.leaveldeptname like concat('%',
                 #{leaveldeptname}, '%')
+            </if>
+            <if test="deptname != null  and deptname != ''">and b.deptname like concat('%',
+                #{deptname}, '%')
             </if>
             <if test="patid != null  and patid != ''">and a.id =#{patid}
             </if>
@@ -306,6 +305,8 @@
         select CONCAT( a.age, a.age_unit ) AS age,
         a.telcode as telcode,
         b.inhospid,
+        b.management_doctor,
+        b.management_doctor_code,
         b.patname,
         b.operator_id,
         b.operator,
@@ -376,6 +377,8 @@
             <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}, '%')
@@ -416,7 +419,7 @@
         SELECT GROUP_CONCAT(d.tagname, ', ')
         FROM pat_archivetag d
         WHERE d.patid = #{patid}
-          AND d.del_flag = 0
+        AND d.del_flag = 0
     </select>
 
 
@@ -424,8 +427,6 @@
         <include refid="selectPatMedInhospVo"/>
         where inhospid = #{inhospid}
     </select>
-
-
 
 
     <insert id="insertPatMedInhosp" parameterType="com.smartor.domain.PatMedInhosp" useGeneratedKeys="true"
@@ -492,6 +493,8 @@
             <if test="futypedesc != null ">futypedesc,</if>
             <if test="fuadvice != null ">fuadvice,</if>
             <if test="fuspecialadvice != null ">fuspecialadvice,</if>
+            <if test="managementDoctor != null ">management_doctor,</if>
+            <if test="managementDoctorCode != null ">management_doctor_code,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="serialnum != null">#{serialnum},</if>
@@ -554,11 +557,14 @@
             <if test="futypedesc != null ">#{futypedesc},</if>
             <if test="fuadvice != null ">#{fuadvice},</if>
             <if test="fuspecialadvice != null ">#{fuspecialadvice},</if>
+            <if test="managementDoctor != null ">#{managementDoctor},</if>
+            <if test="managementDoctorCode != null ">#{managementDoctorCode},</if>
         </trim>
     </insert>
 
 
-    <insert id="insertPatMedInhospBatch" parameterType="java.util.List">
+    <insert id="insertPatMedInhospBatch" parameterType="java.util.List" useGeneratedKeys="true"
+            keyProperty="item.inhospid">
         insert into pat_med_inhosp (
         serialnum, hospitalname, hospitalcode, hospitaldistrictcode, hospitaldistrictname,
         icd10code, diagname, starttime, endtime, deptcode, deptname, roomno, bed_no,
@@ -570,22 +576,30 @@
         deptcheck_flag, wardcheck_flag, diagcheck_flag, long_task_reason,
         nurse_id, nurse_name, out_way_id, out_way_name, guid,
         operator, operator_id, inhospno, remark,
-        fuflag, fudate, fuperiod, futypecode, futypedesc, fuadvice, fuspecialadvice
+        fuflag, fudate, fuperiod, futypecode, futypedesc, fuadvice, fuspecialadvice, management_doctor,
+        management_doctor_doctor
         )
         values
         <foreach collection="list" item="item" separator=",">
             (
-            #{item.serialnum}, #{item.hospitalname}, #{item.hospitalcode}, #{item.hospitaldistrictcode}, #{item.hospitaldistrictname},
-            #{item.icd10code}, #{item.diagname}, #{item.starttime}, #{item.endtime}, #{item.deptcode}, #{item.deptname}, #{item.roomno}, #{item.bedNo},
-            #{item.orgid}, #{item.delFlag}, #{item.updateBy}, #{item.updateTime}, #{item.createBy}, #{item.createTime}, #{item.isupload},
-            #{item.uploadTime}, #{item.patid}, #{item.leavediagname}, #{item.leaveicd10code}, #{item.drcode}, #{item.drname},
-            #{item.schemestatus}, #{item.generalschemestatus}, #{item.leaveldeptcode}, #{item.leaveldeptname}, #{item.hospitaldistrictid},
+            #{item.serialnum}, #{item.hospitalname}, #{item.hospitalcode}, #{item.hospitaldistrictcode},
+            #{item.hospitaldistrictname},
+            #{item.icd10code}, #{item.diagname}, #{item.starttime}, #{item.endtime}, #{item.deptcode}, #{item.deptname},
+            #{item.roomno}, #{item.bedNo},
+            #{item.orgid}, #{item.delFlag}, #{item.updateBy}, #{item.updateTime}, #{item.createBy}, #{item.createTime},
+            #{item.isupload},
+            #{item.uploadTime}, #{item.patid}, #{item.leavediagname}, #{item.leaveicd10code}, #{item.drcode},
+            #{item.drname},
+            #{item.schemestatus}, #{item.generalschemestatus}, #{item.leaveldeptcode}, #{item.leaveldeptname},
+            #{item.hospitaldistrictid},
             #{item.leavehospitaldistrictcode}, #{item.leavehospitaldistrictname}, #{item.leavehospitaldistrictid},
-            #{item.deptid}, #{item.leaveldeptid}, #{item.schemetime}, #{item.patname}, #{item.patno}, #{item.inhospstate},
+            #{item.deptid}, #{item.leaveldeptid}, #{item.schemetime}, #{item.patname}, #{item.patno},
+            #{item.inhospstate},
             #{item.deptcheckFlag}, #{item.wardcheckFlag}, #{item.diagcheckFlag}, #{item.longTaskReason},
             #{item.nurseId}, #{item.nurseName}, #{item.outWayId}, #{item.outWayName}, #{item.guid},
             #{item.operator}, #{item.operatorId}, #{item.inhospno}, #{item.remark},
-            #{item.fuflag}, #{item.fudate}, #{item.fuperiod}, #{item.futypecode}, #{item.futypedesc}, #{item.fuadvice}, #{item.fuspecialadvice}
+            #{item.fuflag}, #{item.fudate}, #{item.fuperiod}, #{item.futypecode}, #{item.futypedesc}, #{item.fuadvice},
+            #{item.fuspecialadvice}, #{item.managementDoctor}, #{item.managementDoctorCode}
             )
         </foreach>
     </insert>
@@ -653,6 +667,9 @@
             <if test="futypedesc != null ">futypedesc = #{futypedesc},</if>
             <if test="fuadvice != null ">fuadvice = #{fuadvice},</if>
             <if test="fuspecialadvice != null ">fuspecialadvice = #{fuspecialadvice},</if>
+            <if test="managementDoctor != null ">management_doctor = #{managementDoctor},</if>
+            <if test="managementDoctorCode != null ">management_doctor_code = #{managementDoctorCode}</if>
+
         </trim>
         where inhospid = #{inhospid}
     </update>
@@ -748,22 +765,60 @@
     </select>
     <select id="selectPatMedInhospCount" parameterType="com.smartor.domain.PatMedReq"
             resultType="com.smartor.domain.PatMedRes">
+        SELECT SUM( rs ) AS rs,
+        SUM( rc ) AS rc
+        FROM (
         SELECT
         COUNT(1) AS rc,
-        COUNT(DISTINCT patid) AS rs
+        0 AS rs
         FROM
         pat_med_inhosp
         <where>
             del_flag=0
+            <if test="orgid != null">
+                AND orgid = #{orgid}
+            </if>
             <if test="zy != null">
                 and inhospstate=0
                 and date_format(starttime,'%y%m%d') &gt;= date_format(#{startDate},'%y%m%d')
                 and date_format(starttime,'%y%m%d') &lt;= date_format(#{endDate},'%y%m%d')
+                <if test="deptcodeList != null   and deptcodeList.size() > 0">
+                    and deptcode in
+                    <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
+                        #{deptcode}
+                    </foreach>
+                </if>
             </if>
             <if test="cy != null">
                 and inhospstate=1
                 and date_format(endtime,'%y%m%d') &gt;= date_format(#{startDate},'%y%m%d')
                 and date_format(endtime,'%y%m%d') &lt;= date_format(#{endDate},'%y%m%d')
+                <if test="deptcodeList != null   and deptcodeList.size() > 0">
+                    and leaveldeptcode in
+                    <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
+                        #{deptcode}
+                    </foreach>
+                </if>
+            </if>
+
+        </where>
+        union all
+        select
+        0 AS rc,
+        count(1) AS rs
+        FROM
+        service_subtask
+        <where>
+            del_flag = 0
+            and service_type=2
+            <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
@@ -772,5 +827,6 @@
                 </foreach>
             </if>
         </where>
+        ) AS combined_data
     </select>
 </mapper>

--
Gitblit v1.9.3