diff --git a/.gitee/ISSUE_TEMPLATE.zh-CN.md b/.gitee/ISSUE_TEMPLATE.zh-CN.md
index f09d98dd..3062e4d0 100644
--- a/.gitee/ISSUE_TEMPLATE.zh-CN.md
+++ b/.gitee/ISSUE_TEMPLATE.zh-CN.md
@@ -1,11 +1,7 @@
### 该问题是怎么引起的?
-
-
### 重现步骤
-
-
### 报错信息
diff --git a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md b/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md
index 44b29523..f07c8d75 100644
--- a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md
+++ b/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md
@@ -1,7 +1,5 @@
### 内容说明(相关的Issue)
-
-
### 变更内容
diff --git a/README.md b/README.md
index b8f9ec4f..df221921 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-
# 项目介绍
+
FlowLong🐉飞龙工作流
- 项目说明 `flowlong` 中文名 `飞龙` 在天美好愿景!
@@ -10,7 +10,7 @@ FlowLong🐉飞龙工作流
> 使用必须遵守国家法律法规,⛔不允许非法项目使用,后果自负❗
-[使用源码登记入口](https://gitee.com/aizuda/flowlong/issues/I7XGP5)
+[使用源码登记入口](https://gitee.com/aizuda/flowlong/issues/I7XGP5)
[打开官方开发文档](https://doc.flowlong.com)
@@ -61,7 +61,6 @@ FlowLong🐉飞龙工作流
| 超时审批 | 根据设置的超时审批时间,超时后自动审批【自动通过或拒绝】 | ✅ | | ✅ |
| 自动提醒 | 根据设置的提醒时间,提醒审批人审批【可设定提醒次数】实现接口任意方式提醒【短信,邮件,微信,钉钉等】 | ✅ |
-
# 贡献力量
- [运行单元测试](https://gitee.com/aizuda/flowlong/wikis/%E8%BF%90%E8%A1%8C%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95)
diff --git a/build.gradle b/build.gradle
index 4b59c2a5..48312502 100644
--- a/build.gradle
+++ b/build.gradle
@@ -31,7 +31,6 @@ allprojects {
}
-
// 子模块配置
subprojects {
apply plugin: 'java-library'
@@ -39,7 +38,8 @@ subprojects {
apply plugin: 'signing'
apply plugin: "io.spring.dependency-management"
- tasks.withType(JavaCompile) {
+ tasks.withType(JavaCompile).configureEach {
+ options.compilerArgs << "-Xlint:unchecked" << "-Xlint:-serial"
options.encoding = 'UTF-8'
options.warnings = false
}
@@ -100,18 +100,19 @@ subprojects {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
- tasks.withType(JavaCompile) {
+ tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
options.warnings = false
options.deprecation = true
options.compilerArgs += ["-parameters"]
}
- tasks.withType(GenerateModuleMetadata) {
+ tasks.withType(GenerateModuleMetadata).configureEach {
enabled = false
}
- task sourcesJar(type: Jar, dependsOn: classes) {
+ tasks.register('sourcesJar', Jar) {
+ dependsOn classes
archiveClassifier = 'sources'
from sourceSets.main.allSource
}
@@ -123,22 +124,22 @@ subprojects {
author true
version true
failOnError false
- links "http://docs.oracle.com/javase/8/docs/api"
+ links "https://docs.oracle.com/javase/8/docs/api"
}
}
- tasks.withType(MavenPublication) {
+ tasks.withType(MavenPublication).configureEach {
doFirst {
options.skipCertificateChecks = true
}
}
- task javadocJar(type: Jar) {
+ tasks.register('javadocJar', Jar) {
archiveClassifier = 'javadoc'
from javadoc
}
- tasks.whenTaskAdded { task ->
+ tasks.configureEach { task ->
if (task.name.contains('signMavenJavaPublication')) {
task.enabled = new File(project.property('signing.secretKeyRingFile') as String).isFile()
}
@@ -153,8 +154,8 @@ subprojects {
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
credentials {
- username = System.getenv("MAVEN_USERNAME")
- password = System.getenv("MAVEN_PASSWORD")
+ username = "andto"
+ password = "243194995"
}
}
}
@@ -191,22 +192,10 @@ subprojects {
email = 'jobob@qq.com'
}
}
-
- withXml {
- def root = asNode()
- root.dependencies.'*'.findAll {
- def d = it
- d.scope.text() == 'runtime' && project.configurations.findByName("implementation").allDependencies.find { dep ->
- dep.name == it.artifactId.text()
- }.each() {
- d.scope*.value = 'compile'
- d.appendNode('optional', true)
- }
- }
- }
}
}
}
+ }
signing {
useInMemoryPgpKeys(System.getenv('GPG_SECRET'), System.getenv('GPG_PASSWORD'))
diff --git a/changelog.md b/changelog.md
index 06e60c9f..9dc1f6bb 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,4 +1,3 @@
-
# 更新日志
## [v0.0.7] 2024.06.05
@@ -10,16 +9,17 @@
- 不捕获可能存在得业务异常
- 其它优化完善
-
## [v0.0.6] 2024.05.20
- 支持并行分支执行节点
- 新增唯一节点 nodeKey 允许节点名称重复
- 调整任务实例表结构优化
+
```
1,模型新增 nodeKey 替代 nodeName 唯一条件,任务 displayName 修改为 taskKey
2,流程实例 currentNode 分为 currentNodeName currentNodeKey
```
+
- 增加枚举参与者类型
- 优化换成允许过期时间设置
- 优化任务节点审批人列表
@@ -35,7 +35,6 @@
- 新增模型自定义外置表单扩展
- 优化自动审批通过或拒绝
-
## [v0.0.4] 2024.05.08
- 节点跳转任务支持添加参数
@@ -49,7 +48,6 @@
- 新增动态构建执行新任务(不体现在流程图中)
- 优化完善定时自动审批超时等处理逻辑
-
## [v0.0.3] 2024.04.21
- 执行节点调整父任务节点记录携带优化
@@ -59,7 +57,6 @@
- 修复会签节点驳回 Bug
- 其它代码优化
-
## [v0.0.2] 2024.04.18
- 新增节点条件参数处理器
@@ -74,7 +71,6 @@
- 增加 重新部署流程 的测试用例
- 优化初始赋值
-
## [v0.0.1] 2024.04.01
- 发布创始版
\ No newline at end of file
diff --git a/flowlong-core/pom.xml b/flowlong-core/pom.xml
index 075dc036..7bf5b6a6 100644
--- a/flowlong-core/pom.xml
+++ b/flowlong-core/pom.xml
@@ -14,10 +14,6 @@
flowlong core
jar
-
-
-
-
org.projectlombok
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/FlowDataTransfer.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/FlowDataTransfer.java
index 4d3cc42e..f9d0e777 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/FlowDataTransfer.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/FlowDataTransfer.java
@@ -62,9 +62,10 @@ public static void dynamicAssignee(Map dataMap) {
/**
* 获取传递参数
*
- * @param param 传递参数
+ * @param 传递参数
* @return 传递参数 MAP 对象
*/
+ @SuppressWarnings({"all"})
public static T get(String param) {
Map dataMap = getAll();
if (null != dataMap && !dataMap.isEmpty()) {
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/FlowLongEngine.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/FlowLongEngine.java
index f8bd2e2d..d1b04d3a 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/FlowLongEngine.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/FlowLongEngine.java
@@ -209,7 +209,7 @@ default boolean executeJumpTask(Long taskId, String nodeKey, FlowCreator flowCre
* @param performType 参与类型
* @param flowCreator 任务创建者
* @param args 任务参数
- * @return List 创建任务集合
+ * @return 创建任务集合
*/
List createNewTask(Long taskId, TaskType taskType, PerformType performType, List taskActors,
FlowCreator flowCreator, Map args);
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/ModelInstance.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/ModelInstance.java
index 3f4cb1bf..ed21a8b4 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/ModelInstance.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/ModelInstance.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.engine;
@@ -23,6 +23,7 @@ public interface ModelInstance {
*
* @param flowLongContext 流程引擎上下文
* @param execution 执行对象
+ * @return 执行结果 true 成功 false 失败
*/
boolean execute(FlowLongContext flowLongContext, Execution execution);
}
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/ProcessModelCache.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/ProcessModelCache.java
index 6d715b9e..e082cd08 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/ProcessModelCache.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/ProcessModelCache.java
@@ -21,16 +21,22 @@ public interface ProcessModelCache {
/**
* 流程模型缓存KEY
+ *
+ * @return 缓存 KEY
*/
String modelCacheKey();
/**
* 流程模型内容
+ *
+ * @return 缓存内容
*/
String getModelContent();
/**
* JSON BPM 模型
+ *
+ * @return JSON BPM 模型
*/
default ProcessModel model() {
String modelContent = this.getModelContent();
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/ProcessModelParser.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/ProcessModelParser.java
index e1963a71..5bed2795 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/ProcessModelParser.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/ProcessModelParser.java
@@ -37,6 +37,8 @@ public interface ProcessModelParser {
/**
* 流程缓存实现类
+ *
+ * @return 流程缓存
*/
FlowCache getFlowCache();
}
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/TaskService.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/TaskService.java
index 5f2f4cf9..0e6f2c58 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/TaskService.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/TaskService.java
@@ -68,7 +68,7 @@ default FlwTask complete(Long taskId, FlowCreator flowCreator) {
* @param taskId 任务ID
* @param flowCreator 任务创建者
* @param args 任务参数
- * @param nodeKey 跳转至目标节点key
+ * @param nodeKey 跳转至目标节点key
* @param executionFunction 执行函数
* @return 当前 flowCreator 所在的任务
*/
@@ -81,7 +81,8 @@ default boolean executeJumpTask(Long taskId, String nodeKey, FlowCreator flowCre
/**
* 完成指定实例ID活动任务
*
- * @param instanceId 实例ID
+ * @param instanceId 实例ID
+ * @param flowCreator 处理人员
* @return true 成功 false 失败
*/
boolean completeActiveTasksByInstanceId(Long instanceId, FlowCreator flowCreator);
@@ -226,7 +227,7 @@ default Optional rejectTask(FlwTask currentFlwTask, FlowCreator flowCre
*
* @param taskModel 任务模型
* @param execution 执行对象
- * @return List 创建任务集合
+ * @return 创建任务集合
*/
List createTask(NodeModel taskModel, Execution execution);
@@ -242,7 +243,7 @@ default Optional rejectTask(FlwTask currentFlwTask, FlowCreator flowCre
* @param performType 参与类型
* @param flowCreator 任务创建者
* @param executionFunction 执行函数
- * @return List 创建任务集合
+ * @return 创建任务集合
*/
List createNewTask(Long taskId, TaskType taskType, PerformType performType, List taskActors,
FlowCreator flowCreator, Function executionFunction);
@@ -250,7 +251,7 @@ List createNewTask(Long taskId, TaskType taskType, PerformType performT
/**
* 获取超时或者提醒的任务
*
- * @return List 任务列表
+ * @return 任务列表
*/
List getTimeoutOrRemindTasks();
@@ -269,6 +270,7 @@ List createNewTask(Long taskId, TaskType taskType, PerformType performT
* @param performType 参与类型 {@link PerformType}
* @param flwTaskActors 参与者列表
* @param flowCreator 执行操作人员
+ * @return true 成功 false 失败
*/
boolean addTaskActor(Long taskId, PerformType performType, List flwTaskActors, FlowCreator flowCreator);
@@ -282,6 +284,7 @@ default boolean addTaskActor(Long taskId, PerformType performType, FlwTaskActor
* @param taskId 任务ID
* @param actorIds 参与者ID列表
* @param flowCreator 执行操作人员
+ * @return true 成功 false 失败
*/
boolean removeTaskActor(Long taskId, List actorIds, FlowCreator flowCreator);
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/TaskTrigger.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/TaskTrigger.java
index e0607ebf..dfe43b3c 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/TaskTrigger.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/TaskTrigger.java
@@ -23,6 +23,7 @@ public interface TaskTrigger {
*
* @param nodeModel 节点模型
* @param execution 执行对象
+ * @return 执行结果 true 成功 false 失败
*/
boolean execute(NodeModel nodeModel, Execution execution);
}
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/Assert.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/Assert.java
index 5a32e607..95b28efd 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/Assert.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/Assert.java
@@ -92,7 +92,7 @@ public static void notNull(Object object) {
/**
* 断言给定的object对象为空
*
- * @param object 待检测对象
+ * @param object 待检测对象
*/
public static void isEmpty(Object object) {
isEmpty(object, "[Assertion failed] - this argument must not be null or empty");
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/DateUtils.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/DateUtils.java
index 262c3685..00f5d988 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/DateUtils.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/DateUtils.java
@@ -39,6 +39,10 @@ public static LocalDateTime now() {
/**
* 日期判断
+ *
+ * @param arg0 开始时间
+ * @param arg1 结束时间
+ * @return true 开始时间大于结束时间 false 开始时间小于结束时间
*/
public static boolean after(Date arg0, Date arg1) {
return null != arg0 && null != arg1 && arg0.after(arg1);
@@ -48,6 +52,7 @@ public static boolean after(Date arg0, Date arg1) {
* 日期 LocalDateTime 转为 Date
*
* @param localDateTime {@link LocalDateTime}
+ * @return {@link Date}
*/
public static Date toDate(LocalDateTime localDateTime) {
if (null == localDateTime) {
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/ObjectUtils.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/ObjectUtils.java
index e11128b9..8a2d53cb 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/ObjectUtils.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/assist/ObjectUtils.java
@@ -53,6 +53,8 @@ public static boolean isNotEmpty(Object obj) {
/**
* 判断 Map 是否未 Collections$SingletonMap 对象
+ *
+ * @return true 是 false 否
*/
public static boolean isSingletonMap(Map, ?> mapObj) {
return Objects.equals(mapObj.getClass().getName(), "java.util.Collections$SingletonMap");
@@ -60,6 +62,9 @@ public static boolean isSingletonMap(Map, ?> mapObj) {
/**
* 使用反射机制创建类的实例
+ *
+ * @param clazz 带创建实例的类
+ * @return 创建对象
*/
public static Object newInstance(Class> clazz) throws ReflectiveOperationException {
Constructor> constructor = clazz.getDeclaredConstructor();
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/cache/FlowCache.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/cache/FlowCache.java
index 1f2af7b1..36778121 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/cache/FlowCache.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/cache/FlowCache.java
@@ -18,8 +18,8 @@ public interface FlowCache {
/**
* 根据关键字缓存对象
*
- * @param key 缓存关键字
- * @param value 缓存对象
+ * @param key 缓存关键字
+ * @param value 缓存对象
*/
void put(String key, Object value);
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/Execution.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/Execution.java
index 20b3e869..7b6ec3ab 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/Execution.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/Execution.java
@@ -143,6 +143,7 @@ public Execution createSubExecution(Execution execution, ProcessModel processMod
*
* @param flowLongContext 流程引擎上下文
* @param nodeKey 节点key
+ * @return 执行节点模型结果 true 成功 false 失败
*/
public boolean executeNodeModel(FlowLongContext flowLongContext, String nodeKey) {
ProcessModel processModel = this.getProcessModel();
@@ -175,6 +176,7 @@ public boolean executeNodeModel(FlowLongContext flowLongContext, String nodeKey)
/**
* 执行结束当前流程实例
*
+ * @param endNode 结束节点
* @return true 执行成功 false 执行失败
*/
public boolean endInstance(NodeModel endNode) {
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowCreator.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowCreator.java
index 63e017c5..d3b136eb 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowCreator.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowCreator.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.engine.core;
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowLongContext.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowLongContext.java
index be4c266e..4e4a847a 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowLongContext.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowLongContext.java
@@ -89,6 +89,9 @@ public static void invalidateProcessModel(String cacheKey) {
/**
* 注入默认流程模型解析器
+ *
+ * @param flowCache 流程缓存
+ * @param processModelParser 流程模型解析器
*/
public FlowLongContext(FlowCache flowCache, ProcessModelParser processModelParser) {
if (null == processModelParser) {
@@ -163,6 +166,7 @@ public boolean createTask(Execution execution, NodeModel nodeModel) {
/**
* 默认初始化流程引擎上下文
*
+ * @param configEngine 流程配置引擎
* @return {@link FlowLongEngine}
*/
public FlowLongContext build(FlowLongEngine configEngine) {
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowLongEngineImpl.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowLongEngineImpl.java
index 33bb1236..049d815e 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowLongEngineImpl.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/FlowLongEngineImpl.java
@@ -212,7 +212,13 @@ protected FlwInstance getFlwInstance(Long instanceId, String updateBy) {
}
/**
- * 根据任务ID,创建人,参数列表完成任务,并且构造执行对象
+ * 根据 任务ID,创建人,参数列表完成任务,并且构造执行对象
+ *
+ * @param taskId 任务ID
+ * @param flowCreator 创建人
+ * @param args 参数列表
+ * @param executeNextStep 执行下一步函数方法
+ * @return 执行结果 true 成功 false 失败
*/
protected boolean execute(Long taskId, FlowCreator flowCreator, Map args, Function executeNextStep) {
if (args == null) {
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/InstanceState.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/InstanceState.java
index 83f0eea7..4724ed87 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/InstanceState.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/InstanceState.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.engine.core.enums;
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/PerformType.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/PerformType.java
index e882d19b..c4902d91 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/PerformType.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/PerformType.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.engine.core.enums;
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/TaskType.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/TaskType.java
index 14099c72..1d7569f1 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/TaskType.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/core/enums/TaskType.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.engine.core.enums;
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlowEntity.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlowEntity.java
index 04aac893..6be192f8 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlowEntity.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlowEntity.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.engine.entity;
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwInstance.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwInstance.java
index efc01a51..34586bee 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwInstance.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwInstance.java
@@ -77,7 +77,7 @@ public static FlwInstance of(String businessKey) {
return flwInstance;
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({"all"})
public Map variableToMap() {
Map map = FlowLongContext.fromJson(this.variable, Map.class);
if (map == null) return Collections.emptyMap();
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwProcess.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwProcess.java
index a63cc585..fa12fba6 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwProcess.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwProcess.java
@@ -111,6 +111,7 @@ public static FlwProcess of(FlowCreator flowCreator, ProcessModel processModel,
* @param flowLongContext 流程引擎上下文
* @param flowCreator 流程实例任务创建者
* @param function 流程执行对象处理函数
+ * @return 流程实例
*/
public Optional executeStartModel(FlowLongContext flowLongContext, FlowCreator flowCreator, Function function) {
FlwInstance flwInstance = null;
@@ -131,6 +132,8 @@ public Optional executeStartModel(FlowLongContext flowLongContext,
/**
* 流程状态验证
+ *
+ * @return 流程定义实体
*/
public FlwProcess checkState() {
if (Objects.equals(0, this.processState)) {
@@ -141,11 +144,20 @@ public FlwProcess checkState() {
/**
* 格式化 JSON 模型内容
+ *
+ * @param modelContent JSON 模型内容
+ * @return 流程定义实体
*/
public FlwProcess formatModelContent(String modelContent) {
return setModelContent2Json(FlowLongContext.fromJson(modelContent, ProcessModel.class));
}
+ /**
+ * 设置 JSON 模型内容
+ *
+ * @param processModel 模型内容
+ * @return 流程定义实体
+ */
public FlwProcess setModelContent2Json(ProcessModel processModel) {
this.modelContent = FlowLongContext.toJson(processModel);
return this;
@@ -153,6 +165,8 @@ public FlwProcess setModelContent2Json(ProcessModel processModel) {
/**
* 下一个流程版本
+ *
+ * @return 下一个流程版本
*/
public int nextProcessVersion() {
return processVersion + 1;
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwTaskActor.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwTaskActor.java
index 7ab8bf49..bd65715f 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwTaskActor.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/entity/FlwTaskActor.java
@@ -67,6 +67,8 @@ public class FlwTaskActor implements Serializable {
/**
* 是否为代理人
+ *
+ * @return true 是 false 否
*/
public boolean agentActor() {
return Objects.equals(1, this.weight);
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/exception/FlowLongException.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/exception/FlowLongException.java
index 15c88d03..08640f04 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/exception/FlowLongException.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/exception/FlowLongException.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.engine.exception;
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/impl/GeneralAccessStrategy.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/impl/GeneralAccessStrategy.java
index 08c8c231..fb846a79 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/impl/GeneralAccessStrategy.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/impl/GeneralAccessStrategy.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.engine.impl;
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/FlowLongListener.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/FlowLongListener.java
index a4a8a235..db909328 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/FlowLongListener.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/FlowLongListener.java
@@ -26,6 +26,7 @@ public interface FlowLongListener {
* @param eventType 事件类型
* @param supplier 监听实体提供者
* @param flowCreator 处理人员
+ * @return 通知结果 true 成功 false 失败
*/
boolean notify(EventType eventType, Supplier supplier, FlowCreator flowCreator);
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/InstanceListener.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/InstanceListener.java
index 15ceb203..b979e2eb 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/InstanceListener.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/InstanceListener.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.engine.listener;
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/TaskListener.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/TaskListener.java
index 4bd43d48..30b9db18 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/TaskListener.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/listener/TaskListener.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.engine.listener;
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/ModelHelper.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/ModelHelper.java
index 5a347baa..f8bc74b9 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/ModelHelper.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/ModelHelper.java
@@ -25,7 +25,8 @@ public class ModelHelper {
/**
* 递归查找下一个执行节点
*
- * @param nodeModel 当前节点
+ * @param nodeModel 当前节点
+ * @param currentTask 当前任务列表
* @return 流程节点模型
*/
public static NodeModel findNextNode(NodeModel nodeModel, List currentTask) {
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/NodeModel.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/NodeModel.java
index 17328b9d..85d029a7 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/NodeModel.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/NodeModel.java
@@ -174,6 +174,13 @@ public class NodeModel implements ModelInstance, Serializable {
*/
private List parallelNodes;
+ /**
+ * 执行节点
+ *
+ * @param flowLongContext 流程引擎上下文
+ * @param execution 执行对象
+ * @return 执行结果 true 成功 false 失败
+ */
@Override
public boolean execute(FlowLongContext flowLongContext, Execution execution) {
if (ObjectUtils.isNotEmpty(parallelNodes)) {
@@ -260,7 +267,7 @@ else if (TaskType.end.eq(this.type)) {
* 获取process定义的指定节点key的节点模型
*
* @param nodeKey 节点key
- * @return {@link NodeModel}
+ * @return 模型节点
*/
public NodeModel getNode(String nodeKey) {
if (Objects.equals(this.nodeKey, nodeKey)) {
@@ -289,7 +296,7 @@ public NodeModel getNode(String nodeKey) {
* 从并行节点获取key
*
* @param nodeKey 节点 key
- * @return {@link NodeModel}
+ * @return 模型节点
*/
private NodeModel getFromParallelNode(String nodeKey) {
for (NodeModel parallelNode : parallelNodes) {
@@ -305,7 +312,7 @@ private NodeModel getFromParallelNode(String nodeKey) {
* 从条件节点中获取节点
*
* @param nodeKey 节点 key
- * @return {@link NodeModel}
+ * @return 模型节点
*/
private NodeModel getFromConditionNodes(String nodeKey) {
for (ConditionNode conditionNode : conditionNodes) {
@@ -322,6 +329,8 @@ private NodeModel getFromConditionNodes(String nodeKey) {
/**
* 下一个执行节点
+ *
+ * @return 模型节点
*/
public Optional nextNode() {
return nextNode(null);
@@ -329,6 +338,9 @@ public Optional nextNode() {
/**
* 下一个执行节点
+ *
+ * @param currentTask 当前任务
+ * @return 模型节点
*/
public Optional nextNode(List currentTask) {
NodeModel nextNode = this.getChildNode();
@@ -341,6 +353,8 @@ public Optional nextNode(List currentTask) {
/**
* 判断是否为条件节点
+ *
+ * @return true 是 false 否
*/
public boolean conditionNode() {
return TaskType.conditionNode.eq(type) || TaskType.conditionBranch.eq(type);
@@ -348,6 +362,8 @@ public boolean conditionNode() {
/**
* 判断是否为抄送节点
+ *
+ * @return true 是 false 否
*/
public boolean ccNode() {
return TaskType.cc.eq(type);
@@ -355,6 +371,8 @@ public boolean ccNode() {
/**
* 判断是否为并行节点
+ *
+ * @return true 是 false 否
*/
public boolean parallelNode() {
return TaskType.parallelBranch.eq(type);
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/ProcessModel.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/ProcessModel.java
index c8727eb2..eb46c7cb 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/ProcessModel.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/model/ProcessModel.java
@@ -81,6 +81,8 @@ public void buildParentNode(NodeModel rootNode) {
/**
* 清理父节点关系
+ *
+ * @param rootNode 根节点
*/
public void cleanParentNode(NodeModel rootNode) {
rootNode.setParentNode(null);
diff --git a/flowlong-core/src/main/java/com/aizuda/bpm/engine/scheduling/RemindParam.java b/flowlong-core/src/main/java/com/aizuda/bpm/engine/scheduling/RemindParam.java
index 1eaeda5b..9d42b2d1 100644
--- a/flowlong-core/src/main/java/com/aizuda/bpm/engine/scheduling/RemindParam.java
+++ b/flowlong-core/src/main/java/com/aizuda/bpm/engine/scheduling/RemindParam.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.engine.scheduling;
diff --git a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwExtInstanceMapper.java b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwExtInstanceMapper.java
index 9b8ccf1c..53a96408 100644
--- a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwExtInstanceMapper.java
+++ b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwExtInstanceMapper.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.mybatisplus.mapper;
diff --git a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisInstanceMapper.java b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisInstanceMapper.java
index b8f29f3a..a921f6c0 100644
--- a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisInstanceMapper.java
+++ b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisInstanceMapper.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.mybatisplus.mapper;
diff --git a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisTaskActorMapper.java b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisTaskActorMapper.java
index 7db3cb79..4859fd9f 100644
--- a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisTaskActorMapper.java
+++ b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisTaskActorMapper.java
@@ -25,6 +25,7 @@ public interface FlwHisTaskActorMapper extends BaseMapper {
* 通过任务ID获取参与者列表
*
* @param taskId 任务ID
+ * @return 参与者列表
*/
default List selectListByTaskId(Long taskId) {
return this.selectList(Wrappers.lambdaQuery().eq(FlwHisTaskActor::getTaskId, taskId));
@@ -34,6 +35,7 @@ default List selectListByTaskId(Long taskId) {
* 通过任务ID获取参与者列表
*
* @param taskIds 任务ID列表
+ * @return 历史任务参与者列表
*/
default List selectListByTaskIds(List taskIds) {
return this.selectList(Wrappers.lambdaQuery().in(FlwHisTaskActor::getTaskId, taskIds));
diff --git a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisTaskMapper.java b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisTaskMapper.java
index 4b1b117d..ebd199ab 100644
--- a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisTaskMapper.java
+++ b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwHisTaskMapper.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.mybatisplus.mapper;
diff --git a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwInstanceMapper.java b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwInstanceMapper.java
index d6d90f7f..3797c476 100644
--- a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwInstanceMapper.java
+++ b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwInstanceMapper.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.mybatisplus.mapper;
diff --git a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwProcessMapper.java b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwProcessMapper.java
index ff6effad..18efcad9 100644
--- a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwProcessMapper.java
+++ b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwProcessMapper.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.mybatisplus.mapper;
diff --git a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwTaskActorMapper.java b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwTaskActorMapper.java
index e22cf417..182fae66 100644
--- a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwTaskActorMapper.java
+++ b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwTaskActorMapper.java
@@ -25,6 +25,7 @@ public interface FlwTaskActorMapper extends BaseMapper {
* 通过任务ID获取参与者列表
*
* @param taskId 任务ID
+ * @return 参与者列表
*/
default List selectListByTaskId(Long taskId) {
return this.selectList(Wrappers.lambdaQuery().eq(FlwTaskActor::getTaskId, taskId));
@@ -34,6 +35,7 @@ default List selectListByTaskId(Long taskId) {
* 通过任务ID列表获取参与者列表
*
* @param taskIds 任务ID列表
+ * @return 参与者列表
*/
default List selectListByTaskIds(List taskIds) {
return this.selectList(Wrappers.lambdaQuery().in(FlwTaskActor::getTaskId, taskIds));
@@ -43,6 +45,7 @@ default List selectListByTaskIds(List taskIds) {
* 通过流程实例ID获取参与者列表
*
* @param instanceId 流程实例ID
+ * @return 参与者列表
*/
default List selectListByInstanceId(Long instanceId) {
return this.selectList(Wrappers.lambdaQuery().eq(FlwTaskActor::getInstanceId, instanceId));
@@ -52,6 +55,7 @@ default List selectListByInstanceId(Long instanceId) {
* 通过任务ID删除参与者
*
* @param taskId 任务ID
+ * @return true 成功 false 失败
*/
default boolean deleteByTaskId(Long taskId) {
return this.delete(Wrappers.lambdaQuery().eq(FlwTaskActor::getTaskId, taskId)) > 0;
@@ -61,6 +65,7 @@ default boolean deleteByTaskId(Long taskId) {
* 通过任务ID删除参与者
*
* @param taskIds 任务ID列表
+ * @return true 成功 false 失败
*/
default boolean deleteByTaskIds(List taskIds) {
return this.delete(Wrappers.lambdaQuery().in(FlwTaskActor::getTaskId, taskIds)) > 0;
diff --git a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwTaskMapper.java b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwTaskMapper.java
index c39674f5..bd214697 100644
--- a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwTaskMapper.java
+++ b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/mapper/FlwTaskMapper.java
@@ -38,6 +38,7 @@ default FlwTask getCheckById(Long id) {
* 根据流程实例ID获取任务列表
*
* @param instanceId 流程实例ID
+ * @return 任务列表
*/
default List selectListByInstanceId(Long instanceId) {
return this.selectList(Wrappers.lambdaQuery().eq(FlwTask::getInstanceId, instanceId));
@@ -47,6 +48,7 @@ default List selectListByInstanceId(Long instanceId) {
* 根据父任务ID获取任务列表
*
* @param parentTaskId 父任务ID
+ * @return 任务列表
*/
default List selectListByParentTaskId(Long parentTaskId) {
return this.selectList(Wrappers.lambdaQuery().eq(FlwTask::getParentTaskId, parentTaskId));
diff --git a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/service/QueryServiceImpl.java b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/service/QueryServiceImpl.java
index 2c28a7c4..48af1b64 100644
--- a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/service/QueryServiceImpl.java
+++ b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/service/QueryServiceImpl.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.mybatisplus.service;
diff --git a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/service/TaskServiceImpl.java b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/service/TaskServiceImpl.java
index 13d30074..aa5b217a 100644
--- a/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/service/TaskServiceImpl.java
+++ b/flowlong-mybatis-plus/src/main/java/com/aizuda/bpm/mybatisplus/service/TaskServiceImpl.java
@@ -433,6 +433,7 @@ public boolean assigneeTask(Long taskId, TaskType taskType, FlowCreator flowCrea
*
* @param taskId 任务ID
* @param flowCreator 任务参与者
+ * @return 任务参与者
*/
protected FlwTaskActor getAllowedFlwTaskActor(Long taskId, FlowCreator flowCreator) {
List taskActors = taskActorMapper.selectList(Wrappers.lambdaQuery().eq(FlwTaskActor::getTaskId, taskId)
@@ -585,6 +586,7 @@ public Optional rejectTask(FlwTask currentFlwTask, FlowCreator flowCrea
* @param hisTaskId 历史任务ID
* @param flowCreator 任务创建者
* @param hisTaskConsumer 历史任务业务处理
+ * @return 任务参与者
*/
protected Optional undoHisTask(Long hisTaskId, FlowCreator flowCreator, Consumer hisTaskConsumer) {
FlwHisTask hisTask = hisTaskMapper.getCheckById(hisTaskId);
@@ -679,7 +681,7 @@ public List createNewTask(Long taskId, TaskType taskType, PerformType p
/**
* 获取超时或者提醒的任务
*
- * @return List 任务列表
+ * @return 任务列表
*/
@Override
public List getTimeoutOrRemindTasks() {
@@ -691,7 +693,7 @@ public List getTimeoutOrRemindTasks() {
* 获取任务模型
*
* @param taskId 任务ID
- * @return TaskModel
+ * @return 节点模型
*/
@Override
public NodeModel getTaskModel(Long taskId) {
@@ -884,8 +886,10 @@ private FlwTask createTaskBase(NodeModel nodeModel, Execution execution) {
/**
* 保存任务及参与者信息
*
- * @param flwTask 流程任务对象
- * @param taskActors 参与者ID集合
+ * @param flwTask 流程任务对象
+ * @param performType 参与类型 {@link PerformType}
+ * @param taskActors 参与者ID集合
+ * @param execution 流程执行处理类 {@link Execution}
* @return 流程任务列表
*/
protected List saveTask(FlwTask flwTask, PerformType performType, List taskActors, Execution execution) {
diff --git a/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/XPluginImpl.java b/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/XPluginImpl.java
index 849d082f..cf150930 100644
--- a/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/XPluginImpl.java
+++ b/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/XPluginImpl.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.solon;
diff --git a/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/adaptive/SolonFlowJsonHandler.java b/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/adaptive/SolonFlowJsonHandler.java
index dc322203..d4ac5923 100644
--- a/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/adaptive/SolonFlowJsonHandler.java
+++ b/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/adaptive/SolonFlowJsonHandler.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.solon.adaptive;
diff --git a/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/autoconfigure/FlowLongProperties.java b/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/autoconfigure/FlowLongProperties.java
index 204d23cc..20447719 100644
--- a/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/autoconfigure/FlowLongProperties.java
+++ b/flowlong-solon-plugin/src/main/java/com/aizuda/bpm/solon/autoconfigure/FlowLongProperties.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.solon.autoconfigure;
diff --git a/flowlong-spring-boot-example/src/main/resources/process.json b/flowlong-spring-boot-example/src/main/resources/process.json
index 4e0d0986..153948f7 100644
--- a/flowlong-spring-boot-example/src/main/resources/process.json
+++ b/flowlong-spring-boot-example/src/main/resources/process.json
@@ -55,10 +55,12 @@
"nodeName": "直接主管审批",
"type": 1,
"setType": 2,
- "nodeUserList": [{
- "id": "zg0001",
- "name": "张三"
- }],
+ "nodeUserList": [
+ {
+ "id": "zg0001",
+ "name": "张三"
+ }
+ ],
"nodeRoleList": [],
"examineLevel": 1,
"directorLevel": 1,
diff --git a/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/adaptive/FlowJacksonHandler.java b/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/adaptive/FlowJacksonHandler.java
index e74795a5..f28c3db5 100644
--- a/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/adaptive/FlowJacksonHandler.java
+++ b/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/adaptive/FlowJacksonHandler.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.spring.adaptive;
diff --git a/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/autoconfigure/FlowLongAutoConfiguration.java b/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/autoconfigure/FlowLongAutoConfiguration.java
index 24890326..667b13e1 100644
--- a/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/autoconfigure/FlowLongAutoConfiguration.java
+++ b/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/autoconfigure/FlowLongAutoConfiguration.java
@@ -151,6 +151,7 @@ public FlowLongContext flowLongContext(ProcessService processService, QueryServi
* 注入自定义 TaskListener 实现该方法不再生效
*
* @param eventPublisher {@link ApplicationEventPublisher}
+ * @return {@link EventTaskListener}
*/
@Bean
@ConditionalOnMissingBean
@@ -163,6 +164,7 @@ public EventTaskListener taskListener(ApplicationEventPublisher eventPublisher)
* 注入自定义 InstanceListener 实现该方法不再生效
*
* @param eventPublisher {@link ApplicationEventPublisher}
+ * @return {@link EventInstanceListener}
*/
@Bean
@ConditionalOnMissingBean
diff --git a/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/autoconfigure/FlowLongProperties.java b/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/autoconfigure/FlowLongProperties.java
index ff3ca2c8..0dc89b7f 100644
--- a/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/autoconfigure/FlowLongProperties.java
+++ b/flowlong-spring-boot-starter/src/main/java/com/aizuda/bpm/spring/autoconfigure/FlowLongProperties.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package com.aizuda.bpm.spring.autoconfigure;
diff --git a/flowlong-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/flowlong-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json
index dd9a0b74..fd98a940 100644
--- a/flowlong-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ b/flowlong-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json
@@ -1,37 +1,37 @@
{
- "groups": [
- {
- "sourceType": "com.aizuda.bpm.spring.autoconfigure.FlowLongProperties",
- "name": "flowlong",
- "type": "com.aizuda.bpm.spring.autoconfigure.FlowLongProperties"
- },
- {
- "sourceType": "com.aizuda.bpm.spring.autoconfigure.FlowLongProperties",
- "name": "flowlong.remind",
- "sourceMethod": "getRemind()",
- "type": "com.aizuda.bpm.engine.scheduling.RemindParam"
- },
- {
- "sourceType": "com.aizuda.bpm.spring.autoconfigure.FlowLongProperties",
- "name": "flowlong.eventing",
- "sourceMethod": "getEventing()",
- "type": "com.aizuda.bpm.spring.autoconfigure.EventingParam"
- }
- ],
- "properties": [
- {
- "sourceType": "com.aizuda.bpm.engine.scheduling.RemindParam",
- "name": "flowlong.remind.cron",
- "defaultValue": "*/5 * * * * ?",
- "description": "remind cron.",
- "type": "java.lang.String"
- },
- {
- "sourceType": "com.aizuda.bpm.spring.autoconfigure.EventingParam",
- "name": "flowlong.eventing.task",
- "defaultValue": false,
- "description": "task event listener property.",
- "type": "java.lang.Boolean"
- }
- ]
+ "groups": [
+ {
+ "sourceType": "com.aizuda.bpm.spring.autoconfigure.FlowLongProperties",
+ "name": "flowlong",
+ "type": "com.aizuda.bpm.spring.autoconfigure.FlowLongProperties"
+ },
+ {
+ "sourceType": "com.aizuda.bpm.spring.autoconfigure.FlowLongProperties",
+ "name": "flowlong.remind",
+ "sourceMethod": "getRemind()",
+ "type": "com.aizuda.bpm.engine.scheduling.RemindParam"
+ },
+ {
+ "sourceType": "com.aizuda.bpm.spring.autoconfigure.FlowLongProperties",
+ "name": "flowlong.eventing",
+ "sourceMethod": "getEventing()",
+ "type": "com.aizuda.bpm.spring.autoconfigure.EventingParam"
+ }
+ ],
+ "properties": [
+ {
+ "sourceType": "com.aizuda.bpm.engine.scheduling.RemindParam",
+ "name": "flowlong.remind.cron",
+ "defaultValue": "*/5 * * * * ?",
+ "description": "remind cron.",
+ "type": "java.lang.String"
+ },
+ {
+ "sourceType": "com.aizuda.bpm.spring.autoconfigure.EventingParam",
+ "name": "flowlong.eventing.task",
+ "defaultValue": false,
+ "description": "task event listener property.",
+ "type": "java.lang.Boolean"
+ }
+ ]
}
diff --git a/flowlong-spring-boot-starter/src/test/java/test/TestFlowLong.java b/flowlong-spring-boot-starter/src/test/java/test/TestFlowLong.java
index eb85b52f..3b433f4b 100644
--- a/flowlong-spring-boot-starter/src/test/java/test/TestFlowLong.java
+++ b/flowlong-spring-boot-starter/src/test/java/test/TestFlowLong.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package test;
diff --git a/flowlong-spring-boot-starter/src/test/java/test/mysql/MysqlTest.java b/flowlong-spring-boot-starter/src/test/java/test/mysql/MysqlTest.java
index 986cce04..7d1e3d93 100644
--- a/flowlong-spring-boot-starter/src/test/java/test/mysql/MysqlTest.java
+++ b/flowlong-spring-boot-starter/src/test/java/test/mysql/MysqlTest.java
@@ -68,7 +68,7 @@ public void executeTask(Long instanceId, FlowCreator flowCreator, Consumer flwTaskList = queryService.getTasksByInstanceId(instanceId);
flwTaskList.stream().filter(flwTask -> flwTask.getTaskKey().equals(nodeKey)).findFirst()
diff --git a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestIssue.java b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestIssue.java
index de0de00d..e4627f9f 100644
--- a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestIssue.java
+++ b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestIssue.java
@@ -113,7 +113,7 @@ public void testRejectStartNode() {
// 启动发起
flowLongEngine.startInstanceById(processId, test3Creator).ifPresent(instance -> executeActiveTasks(instance.getId(),
flwTask -> flowLongEngine.taskService().rejectTask(flwTask, test2Creator,
- Collections.singletonMap("rejectReason", "不同意"))));
+ Collections.singletonMap("rejectReason", "不同意"))));
}
/**
diff --git a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestOrSign.java b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestOrSign.java
index 6037bc9c..d9bd1e9d 100644
--- a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestOrSign.java
+++ b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestOrSign.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package test.mysql;
diff --git a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestPurchase.java b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestPurchase.java
index e99161a5..b04a39e9 100644
--- a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestPurchase.java
+++ b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestPurchase.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package test.mysql;
diff --git a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSimpleProcess.java b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSimpleProcess.java
index 6c77bd11..a1782a89 100644
--- a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSimpleProcess.java
+++ b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSimpleProcess.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package test.mysql;
diff --git a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSortSign.java b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSortSign.java
index d09e7355..1f75b665 100644
--- a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSortSign.java
+++ b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSortSign.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package test.mysql;
diff --git a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSubProcess.java b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSubProcess.java
index b34c7f63..d8366005 100644
--- a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSubProcess.java
+++ b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSubProcess.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package test.mysql;
diff --git a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSupervisor.java b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSupervisor.java
index 21591ce1..1ad3a6f4 100644
--- a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSupervisor.java
+++ b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestSupervisor.java
@@ -38,7 +38,7 @@ public void before() {
@Override
public List getTaskActors(NodeModel nodeModel, Execution execution) {
- if(nodeModel.getType() == 0) {
+ if (nodeModel.getType() == 0) {
// 发起人审批,经过 isAllowed 验证合法,直接返回当前执行人
return Collections.singletonList(FlwTaskActor.ofFlowCreator(execution.getFlowCreator()));
}
diff --git a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestVoteSign.java b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestVoteSign.java
index 04b7ca8c..f9db6943 100644
--- a/flowlong-spring-boot-starter/src/test/java/test/mysql/TestVoteSign.java
+++ b/flowlong-spring-boot-starter/src/test/java/test/mysql/TestVoteSign.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package test.mysql;
diff --git a/flowlong-spring-boot-starter/src/test/java/test/mysql/config/MysqlConfig.java b/flowlong-spring-boot-starter/src/test/java/test/mysql/config/MysqlConfig.java
index b56e8144..792d61f6 100644
--- a/flowlong-spring-boot-starter/src/test/java/test/mysql/config/MysqlConfig.java
+++ b/flowlong-spring-boot-starter/src/test/java/test/mysql/config/MysqlConfig.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2023-2025 Licensed under the AGPL License
*/
package test.mysql.config;
diff --git a/flowlong-spring-boot-starter/src/test/resources/jdbc-mysql.properties b/flowlong-spring-boot-starter/src/test/resources/jdbc-mysql.properties
index 3c3f2b66..b4b051c9 100644
--- a/flowlong-spring-boot-starter/src/test/resources/jdbc-mysql.properties
+++ b/flowlong-spring-boot-starter/src/test/resources/jdbc-mysql.properties
@@ -1,3 +1,3 @@
-jdbc.url = jdbc:mysql://??:3306/flowlong?characterEncoding=utf8&useSSL=false
-jdbc.username = root
-jdbc.password = ??
\ No newline at end of file
+jdbc.url=jdbc:mysql://??:3306/flowlong?characterEncoding=utf8&useSSL=false
+jdbc.username=root
+jdbc.password=??
\ No newline at end of file
diff --git a/flowlong-spring-boot-starter/src/test/resources/test/moreConditionParallel.json b/flowlong-spring-boot-starter/src/test/resources/test/moreConditionParallel.json
index b4c0beb7..cae88b48 100644
--- a/flowlong-spring-boot-starter/src/test/resources/test/moreConditionParallel.json
+++ b/flowlong-spring-boot-starter/src/test/resources/test/moreConditionParallel.json
@@ -1,95 +1,95 @@
{
- "id":10,
- "key":"parallelNodes",
- "name":"请假审批",
- "nodeConfig":{
- "nodeName":"发起人",
- "nodeKey":"k001",
- "type":0,
- "nodeAssigneeList":[ ],
- "childNode":{
- "nodeName":"并行路由",
- "type":8,
- "nodeKey":"k002",
- "conditionNodes":[ ],
- "parallelNodes":[
+ "id": 10,
+ "key": "parallelNodes",
+ "name": "请假审批",
+ "nodeConfig": {
+ "nodeName": "发起人",
+ "nodeKey": "k001",
+ "type": 0,
+ "nodeAssigneeList": [],
+ "childNode": {
+ "nodeName": "并行路由",
+ "type": 8,
+ "nodeKey": "k002",
+ "conditionNodes": [],
+ "parallelNodes": [
{
- "nodeName":"并行路由",
- "type":8,
- "nodeKey":"k002",
- "parallelNodes":[
+ "nodeName": "并行路由",
+ "type": 8,
+ "nodeKey": "k002",
+ "parallelNodes": [
{
- "nodeName":"领导审批",
- "type":1,
- "setType":1,
- "nodeKey":"k003",
- "nodeAssigneeList":[
+ "nodeName": "领导审批",
+ "type": 1,
+ "setType": 1,
+ "nodeKey": "k003",
+ "nodeAssigneeList": [
{
- "id":"test002",
- "name":"测试2"
+ "id": "test002",
+ "name": "测试2"
}
],
- "examineLevel":1,
- "directorLevel":1,
- "selectMode":1,
- "termAuto":false,
- "term":0,
- "termMode":1,
- "examineMode":1,
- "directorMode":0
+ "examineLevel": 1,
+ "directorLevel": 1,
+ "selectMode": 1,
+ "termAuto": false,
+ "term": 0,
+ "termMode": 1,
+ "examineMode": 1,
+ "directorMode": 0
},
{
- "nodeName":"第二审批",
- "type":1,
- "setType":1,
- "nodeKey":"k004",
- "nodeAssigneeList":[
+ "nodeName": "第二审批",
+ "type": 1,
+ "setType": 1,
+ "nodeKey": "k004",
+ "nodeAssigneeList": [
{
- "id":"test003",
- "name":"测试3"
+ "id": "test003",
+ "name": "测试3"
}
],
- "examineLevel":1,
- "directorLevel":1,
- "selectMode":1,
- "termAuto":false,
- "term":0,
- "termMode":1,
- "examineMode":1,
- "directorMode":0
+ "examineLevel": 1,
+ "directorLevel": 1,
+ "selectMode": 1,
+ "termAuto": false,
+ "term": 0,
+ "termMode": 1,
+ "examineMode": 1,
+ "directorMode": 0
}
]
},
{
- "nodeName":"第二审批",
- "type":1,
- "setType":1,
- "nodeKey":"k005",
- "nodeAssigneeList":[
+ "nodeName": "第二审批",
+ "type": 1,
+ "setType": 1,
+ "nodeKey": "k005",
+ "nodeAssigneeList": [
{
- "id":"test003",
- "name":"测试3"
+ "id": "test003",
+ "name": "测试3"
}
],
- "examineLevel":1,
- "directorLevel":1,
- "selectMode":1,
- "termAuto":false,
- "term":0,
- "termMode":1,
- "examineMode":1,
- "directorMode":0
+ "examineLevel": 1,
+ "directorLevel": 1,
+ "selectMode": 1,
+ "termAuto": false,
+ "term": 0,
+ "termMode": 1,
+ "examineMode": 1,
+ "directorMode": 0
}
],
- "childNode":{
- "nodeName":"抄送人",
- "type":2,
- "nodeKey":"k006",
- "userSelectFlag":true,
- "nodeAssigneeList":[
+ "childNode": {
+ "nodeName": "抄送人",
+ "type": 2,
+ "nodeKey": "k006",
+ "userSelectFlag": true,
+ "nodeAssigneeList": [
{
- "id":"220000200908305857",
- "name":"何秀英"
+ "id": "220000200908305857",
+ "name": "何秀英"
}
]
}
diff --git a/flowlong-spring-boot-starter/src/test/resources/test/supervisor.json b/flowlong-spring-boot-starter/src/test/resources/test/supervisor.json
index 4f9a8270..d25ddadb 100644
--- a/flowlong-spring-boot-starter/src/test/resources/test/supervisor.json
+++ b/flowlong-spring-boot-starter/src/test/resources/test/supervisor.json
@@ -5,10 +5,12 @@
"nodeName": "发起人",
"nodeKey": "k001",
"type": 0,
- "nodeAssigneeList": [{
- "id": "360000197302144442",
- "name": "何敏"
- }],
+ "nodeAssigneeList": [
+ {
+ "id": "360000197302144442",
+ "name": "何敏"
+ }
+ ],
"childNode": {
"nodeName": "条件路由",
"nodeKey": "k002",