From 3d20ce1a9bdc56bdec2b55a98bb1c15ff76735d7 Mon Sep 17 00:00:00 2001
From: lizhixian <18210040298@163.com>
Date: Mon, 17 Feb 2025 09:52:09 +0800
Subject: [PATCH 01/16] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B5=81?=
=?UTF-8?q?=E7=A8=8B=E5=88=86=E6=94=AF=E8=8A=82=E7=82=B9=E9=A2=84=E6=B5=8B?=
=?UTF-8?q?=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../bpm/framework/flowable/core/util/BpmnModelUtils.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/BpmnModelUtils.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/BpmnModelUtils.java
index 3f22c7c259..3705d697c9 100644
--- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/BpmnModelUtils.java
+++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/BpmnModelUtils.java
@@ -780,7 +780,8 @@ public class BpmnModelUtils {
Gateway gateway = (Gateway) currentElement;
SequenceFlow matchSequenceFlow = CollUtil.findOne(gateway.getOutgoingFlows(),
flow -> ObjUtil.notEqual(gateway.getDefaultFlow(), flow.getId())
- && evalConditionExpress(variables, flow.getConditionExpression()));
+ //流程第一次发起时,variables条件值一定为空,发生异常会导致后续分支节点无法预测,
+ || (null != variables && evalConditionExpress(variables, flow.getConditionExpression())));
if (matchSequenceFlow == null) {
matchSequenceFlow = CollUtil.findOne(gateway.getOutgoingFlows(),
flow -> ObjUtil.equal(gateway.getDefaultFlow(), flow.getId()));
From 1023afda4051db10d7a3198a067a0b55461b7b1b Mon Sep 17 00:00:00 2001
From: lizhixian <18210040298@163.com>
Date: Mon, 17 Feb 2025 10:28:11 +0800
Subject: [PATCH 02/16] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B5=81?=
=?UTF-8?q?=E7=A8=8B=E5=88=86=E6=94=AF=E8=8A=82=E7=82=B9=E9=A2=84=E6=B5=8B?=
=?UTF-8?q?=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../flowable/core/util/BpmnModelUtils.java | 46 +++++++++++--------
1 file changed, 26 insertions(+), 20 deletions(-)
diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/BpmnModelUtils.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/BpmnModelUtils.java
index 3705d697c9..12fa1bf6d9 100644
--- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/BpmnModelUtils.java
+++ b/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 操作工具类。目前分成三部分:
- *
+ *
* 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 {
/**
* 给节点添加用户任务的审批人与发起人相同时,处理类型枚举
*
- * @see BpmUserTaskAssignStartUserHandlerTypeEnum
* @param assignStartUserHandlerType 发起人处理类型
- * @param userTask 任务节点
+ * @param userTask 任务节点
+ * @see BpmUserTaskAssignStartUserHandlerTypeEnum
*/
public static void addAssignStartUserHandlerType(Integer assignStartUserHandlerType, UserTask userTask) {
if (assignStartUserHandlerType == null) {
@@ -210,9 +210,9 @@ public class BpmnModelUtils {
/**
* 给节点添加用户任务的审批人为空时,处理类型枚举
*
- * @see BpmUserTaskAssignEmptyHandlerTypeEnum
* @param emptyHandler 空处理
- * @param userTask 任务节点
+ * @param userTask 任务节点
+ * @see BpmUserTaskAssignEmptyHandlerTypeEnum
*/
public static void addAssignEmptyHandlerType(BpmSimpleModelNodeVO.AssignEmptyHandler emptyHandler, UserTask userTask) {
if (emptyHandler == null) {
@@ -256,7 +256,7 @@ public class BpmnModelUtils {
* 给节点添加表单字段权限元素
*
* @param fieldsPermissions 表单字段权限
- * @param flowElement 节点
+ * @param flowElement 节点
*/
public static void addFormFieldsPermission(List