From c3612bc41abe9de0ad62709ed0dbdc0b22f72fc7 Mon Sep 17 00:00:00 2001 From: hubin Date: Thu, 6 Jun 2024 12:06:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E7=AD=BE=E5=90=8D=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitee/ISSUE_TEMPLATE.zh-CN.md | 4 - .gitee/PULL_REQUEST_TEMPLATE.zh-CN.md | 2 - README.md | 5 +- build.gradle | 37 ++--- changelog.md | 8 +- flowlong-core/pom.xml | 4 - .../aizuda/bpm/engine/FlowDataTransfer.java | 3 +- .../com/aizuda/bpm/engine/FlowLongEngine.java | 2 +- .../com/aizuda/bpm/engine/ModelInstance.java | 3 +- .../aizuda/bpm/engine/ProcessModelCache.java | 6 + .../aizuda/bpm/engine/ProcessModelParser.java | 2 + .../com/aizuda/bpm/engine/TaskService.java | 13 +- .../com/aizuda/bpm/engine/TaskTrigger.java | 1 + .../com/aizuda/bpm/engine/assist/Assert.java | 2 +- .../aizuda/bpm/engine/assist/DateUtils.java | 5 + .../aizuda/bpm/engine/assist/ObjectUtils.java | 5 + .../aizuda/bpm/engine/cache/FlowCache.java | 4 +- .../com/aizuda/bpm/engine/core/Execution.java | 2 + .../aizuda/bpm/engine/core/FlowCreator.java | 2 +- .../bpm/engine/core/FlowLongContext.java | 4 + .../bpm/engine/core/FlowLongEngineImpl.java | 8 +- .../bpm/engine/core/enums/InstanceState.java | 2 +- .../bpm/engine/core/enums/PerformType.java | 2 +- .../bpm/engine/core/enums/TaskType.java | 2 +- .../aizuda/bpm/engine/entity/FlowEntity.java | 2 +- .../aizuda/bpm/engine/entity/FlwInstance.java | 2 +- .../aizuda/bpm/engine/entity/FlwProcess.java | 14 ++ .../bpm/engine/entity/FlwTaskActor.java | 2 + .../engine/exception/FlowLongException.java | 2 +- .../engine/impl/GeneralAccessStrategy.java | 2 +- .../bpm/engine/listener/FlowLongListener.java | 1 + .../bpm/engine/listener/InstanceListener.java | 2 +- .../bpm/engine/listener/TaskListener.java | 2 +- .../aizuda/bpm/engine/model/ModelHelper.java | 3 +- .../aizuda/bpm/engine/model/NodeModel.java | 24 ++- .../aizuda/bpm/engine/model/ProcessModel.java | 2 + .../bpm/engine/scheduling/RemindParam.java | 2 +- .../mapper/FlwExtInstanceMapper.java | 2 +- .../mapper/FlwHisInstanceMapper.java | 2 +- .../mapper/FlwHisTaskActorMapper.java | 2 + .../mybatisplus/mapper/FlwHisTaskMapper.java | 2 +- .../mybatisplus/mapper/FlwInstanceMapper.java | 2 +- .../mybatisplus/mapper/FlwProcessMapper.java | 2 +- .../mapper/FlwTaskActorMapper.java | 5 + .../bpm/mybatisplus/mapper/FlwTaskMapper.java | 2 + .../mybatisplus/service/QueryServiceImpl.java | 2 +- .../mybatisplus/service/TaskServiceImpl.java | 12 +- .../com/aizuda/bpm/solon/XPluginImpl.java | 2 +- .../solon/adaptive/SolonFlowJsonHandler.java | 2 +- .../autoconfigure/FlowLongProperties.java | 2 +- .../src/main/resources/process.json | 10 +- .../spring/adaptive/FlowJacksonHandler.java | 2 +- .../FlowLongAutoConfiguration.java | 2 + .../autoconfigure/FlowLongProperties.java | 2 +- ...itional-spring-configuration-metadata.json | 70 ++++----- .../src/test/java/test/TestFlowLong.java | 2 +- .../src/test/java/test/mysql/MysqlTest.java | 2 +- .../src/test/java/test/mysql/TestIssue.java | 2 +- .../src/test/java/test/mysql/TestOrSign.java | 2 +- .../test/java/test/mysql/TestPurchase.java | 2 +- .../java/test/mysql/TestSimpleProcess.java | 2 +- .../test/java/test/mysql/TestSortSign.java | 2 +- .../test/java/test/mysql/TestSubProcess.java | 2 +- .../test/java/test/mysql/TestSupervisor.java | 2 +- .../test/java/test/mysql/TestVoteSign.java | 2 +- .../java/test/mysql/config/MysqlConfig.java | 2 +- .../src/test/resources/jdbc-mysql.properties | 6 +- .../resources/test/moreConditionParallel.json | 142 +++++++++--------- .../src/test/resources/test/supervisor.json | 10 +- 69 files changed, 280 insertions(+), 213 deletions(-) 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🐉飞龙工作流 - 项目说明 `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",