| <?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> |