Browse Source

fix: 修复流程预测节点错误问题
fix: 补充校验规则,流程创建时只校验预测节点的审批人是否配置

smallNorthLee 6 months ago
parent
commit
c68ab33dfd

+ 11 - 11
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/BpmnModelUtils.java

@@ -32,7 +32,7 @@ import static org.flowable.bpmn.constants.BpmnXMLConstants.FLOWABLE_EXTENSIONS_P
 
 /**
  * BPMN Model 操作工具类。目前分成三部分:
- * <p>
+ *
  * 1. BPMN 修改 + 解析元素相关的方法
  * 2. BPMN 简单查找相关的方法
  * 3. BPMN 复杂遍历相关的方法
@@ -105,8 +105,8 @@ public class BpmnModelUtils {
      * 给节点添加候选人元素
      *
      * @param candidateStrategy 候选人策略
-     * @param candidateParam    候选人参数,允许空
-     * @param flowElement       节点
+     * @param candidateParam 候选人参数,允许空
+     * @param flowElement 节点
      */
     public static void addCandidateElements(Integer candidateStrategy, String candidateParam, FlowElement flowElement) {
         addExtensionElement(flowElement, BpmnModelConstants.USER_TASK_CANDIDATE_STRATEGY,
@@ -150,9 +150,9 @@ public class BpmnModelUtils {
     /**
      * 解析审批类型
      *
+     * @see BpmUserTaskApproveTypeEnum
      * @param userTask 任务节点
      * @return 审批类型
-     * @see BpmUserTaskApproveTypeEnum
      */
     public static Integer parseApproveType(FlowElement userTask) {
         return NumberUtils.parseInt(parseExtensionElement(userTask, BpmnModelConstants.USER_TASK_APPROVE_TYPE));
@@ -162,7 +162,7 @@ public class BpmnModelUtils {
      * 添加任务拒绝处理元素
      *
      * @param rejectHandler 任务拒绝处理
-     * @param userTask      任务节点
+     * @param userTask 任务节点
      */
     public static void addTaskRejectElements(BpmSimpleModelNodeVO.RejectHandler rejectHandler, UserTask userTask) {
         if (rejectHandler == null) {
@@ -196,9 +196,9 @@ public class BpmnModelUtils {
     /**
      * 给节点添加用户任务的审批人与发起人相同时,处理类型枚举
      *
-     * @param assignStartUserHandlerType 发起人处理类型
-     * @param userTask                   任务节点
      * @see BpmUserTaskAssignStartUserHandlerTypeEnum
+     * @param assignStartUserHandlerType 发起人处理类型
+     * @param userTask 任务节点
      */
     public static void addAssignStartUserHandlerType(Integer assignStartUserHandlerType, UserTask userTask) {
         if (assignStartUserHandlerType == null) {
@@ -211,7 +211,7 @@ public class BpmnModelUtils {
      * 给节点添加用户任务的审批人为空时,处理类型枚举
      *
      * @param emptyHandler 空处理
-     * @param userTask     任务节点
+     * @param userTask 任务节点
      * @see BpmUserTaskAssignEmptyHandlerTypeEnum
      */
     public static void addAssignEmptyHandlerType(BpmSimpleModelNodeVO.AssignEmptyHandler emptyHandler, UserTask userTask) {
@@ -267,7 +267,7 @@ public class BpmnModelUtils {
     /**
      * 解析表单字段权限
      *
-     * @param bpmnModel     bpmnModel 对象
+     * @param bpmnModel bpmnModel 对象
      * @param flowElementId 元素 ID
      * @return 表单字段权限
      */
@@ -313,7 +313,7 @@ public class BpmnModelUtils {
     /**
      * 解析操作按钮设置
      *
-     * @param bpmnModel     bpmnModel 对象
+     * @param bpmnModel bpmnModel 对象
      * @param flowElementId 元素 ID
      * @return 操作按钮设置
      */
@@ -837,7 +837,7 @@ public class BpmnModelUtils {
      * 计算条件表达式是否为 true 满足条件
      *
      * @param variables 流程实例
-     * @param express   条件表达式
+     * @param express 条件表达式
      * @return 是否满足条件
      */
     public static boolean evalConditionExpress(Map<String, Object> variables, String express) {

+ 1 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java

@@ -697,9 +697,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
         if (CollUtil.isEmpty(tasks)) {
             return;
         }
-        // 2.流程发起时要先获取当前流程的预测走向节点,发起是
 
-        // 2. 校验发起人自选审批人的审批人和抄送人是否都配置了
+        // 2. 流程发起时要先获取当前流程的预测走向节点,发起时只校验预测的节点发起人自选审批人的审批人和抄送人是否都配置了
         tasks.stream().filter(task -> nodeIds == null || nodeIds.contains(task.getId())).forEach(task -> {
             List<Long> assignees = startUserSelectAssignees != null ? startUserSelectAssignees.get(task.getId()) : null;
             if (CollUtil.isEmpty(assignees)) {