liusheng
5 天以前 d7fd24cda7b8b5124fca826fa4301cdb3acdb6b5
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -70,12 +70,16 @@
        <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,
               management_doctor,
               management_doctor_code,
               fudate,
               fuperiod,
               futypecode,
@@ -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}, '%')
@@ -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>