diff --git a/pom.xml b/pom.xml
index 9a39bb8ce..590ffa196 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,7 +53,7 @@
8.7.2-20240722
- 7.0.1
+ 1.2.3
3.2.2
@@ -116,13 +116,12 @@
- org.flowable
- flowable-bom
- ${flowable.version}
- pom
- import
+ io.github.minliuhua
+ warm-flow-mybatis-plus-sb-starter
+ ${warm-flow}
+
me.zhyd.oauth
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index f9a9cc3a9..a101e9523 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -270,20 +270,21 @@ websocket:
# 设置访问源地址
allowedOrigins: '*'
---- #flowable配置
-flowable:
- async-executor-activate: false #关闭定时任务JOB
- # 将databaseSchemaUpdate设置为true。当Flowable发现库与数据库表结构不一致时,会自动将数据库表结构升级至新版本。
- database-schema-update: true
- activity-font-name: 宋体
- label-font-name: 宋体
- annotation-font-name: 宋体
- # 关闭各个模块生成表,目前只使用工作流基础表
- idm:
- enabled: false
- cmmn:
- enabled: false
- dmn:
- enabled: false
- app:
- enabled: false
+--- # warm-flow工作流配置
+warm-flow:
+ # 是否显示banner图,默认是
+ banner: true
+ # 填充器 (可配置文件注入,也可用@Bean/@Component方式)
+ data-fill-handler-path: com.ruoyi.system.handle.CustomDataFillHandler
+ # 全局租户处理器(可配置文件注入,也可用@Bean/@Component方式)
+ tenant_handler_path: com.ruoyi.system.handle.CustomTenantHandler
+ # 是否开启逻辑删除
+ logic_delete: false
+ # 逻辑删除字段值(开启后默认为2)
+ logic_delete_value: 2
+ # 逻辑未删除字段(开启后默认为0)
+ logic_not_delete_value: 0
+ # 数据源类型, mybatis模块对orm进一步的封装, 由于各数据库分页语句存在差异,
+ # 当配置此参数时, 以此参数结果为基准, 未配置时, 取DataSource中数据源类型,
+ # 兜底为mysql数据库
+ data_source_type: mysql
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java
index 4e556c9cb..2ff5c1d3f 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java
@@ -16,7 +16,7 @@ public interface WorkflowService {
* @param businessKeys 业务id
* @return 结果
*/
- boolean deleteRunAndHisInstance(List businessKeys);
+ boolean deleteInstance(List businessKeys);
/**
* 获取当前流程状态
diff --git a/ruoyi-modules/ruoyi-workflow/pom.xml b/ruoyi-modules/ruoyi-workflow/pom.xml
index 9ed40970a..fb4e192e1 100644
--- a/ruoyi-modules/ruoyi-workflow/pom.xml
+++ b/ruoyi-modules/ruoyi-workflow/pom.xml
@@ -18,54 +18,6 @@
-
-
- org.flowable
- flowable-spring-boot-autoconfigure
-
-
- org.flowable
- flowable-spring-security
-
-
-
-
-
- org.flowable
- flowable-spring-configurator
-
-
-
- org.flowable
- flowable-spring-boot-starter-actuator
-
-
-
-
- org.flowable
- flowable-image-generator
-
-
-
-
- org.flowable
- flowable-json-converter
- 6.8.0
-
-
-
-
- org.apache.xmlgraphics
- batik-all
- 1.10
-
-
- xalan
- xalan
-
-
-
-
org.dromara
ruoyi-common-websocket
@@ -113,6 +65,10 @@
org.dromara
ruoyi-common-security
+
+ io.github.minliuhua
+ warm-flow-mybatis-plus-sb-starter
+
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
new file mode 100644
index 000000000..5df842ae5
--- /dev/null
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java
@@ -0,0 +1,25 @@
+package org.dromara.workflow.config;
+
+
+import com.warm.flow.core.handler.TenantHandler;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.dromara.common.satoken.utils.LoginHelper;
+
+/**
+ * 任务状态枚举
+ *
+ * @author may
+ */
+@Configuration
+public class WarmFlowConfig {
+
+ /**
+ * 全局租户处理器(可配置文件注入,也可用@Bean/@Component方式)
+ */
+ @Bean
+ public TenantHandler tenantHandler() {
+ return LoginHelper::getTenantId;
+ }
+}
+
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActModelController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActModelController.java
deleted file mode 100644
index 3332f86a5..000000000
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActModelController.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package org.dromara.workflow.controller;
-
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotEmpty;
-import lombok.RequiredArgsConstructor;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.workflow.domain.bo.ModelBo;
-import org.dromara.workflow.domain.vo.ModelVo;
-import org.dromara.workflow.service.IActModelService;
-import org.flowable.engine.RepositoryService;
-import org.flowable.engine.repository.Model;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * 模型管理 控制层
- *
- * @author may
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/workflow/model")
-public class ActModelController extends BaseController {
-
- private final RepositoryService repositoryService;
-
- private final IActModelService actModelService;
-
-
- /**
- * 分页查询模型
- *
- * @param modelBo 模型参数
- */
- @GetMapping("/list")
- public TableDataInfo page(ModelBo modelBo, PageQuery pageQuery) {
- return actModelService.page(modelBo, pageQuery);
- }
-
- /**
- * 新增模型
- *
- * @param modelBo 模型请求对象
- */
- @Log(title = "模型管理", businessType = BusinessType.INSERT)
- @RepeatSubmit()
- @PostMapping("/save")
- public R saveNewModel(@Validated(AddGroup.class) @RequestBody ModelBo modelBo) {
- return toAjax(actModelService.saveNewModel(modelBo));
- }
-
- /**
- * 查询模型
- *
- * @param id 模型id
- */
- @GetMapping("/getInfo/{id}")
- public R getInfo(@NotBlank(message = "模型id不能为空") @PathVariable String id) {
- return R.ok(actModelService.getInfo(id));
- }
-
- /**
- * 修改模型信息
- *
- * @param modelBo 模型数据
- */
- @Log(title = "模型管理", businessType = BusinessType.UPDATE)
- @RepeatSubmit()
- @PutMapping(value = "/update")
- public R update(@RequestBody ModelBo modelBo) {
- return toAjax(actModelService.update(modelBo));
- }
-
- /**
- * 编辑XMl模型
- *
- * @param modelBo 模型数据
- */
- @Log(title = "模型管理", businessType = BusinessType.UPDATE)
- @RepeatSubmit()
- @PutMapping(value = "/editModelXml")
- public R editModel(@Validated(EditGroup.class) @RequestBody ModelBo modelBo) {
- return toAjax(actModelService.editModelXml(modelBo));
- }
-
- /**
- * 删除流程模型
- *
- * @param ids 模型id
- */
- @Log(title = "模型管理", businessType = BusinessType.DELETE)
- @RepeatSubmit()
- @DeleteMapping("/{ids}")
- @Transactional(rollbackFor = Exception.class)
- public R delete(@NotEmpty(message = "主键不能为空") @PathVariable String[] ids) {
- Arrays.stream(ids).parallel().forEachOrdered(repositoryService::deleteModel);
- return R.ok();
- }
-
- /**
- * 模型部署
- *
- * @param id 模型id
- */
- @Log(title = "模型管理", businessType = BusinessType.INSERT)
- @RepeatSubmit()
- @PostMapping("/modelDeploy/{id}")
- public R deploy(@NotBlank(message = "模型id不能为空") @PathVariable("id") String id) {
- return toAjax(actModelService.modelDeploy(id));
- }
-
- /**
- * 导出模型zip压缩包
- *
- * @param modelIds 模型id
- * @param response 相应
- */
- @GetMapping("/export/zip/{modelIds}")
- public void exportZip(@NotEmpty(message = "模型id不能为空") @PathVariable List modelIds,
- HttpServletResponse response) {
- actModelService.exportZip(modelIds, response);
- }
-
- /**
- * 复制模型
- *
- * @param modelBo 模型数据
- */
- @PostMapping("/copyModel")
- public R copyModel(@RequestBody ModelBo modelBo) {
- return toAjax(actModelService.copyModel(modelBo));
- }
-}
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessDefinitionController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessDefinitionController.java
deleted file mode 100644
index 5198bd164..000000000
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessDefinitionController.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package org.dromara.workflow.controller;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotEmpty;
-import jakarta.validation.constraints.NotNull;
-import lombok.RequiredArgsConstructor;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.workflow.domain.bo.ProcessDefinitionBo;
-import org.dromara.workflow.domain.vo.ProcessDefinitionVo;
-import org.dromara.workflow.service.IActProcessDefinitionService;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-
-/**
- * 流程定义管理 控制层
- *
- * @author may
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/workflow/processDefinition")
-public class ActProcessDefinitionController extends BaseController {
-
- private final IActProcessDefinitionService actProcessDefinitionService;
-
- /**
- * 分页查询
- *
- * @param bo 参数
- */
- @GetMapping("/list")
- public TableDataInfo page(ProcessDefinitionBo bo, PageQuery pageQuery) {
- return actProcessDefinitionService.page(bo, pageQuery);
- }
-
- /**
- * 查询历史流程定义列表
- *
- * @param key 流程定义key
- */
- @GetMapping("/getListByKey/{key}")
- public R> getListByKey(@NotEmpty(message = "流程定义key不能为空") @PathVariable String key) {
- return R.ok("操作成功", actProcessDefinitionService.getListByKey(key));
- }
-
- /**
- * 查看流程定义图片
- *
- * @param processDefinitionId 流程定义id
- */
- @GetMapping("/definitionImage/{processDefinitionId}")
- public R definitionImage(@PathVariable String processDefinitionId) {
- return R.ok("操作成功", actProcessDefinitionService.definitionImage(processDefinitionId));
- }
-
- /**
- * 查看流程定义xml文件
- *
- * @param processDefinitionId 流程定义id
- */
- @GetMapping("/definitionXml/{processDefinitionId}")
- public R