From 0a31cd0b94264f71594241ff2704847551caf18b Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Tue, 12 Nov 2024 15:12:50 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9E=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=99=A8=E5=92=8C=E5=B7=A5=E4=BD=9C=E6=B5=81?= =?UTF-8?q?=E5=B0=81=E8=A3=85=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-common/pom.xml | 1 + ruoyi-common/ruoyi-common-bom/pom.xml | 7 +++ ruoyi-common/ruoyi-common-workflow/pom.xml | 47 +++++++++++++++++++ .../config/WorkflowConfiguration.java | 28 +++++++++++ .../workflow}/enums/TaskAssigneeEnum.java | 6 +-- .../handler/WorkflowExceptionHandler.java | 30 ++++++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../src/main/resources/common-workflow.yml | 8 ++++ ruoyi-modules/ruoyi-workflow/pom.xml | 19 ++++---- .../workflow/config/WarmFlowConfig.java | 15 ------ .../impl/WfTaskAssigneeServiceImpl.java | 2 +- .../dromara/workflow/utils/WorkflowUtils.java | 2 +- 12 files changed, 136 insertions(+), 30 deletions(-) create mode 100644 ruoyi-common/ruoyi-common-workflow/pom.xml create mode 100644 ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow/config/WorkflowConfiguration.java rename {ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common => ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow}/enums/TaskAssigneeEnum.java (96%) create mode 100644 ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow/handler/WorkflowExceptionHandler.java create mode 100644 ruoyi-common/ruoyi-common-workflow/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 ruoyi-common/ruoyi-common-workflow/src/main/resources/common-workflow.yml delete mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 2930fd0b0..6f2ccdc06 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -34,6 +34,7 @@ ruoyi-common-tenant ruoyi-common-websocket ruoyi-common-sse + ruoyi-common-workflow ruoyi-common diff --git a/ruoyi-common/ruoyi-common-bom/pom.xml b/ruoyi-common/ruoyi-common-bom/pom.xml index dbc5f1c2b..eeadc7242 100644 --- a/ruoyi-common/ruoyi-common-bom/pom.xml +++ b/ruoyi-common/ruoyi-common-bom/pom.xml @@ -179,6 +179,13 @@ ${revision} + + + org.dromara + ruoyi-common-workflow + ${revision} + + diff --git a/ruoyi-common/ruoyi-common-workflow/pom.xml b/ruoyi-common/ruoyi-common-workflow/pom.xml new file mode 100644 index 000000000..c1dc6717d --- /dev/null +++ b/ruoyi-common/ruoyi-common-workflow/pom.xml @@ -0,0 +1,47 @@ + + + + ruoyi-common + org.dromara + ${revision} + + 4.0.0 + + ruoyi-common-workflow + + + ruoyi-common-workflow Warm-Flow国产工作流引擎 + + + + http://warm-flow.cn/ + + + + + + org.dromara + ruoyi-common-core + + + + + io.github.minliuhua + warm-flow-mybatis-plus-sb-starter + + + + io.github.minliuhua + warm-flow-plugin-spel + + + + io.github.minliuhua + warm-flow-plugin-ui-sb-web + + + + + diff --git a/ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow/config/WorkflowConfiguration.java b/ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow/config/WorkflowConfiguration.java new file mode 100644 index 000000000..6812fcd71 --- /dev/null +++ b/ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow/config/WorkflowConfiguration.java @@ -0,0 +1,28 @@ +package org.dromara.common.workflow.config; + +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.factory.YmlPropertySourceFactory; +import org.dromara.common.workflow.handler.WorkflowExceptionHandler; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.PropertySource; + +/** + * workflow 配置属性 + * + * @author AprilWind + */ +@Slf4j +@AutoConfiguration +@PropertySource(value = "classpath:common-workflow.yml", factory = YmlPropertySourceFactory.class) +public class WorkflowConfiguration { + + /** + * workflow 异常处理器 + */ + @Bean + public WorkflowExceptionHandler workflowExceptionHandler() { + return new WorkflowExceptionHandler(); + } + +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeEnum.java b/ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow/enums/TaskAssigneeEnum.java similarity index 96% rename from ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeEnum.java rename to ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow/enums/TaskAssigneeEnum.java index 42971c624..03a37b40f 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeEnum.java +++ b/ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow/enums/TaskAssigneeEnum.java @@ -1,4 +1,4 @@ -package org.dromara.workflow.common.enums; +package org.dromara.common.workflow.enums; import lombok.AllArgsConstructor; import lombok.Getter; @@ -81,7 +81,7 @@ public enum TaskAssigneeEnum { /** * 获取所有办理人类型的描述列表 *

- * 获取当前枚举类所有项的描述字段列表,通常用于展示选择项。 + * 获取当前枚举类所有项的描述字段列表,通常用于展示选择项 *

* * @return List 返回所有办理人类型的描述列表 @@ -95,7 +95,7 @@ public enum TaskAssigneeEnum { /** * 获取所有办理人类型的代码列表 *

- * 获取当前枚举类所有项的代码字段列表,通常用于程序内部逻辑的判断。 + * 获取当前枚举类所有项的代码字段列表,通常用于程序内部逻辑的判断 *

* * @return List 返回所有办理人类型的代码列表 diff --git a/ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow/handler/WorkflowExceptionHandler.java b/ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow/handler/WorkflowExceptionHandler.java new file mode 100644 index 000000000..2ef446d7b --- /dev/null +++ b/ruoyi-common/ruoyi-common-workflow/src/main/java/org/dromara/common/workflow/handler/WorkflowExceptionHandler.java @@ -0,0 +1,30 @@ +package org.dromara.common.workflow.handler; + +import cn.hutool.http.HttpStatus; +import com.warm.flow.core.exception.FlowException; +import jakarta.servlet.http.HttpServletRequest; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.R; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +/** + * Workflow 异常处理器 + * + * @author AprilWind + */ +@Slf4j +@RestControllerAdvice +public class WorkflowExceptionHandler { + + /** + * 流程异常 + */ + @ExceptionHandler(FlowException.class) + public R handleForestException(FlowException e, HttpServletRequest request) { + String requestURI = request.getRequestURI(); + log.error("请求地址'{}',流程异常.{}", requestURI, e.getMessage()); + return R.fail(HttpStatus.HTTP_UNAVAILABLE, e.getMessage()); + } + +} diff --git a/ruoyi-common/ruoyi-common-workflow/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-workflow/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 000000000..a6da7ff44 --- /dev/null +++ b/ruoyi-common/ruoyi-common-workflow/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +org.dromara.common.workflow.config.WorkflowConfiguration diff --git a/ruoyi-common/ruoyi-common-workflow/src/main/resources/common-workflow.yml b/ruoyi-common/ruoyi-common-workflow/src/main/resources/common-workflow.yml new file mode 100644 index 000000000..dfeb7e9cf --- /dev/null +++ b/ruoyi-common/ruoyi-common-workflow/src/main/resources/common-workflow.yml @@ -0,0 +1,8 @@ +# warm-flow工作流配置 +warm-flow: + # 是否开启工作流,默认true + enabled: true + # 是否显示banner图,默认是 + banner: true + # 是否开启设计器ui,默认true + ui: true diff --git a/ruoyi-modules/ruoyi-workflow/pom.xml b/ruoyi-modules/ruoyi-workflow/pom.xml index 6e18f8680..1dd4662ca 100644 --- a/ruoyi-modules/ruoyi-workflow/pom.xml +++ b/ruoyi-modules/ruoyi-workflow/pom.xml @@ -37,46 +37,45 @@ org.dromara ruoyi-common-mybatis + org.dromara ruoyi-common-web + org.dromara ruoyi-common-log + org.dromara ruoyi-common-idempotent + org.dromara ruoyi-common-excel + org.dromara ruoyi-common-translation + org.dromara ruoyi-common-tenant + org.dromara ruoyi-common-security - io.github.minliuhua - warm-flow-mybatis-plus-sb-starter - - - io.github.minliuhua - warm-flow-plugin-spel - - - io.github.minliuhua - warm-flow-plugin-ui-sb-web + org.dromara + ruoyi-common-workflow diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java deleted file mode 100644 index a38c83e27..000000000 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.dromara.workflow.config; - - -import org.springframework.context.annotation.Configuration; - -/** - * warmFlow配置 - * - * @author may - */ -@Configuration -public class WarmFlowConfig { - -} - diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskAssigneeServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskAssigneeServiceImpl.java index f9d5e24a6..95af5891a 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskAssigneeServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskAssigneeServiceImpl.java @@ -20,7 +20,7 @@ import org.dromara.common.core.service.RoleService; import org.dromara.common.core.service.UserService; import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.StringUtils; -import org.dromara.workflow.common.enums.TaskAssigneeEnum; +import org.dromara.common.workflow.enums.TaskAssigneeEnum; import org.dromara.workflow.service.IWfTaskAssigneeService; import org.springframework.stereotype.Service; diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java index 741f94e4f..26b22ff75 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java @@ -10,7 +10,7 @@ import org.dromara.common.core.domain.dto.UserDTO; import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.satoken.utils.LoginHelper; -import org.dromara.workflow.common.enums.TaskAssigneeEnum; +import org.dromara.common.workflow.enums.TaskAssigneeEnum; import org.dromara.workflow.service.IWfTaskAssigneeService; import java.util.HashSet;