forked from gzzfw/backEnd/gz-dyh

liyj
2024-09-22 54f92e2eb235a59827d2cb49e61398c02551d5de
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml
@@ -5,7 +5,7 @@
 * @description: 自定义sql,请自行实现业务逻辑
 * @company: hugeinfo
 * @author: liyj
 * @time:2024-09-08 18:27:35
 * @time:2024-09-09 22:10:33
 * @version 1.0.0
-->
<mapper namespace="cn.huge.module.cases.dao.mapper.CaseTaskMapper">
@@ -45,6 +45,7 @@
            <result property="handleUserName" column="handle_user_name"/>
            <result property="handleResult" column="handle_result"/>
            <result property="handleContent" column="handle_content"/>
            <result property="handleIllust" column="handle_illust"/>
            <result property="handleTime" column="handle_time"/>
            <result property="deleteStatus" column="delete_status"/>
            <result property="custId" column="cust_id"/>
@@ -89,6 +90,7 @@
        handle_user_name,
        handle_result,
        handle_content,
        handle_illust,
        handle_time,
        delete_status,
        cust_id,
@@ -130,6 +132,7 @@
            <if test="entity.handleUserName != null">handle_user_name = #{entity.handleUserName},</if>
            <if test="entity.handleResult != null">handle_result = #{entity.handleResult},</if>
            <if test="entity.handleContent != null">handle_content = #{entity.handleContent},</if>
            <if test="entity.handleIllust != null">handle_illust = #{entity.handleIllust},</if>
            <if test="entity.handleTime != null">handle_time = #{entity.handleTime},</if>
            <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
@@ -242,6 +245,9 @@
                <if test="terms.handleContent != null and terms.handleContent !=''">
                    and handle_content = #{terms.handleContent}
                </if>
                <if test="terms.handleIllust != null and terms.handleIllust !=''">
                    and handle_illust = #{terms.handleIllust}
                </if>
                <if test="terms.handleTime != null and terms.handleTime !=''">
                    and handle_time = #{terms.handleTime}
                </if>
@@ -282,6 +288,22 @@
            id = #{entity.id}
        </where>
    </update>
    <!-- 批量对象 -->
    <update id="updateCaseTaskList">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <where>
            id IN
            <foreach item="id" collection="taskIdList" open="(" separator="," close=")">
                #{id}
            </foreach>
        </where>
    </update>
    <!-- 条件更新对象 -->
    <update id="updateCaseTaskTerms">
        update
@@ -333,6 +355,7 @@
    <!--  结果集-->
    <resultMap id="FrontPageCountResult" type="cn.huge.module.cases.domain.dto.FrontPageCountDTO">
        <result property="waitDisp" column="waitDisp"/>
        <result property="waitSign" column="waitSign"/>
        <result property="waitAccept" column="waitAccept"/>
        <result property="waitAccept" column="waitAccept"/>
@@ -340,16 +363,437 @@
    <!--  查询任务数量  -->
    <select id="countTaskList" resultMap="FrontPageCountResult">
        select
        count(case when (node_id = 'ZJ_DFP' or  node_id = 'QJ_DFP' or  node_id = 'SJ_DFP' or  node_id = 'DFP') and sign_status != 1 then id end) as waitDisp,
        count(case when sign_status = 1 then id end) as waitSign,
        count(case when node_id = then id end) as waitAccept,
        count(case when node_id = then id end) as Processing
        count(case when (node_id = 'ZJ_DSL' or  node_id = 'QJ_DSL' or  node_id = 'SJ_DSL' or  node_id = 'DSL') and sign_status != 1 then id end) as waitAccept,
        count(case when node_id = 'BLFK' then id end) as Processing
        from
        <include refid="table-name" />
        where
        cande_unit_id = #{terms.candeUnitId}
        and (cande_dept_id = #{terms.candeDeptId} or cande_dept_id is null)
        and delete_status = '0'
        and status = '1'
        and delete_status = 0
        and status = 1
    </select>
</mapper>
    <!-- 工作台-待/已分派条件查询-条件 -->
    <sql id="myTaskFp-where-part">
        <if test="terms != null">
            <if test="terms.candeUnitId != null and terms.candeUnitId !=''">
                and t1.cande_unit_id = #{terms.candeUnitId}
            </if>
            <if test="terms.status != null and terms.status !=''">
                and t1.status = #{terms.status}
            </if>
            <if test="terms.createTimeStart != null and terms.createTimeStart !='' and terms.createTimeEnd != null and terms.createTimeEnd !=''">
                and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createTimeStart}
                and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createTimeEnd})
            </if>
            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
                and (DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
                and DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
            </if>
            <if test="terms.partyName != null and terms.partyName !=''">
                and concat(t2.plaintiffs, t2.pagents, t2.defendants, t2.dagents) like concat('%', #{terms.partyName}, '%')
            </if>
        </if>
    </sql>
    <!--  工作台-待/已分派条件统计  -->
    <select id="countMyTaskFp" resultType="java.lang.Long">
        select
        COUNT(t1.id)
        from
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        (t1.node_id = 'ZJ_DFP' or  t1.node_id = 'QJ_DFP' or  t1.node_id = 'SJ_DFP' or  t1.node_id = 'DFP')
        and t1.sign_status != 1
        and t2.delete_status = 0
        <include refid="myTaskFp-where-part"/>
    </select>
    <!--  工作台-待分派分页查询  -->
    <select id="pageMyTaskFp" resultType="cn.huge.module.cases.domain.dto.FrontPageListFPDTO">
        SELECT t1.id as ownerId, t1.case_id as caseId,
        t1.create_time as turnaroundTime, t1.expire_time as timeLimit, t1.handle_time as taskHandleTime,
        t2.case_level as caseGrade, t2.canal_name as caseSource, concat(t2.case_type_first_name, '/' ,t2.case_type_name) as caseType,
        concat(t2.que_area_name, t2.que_road_name) as queAddress,
        concat(t2.plaintiffs, t2.pagents) as plaintiffs, concat(t2.defendants, t2.dagents) as defendants,
        (select count(1) from dyh_case_supervise where case_id = t1.case_id) as superviseCount
        FROM
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        (t1.node_id = 'ZJ_DFP' or  t1.node_id = 'QJ_DFP' or  t1.node_id = 'SJ_DFP' or  t1.node_id = 'DFP')
        and t1.sign_status != 1
        and t2.delete_status = 0
        <include refid="myTaskFp-where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(t1.create_time), t1.create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
    <!-- 工作台-待/已签收条件查询-条件 -->
    <sql id="myTaskQs-where-part">
        <if test="terms != null">
            <if test="terms.candeUnitId != null and terms.candeUnitId !=''">
                and t1.cande_unit_id = #{terms.candeUnitId}
            </if>
            <if test="terms.signStatus != null and terms.signStatus !=''">
                and t1.sign_status = #{terms.signStatus}
            </if>
            <if test="terms.createTimeStart != null and terms.createTimeStart !='' and terms.createTimeEnd != null and terms.createTimeEnd !=''">
                and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createTimeStart}
                and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createTimeEnd})
            </if>
            <if test="terms.signTimeStart != null and terms.signTimeStart !='' and terms.signTimeEnd != null and terms.signTimeEnd !=''">
                and (DATE_FORMAT(t1.sign_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.signTimeStart}
                and DATE_FORMAT(t1.sign_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.signTimeEnd})
            </if>
            <if test="terms.partyName != null and terms.partyName !=''">
                and concat(t2.plaintiffs, t2.pagents, t2.defendants, t2.dagents) like concat('%', #{terms.partyName}, '%')
            </if>
        </if>
    </sql>
    <!--  首页-待/已签收条件统计  -->
    <select id="countMyTaskQs" resultType="java.lang.Long">
        select
        COUNT(t1.id)
        from
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        t2.delete_status = 0
        and t1.status = '1'
        <include refid="myTaskQs-where-part"/>
    </select>
    <!--  首页-待/已签收分页查询  -->
    <select id="pageMyTaskQs" resultType="cn.huge.module.cases.domain.dto.FrontPageListQSDTO">
        SELECT t1.id as ownerId, t1.case_id as caseId,
        t1.create_time as turnaroundTime, t1.sign_expire_time as timeLimit, t1.sign_time as taskHandleTime,
        t2.case_level as caseGrade, t2.canal_name as caseSource, concat(t2.case_type_first_name, '/' ,t2.case_type_name) as caseType,
        concat(t2.plaintiffs, t2.pagents) as plaintiffs, concat(t2.defendants, t2.dagents) as defendants,
        (select count(1) from dyh_case_supervise where case_id = t1.case_id) as superviseCount
        FROM
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        t2.delete_status = 0
        and t1.status = '1'
        <include refid="myTaskQs-where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(t1.create_time), t1.create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
    <!--  全部签收-查询未签收所有Id  -->
    <select id="listIdByTerms" resultType="cn.huge.module.cases.domain.dto.SignTaskDTO">
        SELECT t1.id as caseTaskId, t1.case_id as caseId
        FROM
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        t2.delete_status = 0
        and t1.status = '1'
        <include refid="myTaskQs-where-part"/>
    </select>
    <!-- 工作台-待/已受理条件查询-条件 -->
    <sql id="myTaskSl-where-part">
        <if test="terms != null">
            <if test="terms.candeUnitId != null and terms.candeUnitId !=''">
                and t1.cande_unit_id = #{terms.candeUnitId}
            </if>
            <if test="terms.status != null and terms.status !=''">
                and t1.status = #{terms.status}
            </if>
            <if test="terms.caseTaskType != null and terms.caseTaskType !=''">
                and t1.case_task_type = #{terms.caseTaskType}
            </if>
            <if test="terms.createTimeStart != null and terms.createTimeStart !='' and terms.createTimeEnd != null and terms.createTimeEnd !=''">
                and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createTimeStart}
                and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createTimeEnd})
            </if>
            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
                and (DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
                and DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
            </if>
            <if test="terms.partyName != null and terms.partyName !=''">
                and concat(t2.plaintiffs, t2.pagents, t2.defendants, t2.dagents) like concat('%', #{terms.partyName}, '%')
            </if>
        </if>
    </sql>
    <!--  首页-待/已受理条件统计  -->
    <select id="countMyTaskSl" resultType="java.lang.Long">
        select
        COUNT(t1.id)
        from
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        (t1.node_id = 'ZJ_DSL' or  t1.node_id = 'QJ_DSL' or  t1.node_id = 'SJ_DSL' or  t1.node_id = 'DSL')
        and t2.delete_status = 0
        and t1.sign_status != 1
        and (t1.handle_result != 3 or t1.handle_result is null)
        <include refid="myTaskSl-where-part"/>
    </select>
    <!--  首页-待/已受理分页查询  -->
    <select id="pageMyTaskSl" resultType="cn.huge.module.cases.domain.dto.FrontPageListSLDTO">
        SELECT t1.id as ownerId, t1.case_id as caseId,
        t1.create_time as turnaroundTime, t1.sign_expire_time as timeLimit, t1.handle_time as taskHandleTime,
        t2.case_level as caseGrade, t2.canal_name as caseSource, concat(t2.case_type_first_name, '/' ,t2.case_type_name) as caseType,
        concat(t2.plaintiffs, t2.pagents) as plaintiffs, concat(t2.defendants, t2.dagents) as defendants,
        (select count(1) from dyh_case_supervise where case_id = t1.case_id) as superviseCount
        FROM
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        (t1.node_id = 'ZJ_DSL' or t1.node_id = 'QJ_DSL' or t1.node_id = 'SJ_DSL' or t1.node_id = 'DSL')
        and t2.delete_status = 0
        and t1.sign_status != 1
        and (t1.handle_result != 3 or t1.handle_result is null)
        <include refid="myTaskSl-where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(t1.create_time), t1.create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
    <!-- 工作台-办理中条件查询-条件 -->
    <sql id="myTaskBlz-where-part">
        <if test="terms != null">
            <if test="terms.candeUnitId != null and terms.candeUnitId !=''">
                and t1.cande_unit_id = #{terms.candeUnitId}
            </if>
            <if test="terms.status != null and terms.status !=''">
                and t1.status = #{terms.status}
            </if>
            <if test="terms.caseTaskType != null and terms.caseTaskType !=''">
                and t1.case_task_type = #{terms.caseTaskType}
            </if>
            <if test="terms.createTimeStart != null and terms.createTimeStart !='' and terms.createTimeEnd != null and terms.createTimeEnd !=''">
                and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createTimeStart}
                and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createTimeEnd})
            </if>
            <if test="terms.partyName != null and terms.partyName !=''">
                and concat(t2.plaintiffs, t2.pagents, t2.defendants, t2.dagents) like concat('%', #{terms.partyName}, '%')
            </if>
        </if>
    </sql>
    <!--  首页-办理中条件统计  -->
    <select id="countMyTaskBlz" resultType="java.lang.Long">
        select
        COUNT(t1.id)
        from
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        left join dyh_case_info_unfold t3 on t1.case_id = t3.id
        where
        t1.node_id = 'BLFK'
        and t1.status = 1
        and t2.delete_status = 0
        <include refid="myTaskBlz-where-part"/>
    </select>
    <!--  首页-办理中分页查询  -->
    <select id="pageMyTaskBlz" resultType="cn.huge.module.cases.domain.dto.FrontPageListBLZDTO">
        SELECT
        t1.id as ownerId, t1.case_id as caseId, t1.create_time as turnaroundTime, t2.case_level as caseGrade,
        t2.canal_name as caseSource, concat(t2.case_type_first_name, '/' ,t2.case_type_name) as caseType, t3.mediator as mediator,
        t3.assist_unit_name as cooperatingUnit, t3.mediate_unit_name as organizingUnit,
        concat(t2.plaintiffs, t2.pagents) as plaintiffs, concat(t2.defendants, t2.dagents) as defendants,
        (select count(1) from dyh_case_supervise where case_id = t1.case_id) as superviseCount
        FROM
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        left join dyh_case_info_unfold t3 on t1.case_id = t3.id
        where
        t1.node_id = 'BLFK'
        and t1.status = 1
        and t2.delete_status = 0
        <include refid="myTaskBlz-where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(t1.create_time), t1.create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
    <!--  首页-待审核-我申请的条件统计  -->
    <select id="countMyTaskShWSQD" resultType="java.lang.Long">
        select sum(t1.count)
        from
        (
        SELECT count(1) as count, case_id as caseId
        FROM dyh_case_return
        WHERE return_unit_id = #{terms.applyUnitId}
        union all
        SELECT count(1) as count, case_id as caseId
        FROM dyh_case_windup_apply
        WHERE apply_unit_id = #{terms.applyUnitId}
        union all
        SELECT count(1) as count, case_id as caseId
        FROM dyh_case_appear
        WHERE appear_unit_id = #{terms.applyUnitId}
        union all
        SELECT count(1) as count, case_id as caseId
        FROM dyh_case_assist_apply
        WHERE apply_unit_id = #{terms.applyUnitId}
        )t1 left join dyh_case_info t2 on t1.caseId = t2.id
        <where>
            <if test="terms.applyType != null and terms.applyType !=''">
                and t1.applyType = #{terms.applyType}
            </if>
            <if test="terms.auditStatus != null and terms.auditStatus !=''">
                and t1.audit_result = #{terms.auditResult}
            </if>
            <if test="terms.timeStart != null and terms.timeStart !='' and terms.timeEnd != null and terms.timeEnd !=''">
                and (DATE_FORMAT(t1.turnaroundTime,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
                and DATE_FORMAT(t1.turnaroundTime,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
            </if>
            <if test="terms.partyName != null and terms.partyName !=''">
                and concat(t2.plaintiffs, t2.pagents, t2.defendants, t2.dagents) like concat('%', #{terms.partyName}, '%')
            </if>
        </where>
    </select>
    <!--  首页-待审核-我申请的分页查询  -->
    <select id="pageMyTaskShWSQD" resultType="cn.huge.module.cases.domain.dto.FrontPageListWSQDDTO">
        select t1.*,t2.case_level as caseGrade, t2.canal_name as caseSource, concat(t2.case_type_first_name, '/' ,t2.case_type_name) as caseType,
        concat(t2.plaintiffs, t2.pagents) as plaintiffs, concat(t2.defendants, t2.dagents) as defendants
            from
            (
            SELECT case_id as caseId, id as ownerId, return_time as turnaroundTime, '回退' as applyType,
            audit_unit_name as auditUnit, return_status as auditStatus, audit_result_name as auditResult,
            audit_time as auditTime, create_time, audit_result
            FROM dyh_case_return
            WHERE return_unit_id = #{terms.applyUnitId}
            union all
            SELECT case_id as caseId, id as ownerId, apply_time as turnaroundTime, '结案' as applyType,
            audit_unit_name as auditUnit, apply_status as auditStatus, audit_result_name as auditResult,
            audit_time as auditTime, create_time, audit_result
            FROM dyh_case_windup_apply
            WHERE apply_unit_id = #{terms.applyUnitId}
            union all
            SELECT case_id as caseId, id as ownerId, appear_time as turnaroundTime, '上报' as applyType,
            audit_unit_name as auditUnit, apply_status as auditStatus, audit_result_name as auditResult,
            audit_time as auditTime, create_time, audit_result
            FROM dyh_case_appear
            WHERE appear_unit_id = #{terms.applyUnitId}
            union all
            SELECT case_id as caseId, id as ownerId, apply_time as turnaroundTime, '联合处置' as applyType,
            audit_unit_name as auditUnit, apply_status as auditStatus, audit_result_name as auditStatus,
            audit_time as auditTime, create_time, audit_result
            FROM dyh_case_assist_apply
            WHERE apply_unit_id = #{terms.applyUnitId}
            )t1 left join dyh_case_info t2 on t1.caseId = t2.id
        <where>
        <if test="terms.applyType != null and terms.applyType !=''">
            and t1.applyType = #{terms.applyType}
        </if>
        <if test="terms.auditStatus != null and terms.auditStatus !=''">
            and t1.audit_result = #{terms.auditResult}
        </if>
        <if test="terms.timeStart != null and terms.timeStart !='' and terms.timeEnd != null and terms.timeEnd !=''">
            and (DATE_FORMAT(t1.turnaroundTime,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
            and DATE_FORMAT(t1.turnaroundTime,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
        </if>
        <if test="terms.partyName != null and terms.partyName !=''">
            and concat(t2.plaintiffs, t2.pagents, t2.defendants, t2.dagents) like concat('%', #{terms.partyName}, '%')
        </if>
        </where>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(t1.create_time), t1.create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
    <!-- web端-工作台-已办事项条件查询-条件 -->
    <sql id="myTaskYb-where-part">
        <if test="terms != null">
            <if test="terms.createTimeStart != null and terms.createTimeStart !='' and terms.createTimeEnd != null and terms.createTimeEnd !=''">
                and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createTimeStart}
                and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createTimeEnd})
            </if>
            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
                and (DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
                and DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
            </if>
            <if test="terms.mediator != null and terms.mediator !=''">
                and t3.mediator like concat('%', #{terms.mediator}, '%')
            </if>
            <if test="terms.canal != null and terms.canal !=''">
                and t1.canal = #{terms.canal}
            </if>
            <if test="terms.mediResult != null and terms.mediResult !=''">
                and t1.medi_result = #{terms.mediResult}
            </if>
            <if test="terms.caseLevel != null and terms.caseLevel !=''">
                and t1.case_level = #{terms.caseLevel}
            </if>
            <if test="terms.caseType != null and terms.caseType !=''">
                and t1.case_type = #{terms.caseType}
            </if>
            <if test="terms.status != null and terms.status !=''">
                and t2.status = #{terms.status}
            </if>
        </if>
    </sql>
    <!--  web端-工作台-已办事项条件统计  -->
    <select id="countMyTaskYb" resultType="java.lang.Long">
        SELECT count(DISTINCT t2.id)
        FROM dyh_case_task t1
        left join dyh_case_info t2 on t1.case_id = t2.id
        left join dyh_case_info_unfold t3 on t1.case_id = t3.id
        where t1.status = 2
        and t1.node_id = 'BLFK'
        and t1.handle_unit_id = #{terms.handleUnitId}
        and t2.delete_status = 0
        <include refid="myTaskYb-where-part"/>
    </select>
    <!--  web端-工作台-已办事项分页查询  -->
    <select id="pageMyTaskYb" resultType="cn.huge.module.cases.domain.dto.FrontPageListYBDTO">
        SELECT t1.id as caseTaskId, t2.id as caseId, t1.create_time as createTime, t2.status_name as statusName,
        t3.medi_result as mediResult, t3.medi_result_name as mediResultName, t3.mediator as mediator,
        t1.handle_time as handleTime, t2.case_level as caseLevel, t2.canal_name as canalName,
        concat(t2.case_type_first_name, '/' ,t2.case_type_name) as caseType,
        (select count(1) from dyh_case_supervise where case_id = t1.case_id) as superviseCount
        FROM dyh_case_task t1
        left join dyh_case_info t2 on t1.case_id = t2.id
        left join dyh_case_info_unfold t3 on t1.case_id = t3.id
        where t1.status = 2
        and t1.node_id = 'BLFK'
        and t1.handle_unit_id = #{terms.handleUnitId}
        and t2.delete_status = 0
        <include refid="myTaskYb-where-part"/>
        group by t2.id
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(t1.create_time), t1.create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
</mapper>