<?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"> 
 | 
  
 | 
<mapper namespace="com.zt.modules.workflow.dao.WfRunTaskDao"> 
 | 
    <select id="getTaskUser" resultType="com.zt.core.sys.model.SysUser"> 
 | 
        SELECT 
 | 
         b. id 
 | 
        ,b.dept_id 
 | 
        ,b.username 
 | 
        ,b.real_name 
 | 
        ,b.mobile 
 | 
        FROM 
 | 
        sys_user b 
 | 
        WHERE 
 | 
        is_delete = 0 
 | 
        <if test="roleId!=null and roleId!=''"> 
 | 
            AND id IN( 
 | 
            SELECT 
 | 
            user_id 
 | 
            FROM 
 | 
            sys_role_user 
 | 
            WHERE is_delete = 0 and 
 | 
            role_id IN( 
 | 
            SELECT 
 | 
            id 
 | 
            FROM 
 | 
            sys_role 
 | 
            WHERE 
 | 
            CONCAT( ',', #{roleId}, ',' ) LIKE CONCAT( '%,', id, ',%' ) 
 | 
            ) 
 | 
            ) 
 | 
        </if> 
 | 
  
 | 
        <if test="deptIds!=null and deptIds!=''"> 
 | 
            AND dept_ID IN( 
 | 
            SELECT 
 | 
            id 
 | 
            FROM 
 | 
            sys_dept 
 | 
            WHERE 
 | 
            CONCAT( ',', #{deptIds}, ',' ) LIKE CONCAT( '%,', id, ',%' ) 
 | 
            ) 
 | 
        </if> 
 | 
    </select> 
 | 
  
 | 
    <select id="getAssignUser" resultType="com.zt.core.sys.model.SysUser"> 
 | 
        SELECT b.id 
 | 
             , b.dept_id 
 | 
             , b.username 
 | 
             , b.real_name 
 | 
             , b.mobile 
 | 
        FROM sys_user b 
 | 
        WHERE is_delete = 0 
 | 
          and id in ( 
 | 
            SELECT user_id 
 | 
            FROM sy_project_expert 
 | 
            WHERE biz_id = #{bizId} 
 | 
              and flow_Code = #{code} 
 | 
              and step_marker = #{stepMarker} 
 | 
              and is_delete = 0 
 | 
        ) 
 | 
    </select> 
 | 
  
 | 
    <select id="getUserById" resultType="com.zt.core.sys.model.SysUser"> 
 | 
        SELECT b.id 
 | 
             , b.dept_id 
 | 
             , b.username 
 | 
             , b.real_name 
 | 
             , b.mobile 
 | 
        FROM sys_user b 
 | 
        WHERE is_delete = 0 
 | 
          and id = #{userId} 
 | 
        limit 1 
 | 
    </select> 
 | 
  
 | 
    <select id="getSqlResult" parameterType="java.lang.String" resultType="com.zt.modules.workflow.dto.BizInfoDto"> 
 | 
        ${script} 
 | 
    </select> 
 | 
    <update id="exeSql" parameterType="java.lang.String"> 
 | 
        ${script} 
 | 
    </update> 
 | 
  
 | 
    <select id="getFlowFinish" resultType="com.zt.modules.workflow.model.WfRunTask"> 
 | 
        SELECT id 
 | 
        FROM wf_run_task 
 | 
        WHERE is_delete = 0 
 | 
          AND (CONCAT('', flow_id) = #{wfDefIdCode} or flow_id in (select id from wf_def where code = #{wfDefIdCode})) 
 | 
          and biz_id = #{bizId} 
 | 
          AND status IN (100) 
 | 
    </select> 
 | 
  
 | 
    <select id="queryCurrentTaskStep" resultType="com.zt.modules.workflowconfig.model.WfDefStep"> 
 | 
        SELECT * 
 | 
        FROM wf_def_step wds 
 | 
        WHERE is_delete = 0 
 | 
          and step_type = 0 
 | 
          AND id IN ( 
 | 
            SELECT step_id 
 | 
            FROM wf_run_task 
 | 
            WHERE is_delete = 0 
 | 
              AND (CONCAT('', flow_id) = #{wfDefIdCode} or flow_id in (select id from wf_def where is_delete = 0 AND code = #{wfDefIdCode})) 
 | 
              and biz_id = #{bizId} 
 | 
              AND status IN (0, 1) 
 | 
        ) 
 | 
    </select> 
 | 
  
 | 
    <select id="queryCurrentTaskStep100" resultType="com.zt.modules.workflowconfig.model.WfDefStep"> 
 | 
        SELECT * 
 | 
        FROM wf_def_step wds 
 | 
        WHERE is_delete = 0 
 | 
          and step_type = 0 
 | 
          AND id IN ( 
 | 
            SELECT step_id 
 | 
            FROM wf_run_task 
 | 
            WHERE is_delete = 0 
 | 
              AND (CONCAT('', flow_id) = #{wfDefIdCode} or flow_id in (select id from wf_def where is_delete = 0 AND code = #{wfDefIdCode})) 
 | 
              and biz_id = #{bizId} 
 | 
              AND status IN (0, 1,100) 
 | 
        ) 
 | 
    </select> 
 | 
  
 | 
    <update id="deleteFlowTask"> 
 | 
        update wf_run_task 
 | 
        set is_delete = 1 
 | 
        ,update_date = CURRENT_TIMESTAMP 
 | 
        where is_delete = 0 
 | 
        <if test="wfIdCodes!=null and wfIdCodes!=''"> 
 | 
            and flow_code = #{wfIdCodes} 
 | 
        </if> 
 | 
        <if test="bizId!=null and bizId!=''"> 
 | 
            and biz_Id = #{bizId} 
 | 
        </if>; 
 | 
        update wf_run_instance 
 | 
        set is_delete = 1 
 | 
        ,update_date = CURRENT_TIMESTAMP 
 | 
        where is_delete = 0 
 | 
        <if test="wfIdCodes!=null and wfIdCodes!=''"> 
 | 
            and flow_code = #{wfIdCodes} 
 | 
        </if> 
 | 
        <if test="bizId!=null and bizId!=''"> 
 | 
            and biz_Id = #{bizId} 
 | 
        </if> 
 | 
    </update> 
 | 
  
 | 
    <update id="setTaskStatus"> 
 | 
        update wf_run_task 
 | 
        set status=CASE WHEN receive_id = #{userId} THEN #{status} 
 | 
            ELSE #{status}+1 end 
 | 
        ,status2 = 0 
 | 
        ,finish_time = NOW() 
 | 
        ,finish_time2 = NOW() 
 | 
        ,finish_id = #{userId} 
 | 
        ,finish_name = #{realName} 
 | 
        ,opinion = #{option} 
 | 
        ,update_date = CURRENT_TIMESTAMP 
 | 
        where is_delete = 0 
 | 
        AND biz_id=#{bizId} 
 | 
        and step_id=#{stepId} 
 | 
        and status in (0,1) 
 | 
        <if test="taskGroup=='cj'"> 
 | 
            and receive_id in (select user_id from sys_user where dept_ID in (select dept_ID from sys_user where user_id=#{userId})) 
 | 
        </if> 
 | 
        <if test="taskGroup=='zy'"> 
 | 
        and receive_id in (select teamgroup from sys_user where user_id =#{userId}) 
 | 
        </if> 
 | 
        <if test="taskGroup=='br'"> 
 | 
            and receive_id = #{userId} 
 | 
        </if> 
 | 
        <if test="taskGroup=='js'"> 
 | 
            and group_id2 in (select role_id from sys_role_user where user_id =#{userId} and is_delete=0) 
 | 
        </if> 
 | 
    </update> 
 | 
  
 | 
    <update id="setTaskPartFinish"> 
 | 
        UPDATE 
 | 
            wf_run_task 
 | 
        SET status2     = ${status} 
 | 
          , update_date = CURRENT_TIMESTAMP 
 | 
        WHERE is_delete = 0 
 | 
          AND biz_id = #{bizId} 
 | 
          AND step_id = #{currentStepId} 
 | 
          AND status in (0,1) 
 | 
          AND status2 not in (1) 
 | 
    </update> 
 | 
  
 | 
    <update id="setTaskPartFinish2"> 
 | 
        UPDATE 
 | 
                wf_run_task 
 | 
        SET status     = ${status} 
 | 
          , update_date = CURRENT_TIMESTAMP 
 | 
        WHERE is_delete = 0 
 | 
          AND biz_id = #{bizId} 
 | 
          AND receive_id = #{receiveId} 
 | 
          AND status in (0,1) 
 | 
    </update> 
 | 
  
 | 
    <update id="setTaskPartFinish3"> 
 | 
        UPDATE 
 | 
            wf_run_task a, 
 | 
            sys_user b 
 | 
        SET a.status = ${status} 
 | 
          , a.update_date = CURRENT_TIMESTAMP 
 | 
        WHERE a.is_delete = 0 
 | 
          AND a.biz_id = #{bizId} 
 | 
          AND a.receive_id = b.id and b.dept_id = #{receiveDeptId} 
 | 
          AND a.status in (0,1) 
 | 
    </update> 
 | 
  
 | 
    <update id="setTaskRefuse"> 
 | 
        UPDATE 
 | 
            wf_run_task 
 | 
        SET status2     = ${status} 
 | 
          , update_date = CURRENT_TIMESTAMP 
 | 
        WHERE is_delete = 0 
 | 
          AND biz_id = #{bizId} 
 | 
          AND step_id IN ( 
 | 
            SELECT id 
 | 
            FROM ( 
 | 
                     SELECT id 
 | 
                     FROM wf_def_step 
 | 
                     WHERE is_delete = 0 
 | 
                       AND wf_def_id IN ( 
 | 
                         SELECT wf_def_id 
 | 
                         FROM wf_def_step 
 | 
                         WHERE id = #{currentStepId} 
 | 
                     ) 
 | 
                       AND step_no > ( 
 | 
                         SELECT step_no 
 | 
                         FROM wf_def_step 
 | 
                         WHERE id = #{currentStepId} 
 | 
                     ) 
 | 
                 ) cc 
 | 
        ) 
 | 
    </update> 
 | 
  
 | 
    <select id="getSingleFlowStatus" resultType="com.zt.modules.workflow.model.WfRunTask"> 
 | 
  
 | 
        SELECT s.step_no,b.*, 
 | 
        (select group_concat(receive_name) from wf_run_task c WHERE c.group_id=b.group_id AND (b.status=1 OR c.status in(20)) limit 0,3) AS RECEIVE_NAME 
 | 
        FROM ( 
 | 
        SELECT id,biz_id,biz_group_id,flow_code,step_id,step_marker,group_id, 
 | 
        CASE WHEN status IN (20,21,100) THEN 20 
 | 
        WHEN status IN (10,11) THEN 10 
 | 
        WHEN status IN (0,1) THEN 1 
 | 
        ELSE 0 end AS status 
 | 
        FROM (SELECT 
 | 
        * 
 | 
        FROM wf_run_task 
 | 
        WHERE is_delete =0 
 | 
        <if test="wfIdCodes!=null and wfIdCodes!=''"> 
 | 
            and ( CONCAT(',',#{wfIdCodes},',') like Concat('%,',CONCAT('',flow_id ),',%') 
 | 
            or CONCAT(',',#{wfIdCodes},',') like Concat('%,',flow_code,',%') ) 
 | 
        </if> 
 | 
        and biz_id = #{bizId} 
 | 
        AND status IN (0,1,20,21,100) /* 不显示状态10,11 */ 
 | 
        AND (status2 IS NULL OR status2 != 1) 
 | 
        ORDER BY receive_time desc 
 | 
        ) cc 
 | 
        group BY biz_id, 
 | 
        flow_code, 
 | 
        step_marker 
 | 
        ) b ,WF_DEF_STEP s where b.step_id = s.id 
 | 
        order by STEP_NO 
 | 
    </select> 
 | 
  
 | 
    <select id="getFlowStatus" resultType="com.zt.modules.workflow.model.WfRunTask"> 
 | 
        SELECT s.step_no,b.*, 
 | 
        (select group_concat(receive_name) from wf_run_task c WHERE c.group_id=b.group_id AND (b.status=1 OR c.status in(20)) limit 0,3) AS RECEIVE_NAME 
 | 
        FROM ( 
 | 
        SELECT id,biz_id,biz_group_id,flow_code,step_id,step_marker,group_id, 
 | 
        CASE WHEN status IN (20,21,100) THEN 20 
 | 
        WHEN status IN (10,11) THEN 10 
 | 
        WHEN status IN (0,1) THEN 1 
 | 
        ELSE 0 end AS status 
 | 
        FROM (SELECT 
 | 
        a.* 
 | 
        FROM 
 | 
        wf_run_task a 
 | 
        WHERE IS_delete =0 
 | 
        and flow_code in (select code from wf_def where type = '1') 
 | 
        <if test="wfIdCodes!=null and wfIdCodes!=''"> 
 | 
            and ( CONCAT(',',#{wfIdCodes},',') like Concat('%,',CONCAT('',flow_id ),',%') 
 | 
            or CONCAT(',',#{wfIdCodes},',') like Concat('%,',flow_code,',%') ) 
 | 
        </if> 
 | 
        and biz_id = #{bizId} 
 | 
        AND status IN (0,1,20,21,100) /* 不显示状态10,11 */ 
 | 
        ORDER BY receive_time desc 
 | 
        ) cc 
 | 
        group BY biz_id, 
 | 
        flow_code, 
 | 
        step_marker 
 | 
        )b ,wf_def_step s where b.step_id = s.id 
 | 
        order by flow_code,STEP_NO 
 | 
    </select> 
 | 
  
 | 
    <select id="getFlowStatus2" resultType="com.zt.modules.workflow.model.WfRunTask"> 
 | 
        SELECT s.step_no, 
 | 
               b.*, 
 | 
               (select group_concat(distinct receive_name) 
 | 
                from wf_run_task c 
 | 
                WHERE (b.status = 1 OR c.status in (20)) 
 | 
                  and group_id in (select group_id 
 | 
                                   from ( 
 | 
                                            select group_id, biz_id, flow_code, step_marker 
 | 
                                            from ( 
 | 
                                                     SELECT group_id, biz_id, flow_code, step_marker 
 | 
                                                     FROM wf_run_task 
 | 
                                                     WHERE biz_group_id = #{bizGroupId} 
 | 
                                                     ORDER BY receive_time desc 
 | 
                                                 ) cc 
 | 
                                            group BY biz_id, 
 | 
                                                     flow_code, 
 | 
                                                     step_marker 
 | 
                                        ) dd) 
 | 
                  and b.biz_group_id = c.biz_group_id 
 | 
                  and b.flow_code = c.flow_code 
 | 
                  and b.step_marker = c.step_marker 
 | 
                limit 0,1) AS RECEIVE_NAME 
 | 
        FROM ( 
 | 
                 SELECT a.*, 
 | 
                        b.totalNum, 
 | 
                        CASE 
 | 
                            WHEN totalNum = 0 THEN 0 
 | 
                            WHEN totalNum = finishNum THEN 20 
 | 
                            ELSE 1 END status 
 | 
                 FROM ( 
 | 
                          SELECT biz_group_id, 
 | 
                                 flow_code, 
 | 
                                 step_marker, 
 | 
                                 sum(CASE WHEN status IN (20, 21, 100) THEN 1 ELSE 0 end) AS finishNum 
 | 
                          FROM (select * 
 | 
                                from (SELECT * 
 | 
                                      FROM wf_run_task 
 | 
                                      WHERE is_delete = 0 
 | 
                                        and flow_code in (select code from wf_def where type = '2') 
 | 
                                        and status IN (0, 1, 20, 21, 100) 
 | 
                                        and biz_group_id = #{bizGroupId} 
 | 
                                      ORDER BY receive_time desc 
 | 
                                     ) cc 
 | 
                                group BY biz_group_id, 
 | 
                                         flow_code, 
 | 
                                         step_marker, 
 | 
                                         biz_id 
 | 
                               ) dd 
 | 
                          GROUP BY biz_group_id, flow_code, step_marker 
 | 
                      ) a, 
 | 
                      ( 
 | 
                          SELECT biz_group_id, 
 | 
                                 flow_code, 
 | 
                                 count(DISTINCT biz_group_id, flow_code, biz_id) AS totalNum 
 | 
                          FROM wf_run_task a 
 | 
                          WHERE is_delete = 0 
 | 
                            and flow_code in (select code from wf_def where type = '2') 
 | 
                            and biz_group_id = #{bizGroupId} 
 | 
                          GROUP BY biz_group_id, flow_code 
 | 
                      ) b 
 | 
                 WHERE a.biz_group_id = b.biz_group_id 
 | 
                   AND a.flow_code = b.flow_code 
 | 
             ) b, 
 | 
             wf_def_step s 
 | 
        where b.step_marker = s.step_marker 
 | 
        order by flow_code, STEP_NO 
 | 
    </select> 
 | 
  
 | 
    <select id="getFlowStatus3" resultType="com.zt.modules.workflow.model.WfRunTask"> 
 | 
        SELECT c.flow_code, 
 | 
        CASE WHEN totalNum = 0 THEN 0 
 | 
        WHEN totalNum=finishNum THEN 2 
 | 
        ELSE 1 END status 
 | 
        FROM ( 
 | 
        SELECT 
 | 
        biz_group_id,flow_code,count(DISTINCT biz_id) AS totalNum, 
 | 
        (SELECT count(1) FROM wf_run_task b WHERE b.biz_group_id=a.biz_group_id AND b.status=100) AS finishNum 
 | 
        FROM wf_run_task a 
 | 
        WHERE IS_delete =0 
 | 
        and flow_code in (select code from WF_DEF where type = '2') 
 | 
        <if test="wfIdCodes!=null and wfIdCodes!=''"> 
 | 
            and ( CONCAT(',',#{wfIdCodes},',') like Concat('%,',CONCAT('',flow_id ),',%') 
 | 
            or CONCAT(',',#{wfIdCodes},',') like Concat('%,',flow_code,',%') ) 
 | 
        </if> 
 | 
        and biz_group_id = #{biz_group_id} 
 | 
        GROUP BY biz_group_id,flow_code 
 | 
        ) c 
 | 
    </select> 
 | 
  
 | 
    <select id="getPhaseFlowStatus" resultType="com.zt.modules.workflow.model.WfRunTask"> 
 | 
        select code    as FLOW_CODE, 
 | 
               case 
 | 
                   when exists(select 1 
 | 
                               from wf_run_instance b 
 | 
                               where b.flow_id = a.id 
 | 
                                 and b.biz_group_id = #{bizId} 
 | 
                                 and b.status in (0, 1)) then 1 
 | 
                   when exists(select 1 
 | 
                               from wf_run_instance b 
 | 
                               where b.flow_id = a.id 
 | 
                                 and b.biz_group_id = #{bizId} 
 | 
                                 and b.status in (20, 100)) then 20 
 | 
                   else 0 
 | 
                   end as status 
 | 
        from wf_def a 
 | 
        where a.phase_node = #{flowCode} 
 | 
    </select> 
 | 
  
 | 
    <select id="getFlowStepStatus" resultType="com.zt.modules.workflow.model.WfRunTask"> 
 | 
        SELECT a.* FROM wf_run_task a, 
 | 
        ( 
 | 
            SELECT a.id, 
 | 
                CASE WHEN finish_time IS NULL THEN cast('2500-1-1' AS DATE) 
 | 
                    ELSE finish_time end finish_TIME 
 | 
            FROM wf_run_task a 
 | 
            WHERE is_delete =0 
 | 
            AND status IN (0,1,20,100) 
 | 
            <if test="wfIdCodes!=null and wfIdCodes!=''"> 
 | 
                and ( CONCAT(',',#{wfIdCodes},',') like Concat('%,',CONCAT('',flow_id ),',%') 
 | 
                or CONCAT(',',#{wfIdCodes},',') like Concat('%,',flow_code,',%') ) 
 | 
            </if> 
 | 
            and biz_id = #{bizId} 
 | 
            order by finish_TIME DESC 
 | 
            LIMIT 0,1 
 | 
        ) b 
 | 
        WHERE a.id =b.id 
 | 
    </select> 
 | 
  
 | 
    <select id="isMyStep" resultType="java.lang.Integer"> 
 | 
        SELECT count(1) 
 | 
        FROM wf_run_task 
 | 
        WHERE is_delete = 0 
 | 
          and biz_id = #{bizId} 
 | 
          and step_Marker = #{stepMarker} 
 | 
          and receive_id = #{userId} 
 | 
          AND status IN (0, 1) 
 | 
    </select> 
 | 
  
 | 
    <select id="isMyStepFinish" resultType="java.lang.Integer"> 
 | 
        SELECT count(1) 
 | 
        FROM wf_run_task 
 | 
        WHERE is_delete = 0 
 | 
          and biz_id = #{bizId} 
 | 
          and step_marker = #{stepMarker} 
 | 
          and receive_id = #{userId} 
 | 
          AND status in (20, 21) 
 | 
    </select> 
 | 
  
 | 
    <select id="getFlowStepFinish" resultType="java.lang.Integer"> 
 | 
        SELECT count(1) 
 | 
        FROM wf_run_task 
 | 
        WHERE is_delete = 0 
 | 
          and biz_id = #{bizId} 
 | 
          and step_marker = #{stepIdMark} 
 | 
          and (CONCAT('', flow_id) = #{wfIdCode} or flow_code = #{wfIdCode}) 
 | 
          AND status IN (0, 1) 
 | 
    </select> 
 | 
  
 | 
    <select id="getFlowStepFinish2" resultType="java.lang.Integer"> 
 | 
        SELECT count(1) 
 | 
        FROM wf_run_task 
 | 
        WHERE is_delete = 0 
 | 
          and biz_id = #{bizId} 
 | 
          and step_marker = #{stepIdMark} 
 | 
          and (CONCAT('', flow_id) = #{wfIdCode} or flow_code = #{wfIdCode}) 
 | 
          AND status IN (20, 21, 100) 
 | 
    </select> 
 | 
  
 | 
    <select id="getStepCount" resultType="com.zt.modules.workflow.model.WfRunTask"> 
 | 
        SELECT * 
 | 
        FROM ( 
 | 
                 SELECT a.step_marker, (CASE WHEN b.num IS NULL THEN 0 ELSE b.num end) status, a.step_no 
 | 
                 FROM wf_def_step a /*liquan*/ 
 | 
                          LEFT JOIN ( 
 | 
                     SELECT step_marker, count(1) AS Num 
 | 
                     FROM (select * 
 | 
                           from (SELECT * 
 | 
                                 FROM wf_run_task 
 | 
                                 WHERE is_delete = 0 
 | 
                                   and status IN (0, 1, 100) 
 | 
                                   and biz_group_id = #{bizId} 
 | 
                                   and flow_code = #{wfIdCode} 
 | 
                                 ORDER BY receive_time desc 
 | 
                                ) d /*liquan*/ 
 | 
                           group BY biz_group_id, 
 | 
                                    flow_id, 
 | 
                                    flow_code, 
 | 
                                    step_marker, 
 | 
                                    biz_id 
 | 
                          ) cc 
 | 
                     GROUP BY biz_group_id, flow_id, flow_code, step_marker 
 | 
                 ) b ON a.step_marker = b.step_marker 
 | 
                 WHERE a.wf_def_id IN (SELECT id FROM wf_def WHERE code = #{wfIdCode}) 
 | 
                 UNION 
 | 
                 SELECT 'total', 
 | 
                        count(DISTINCT biz_group_id, flow_code, biz_id) AS status, 
 | 
                        900 
 | 
                 FROM wf_run_task a 
 | 
                 WHERE is_delete = 0 
 | 
                   and biz_group_id = #{bizId} 
 | 
                   and flow_code = #{wfIdCode} 
 | 
                 GROUP BY biz_group_id, flow_code 
 | 
             ) c 
 | 
        ORDER BY STEP_NO 
 | 
    </select> 
 | 
  
 | 
    <select id="getBizTaskCount" resultType="java.lang.Integer"> 
 | 
        SELECT count(1) 
 | 
        FROM wf_run_task 
 | 
        WHERE is_delete = 0 
 | 
          and biz_id = #{bizId} 
 | 
          and flow_code = #{wfIdCode} 
 | 
    </select> 
 | 
  
 | 
    <update id="setTaskRecall"> 
 | 
        UPDATE wf_run_task 
 | 
        SET status      = 0 
 | 
          , update_date = CURRENT_TIMESTAMP 
 | 
        WHERE is_delete = 0 
 | 
          AND id = #{taskId} 
 | 
          and (CONCAT('', flow_id) = #{wfIdCode} or flow_code = #{wfIdCode}); 
 | 
  
 | 
        UPDATE wf_run_task 
 | 
        SET is_delete   = 1 
 | 
          , update_date = CURRENT_TIMESTAMP 
 | 
        WHERE is_delete = 0 
 | 
          AND prev_id = #{taskId} 
 | 
    </update> 
 | 
  
 | 
  
 | 
    <select id="getRoleCount" resultType="java.lang.Integer"> 
 | 
        SELECT count(1) 
 | 
        FROM sys_role_user a, 
 | 
             sys_role b 
 | 
        WHERE a.is_delete = 0 
 | 
          and b.is_delete = 1 
 | 
          and b.code = #{code} 
 | 
          and a.user_id = #{userId} 
 | 
    </select> 
 | 
  
 | 
    <select id="getConnectInformation" resultType="com.zt.modules.workflow.model.WfRunTask"> 
 | 
        SELECT * 
 | 
        FROM `wf_run_task` 
 | 
        where step_marker in ('yxsc_bb', 'sgqd_bb', 'plan_tybx') 
 | 
          and status in (0, 1) 
 | 
          and receive_id in 
 | 
              (select user_id from sys_user where DEPT_ID = #{oldShipTeam}) 
 | 
          and is_delete = 0 
 | 
        group by flow_code, step_marker, biz_id 
 | 
    </select> 
 | 
  
 | 
    <select id="getFlowTrack" resultType="com.zt.modules.workflow.model.WfRunTask"> 
 | 
        select * from ( 
 | 
                          select step_name,receive_name,receive_time,finish_time 
 | 
                          from wf_run_task 
 | 
                          where flow_code=#{flowCode} and biz_id=#{bizId} and is_delete = 0 and status='20' 
 | 
                          union 
 | 
                          select step_name,GROUP_CONCAT(receive_name) as RECEIVE_NAME,receive_time,finish_time 
 | 
                          from wf_run_task 
 | 
                          where flow_code=#{flowCode} and biz_id=#{bizId} and is_delete = 0 
 | 
                            and status in (0,1) 
 | 
                          group by step_name,receive_time,finish_time 
 | 
                      ) b order by receive_time 
 | 
    </select> 
 | 
  
 | 
    <select id="isExistsStep" resultType="java.lang.Integer"> 
 | 
        select count(1) from wf_run_task a, 
 | 
        wf_def_step b 
 | 
        where 
 | 
        a.biz_id = #{bizId} and a.status in (0,20) 
 | 
        and a.step_id = b.id and b.exec_one = 1 
 | 
        <if test="currentStepId != 0"> 
 | 
            and a.step_id = #{currentStepId} 
 | 
        </if> 
 | 
        <if test="stepMarker != null"> 
 | 
            and a.step_marker = #{stepMarker} 
 | 
        </if> 
 | 
  
 | 
    </select> 
 | 
  
 | 
    <select id="isExistsRunningStep" resultType="java.lang.Integer"> 
 | 
        select count(1) from wf_run_task a, 
 | 
        wf_def_step b 
 | 
        where 
 | 
        a.biz_id = #{bizId} and a.status in (0,1) 
 | 
        and a.step_id = b.id and a.is_delete = 0 and b.is_delete = 0 
 | 
        <if test="currentStepId != 0"> 
 | 
            and a.step_id = #{currentStepId} 
 | 
        </if> 
 | 
        <if test="stepMarker != null"> 
 | 
            and a.step_marker = #{stepMarker} 
 | 
        </if> 
 | 
    </select> 
 | 
  
 | 
    <select id="getFlowStepName" resultType="java.lang.String"> 
 | 
        SELECT 
 | 
            step_name 
 | 
        FROM 
 | 
            wf_run_task 
 | 
        WHERE 
 | 
            flow_code = #{wfIdCodes} 
 | 
            AND biz_id = #{bizId} 
 | 
            AND `status` = 0 
 | 
            LIMIT 0,1 
 | 
    </select> 
 | 
    <select id="getRunFlow" resultType="com.zt.common.entity.FlowInfo"> 
 | 
        select * from ( 
 | 
                          select distinct(a.biz_id) biz_id, a.step_marker,b.step_no 
 | 
                          from wf_run_task a 
 | 
                             ,wf_def_step b 
 | 
                          where a.step_id = b.id and a.flow_code ='${flowCode}' 
 | 
                            <if test="bizIds != null"> 
 | 
                                and a.biz_id in 
 | 
                                <foreach item="item" collection="bizIds" open="(" separator="," close=")"> 
 | 
                                    #{item} 
 | 
                                </foreach> 
 | 
                            </if> 
 | 
                          order by STEP_NO desc 
 | 
                      ) c 
 | 
        group by biz_id 
 | 
    </select> 
 | 
  
 | 
    <update id="updateConnect"> 
 | 
        update `wf_run_task` 
 | 
        set is_delete =1,update_date = CURRENT_TIMESTAMP 
 | 
        where step_marker in ('yxsc_bb', 'sgqd_bb', 'plan_tybx') 
 | 
          and status in (0, 1) 
 | 
          and receive_id in 
 | 
              (select user_id from sys_user where dept_id = #{oldShipTeam}) 
 | 
          and is_delete = 0 
 | 
    </update> 
 | 
  
 | 
    <update id="setReStartStatus"> 
 | 
        update `wf_run_task` 
 | 
        set status = 150,update_date = CURRENT_TIMESTAMP 
 | 
        where flow_code = #{wfIdCode} 
 | 
          and biz_id = #{bizId} 
 | 
          and is_delete = 0 
 | 
    </update> 
 | 
  
 | 
    <update id="deleteFlowStep"> 
 | 
        delete from wf_run_task 
 | 
        where flow_code = #{wfIdCode} 
 | 
          and step_marker = #{stepIdMark} 
 | 
          and biz_id = #{bizId} 
 | 
    </update> 
 | 
</mapper> 
 |