Przeglądaj źródła

待审批认领新增流程实例状态

hubin 1 rok temu
rodzic
commit
51cc804c93

+ 17 - 0
src/main/java/com/aizuda/boot/modules/flw/FlowTaskActorProvider.java

@@ -1,18 +1,35 @@
 package com.aizuda.boot.modules.flw;
 
 import com.flowlong.bpm.engine.TaskActorProvider;
+import com.flowlong.bpm.engine.assist.ObjectUtils;
 import com.flowlong.bpm.engine.core.Execution;
 import com.flowlong.bpm.engine.entity.FlwTaskActor;
 import com.flowlong.bpm.engine.model.NodeModel;
 import org.springframework.stereotype.Component;
 
+import java.util.Collections;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Component
 public class FlowTaskActorProvider implements TaskActorProvider {
 
     @Override
     public List<FlwTaskActor> getTaskActors(NodeModel nodeModel, Execution execution) {
+        if(nodeModel.getType() == 0) {
+            // 发起人审批,经过 isAllowed 验证合法,直接返回当前执行人
+            return Collections.singletonList(FlwTaskActor.ofFlowCreator(execution.getFlowCreator()));
+        }
+        if (nodeModel.getType() == 1 && nodeModel.getSetType() == 7) {
+
+            return null;
+        }
+        if (ObjectUtils.isNotEmpty(nodeModel.getNodeUserList())) {
+            return nodeModel.getNodeUserList().stream().map(FlwTaskActor::ofNodeAssignee).collect(Collectors.toList());
+        } else if (ObjectUtils.isNotEmpty(nodeModel.getNodeRoleList())) {
+            return nodeModel.getNodeRoleList().stream().map(t -> FlwTaskActor.ofRole(t.getTenantId(), t.getId(), t.getName()))
+                    .collect(Collectors.toList());
+        }
         return null;
     }
 }

+ 3 - 0
src/main/java/com/aizuda/boot/modules/flw/entity/vo/PendingApprovalTaskVO.java

@@ -27,6 +27,9 @@ public class PendingApprovalTaskVO {
     @Schema(description = "流程实例ID")
     private Long instanceId;
 
+    @Schema(description = "当前状态")
+    private Integer instanceState;
+
     @Schema(description = "发起人")
     private String launchBy;
 

+ 3 - 0
src/main/java/com/aizuda/boot/modules/flw/entity/vo/PendingClaimTaskVO.java

@@ -27,6 +27,9 @@ public class PendingClaimTaskVO {
     @Schema(description = "流程实例ID")
     private Long instanceId;
 
+    @Schema(description = "当前状态")
+    private Integer instanceState;
+
     @Schema(description = "发起人")
     private String launchBy;
 

+ 2 - 2
src/main/resources/mapper/FlowlongMapper.xml

@@ -16,7 +16,7 @@
     </select>
 
     <select id="selectPagePendingClaim" resultType="com.aizuda.boot.modules.flw.entity.vo.PendingClaimTaskVO">
-        SELECT i.process_id,p.process_name,i.id AS instance_id,i.create_by AS launch_by,i.create_time AS launch_time,
+        SELECT i.process_id,p.process_name,i.id AS instance_id,i.instance_state,i.create_by AS launch_by,i.create_time AS launch_time,
         t.id AS task_id,t.create_time,t.task_name,t.display_name,t.task_type,t.perform_type,t.expire_time,t.remind_time,t.remind_repeat
         FROM flw_task t JOIN flw_task_actor a ON t.id=a.task_id LEFT JOIN flw_his_instance i ON i.id=t.instance_id LEFT JOIN flw_process p ON i.process_id=p.id
         WHERE a.id IN (SELECT f.id FROM flw_task_actor f JOIN sys_user_role r ON r.role_id::TEXT=f.actor_id WHERE f.actor_type=1 AND r.user_id=#{dto.userId}
@@ -28,7 +28,7 @@
     </select>
 
     <select id="selectPagePendingApproval" resultType="com.aizuda.boot.modules.flw.entity.vo.PendingApprovalTaskVO">
-        SELECT i.process_id,p.process_name,i.id AS instance_id,i.create_by AS launch_by,i.create_time AS launch_time,
+        SELECT i.process_id,p.process_name,i.id AS instance_id,i.instance_state,i.create_by AS launch_by,i.create_time AS launch_time,
         t.id AS task_id,t.create_time,t.task_name,t.display_name,t.task_type,t.perform_type,t.assignor,t.expire_time,t.remind_time,t.remind_repeat
         FROM flw_task t JOIN flw_task_actor a ON t.id=a.task_id LEFT JOIN flw_his_instance i ON i.id=t.instance_id LEFT JOIN flw_process p ON i.process_id=p.id
         WHERE a.actor_type=0 AND a.actor_id=#{dto.createId}