liusheng
2024-09-18 907641e56c2085aaa81f267946dc3e3e9fca73e7
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -1,73 +1,307 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.smartor.mapper.PatMedInhospMapper">
    <resultMap type="PatMedInhosp" id="PatMedInhospResult">
        <result property="inhospid"    column="inhospid"    />
        <result property="serialnum"    column="serialnum"    />
        <result property="hospitalname"    column="hospitalname"    />
        <result property="hospitalcode"    column="hospitalcode"    />
        <result property="hospitaldistrictcode"    column="hospitaldistrictcode"    />
        <result property="hospitaldistrictname"    column="hospitaldistrictname"    />
        <result property="icd10code"    column="icd10code"    />
        <result property="diagname"    column="diagname"    />
        <result property="starttime"    column="starttime"    />
        <result property="endtime"    column="endtime"    />
        <result property="deptcode"    column="deptcode"    />
        <result property="deptname"    column="deptname"    />
        <result property="roomno"    column="roomno"    />
        <result property="bedno"    column="bedno"    />
        <result property="orgid"    column="orgid"    />
        <result property="delFlag"    column="del_flag"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="isupload"    column="isupload"    />
        <result property="uploadTime"    column="upload_time"    />
        <result property="patid"    column="patid"    />
        <result property="leavediagname"    column="leavediagname"    />
        <result property="leaveicd10code"    column="leaveicd10code"    />
        <result property="drcode"    column="drcode"    />
        <result property="drname"    column="drname"    />
        <result property="schemestatus"    column="schemestatus"    />
        <result property="generalschemestatus"    column="generalschemestatus"    />
        <result property="leaveldeptcode"    column="leaveldeptcode"    />
        <result property="leaveldeptname"    column="leaveldeptname"    />
        <result property="hospitaldistrictid"    column="hospitaldistrictid"    />
        <result property="leavehospitaldistrictcode"    column="leavehospitaldistrictcode"    />
        <result property="leavehospitaldistrictname"    column="leavehospitaldistrictname"    />
        <result property="leavehospitaldistrictid"    column="leavehospitaldistrictid"    />
        <result property="deptid"    column="deptid"    />
        <result property="leaveldeptid"    column="leaveldeptid"    />
        <result property="schemetime"    column="schemetime"    />
    <resultMap type="com.smartor.domain.PatMedInhosp" id="PatMedInhospResult">
        <result property="inhospid" column="inhospid"/>
        <result property="inhospno" column="inhospno"/>
        <result property="serialnum" column="serialnum"/>
        <result property="hospitalname" column="hospitalname"/>
        <result property="hospitalcode" column="hospitalcode"/>
        <result property="hospitaldistrictcode" column="hospitaldistrictcode"/>
        <result property="hospitaldistrictname" column="hospitaldistrictname"/>
        <result property="icd10code" column="icd10code"/>
        <result property="diagname" column="diagname"/>
        <result property="starttime" column="starttime"/>
        <result property="endtime" column="endtime"/>
        <result property="deptcode" column="deptcode"/>
        <result property="deptname" column="deptname"/>
        <result property="roomno" column="roomno"/>
        <result property="bedNo" column="bed_no"/>
        <result property="orgid" column="orgid"/>
        <result property="delFlag" column="del_flag"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="isupload" column="isupload"/>
        <result property="uploadTime" column="upload_time"/>
        <result property="patid" column="patid"/>
        <result property="leavediagname" column="leavediagname"/>
        <result property="leaveicd10code" column="leaveicd10code"/>
        <result property="drcode" column="drcode"/>
        <result property="drname" column="drname"/>
        <result property="schemestatus" column="schemestatus"/>
        <result property="generalschemestatus" column="generalschemestatus"/>
        <result property="leaveldeptcode" column="leaveldeptcode"/>
        <result property="leaveldeptname" column="leaveldeptname"/>
        <result property="hospitaldistrictid" column="hospitaldistrictid"/>
        <result property="leavehospitaldistrictcode" column="leavehospitaldistrictcode"/>
        <result property="leavehospitaldistrictname" column="leavehospitaldistrictname"/>
        <result property="leavehospitaldistrictid" column="leavehospitaldistrictid"/>
        <result property="deptid" column="deptid"/>
        <result property="leaveldeptid" column="leaveldeptid"/>
        <result property="schemetime" column="schemetime"/>
        <result property="patname" column="patname"/>
        <result property="patno" column="patno"/>
        <result property="inhospstate" column="inhospstate"/>
        <result property="checkFlag" column="check_flag"/>
        <result property="age" column="age"/>
        <result property="telcode" column="telcode"/>
        <result property="longTaskReason" column="long_task_reason"/>
        <result property="nurseId" column="nurse_id"/>
        <result property="nurseName" column="nurse_name"/>
        <result property="outWayId" column="out_way_id"/>
        <result property="outWayName" column="out_way_name"/>
    </resultMap>
    <sql id="selectPatMedInhospVo">
        select inhospid, serialnum, hospitalname, hospitalcode, hospitaldistrictcode, hospitaldistrictname, icd10code, diagname, starttime, endtime, deptcode, deptname, roomno, bedno, 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
        select inhospid,
               patname,
               out_way_id,
               out_way_name,
               nurse_id,
               nurse_name,
               check_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>
    <select id="selectPatMedInhospList" parameterType="PatMedInhosp" resultMap="PatMedInhospResult">
        <include refid="selectPatMedInhospVo"/>
        <where>
            <if test="hospitalname != null  and hospitalname != ''"> and hospitalname like concat('%', #{hospitalname}, '%')</if>
            <if test="hospitaldistrictname != null  and hospitaldistrictname != ''"> and hospitaldistrictname like concat('%', #{hospitaldistrictname}, '%')</if>
            <if test="endtime != null "> and endtime = #{endtime}</if>
            <if test="leavediagname != null  and leavediagname != ''"> and leavediagname like concat('%', #{leavediagname}, '%')</if>
            <if test="drname != null  and drname != ''"> and drname like concat('%', #{drname}, '%')</if>
            <if test="leaveldeptname != null  and leaveldeptname != ''"> and leaveldeptname like concat('%', #{leaveldeptname}, '%')</if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''"> and leavehospitaldistrictname like concat('%', #{leavehospitaldistrictname}, '%')</if>
    <select id="selectPatMedInhospList" parameterType="com.smartor.domain.PatMedInhosp" resultMap="PatMedInhospResult">
        select CONCAT( a.age, a.age_unit ) AS age,
        a.telcode as telcode,
        b.inhospid,
        b.nurse_id,
        b.nurse_name,
        b.patname,
        b.out_way_id,
        b.out_way_name,
        b.check_flag,
        b.inhospstate,
        b.patno,
        b.inhospno,
        b.serialnum,
        b.hospitalname,
        b.hospitalcode,
        b.hospitaldistrictcode,
        b.hospitaldistrictname,
        b.icd10code,
        b.diagname,
        b.starttime,
        b.endtime,
        b.deptcode,
        b.deptname,
        b.roomno,
        b.bed_no,
        b.orgid,
        b.del_flag,
        b.update_by,
        b.update_time,
        b.create_by,
        b.create_time,
        b.isupload,
        b.upload_time,
        b.patid,
        b.leavediagname,
        b.leaveicd10code,
        b.drcode,
        b.drname,
        b.schemestatus,
        b.generalschemestatus,
        b.leaveldeptcode,
        b.leaveldeptname,
        b.hospitaldistrictid,
        b.leavehospitaldistrictcode,
        b.leavehospitaldistrictname,
        b.leavehospitaldistrictid,
        b.deptid,
        b.leaveldeptid,
        b.long_task_reason,
        b.schemetime
        FROM
        pat_med_inhosp b,
        pat_archive a
        <where>
            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>
            <if test="patname != null  and patname != ''">and patname like concat('%', #{patname}, '%')</if>
            <if test="hospitaldistrictname != null  and hospitaldistrictname != ''">and hospitaldistrictname like
                concat('%', #{hospitaldistrictname}, '%')
            </if>
            <if test="endtime != null ">and b.endtime = #{endtime}</if>
            <if test="patno != null ">and b.patno = #{patno}</if>
            <if test="nurseId != null ">and b.nurse_id = #{nurseId}</if>
            <if test="nurseName != null ">and b.nurse_name = #{nurseName}</if>
            <if test="checkFlag != null ">and b.check_flag = #{checkFlag}</if>
            <if test="inhospstate != null ">and b.inhospstate = #{inhospstate}</if>
            <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="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="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and
                b.leavehospitaldistrictname like concat('%', #{leavehospitaldistrictname}, '%')
            </if>
        </where>
        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,
        a.telcode as telcode,
        b.inhospid,
        b.patname,
        b.out_way_id,
        b.out_way_name,
        b.nurse_id,
        b.nurse_name,
        b.check_flag,
        b.inhospstate,
        b.patno,
        b.inhospno,
        b.serialnum,
        b.hospitalname,
        b.hospitalcode,
        b.hospitaldistrictcode,
        b.hospitaldistrictname,
        b.icd10code,
        b.diagname,
        b.starttime,
        b.endtime,
        b.deptcode,
        b.deptname,
        b.roomno,
        b.bed_no,
        b.orgid,
        b.del_flag,
        b.update_by,
        b.update_time,
        b.create_by,
        b.create_time,
        b.isupload,
        b.upload_time,
        b.patid,
        b.leavediagname,
        b.leaveicd10code,
        b.drcode,
        b.drname,
        b.schemestatus,
        b.generalschemestatus,
        b.leaveldeptcode,
        b.leaveldeptname,
        b.hospitaldistrictid,
        b.leavehospitaldistrictcode,
        b.leavehospitaldistrictname,
        b.leavehospitaldistrictid,
        b.deptid,
        b.leaveldeptid,
        b.long_task_reason,
        b.schemetime
        FROM
        pat_med_inhosp b,
        pat_archive a
        <where>
            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>
            <if test="patname != null  and patname != ''">and patname like concat('%', #{patname}, '%')</if>
            <if test="hospitaldistrictname != null  and hospitaldistrictname != ''">and hospitaldistrictname like
                concat('%', #{hospitaldistrictname}, '%')
            </if>
            <if test="endtime != null ">and b.endtime = #{endtime}</if>
            <if test="nurseId != null ">and b.nurse_id = #{nurseId}</if>
            <if test="nurseName != null ">and b.nurse_name = #{nurseName}</if>
            <if test="patno != null ">and b.patno = #{patno}</if>
            <if test="checkFlag != null ">and b.check_flag = #{checkFlag}</if>
            <if test="inhospstate != null ">and b.inhospstate = #{inhospstate}</if>
            <if test="schemestatus != null ">and b.schemestatus = #{schemestatus}</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="leavehospitaldistrictcodes != null">
                AND b.leavehospitaldistrictcode IN
                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
                         close=")">
                    #{leavehospitaldistrictcode}
                </foreach>
            </if>
            <if test="leaveldeptcodes != null">
                AND b.leaveldeptcode IN
                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
                         close=")">
                    #{leaveldeptcode}
                </foreach>
            </if>
        </where>
        order by b.inhospid desc
    </select>
    <select id="selectPatMedInhospByInhospid" parameterType="Long" resultMap="PatMedInhospResult">
        <include refid="selectPatMedInhospVo"/>
        where inhospid = #{inhospid}
    </select>
    <insert id="insertPatMedInhosp" parameterType="PatMedInhosp" useGeneratedKeys="true" keyProperty="inhospid">
    <insert id="insertPatMedInhosp" parameterType="com.smartor.domain.PatMedInhosp" useGeneratedKeys="true"
            keyProperty="inhospid">
        insert into pat_med_inhosp
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="serialnum != null">serialnum,</if>
@@ -82,7 +316,7 @@
            <if test="deptcode != null">deptcode,</if>
            <if test="deptname != null">deptname,</if>
            <if test="roomno != null">roomno,</if>
            <if test="bedno != null">bedno,</if>
            <if test="bedNo != null">bed_no,</if>
            <if test="orgid != null">orgid,</if>
            <if test="delFlag != null and delFlag != ''">del_flag,</if>
            <if test="updateBy != null">update_by,</if>
@@ -107,7 +341,16 @@
            <if test="deptid != null">deptid,</if>
            <if test="leaveldeptid != null">leaveldeptid,</if>
            <if test="schemetime != null">schemetime,</if>
         </trim>
            <if test="patname!= null">patname,</if>
            <if test="patno != null">patno,</if>
            <if test="inhospstate != null">inhospstate,</if>
            <if test="checkFlag != null">check_flag,</if>
            <if test="longTaskReason != null">long_task_reason,</if>
            <if test="nurseId != null ">nurse_id,</if>
            <if test="nurseName != null ">nurse_name,</if>
            <if test="outWayId != null ">out_way_id,</if>
            <if test="outWayName != null ">out_way_name,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="serialnum != null">#{serialnum},</if>
            <if test="hospitalname != null">#{hospitalname},</if>
@@ -121,7 +364,7 @@
            <if test="deptcode != null">#{deptcode},</if>
            <if test="deptname != null">#{deptname},</if>
            <if test="roomno != null">#{roomno},</if>
            <if test="bedno != null">#{bedno},</if>
            <if test="bedNo != null">#{bedNo},</if>
            <if test="orgid != null">#{orgid},</if>
            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
            <if test="updateBy != null">#{updateBy},</if>
@@ -146,10 +389,19 @@
            <if test="deptid != null">#{deptid},</if>
            <if test="leaveldeptid != null">#{leaveldeptid},</if>
            <if test="schemetime != null">#{schemetime},</if>
         </trim>
            <if test="patname!= null">#{patname},</if>
            <if test="patno != null">#{patno},</if>
            <if test="inhospstate != null">#{inhospstate},</if>
            <if test="checkFlag != null">#{checkFlag},</if>
            <if test="longTaskReason != null">#{longTaskReason},</if>
            <if test="nurseId != null ">#{nurseId},</if>
            <if test="nurseName != null ">#{nurseName},</if>
            <if test="outWayId != null ">#{outWayId},</if>
            <if test="outWayName != null ">#{outWayName},</if>
        </trim>
    </insert>
    <update id="updatePatMedInhosp" parameterType="PatMedInhosp">
    <update id="updatePatMedInhosp" parameterType="com.smartor.domain.PatMedInhosp">
        update pat_med_inhosp
        <trim prefix="SET" suffixOverrides=",">
            <if test="serialnum != null">serialnum = #{serialnum},</if>
@@ -164,7 +416,7 @@
            <if test="deptcode != null">deptcode = #{deptcode},</if>
            <if test="deptname != null">deptname = #{deptname},</if>
            <if test="roomno != null">roomno = #{roomno},</if>
            <if test="bedno != null">bedno = #{bedno},</if>
            <if test="bedNo != null">bed_no = #{bedNo},</if>
            <if test="orgid != null">orgid = #{orgid},</if>
            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
@@ -189,18 +441,125 @@
            <if test="deptid != null">deptid = #{deptid},</if>
            <if test="leaveldeptid != null">leaveldeptid = #{leaveldeptid},</if>
            <if test="schemetime != null">schemetime = #{schemetime},</if>
            <if test="patname!= null">patname = #{patname},</if>
            <if test="patno != null">patno = #{patno},</if>
            <if test="inhospstate != null">inhospstate = #{inhospstate},</if>
            <if test="checkFlag != null">check_flag = #{checkFlag},</if>
            <if test="longTaskReason != null">long_task_reason = #{longTaskReason},</if>
            <if test="nurseId != null ">nurse_id = #{nurseId},</if>
            <if test="nurseName != null ">nurse_name = #{nurseName},</if>
            <if test="outWayId != null ">out_way_id = #{outWayId},</if>
            <if test="outWayName != null ">out_way_name = #{outWayName},</if>
        </trim>
        where inhospid = #{inhospid}
    </update>
    <delete id="deletePatMedInhospByInhospid" parameterType="Long">
        delete from pat_med_inhosp where inhospid = #{inhospid}
        delete
        from pat_med_inhosp
        where inhospid = #{inhospid}
    </delete>
    <delete id="deletePatMedInhospByInhospids" parameterType="String">
        delete from pat_med_inhosp where inhospid in
        delete from pat_med_inhosp where inhospid in
        <foreach item="inhospid" collection="array" open="(" separator="," close=")">
            #{inhospid}
        </foreach>
    </delete>
</mapper>
    <select id="getDeptRanking" parameterType="com.smartor.domain.PatMedReq" resultType="com.smartor.domain.PatMedRes">
        SELECT deptname, COUNT(1) AS rc
        FROM (
        <if test="mz != null">
            SELECT deptname
            FROM pat_med_outhosp
            <where>
                del_flag=0
                <if test="deptcodeList != null">
                    and deptcode in
                    <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
                        #{deptcode}
                    </foreach>
                </if>
            </where>
        </if>
        <if test="mz != null and zy != null">
            UNION ALL
        </if>
        <if test="zy != null">
            SELECT deptname
            FROM pat_med_inhosp
            <where>
                del_flag=0
                and inhospstate=0
                <if test="deptcodeList != null">
                    and deptcode in
                    <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
                        #{deptcode}
                    </foreach>
                </if>
            </where>
        </if>
        <if test="cy != null and zy != null">
            UNION ALL
            SELECT deptname
            FROM pat_med_inhosp
            <where>
                del_flag=0
                and inhospstate=1
                <if test="deptcodeList != null">
                    and deptcode in
                    <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
                        #{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
                and inhospstate=1
                <if test="deptcodeList != null">
                    and deptcode in
                    <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
                        #{deptcode}
                    </foreach>
                </if>
            </where>
        </if>
        ) AS combined
        GROUP BY deptname;
    </select>
    <select id="selectPatMedInhospCount" parameterType="com.smartor.domain.PatMedReq"
            resultType="com.smartor.domain.PatMedRes">
        SELECT
        COUNT(1) AS rc,
        COUNT(DISTINCT patid) AS rs
        FROM
        pat_med_inhosp
        <where>
            del_flag=0
            <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>
            <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>
            <if test="deptcodeList != null">
                and deptcode in
                <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
                    #{deptcode}
                </foreach>
            </if>
        </where>
    </select>
</mapper>