陈昶聿
4 天以前 9e113cdae73c69831254d028816ad6d6c492b5a4
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -52,6 +52,7 @@
        <result property="wechat" column="wechat"/>
        <result property="leaveicd10code" column="leaveicd10code"/>
        <result property="leavediagname" column="leavediagname"/>
        <result property="diagname" column="diagname"/>
        <result property="deptname" column="deptname"/>
        <result property="admindate" column="admindate"/>
        <result property="roomno" column="roomno"/>
@@ -122,6 +123,9 @@
    </resultMap>
    <resultMap type="com.smartor.domain.ServiceSubtaskStatistic" id="ServiceSubtaskStatisticResult">
        <result property="taskName" column="task_name"/>
        <result property="drcode" column="drcode"/>
        <result property="drname" column="drname"/>
        <result property="dischargeCount" column="discharge_count"/>
        <result property="nonFollowUp" column="non_follow_up"/>
        <result property="filterCount" column="filter_count"/>
@@ -144,6 +148,7 @@
        select id,
               hosp_type,
               task_guid,
               diagname,
               patfrom,
               management_doctor,
               management_doctor_code,
@@ -266,12 +271,36 @@
        <include refid="selectServiceSubtaskVo"/>
        where 1=1
        and del_flag = 0
        and sendstate != 5
        <if test="orgid != null and orgid != ''">
            and orgid = #{orgid}
        </if>
        <if test="subId != null">
            AND id = #{subId}
        </if>
        <if test="taskid != null ">and taskid = #{taskid}</if>
        <if test="visitTime != null">
            AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{visitTime},'%y%m%d')
        </if>
        <if test="sendstate != null ">and sendstate = #{sendstate}</if>
        <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
        <if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if>
        <if test="continueCount != null ">and continue_count = #{continueCount}</if>
        <if test="continueTimeNext != null ">and continue_time_next = #{continueTimeNext}</if>
        UNION ALL
        <include refid="selectServiceSubtaskVo"/>
        where 1=1
        and del_flag = 0
        and sendstate = 5
        <if test="orgid != null and orgid != ''">
            and orgid = #{orgid}
        </if>
        <if test="subId != null">
            AND id = #{subId}
        </if>
        <if test="taskid != null ">and taskid = #{taskid}</if>
        <if test="visitTime != null">
            AND date_format(visit_time,'%y%m%d') &lt;= date_format(DATE_ADD(#{visitTime}, INTERVAL 1 DAY),'%y%m%d')
        </if>
        <if test="sendstate != null ">and sendstate = #{sendstate}</if>
        <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
@@ -540,11 +569,33 @@
            resultMap="ServiceSubtaskResult">
        <include refid="selectServiceSubtaskVo"/>
        where del_flag = 0
        and sendstate != 5
        <if test="orgid != null and orgid != ''">
            and orgid = #{orgid}
        </if>
        <if test="visitTime != null">
            AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{visitTime},'%y%m%d')
        </if>
        <if test="subId != null">
            AND id = #{subId}
        </if>
        <if test="sendstate != null ">and sendstate = #{sendstate}</if>
        <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
        <if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if>
        <if test="continueCount != null ">and continue_count = #{continueCount}</if>
        <if test="continueTimeNext != null ">and continue_time_next = #{continueTimeNext}</if>
        UNION ALL
        <include refid="selectServiceSubtaskVo"/>
        where del_flag = 0
        and sendstate = 5
        <if test="orgid != null and orgid != ''">
            and orgid = #{orgid}
        </if>
        <if test="visitTime != null">
            AND date_format(visit_time,'%y%m%d') &lt;= date_format(DATE_ADD(#{visitTime}, INTERVAL 1 DAY),'%y%m%d')
        </if>
        <if test="subId != null">
            AND id = #{subId}
        </if>
        <if test="sendstate != null ">and sendstate = #{sendstate}</if>
        <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
@@ -1508,6 +1559,13 @@
    <select id="getSpecialSfStatistics" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
            resultMap="ServiceSubtaskStatisticResult">
        select
        <if test="groupKey != null and groupKey == 'task_name'">
            a.task_name,
        </if>
        <if test="groupKey != null and groupKey == 'drcode'">
            b.drcode,
            b.drname,
        </if>
        COUNT(1) AS discharge_count,
        SUM(CASE WHEN b.sendstate = 4 THEN 1 ELSE 0 END) AS non_follow_up,
        SUM(CASE WHEN b.sendstate = 4 and b.task_situation = 6 THEN 1 ELSE 0 END) AS filter_count,
@@ -1542,6 +1600,27 @@
        </if>
        <if test="diagType != null and diagType != ''">
            and a.diag_type = #{diagType}
        </if>
        <if test="taskIds != null and taskIds.size() > 0">
            AND a.task_id IN
            <foreach collection="taskIds" item="taskIdItem" open="(" separator=","
                     close=")">
                #{taskIdItem}
            </foreach>
        </if>
        <if test="taskNames != null and taskNames.size() > 0">
            AND a.task_name IN
            <foreach collection="taskNames" item="taskNameItem" open="(" separator=","
                     close=")">
                #{taskNameItem}
            </foreach>
        </if>
        <if test="diagTypes != null and diagTypes.size() > 0">
            AND a.diag_type IN
            <foreach collection="diagTypes" item="diagTypeItem" open="(" separator=","
                     close=")">
                #{diagTypeItem}
            </foreach>
        </if>
        <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
            AND b.leavehospitaldistrictcode IN
@@ -1585,8 +1664,11 @@
        <if test="visitCount != null and visitCount > 1">
            AND b.visit_count > 1
        </if>
        <if test="groupKey != null and groupKey != ''">
            GROUP BY ${groupKey}
        <if test="groupKey != null and groupKey == 'task_name'">
            GROUP BY a.task_name
        </if>
        <if test="groupKey != null and groupKey == 'drcode'">
            GROUP BY b.drcode, b.drname
        </if>
    </select>
@@ -1775,6 +1857,7 @@
            <if test="deptcode != null and deptcode != ''">
                AND deptcode = #{deptcode}
            </if>
            order by endtime desc
            <if test="pageSize != null  and pageNum != null">
                limit ${pageSize} OFFSET ${pageNum}
            </if>
@@ -2323,7 +2406,6 @@
            AND endtime >= #{startDate}
            AND endtime &lt;= DATE_ADD(#{endDate}, INTERVAL 1 DAY)
        </if>
        AND service_type IN (2, 13)
        AND inhospstate=1
        <if test="orgid != null">
            AND orgid = #{orgid}
@@ -2397,8 +2479,11 @@
        SUM(CASE WHEN sendstate != 4 AND sendstate != 2 THEN 1 ELSE 0 END) AS ysf,
        SUM(CASE WHEN sendstate = 5 THEN 1 ELSE 0 END) AS fssb,
        SUM(CASE WHEN sendstate >= 3 OR sendstate = 1 THEN 1 ELSE 0 END) AS yfs,
        SUM(CASE WHEN sendstate = 2 THEN 1 ELSE 0 END) AS dsf,
        SUM(CASE WHEN sendstate = 1 THEN 1 ELSE 0 END) AS blq,
        SUM(CASE WHEN sendstate = 4 THEN 1 ELSE 0 END) AS wxsf,
        SUM(CASE WHEN sendstate != 4 THEN 1 ELSE 0 END) AS xsf,
        SUM(CASE WHEN (sendstate = 1 OR sendstate = 2 OR sendstate = 3 OR sendstate = 5 OR sendstate = 7 ) THEN 1 ELSE 0 END) AS dsf,
        SUM(CASE WHEN sendstate = 6 THEN 1 ELSE 0 END) AS ywc,
        SUM(CASE WHEN excep IS NOT NULL AND excep = '1' THEN 1 ELSE 0 END) AS yc,
        SUM(CASE WHEN excep IS NOT NULL AND excep = '2' THEN 1 ELSE 0 END) AS jg,
        COUNT(1) as total