浏览代码

发起任务流程优化

hubin 1 年之前
父节点
当前提交
4d713a7ccf

+ 3 - 1
src/main/java/com/aizuda/boot/modules/flw/mapper/FlowlongMapper.java

@@ -14,7 +14,9 @@ import java.util.List;
 @Mapper
 public interface FlowlongMapper {
 
-    List<FlwProcessVO> selectFlwProcessList(@Param("launch") boolean launch);
+    List<FlwProcessVO> selectFlwProcessList();
+
+    List<FlwProcessVO> selectLaunchProcessList();
 
     /**
      * 待认领任务分页列表

+ 6 - 1
src/main/java/com/aizuda/boot/modules/flw/service/impl/FlwProcessServiceImpl.java

@@ -59,7 +59,12 @@ public class FlwProcessServiceImpl extends ServiceImpl<FlwProcessMapper, FlwProc
         }
         // 全部查询
         List<FlwProcessCategoryVO> voList = new ArrayList<>();
-        List<FlwProcessVO> flwProcessVOList = flowlongMapper.selectFlwProcessList(launch);
+        List<FlwProcessVO> flwProcessVOList;
+        if (launch) {
+            flwProcessVOList = flowlongMapper.selectLaunchProcessList();
+        } else {
+            flwProcessVOList = flowlongMapper.selectFlwProcessList();
+        }
         boolean voIsNotEmpty = CollectionUtils.isNotEmpty(flwProcessVOList);
         if (null == keyword) {
             // 不存在关键词查询

+ 8 - 3
src/main/resources/mapper/FlowlongMapper.xml

@@ -5,9 +5,14 @@
     <select id="selectFlwProcessList" resultType="com.aizuda.boot.modules.flw.entity.vo.FlwProcessVO">
         SELECT t2.category_id,t2.process_id,t1.process_key,t1.process_name,t1.process_icon,t1.process_version,t1.remark,t1.use_scope,
                t1.process_state,t1.sort AS process_sort,t1.create_time FROM flw_process t1 JOIN  flw_process_configure t2 ON t1.id=t2.process_id
-        <if test="launch">
-            JOIN flw_process_actor a ON t1.id=a.process_id
-        </if>
+    </select>
+
+    <select id="selectLaunchProcessList" resultType="com.aizuda.boot.modules.flw.entity.vo.FlwProcessVO">
+        WITH tb AS (SELECT t2.category_id,t2.process_id,t1.process_key,t1.process_name,t1.process_icon,t1.process_version,
+        t1.remark,t1.use_scope,t1.process_state,t1.sort AS process_sort,t1.create_time
+        FROM flw_process t1 JOIN flw_process_configure t2 ON t1.ID = t2.process_id)
+        SELECT tb.* FROM tb WHERE NOT EXISTS (SELECT 1 FROM flw_process_actor a WHERE tb.process_id=a.process_id) UNION ALL
+        SELECT tb.* FROM tb WHERE EXISTS (SELECT 1 FROM flw_process_actor a JOIN sys_user_role r ON a.actor_id=r.role_id WHERE a.actor_type=0 AND r.user_id=0 AND tb.process_id=a.process_id)
     </select>
 
     <select id="selectPagePendingClaim" resultType="com.aizuda.boot.modules.flw.entity.vo.PendingClaimTaskVO">