From e659740cb86547b2ac58e81c2ebe2453a5924fe6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Thu, 26 Jun 2025 07:07:03 +0000
Subject: [PATCH] =?UTF-8?q?Revert=20"update=20=E5=8D=87=E7=BA=A7warm-flow1?=
=?UTF-8?q?.7.4->1.7.5-m2=20=E4=BC=98=E5=8C=96=E6=B5=81=E7=A8=8B=E5=9B=BE?=
=?UTF-8?q?=E6=82=AC=E6=B5=AE=E7=AA=97"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit 8f5d60f543d0c6d1ea1b9c36cb7f50606f761d26.
---
pom.xml | 2 +-
.../service/impl/FlwCategoryServiceImpl.java | 34 ++------
.../service/impl/FlwChartExtServiceImpl.java | 87 ++++++++++---------
script/sql/ry_workflow.sql | 1 -
script/sql/update/update_5.3.1-5.4.0.sql | 3 -
5 files changed, 57 insertions(+), 70 deletions(-)
diff --git a/pom.xml b/pom.xml
index 81fc51c4d..5d5fe84ca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,7 +48,7 @@
8.7.2-20250603
- 1.7.5-m2
+ 1.7.4
3.4.2
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java
index 6870a80c9..db1b7b7f0 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java
@@ -13,7 +13,6 @@ import org.dromara.common.mybatis.helper.DataBaseHelper;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.warm.flow.core.service.DefService;
import org.dromara.warm.flow.orm.entity.FlowDefinition;
-import org.dromara.warm.flow.ui.service.CategoryService;
import org.dromara.workflow.common.ConditionalOnEnable;
import org.dromara.workflow.common.constant.FlowConstant;
import org.dromara.workflow.domain.FlowCategory;
@@ -36,7 +35,7 @@ import java.util.List;
@ConditionalOnEnable
@RequiredArgsConstructor
@Service
-public class FlwCategoryServiceImpl implements IFlwCategoryService, CategoryService {
+public class FlwCategoryServiceImpl implements IFlwCategoryService {
private final DefService defService;
private final FlwCategoryMapper baseMapper;
@@ -103,37 +102,22 @@ public class FlwCategoryServiceImpl implements IFlwCategoryService, CategoryServ
}
// 获取当前列表中每一个节点的parentId,然后在列表中查找是否有id与其parentId对应,若无对应,则表明此时节点列表中,该节点在当前列表中属于顶级节点
List> treeList = CollUtil.newArrayList();
- for (FlowCategoryVo current : categorys) {
- String parentId = current.getParentId().toString();
+ for (FlowCategoryVo d : categorys) {
+ String parentId = d.getParentId().toString();
FlowCategoryVo categoryVo = StreamUtils.findFirst(categorys, it -> it.getCategoryId().toString().equals(parentId));
if (ObjectUtil.isNull(categoryVo)) {
- List> trees = TreeBuildUtils.build(categorys, parentId, (node, tree) ->
- tree.setId(node.getCategoryId().toString())
- .setParentId(node.getParentId().toString())
- .setName(node.getCategoryName())
- .setWeight(node.getOrderNum()));
- Tree tree = StreamUtils.findFirst(trees, it -> it.getId().equals(current.getCategoryId().toString()));
+ List> trees = TreeBuildUtils.build(categorys, parentId, (dept, tree) ->
+ tree.setId(dept.getCategoryId().toString())
+ .setParentId(dept.getParentId().toString())
+ .setName(dept.getCategoryName())
+ .setWeight(dept.getOrderNum()));
+ Tree tree = StreamUtils.findFirst(trees, it -> it.getId().equals(d.getCategoryId().toString()));
treeList.add(tree);
}
}
return treeList;
}
- /**
- * 工作流查询分类
- *
- * @return 分类树结构列表
- */
- @Override
- public List queryCategory() {
- List list = this.queryList(new FlowCategoryBo());
- return StreamUtils.toList(list, category -> new org.dromara.warm.flow.core.dto.Tree()
- .setId(String.valueOf(category.getCategoryId()))
- .setName(category.getCategoryName())
- .setParentId(String.valueOf(category.getParentId()))
- );
- }
-
/**
* 校验流程分类是否有数据权限
*
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwChartExtServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwChartExtServiceImpl.java
index 0f5a2c764..d7c6f77eb 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwChartExtServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwChartExtServiceImpl.java
@@ -12,6 +12,7 @@ import org.dromara.common.core.service.DeptService;
import org.dromara.common.core.service.DictService;
import org.dromara.common.core.service.UserService;
import org.dromara.common.core.utils.DateUtils;
+import org.dromara.common.core.utils.ServletUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.warm.flow.core.dto.DefJson;
@@ -52,8 +53,12 @@ public class FlwChartExtServiceImpl implements ChartExtService {
*/
@Override
public void execute(DefJson defJson) {
+ // 临时修复 后续版本将通过defjson获取流程实例ID
+ String[] parts = ServletUtils.getRequest().getRequestURI().split("/");
+ Long instanceId = Convert.toLong(parts[parts.length - 1]);
+
// 根据流程实例ID查询所有相关的历史任务列表
- List flowHisTasks = this.getHisTaskGroupedByNode(defJson.getInstance().getId());
+ List flowHisTasks = this.getHisTaskGroupedByNode(instanceId);
if (CollUtil.isEmpty(flowHisTasks)) {
return;
}
@@ -69,12 +74,14 @@ public class FlwChartExtServiceImpl implements ChartExtService {
Map dictType = dictService.getAllDictByDictType(FlowConstant.WF_TASK_STATUS);
+ // 遍历流程定义中的每个节点,调用处理方法,将对应节点的任务列表及用户信息传入,生成扩展提示内容
for (NodeJson nodeJson : defJson.getNodeList()) {
+ // 获取当前节点对应的历史任务列表,如果没有则返回空列表避免空指针
List taskList = groupedByNode.get(nodeJson.getNodeCode());
if (CollUtil.isEmpty(taskList)) {
continue;
}
- // 处理当前节点的扩展信息
+ // 处理当前节点的扩展信息,包括构建审批人提示内容等
this.processNodeExtInfo(nodeJson, taskList, userMap, dictType);
}
}
@@ -89,44 +96,44 @@ public class FlwChartExtServiceImpl implements ChartExtService {
defJson.setTopText("流程名称: " + defJson.getFlowName());
defJson.getNodeList().forEach(nodeJson -> {
nodeJson.setPromptContent(
- new PromptContent()
- // 提示信息主体内容样式
- .setInfo(
- CollUtil.newArrayList(
- new PromptContent.InfoItem()
- .setPrefix("任务名称: ")
- .setContent(nodeJson.getNodeName())
- .setContentStyle(Map.of(
- "border", "1px solid #d1e9ff",
- "backgroundColor", "#e8f4ff",
- "padding", "4px 8px",
- "borderRadius", "4px"
- ))
- .setRowStyle(Map.of(
- "fontWeight", "bold",
- "margin", "0 0 6px 0",
- "padding", "0 0 8px 0",
- "borderBottom", "1px solid #ccc"
- ))
- ))
- // 弹窗容器样式(包含滚动条设置)
- .setDialogStyle(MapUtil.mergeAll(
- "position", "absolute",
- "backgroundColor", "#fff",
- "border", "1px solid #ccc",
- "borderRadius", "4px",
- "boxShadow", "0 2px 8px rgba(0, 0, 0, 0.15)",
- "padding", "8px 12px",
- "fontSize", "14px",
- "zIndex", "1000",
- "maxWidth", "500px",
- "maxHeight", "300px", // 设置最大高度,超过触发滚动
- "overflowY", "auto", // 允许垂直滚动
- "overflowX", "hidden", // 禁止横向滚动
- "color", "#333",
- "pointerEvents", "auto",
- "scrollbarWidth", "thin" // 滚动条宽度细化(部分浏览器支持)
- ))
+ new PromptContent()
+ // 提示信息
+ .setInfo(
+ CollUtil.newArrayList(
+ new PromptContent.InfoItem()
+ .setPrefix("任务名称: ")
+ .setContent(nodeJson.getNodeName())
+ .setContentStyle(Map.of(
+ "border", "1px solid #d1e9ff",
+ "backgroundColor", "#e8f4ff",
+ "padding", "4px 8px",
+ "borderRadius", "4px"
+ ))
+ .setRowStyle(Map.of(
+ "fontWeight", "bold",
+ "margin", "0 0 6px 0",
+ "padding", "0 0 8px 0",
+ "borderBottom", "1px solid #ccc"
+ ))
+ )
+ )
+ // 弹窗样式
+ .setDialogStyle(MapUtil.mergeAll(
+ "position", "absolute",
+ "backgroundColor", "#fff",
+ "border", "1px solid #ccc",
+ "borderRadius", "4px",
+ "boxShadow", "0 2px 8px rgba(0, 0, 0, 0.15)",
+ "padding", "8px 12px",
+ "fontSize", "14px",
+ "zIndex", "1000",
+ "maxWidth", "500px",
+ "overflowY", "visible",
+ "overflowX", "hidden",
+ "color", "#333",
+ "pointerEvents", "auto",
+ "scrollbarWidth", "thin"
+ ))
);
});
}
diff --git a/script/sql/ry_workflow.sql b/script/sql/ry_workflow.sql
index 8c2e12cd1..bb3d76e68 100644
--- a/script/sql/ry_workflow.sql
+++ b/script/sql/ry_workflow.sql
@@ -6,7 +6,6 @@ CREATE TABLE `flow_definition`
`id` bigint NOT NULL COMMENT '主键id',
`flow_code` varchar(40) NOT NULL COMMENT '流程编码',
`flow_name` varchar(100) NOT NULL COMMENT '流程名称',
- `mode` varchar(40) NOT NULL DEFAULT 'CLASSICS' COMMENT '设计器模式(CLASSICS经典模式 MIMIC仿钉钉模式)',
`category` varchar(100) DEFAULT NULL COMMENT '流程类别',
`version` varchar(20) NOT NULL COMMENT '流程版本',
`is_publish` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否发布(0未发布 1已发布 9失效)',
diff --git a/script/sql/update/update_5.3.1-5.4.0.sql b/script/sql/update/update_5.3.1-5.4.0.sql
index b0e02af69..058f6fcba 100644
--- a/script/sql/update/update_5.3.1-5.4.0.sql
+++ b/script/sql/update/update_5.3.1-5.4.0.sql
@@ -7,9 +7,6 @@ ALTER TABLE `flow_instance`
ALTER TABLE `flow_his_task`
MODIFY COLUMN `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)' AFTER `skip_type`;
-ALTER TABLE `flow_definition`
- ADD COLUMN `mode` varchar(40) NOT NULL DEFAULT 'CLASSICS' COMMENT '设计器模式(CLASSICS经典模式 MIMIC仿钉钉模式)' AFTER `flow_name`;
-
ALTER TABLE `sys_social`
MODIFY COLUMN `access_token` varchar(2000) NOT NULL COMMENT '用户的授权令牌' AFTER `avatar`;
ALTER TABLE `sys_social`