Эх сурвалжийг харах

feat:根据用户角色查询可执行节点

韩帛霖 1 жил өмнө
parent
commit
ad47e12fad

+ 43 - 29
ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteProcessMapper.xml

@@ -131,7 +131,8 @@
     </delete>
 
     <select id="queryExecuteProcess" resultMap="retMap">
-        select bep.id as bep_id,
+        select
+        bep.id as bep_id,
         bep.task_key as bep_task_key,
         bep.task_name as bep_task_name,
         bep.task_plan_key as bep_task_plan_key,
@@ -144,39 +145,52 @@
         bep.task_process_note as bep_task_process_note,
         bep.del_flag as bep_del_flag,
         bep.remark as bep_remark,
-        ben.id AS ben_id,
-        ben.task_process_key AS ben_task_process_key,
-        ben.task_node_key AS ben_task_node_key,
-        ben.task_node_name AS ben_task_node_name,
-        ben.task_node_form_key AS ben_task_node_form_key,
-        ben.task_node_type AS ben_task_node_type,
-        ben.task_node_before AS ben_task_node_before,
-        ben.task_node_after AS ben_task_node_after,
-        ben.task_node_role_permission AS ben_task_node_role_permission,
-        ben.task_remark AS ben_task_remark,
-        ben.task_node_number AS ben_task_node_number,
-        ben.task_node_weight AS ben_task_node_weight,
-        ben.task_node_state AS ben_task_node_state,
-        ben.task_priority AS ben_task_priority,
-        ben.task1 AS ben_task1,
-        ben.task2 AS ben_task2,
-        ben.task3 AS ben_task3,
-        ben.task4 AS ben_task4,
-        ben.task5 AS ben_task5,
-        ben.del_flag AS ben_del_flag,
-        ben.create_by_id AS ben_create_by_id,
-        ben.create_by AS ben_create_by,
-        ben.create_time AS ben_create_time
-        from {DBNAME}.bpm_execute_process as bep
+        ben.id as ben_id,
+        ben.task_process_key as ben_task_process_key,
+        ben.task_node_key as ben_task_node_key,
+        ben.task_node_name as ben_task_node_name,
+        ben.task_node_form_key as ben_task_node_form_key,
+        ben.task_node_type as ben_task_node_type,
+        ben.task_node_before as ben_task_node_before,
+        ben.task_node_after as ben_task_node_after,
+        ben.task_node_role_permission as ben_task_node_role_permission,
+        ben.task_remark as ben_task_remark,
+        ben.task_node_number as ben_task_node_number,
+        ben.task_node_weight as ben_task_node_weight,
+        ben.task_node_state as ben_task_node_state,
+        ben.task_priority as ben_task_priority,
+        ben.task1 as ben_task1,
+        ben.task2 as ben_task2,
+        ben.task3 as ben_task3,
+        ben.task4 as ben_task4,
+        ben.task5 as ben_task5,
+        ben.del_flag as ben_del_flag,
+        ben.create_by_id as ben_create_by_id,
+        ben.create_by as ben_create_by,
+        ben.create_time as ben_create_time,
+        benm.id as benm_id,
+        benm.task_node_key as benm_task_node_key,
+        benm.task_virtually_role as benm_task_virtually_role,
+        benm.task_real_role as benm_task_real_role,
+        benm.task_execute_user_no as benm_task_execute_user_no,
+        benm.task_artificial_script_key as benm_task_artificial_script_key,
+        benm.task_automatic_script_trigger_type as benm_task_automatic_script_trigger_type
+        from
+        {DBNAME}.bpm_execute_process as bep
         inner join {DBNAME}.bpm_execute_node as ben on
-        ben.task_process_key = bep.task_key and ben.task_node_key = bep.task_node_next_key
-        where bep.task_node_next_key in (select task_node_key
+        ben.task_process_key = bep.task_key
+        and ben.task_node_key = bep.task_node_next_key
+        join {DBNAME}.bpm_execute_node_middle as benm on
+        benm.task_node_key = ben.task_node_key
+        and benm.task_process_key = bep.task_key
+        where
+        bep.task_node_next_key in (select task_node_key
         from {DBNAME}.bpm_execute_node_middle
         where
+        FIND_IN_SET(#{userId}, task_execute_user_no) > 0 OR
         <foreach collection="taskRealRoleList" item="role" separator=" OR ">
             FIND_IN_SET(#{role}, task_real_role) > 0
-        </foreach>
-        FIND_IN_SET(#{userId}, task_execute_user_no) > 0)
+        </foreach>)
     </select>
 
     <select id="selectBpmExecuteProcessByTaskKey" parameterType="string" resultMap="BpmExecuteProcessResult">