jinlin
2023-12-28 63447fec93e8e562833db30bc848884001b808c4
zt/core/src/main/resources/mapper/workflowconfig/WfDefStepDao.xml
@@ -8,14 +8,14 @@
            wds.*,
            s1.name as stepRouterName,
            s2.name as stepReadRouterName,
            case when task_Group='cj' then '厂家'
                    when task_Group='zy' then '专业'
            case when task_group='cj' then '厂家'
                    when task_group='zy' then '专业'
                    else '' end as taskGroupName
        FROM
            WF_DEF_STEP wds
            LEFT JOIN WF_DEF a ON a.id = WF_DEF_ID
            left join SYS_MENU s1 on s1.id = wds.STEP_ROUTER_ID
            left join SYS_MENU s2 on s2.id = wds.STEP_READ_ROUTER_ID
            wf_def_step wds
            LEFT JOIN wf_def a ON a.id = wf_def_id
            left join sys_menu s1 on s1.id = wds.step_router_id
            left join sys_menu s2 on s2.id = wds.step_read_router_id
        <where>
            <if test="whereSql!=null">
                ${whereSql}
@@ -23,15 +23,15 @@
            and a.id = #{id}
            and wds.is_delete = 0
        </where>
        order by wds.STEP_NO
        order by wds.step_no
    </select>
    <select id="workflowSelect" resultType="com.zt.modules.workflowconfig.model.WfDef">
        SELECT
            id,
            NAME
            name
        FROM
            WF_DEF
            wf_def
        WHERE
           status = 1 and is_delete = 0
        order by id
@@ -40,16 +40,16 @@
    <select id="getUserByWorkflowSteps" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
        SELECT
         a.id as stepId,
         b.user_id as userId,
         b.id as userId,
         b.user_name as userName,
         b.nick_name as realName,
         c.dept_name AS deptName,
         d.dept_name AS companyName
        FROM
         WF_DEF_STEP a
         LEFT JOIN SYS_USER b ON instr(a.APPROVER_IDS,b.id) > 0
         LEFT JOIN SYS_DEPT c ON b.dept_id = c.id
         LEFT JOIN SYS_DEPT d ON b.COMPANY_ID = d.id
         wf_def_step a
         LEFT JOIN sys_user b ON instr(a.approver_ids,b.id) > 0
         LEFT JOIN sys_dept c ON b.dept_id = c.id
         LEFT JOIN sys_dept d ON b.company_id = d.id
        WHERE
         a.is_delete = 0
         AND a.id = #{stepsId}
@@ -66,12 +66,12 @@
        SELECT
        a.*
        FROM
        SYS_USER a,
        WF_DEF_STEP b
        sys_user a,
        wf_def_step b
        WHERE
        (
        b.APPROVER_IDS IS NULL
        or CONCAT( ',', b.APPROVER_IDS, ',' ) NOT LIKE CONCAT( '%,', a.user_id, ',%' )
        b.approver_ids IS NULL
        or CONCAT( ',', b.approver_ids, ',' ) NOT LIKE CONCAT( '%,', a.user_id, ',%' )
        )
        <if test="whereSql!=null">
           and ${whereSql}
@@ -82,19 +82,19 @@
        AND a.is_delete = 0
        ORDER BY  a.name
        ) a
        LEFT JOIN SYS_DEPT c ON a.dept_id = c.id
        LEFT JOIN sys_dept c ON a.dept_id = c.id
    </select>
    <update id="addWorkflowStepsUser">
        update WF_DEF_STEP set APPROVER_IDS = #{userId},UPDATE_DATE = CURRENT_TIMESTAMP where id = #{stepId}
        update wf_def_step set approver_ids = #{userId},update_date = CURRENT_TIMESTAMP where id = #{stepId}
    </update>
    <update id="deleteWorkflowStepsUser">
        update WF_DEF_STEP set APPROVER_IDS = #{userId},UPDATE_DATE = CURRENT_TIMESTAMP where id = #{stepId}
        update wf_def_step set approver_ids = #{userId},update_date = CURRENT_TIMESTAMP where id = #{stepId}
    </update>
    <update id="delete">
        update WF_DEF_STEP set is_delete = 1,UPDATE_DATE = CURRENT_TIMESTAMP where id = #{id}
        update wf_def_step set is_delete = 1,update_date = CURRENT_TIMESTAMP where id = #{id}
    </update>
    <select id="getRoleByWorkflowSteps" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
@@ -104,9 +104,9 @@
         b.name as roleName,
         d.name AS companyName
        FROM
         WF_DEF_STEP a
         LEFT JOIN SYS_ROLE b ON instr(a.APPROVER_ROLE_IDS,b.id) > 0
         LEFT JOIN SYS_DEPT d ON b.COMPANY_ID = d.id
         wf_def_step a
         LEFT JOIN sys_role b ON instr(a.approver_role_ids,b.id) > 0
         LEFT JOIN sys_dept d ON b.company_id = d.id
        WHERE
         a.is_delete = 0
         AND a.id = #{stepsId}
@@ -122,12 +122,12 @@
        SELECT
        a.*
        FROM
        SYS_ROLE a,
        WF_DEF_STEP b
        sys_role a,
        wf_def_step b
        WHERE
        (
        b.APPROVER_ROLE_IDS IS NULL
        or CONCAT( ',', b.APPROVER_ROLE_IDS, ',' ) NOT LIKE CONCAT( '%,', a.id, ',%' )
        b.approver_role_ids IS NULL
        or CONCAT( ',', b.approver_role_ids, ',' ) NOT LIKE CONCAT( '%,', a.id, ',%' )
        )
        <if test="whereSql!=null">
            and ${whereSql}
@@ -138,102 +138,102 @@
        AND a.is_delete = 0
        ) a
        LEFT JOIN SYS_DEPT d ON a.COMPANY_ID = d.id
        LEFT JOIN sys_dept d ON a.company_id = d.id
        ORDER BY d.name, a.sort
    </select>
    <update id="addWorkflowStepsRole">
        update WF_DEF_STEP set APPROVER_ROLE_IDS = #{roleId},UPDATE_DATE = CURRENT_TIMESTAMP where id = #{stepId}
        update wf_def_step set approver_role_ids = #{roleId},update_date = CURRENT_TIMESTAMP where id = #{stepId}
    </update>
    <update id="deleteWorkflowStepsRole">
        update WF_DEF_STEP set APPROVER_ROLE_IDS = #{roleId},UPDATE_DATE = CURRENT_TIMESTAMP where id = #{stepId}
        update wf_def_step set approver_role_ids = #{roleId},update_date = CURRENT_TIMESTAMP where id = #{stepId}
    </update>
    <update id="deleteFlowMenu">
        update SYS_ROLE_MENU set is_delete=0,UPDATE_DATE = CURRENT_TIMESTAMP WHERE ID IN
        update sys_role_menu set is_delete=0,update_date = CURRENT_TIMESTAMP WHERE ID IN
(
   SELECT id FROM (
   SELECT * FROM (
   SELECT a.STEP_ROUTER_ID AS menu_id,b.id AS role_id FROM WF_DEF_STEP a ,SYS_ROLE b
   WHERE a.IS_DELETE =0 AND b.IS_DELETE=0
      AND CONCAT(',',a.APPROVER_ROLE_IDS,',') LIKE CONCAT(',',b.id,',')
   SELECT a.step_router_id AS menu_id,b.id AS role_id FROM wf_def_step a ,sys_role b
   WHERE a.is_delete =0 AND b.is_delete=0
      AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT(',',b.id,',')
   UNION
   SELECT a.STEP_READ_ROUTER_ID AS menu_id,b.id AS role_id FROM WF_DEF_STEP a ,SYS_ROLE b
   WHERE a.IS_DELETE =0 AND b.IS_DELETE=0
       AND CONCAT(',',a.APPROVER_ROLE_IDS,',') LIKE CONCAT(',',b.id,',')
   SELECT a.step_read_router_id AS menu_id,b.id AS role_id FROM wf_def_step a ,sys_role b
   WHERE a.is_delete =0 AND b.is_delete=0
       AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT(',',b.id,',')
   )
   WHERE menu_id IS NOT NULL
   GROUP BY menu_id,role_id
   ) b,SYS_ROLE_MENU c WHERE b.menu_id=c.menu_id AND b.role_id=c.role_id
   ) b,sys_role_menu c WHERE b.menu_id=c.menu_id AND b.role_id=c.role_id
)
    </update>
    <select id="selectFlowMenu" resultType="com.zt.modules.workflowconfig.dto.FlowMenuDto">
        select c.*,d.id as id2,d.menu_id as menuId2 from (
        SELECT * FROM (
        SELECT a.STEP_ROUTER_ID AS menu_id,b.id AS role_id
        FROM WF_DEF_STEP a ,SYS_ROLE b
        WHERE a.IS_DELETE =0 AND b.IS_DELETE=0
        AND CONCAT(',',a.APPROVER_ROLE_IDS,',') LIKE CONCAT('%,',b.id,',%')
        SELECT a.step_router_id AS menu_id,b.id AS role_id
        FROM wf_def_step a ,sys_role b
        WHERE a.is_delete =0 AND b.is_delete=0
        AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
        UNION
        SELECT a.STEP_READ_ROUTER_ID AS menu_id,b.id AS role_id
        FROM WF_DEF_STEP a ,SYS_ROLE b
        WHERE a.IS_DELETE =0 AND b.IS_DELETE=0
        AND CONCAT(',',a.APPROVER_ROLE_IDS,',') LIKE CONCAT('%,',b.id,',%')
        SELECT a.step_read_router_id AS menu_id,b.id AS role_id
        FROM wf_def_step a ,sys_role b
        WHERE a.is_delete =0 AND b.is_delete=0
        AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
        ) b
        WHERE menu_id IS NOT NULL AND menu_id &lt;&gt; 0
        GROUP BY menu_id,role_id
        )c
        left join sys_role_menu d on d.role_id = c.role_id and d.menu_id = c.menu_id
        where d.IS_DELETE is null or d.IS_DELETE = 1
        where d.is_delete is null or d.is_delete = 1
    </select>
    <update id="deleteRoleFlowMenu">
        update sys_role_menu set is_delete =1,UPDATE_DATE = CURRENT_TIMESTAMP where id in (select id2 from (select c.*,d.id as id2 from (
        update sys_role_menu set is_delete =1,update_date = CURRENT_TIMESTAMP where id in (select id2 from (select c.*,d.id as id2 from (
        SELECT * FROM (
        SELECT a.STEP_ROUTER_ID AS menu_id,b.id AS role_id
        FROM WF_DEF_STEP a ,SYS_ROLE b
        WHERE a.IS_DELETE =0 AND b.IS_DELETE=0
        AND CONCAT(',',a.APPROVER_ROLE_IDS,',') LIKE CONCAT('%,',b.id,',%')
        SELECT a.step_router_id AS menu_id,b.id AS role_id
        FROM wf_def_step a ,sys_role b
        WHERE a.is_delete =0 AND b.is_delete=0
        AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
        UNION
        SELECT a.STEP_READ_ROUTER_ID AS menu_id,b.id AS role_id
        FROM WF_DEF_STEP a ,SYS_ROLE b
        WHERE a.IS_DELETE =0 AND b.IS_DELETE=0
        AND CONCAT(',',a.APPROVER_ROLE_IDS,',') LIKE CONCAT('%,',b.id,',%')
        SELECT a.step_read_router_id AS menu_id,b.id AS role_id
        FROM wf_def_step a ,sys_role b
        WHERE a.is_delete =0 AND b.is_delete=0
        AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
        ) b
        WHERE menu_id IS NOT NULL AND menu_id &lt;&gt; 0
        GROUP BY menu_id,role_id
        )c
        join sys_role_menu d
        join sys_menu m
        where d.menu_id = c.menu_id and d.MENU_ID = m.id and m.SHOW_MENU = 0
        where d.menu_id = c.menu_id and d.menu_id = m.id and m.show_menu = 0
        ) f where f.role_id is null
        )
    </update>
    <select id="selectFlowMenuOld" resultType="com.zt.modules.workflowconfig.dto.FlowMenuDto">
        WITH menuList AS (
            SELECT STEP_ROUTER_ID AS step_menu_id FROM WF_DEF_STEP WHERE IS_DELETE =0 AND STEP_ROUTER_ID IS NOT null
            SELECT step_router_id AS step_menu_id FROM wf_def_step WHERE is_delete =0 AND step_router_id IS NOT null
            UNION
            SELECT STEP_READ_ROUTER_ID AS step_menu_id FROM WF_DEF_STEP WHERE IS_DELETE =0 AND STEP_READ_ROUTER_ID IS NOT null
            SELECT step_read_router_id AS step_menu_id FROM wf_def_step WHERE is_delete =0 AND step_read_router_id IS NOT null
        ),
             shoudList AS (
                 SELECT * FROM (
                                   SELECT a.STEP_ROUTER_ID AS menu_id,b.id AS role_id
                                   FROM WF_DEF_STEP a ,SYS_ROLE b
                                   WHERE a.IS_DELETE =0 AND b.IS_DELETE=0
                                     AND CONCAT(',',a.APPROVER_ROLE_IDS,',') LIKE CONCAT('%,',b.id,',%')
                                   SELECT a.step_router_id AS menu_id,b.id AS role_id
                                   FROM wf_def_step a ,sys_role b
                                   WHERE a.is_delete =0 AND b.is_delete=0
                                     AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
                                   UNION
                                   SELECT a.STEP_READ_ROUTER_ID AS menu_id,b.id AS role_id
                                   FROM WF_DEF_STEP a ,SYS_ROLE b
                                   WHERE a.IS_DELETE =0 AND b.IS_DELETE=0
                                     AND CONCAT(',',a.APPROVER_ROLE_IDS,',') LIKE CONCAT('%,',b.id,',%')
                                   SELECT a.step_read_router_id AS menu_id,b.id AS role_id
                                   FROM wf_def_step a ,sys_role b
                                   WHERE a.is_delete =0 AND b.is_delete=0
                                     AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
                               )
                 WHERE menu_id IS NOT NULL AND menu_id &lt;&gt; 0
                 GROUP BY menu_id,role_id
             ),existList as(
            SELECT id as id2, menu_id AS menu_id2, role_id  AS role_id2, is_delete AS is_delete2
            FROM SYS_ROLE_MENU b
            FROM sys_role_menu b
            WHERE menu_id IN (SELECT step_menu_id from menuList)
              AND role_id NOT IN (1331061516255227905,1271368584383188993)
        )
@@ -244,104 +244,104 @@
    <select id="querySteps" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
        SELECT wds.* FROM WF_DEF_STEP wds LEFT JOIN WF_DEF wd ON wds.WF_DEF_ID=wd.ID WHERE
            wd.CODE=#{wfCode} AND wds.IS_DELETE=0 ORDER BY wds.STEP_NO ASC LIMIT 1
        SELECT wds.* FROM wf_def_step wds LEFT JOIN wf_def wd ON wds.wf_def_id=wd.ID WHERE
            wd.code=#{wfCode} AND wds.is_delete=0 ORDER BY wds.step_no ASC LIMIT 1
    </select>
    <select id="queryAllSteps" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
        SELECT wds.* FROM WF_DEF_STEP wds LEFT JOIN WF_DEF wd ON wds.WF_DEF_ID=wd.ID WHERE
            wd.CODE=#{wfCode} AND wds.IS_DELETE=0 ORDER BY wds.STEP_NO ASC LIMIT 100
        SELECT wds.* FROM wf_def_step wds LEFT JOIN wf_def wd ON wds.wf_def_id=wd.id WHERE
            wd.code=#{wfCode} AND wds.is_delete=0 ORDER BY wds.step_no ASC LIMIT 100
    </select>
    <select id="getAllSteps" resultType="java.lang.String">
        SELECT STEP_MARKER
        FROM WF_DEF_STEP
        SELECT step_marker
        FROM wf_def_step
        WHERE is_delete = 0
            AND STEP_NO &lt;&gt; 100
        ORDER BY WF_DEF_ID,STEP_NO
            AND step_no &lt;&gt; 100
        ORDER BY wf_def_id,step_no
    </select>
    <select id="queryWfDefFirstStep" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
        SELECT * FROM WF_DEF_STEP wds
        SELECT * FROM wf_def_step wds
        WHERE 1=1
        <if test="wfDefIdCode!=null">
            and (CONCAT('',WF_DEF_ID ) =#{wfDefIdCode} or WF_DEF_ID in (select id from WF_DEF where code=#{wfDefIdCode}))
            and (CONCAT('',wf_def_id ) =#{wfDefIdCode} or wf_def_id in (select id from wf_def where code=#{wfDefIdCode}))
        </if>
        ORDER BY wds.STEP_NO ASC LIMIT 1
        ORDER BY wds.step_no ASC LIMIT 1
    </select>
    <select id="queryWfDefFinallyStep" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
        SELECT * FROM WF_DEF_STEP wds
        WHERE 1=1 and wds.IS_DELETE=0
        SELECT * FROM wf_def_step wds
        WHERE 1=1 and wds.is_delete=0
        <if test="wfDefIdCode!=null">
            and (CONCAT('',WF_DEF_ID ) = #{wfDefIdCode} or WF_DEF_ID in (select id from WF_DEF where code=#{wfDefIdCode}))
            and (CONCAT('',wf_def_id ) = #{wfDefIdCode} or wf_def_id in (select id from wf_def where code=#{wfDefIdCode}))
        </if>
        ORDER BY wds.STEP_NO desc LIMIT 1
        ORDER BY wds.step_no desc LIMIT 1
    </select>
    <select id="queryWfDefStep" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
        SELECT * FROM WF_DEF_STEP wds
        SELECT * FROM wf_def_step wds
        WHERE 1=1
        <if test="wfDefIdCode!=null">
            and (CONCAT('',WF_DEF_ID ) =#{wfDefIdCode} or WF_DEF_ID in (select id from WF_DEF where code=#{wfDefIdCode}))  /*liquan*/
            and (CONCAT('',wf_def_id ) =#{wfDefIdCode} or wf_def_id in (select id from wf_def where code=#{wfDefIdCode}))  /*liquan*/
        </if>
        <if test="stepIdMarker!=null">
            and (CONCAT('',id) = #{stepIdMarker} or  step_Marker = #{stepIdMarker})  /*liquan*/
        </if>
        ORDER BY wds.STEP_NO desc LIMIT 1
        ORDER BY wds.step_no desc LIMIT 1
    </select>
    <select id="queryWfDefNextStep" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
        <![CDATA[
        SELECT *
        FROM WF_DEF_STEP wds
        WHERE is_Delete = 0
            and STEP_TYPE = 0
            and wds.WF_DEF_ID=#{wfDefId}
            AND wds.STEP_NO > #{stepNo}
        ORDER BY wds.STEP_NO ASC LIMIT 1
        FROM wf_def_step wds
        WHERE is_delete = 0
            and step_type = 0
            and wds.wf_def_id=#{wfDefId}
            AND wds.step_no > #{stepNo}
        ORDER BY wds.step_no ASC LIMIT 1
        ]]>
    </select>
    <select id="queryWfDefPreStep" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
        <![CDATA[
        SELECT *
        FROM WF_DEF_STEP wds
        WHERE is_Delete = 0
            and STEP_TYPE = 0
            AND wds.WF_DEF_ID = #{wfDefId}
            AND wds.STEP_NO < #{stepNo}
        ORDER BY wds.STEP_NO DESC LIMIT 1
        FROM wf_def_step wds
        WHERE is_delete = 0
            and step_type = 0
            AND wds.wf_def_id = #{wfDefId}
            AND wds.step_no < #{stepNo}
        ORDER BY wds.step_no DESC LIMIT 1
        ]]>
    </select>
    <select id="queryStepsBYMap" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
        SELECT * FROM WF_DEF_STEP a,
        WF_DEF b
        WHERE a.is_Delete=0
        and a.is_Delete=0
        SELECT * FROM wf_def_step a,
        wf_def b
        WHERE a.is_delete=0
        and a.is_delete=0
        <if test="wfId!=null">
            AND b.ID=#{wfId}
            AND b.id=#{wfId}
        </if>
        <if test="wfCode!=null">
            AND b.Code=#{wfCode}
            AND b.code=#{wfCode}
        </if>
        <if test="wfDefId!=null">
            AND a.WF_DEF_ID=#{wfDefId}
            AND a.wf_def_id=#{wfDefId}
        </if>
        <if test="stepMarker!=null">
            AND a.STEP_MARKER=#{stepMarker}
            AND a.step_marker=#{stepMarker}
        </if>
        ORDER BY a.STEP_NO
        ORDER BY a.step_no
    </select>
    <select id="getWorkflowStepByCode" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
        <![CDATA[
        SELECT *
        FROM WF_DEF_STEP wds
        WHERE is_Delete = 0
            AND wds.STEP_Marker = #{stepMarker}
        ORDER BY wds.STEP_NO ASC LIMIT 1
        FROM wf_def_step wds
        WHERE is_delete = 0
            AND wds.step_marker = #{stepMarker}
        ORDER BY wds.step_no ASC LIMIT 1
        ]]>
    </select>