Browse Source

仿钉钉流程设计 - 获取审批记录修改列表,合并正在运行的会签和或签任务

jason 10 months ago
parent
commit
31df372ab5

+ 6 - 3
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java

@@ -26,8 +26,7 @@ import java.util.Objects;
 import static cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO.OperationButtonSetting;
 import static cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO.TimeoutHandler;
 import static cn.iocoder.yudao.module.bpm.enums.definition.BpmSimpleModelNodeType.*;
-import static cn.iocoder.yudao.module.bpm.enums.definition.BpmUserTaskApproveMethodEnum.RANDOM;
-import static cn.iocoder.yudao.module.bpm.enums.definition.BpmUserTaskApproveMethodEnum.RATIO;
+import static cn.iocoder.yudao.module.bpm.enums.definition.BpmUserTaskApproveMethodEnum.*;
 import static cn.iocoder.yudao.module.bpm.enums.definition.BpmUserTaskApproveTypeEnum.USER;
 import static cn.iocoder.yudao.module.bpm.enums.definition.BpmUserTaskAssignStartUserHandlerTypeEnum.SKIP;
 import static cn.iocoder.yudao.module.bpm.enums.definition.BpmUserTaskTimeoutHandlerTypeEnum.REMINDER;
@@ -288,6 +287,10 @@ public class SimpleModelUtils {
         return node != null && node.getId() != null;
     }
 
+    public static boolean isSequentialApproveNode(BpmSimpleModelNodeVO node) {
+        return APPROVE_NODE.getType().equals(node.getType()) && SEQUENTIAL.getMethod().equals(node.getApproveMethod());
+    }
+
     private static List<FlowElement> buildFlowNode(BpmSimpleModelNodeVO node, BpmSimpleModelNodeType nodeType) {
         List<FlowElement> list = new ArrayList<>();
         switch (nodeType) {
@@ -523,7 +526,7 @@ public class SimpleModelUtils {
             multiInstanceCharacteristics.setCompletionCondition(ANY_OF_APPROVE_COMPLETE_EXPRESSION);
             multiInstanceCharacteristics.setSequential(false);
             userTask.setLoopCharacteristics(multiInstanceCharacteristics);
-        } else if (approveMethodEnum == BpmUserTaskApproveMethodEnum.SEQUENTIAL) {
+        } else if (approveMethodEnum == SEQUENTIAL) {
             multiInstanceCharacteristics.setCompletionCondition(ALL_APPROVE_COMPLETE_EXPRESSION);
             multiInstanceCharacteristics.setSequential(true);
             multiInstanceCharacteristics.setLoopCardinality("1");

File diff suppressed because it is too large
+ 0 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java


+ 9 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/bo/AlreadyRunApproveNodeRespBO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.bpm.service.task.bo;
 import lombok.Data;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import static cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmApprovalDetailRespVO.ApprovalNodeInfo;
@@ -21,8 +22,15 @@ public class AlreadyRunApproveNodeRespBO {
     private List<ApprovalNodeInfo> approveNodes;
 
     /**
-     * 已运行的节点 ID 数组
+     * 已运行的节点 ID 数组 (对应 Bpmn XML 节点 id)
      */
     private Set<String> runNodeIds;
 
+    /**
+     * 正在运行的节点的审批信息 ( key: activityId. value: 审批信息 )
+     * <p>
+     * 用于依次审批。 需要加上候选人信息
+     */
+    private Map<String, ApprovalNodeInfo> runningApprovalNodes;
+
 }

Some files were not shown because too many files changed in this diff