From 3c57c0e7f9c16661fe9761140bf4d42a154a87df 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: Tue, 11 Feb 2025 09:51:31 +0800
Subject: [PATCH 01/21] =?UTF-8?q?update=20springboot-admin=203.4.1=20=3D>?=
=?UTF-8?q?=203.4.2=20=E4=BF=AE=E5=A4=8D=E9=87=8D=E6=96=B0=E7=99=BB?=
=?UTF-8?q?=E5=BD=95404=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 1d4366f2d..2856eefc2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,7 +27,7 @@
3.5.10
3.9.1
5.8.35
- 3.4.1
+ 3.4.2
3.44.0
2.2.7
4.3.1
From 78abb617cecc0f07795e83691aa149f89d8c81f2 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: Tue, 11 Feb 2025 16:03:14 +0800
Subject: [PATCH 02/21] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20nginx?=
=?UTF-8?q?=E5=BC=80=E5=90=AF=E9=9D=99=E6=80=81=E8=B5=84=E6=BA=90=E5=8E=8B?=
=?UTF-8?q?=E7=BC=A9=20=E5=A2=9E=E5=8A=A0=E9=9D=99=E6=80=81=E6=96=87?=
=?UTF-8?q?=E4=BB=B6=E4=BC=A0=E8=BE=93=E6=95=88=E7=8E=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
script/docker/nginx/conf/nginx.conf | 2 ++
1 file changed, 2 insertions(+)
diff --git a/script/docker/nginx/conf/nginx.conf b/script/docker/nginx/conf/nginx.conf
index 3c79d97f6..22b074f1d 100644
--- a/script/docker/nginx/conf/nginx.conf
+++ b/script/docker/nginx/conf/nginx.conf
@@ -14,6 +14,8 @@ http {
keepalive_timeout 65;
# 限制body大小
client_max_body_size 100m;
+ # 开启静态资源压缩
+ gzip_static on;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
From 2746af21f0f4228d6cd30b2f27fc742c40c2f583 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A7=8B=E8=BE=9E=E6=9C=AA=E5=AF=92?= <545073804@qq.com>
Date: Thu, 13 Feb 2025 17:39:30 +0800
Subject: [PATCH 03/21] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E6=A0=B9?=
=?UTF-8?q?=E9=83=A8=E9=97=A8=E7=A5=96=E7=BA=A7=E5=88=97=E8=A1=A8=E5=B8=B8?=
=?UTF-8?q?=E9=87=8F=E5=92=8C=E5=A4=87=E6=B3=A8=EF=BC=8C=E4=BB=A5=E9=81=BF?=
=?UTF-8?q?=E5=85=8D=E6=AD=A7=E4=B9=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../org/dromara/common/core/constant/SystemConstants.java | 5 +++++
.../org/dromara/system/service/impl/SysDeptServiceImpl.java | 6 ++++--
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java
index 55240bbf8..8a37a51fc 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java
@@ -72,4 +72,9 @@ public interface SystemConstants {
*/
Long SUPER_ADMIN_ID = 1L;
+ /**
+ * 根部门祖级列表
+ */
+ String ROOT_DEPT_ANCESTORS = "0";
+
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
index ca062bee6..ecd309f4e 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
@@ -323,8 +323,10 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
dept.setAncestors(oldDept.getAncestors());
}
int result = baseMapper.updateById(dept);
- if (SystemConstants.NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors())
- && !StringUtils.equals(SystemConstants.NORMAL, dept.getAncestors())) {
+ // 如果部门状态为启用,且部门祖级列表不为空,且部门祖级列表不等于根部门祖级列表(如果部门祖级列表不等于根部门祖级列表,则说明存在上级部门)
+ if (SystemConstants.NORMAL.equals(dept.getStatus())
+ && StringUtils.isNotEmpty(dept.getAncestors())
+ && !StringUtils.equals(SystemConstants.ROOT_DEPT_ANCESTORS, dept.getAncestors())) {
// 如果该部门是启用状态,则启用该部门的所有上级部门
updateParentDeptStatusNormal(dept);
}
From eb17eb655919aa8f24b3f6e8d2e0992921f64e26 Mon Sep 17 00:00:00 2001
From: QianRj <14974713+qianrj@user.noreply.gitee.com>
Date: Sat, 15 Feb 2025 04:58:37 +0000
Subject: [PATCH 04/21] =?UTF-8?q?!646=20fix=20=E4=BF=AE=E5=A4=8DCaffeine?=
=?UTF-8?q?=E7=BC=93=E5=AD=98=E6=9C=AA=E6=B8=85=E7=A9=BA=E5=AF=BC=E8=87=B4?=
=?UTF-8?q?=E7=9A=84=E9=83=A8=E9=97=A8=E5=88=9B=E5=BB=BA=E6=98=BE=E7=A4=BA?=
=?UTF-8?q?=E5=BB=B6=E8=BF=9F=E9=97=AE=E9=A2=98=20*=20fix=20=E4=BF=AE?=
=?UTF-8?q?=E5=A4=8DCaffeine=E7=BC=93=E5=AD=98=E6=9C=AA=E6=B8=85=E7=A9=BA?=
=?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84=E9=83=A8=E9=97=A8=E5=88=9B=E5=BB=BA?=
=?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=BB=B6=E8=BF=9F=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../org/dromara/common/redis/manager/CaffeineCacheDecorator.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/manager/CaffeineCacheDecorator.java b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/manager/CaffeineCacheDecorator.java
index 6e83df13a..8662c537d 100644
--- a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/manager/CaffeineCacheDecorator.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/manager/CaffeineCacheDecorator.java
@@ -78,6 +78,7 @@ public class CaffeineCacheDecorator implements Cache {
@Override
public void clear() {
+ CAFFEINE.invalidateAll();
cache.clear();
}
From 236dd6e054658ddb21bc0bd3e6cc979713786218 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: Mon, 17 Feb 2025 15:22:42 +0800
Subject: [PATCH 05/21] =?UTF-8?q?update=20=E5=88=A0=E9=99=A4=E6=97=A0?=
=?UTF-8?q?=E7=94=A8=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-modules/ruoyi-workflow/README.md | 3 ---
1 file changed, 3 deletions(-)
delete mode 100644 ruoyi-modules/ruoyi-workflow/README.md
diff --git a/ruoyi-modules/ruoyi-workflow/README.md b/ruoyi-modules/ruoyi-workflow/README.md
deleted file mode 100644
index 59096b10e..000000000
--- a/ruoyi-modules/ruoyi-workflow/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# 工作流说明
-
-工作流目前在未成熟阶段 后续仍会经历重构 甚至重写(生产使用前请慎重考虑后续是否要更新维护)
\ No newline at end of file
From 906a031172691f928cb3cef638a061fb41d845d8 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Wed, 19 Feb 2025 09:07:46 +0800
Subject: [PATCH 06/21] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E9=83=A8?=
=?UTF-8?q?=E9=97=A8=E4=B8=8B=E5=B2=97=E4=BD=8D=E5=90=8D=E7=A7=B0=E9=87=8D?=
=?UTF-8?q?=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/org/dromara/system/service/impl/SysPostServiceImpl.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java
index 5888985a7..894f6acc8 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java
@@ -154,6 +154,7 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
public boolean checkPostNameUnique(SysPostBo post) {
boolean exist = baseMapper.exists(new LambdaQueryWrapper()
.eq(SysPost::getPostName, post.getPostName())
+ .eq(SysPost::getDeptId, post.getDeptId())
.ne(ObjectUtil.isNotNull(post.getPostId()), SysPost::getPostId, post.getPostId()));
return !exist;
}
From 214cbac9a6864b72406a8e70aac42113e1f4f9e0 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: Wed, 19 Feb 2025 09:43:10 +0800
Subject: [PATCH 07/21] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20ProcessTask?=
=?UTF-8?q?Event=20=E6=94=B9=E5=90=8D=E4=B8=BA=20ProcessCreateTaskEvent=20?=
=?UTF-8?q?=E9=81=BF=E5=85=8D=E9=94=99=E8=AF=AF=E7=90=86=E8=A7=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...Event.java => ProcessCreateTaskEvent.java} | 4 ++--
.../handler/FlowProcessEventHandler.java | 22 +++++++++----------
.../listener/WorkflowGlobalListener.java | 2 +-
.../service/impl/TestLeaveServiceImpl.java | 20 ++++++++---------
4 files changed, 24 insertions(+), 24 deletions(-)
rename ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/{ProcessTaskEvent.java => ProcessCreateTaskEvent.java} (85%)
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessCreateTaskEvent.java
similarity index 85%
rename from ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java
rename to ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessCreateTaskEvent.java
index 33bc6e5a6..05047ab84 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessCreateTaskEvent.java
@@ -6,12 +6,12 @@ import java.io.Serial;
import java.io.Serializable;
/**
- * 流程办理监听
+ * 流程创建任务监听
*
* @author may
*/
@Data
-public class ProcessTaskEvent implements Serializable {
+public class ProcessCreateTaskEvent implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java
index 4b215ef60..3efc52da8 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java
@@ -1,9 +1,9 @@
package org.dromara.workflow.handler;
import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.event.ProcessCreateTaskEvent;
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
import org.dromara.common.core.domain.event.ProcessEvent;
-import org.dromara.common.core.domain.event.ProcessTaskEvent;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.workflow.common.ConditionalOnEnable;
@@ -23,7 +23,7 @@ import java.util.Map;
public class FlowProcessEventHandler {
/**
- * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成等)
+ * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
*
* @param flowCode 流程定义编码
* @param businessId 业务id
@@ -44,23 +44,23 @@ public class FlowProcessEventHandler {
}
/**
- * 执行办理任务监听
+ * 执行创建任务监听
*
* @param flowCode 流程定义编码
* @param nodeCode 审批节点编码
* @param taskId 任务id
* @param businessId 业务id
*/
- public void processTaskHandler(String flowCode, String nodeCode, Long taskId, String businessId) {
+ public void processCreateTaskHandler(String flowCode, String nodeCode, Long taskId, String businessId) {
String tenantId = TenantHelper.getTenantId();
log.info("发布流程任务事件, 租户ID: {}, 流程编码: {}, 节点编码: {}, 任务ID: {}, 业务ID: {}", tenantId, flowCode, nodeCode, taskId, businessId);
- ProcessTaskEvent processTaskEvent = new ProcessTaskEvent();
- processTaskEvent.setTenantId(tenantId);
- processTaskEvent.setFlowCode(flowCode);
- processTaskEvent.setNodeCode(nodeCode);
- processTaskEvent.setTaskId(taskId);
- processTaskEvent.setBusinessId(businessId);
- SpringUtils.context().publishEvent(processTaskEvent);
+ ProcessCreateTaskEvent processCreateTaskEvent = new ProcessCreateTaskEvent();
+ processCreateTaskEvent.setTenantId(tenantId);
+ processCreateTaskEvent.setFlowCode(flowCode);
+ processCreateTaskEvent.setNodeCode(nodeCode);
+ processCreateTaskEvent.setTaskId(taskId);
+ processCreateTaskEvent.setBusinessId(businessId);
+ SpringUtils.context().publishEvent(processCreateTaskEvent);
}
/**
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java
index b18785484..272f9de92 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java
@@ -52,7 +52,7 @@ public class WorkflowGlobalListener implements GlobalListener {
Task task = listenerVariable.getTask();
if (task != null && BusinessStatusEnum.WAITING.getStatus().equals(flowStatus)) {
// 判断流程状态(发布审批中事件)
- flowProcessEventHandler.processTaskHandler(definition.getFlowCode(), task.getNodeCode(), task.getId(), businessId);
+ flowProcessEventHandler.processCreateTaskHandler(definition.getFlowCode(), task.getNodeCode(), task.getId(), businessId);
}
}
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java
index 2c431737b..537361c3e 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java
@@ -9,9 +9,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.event.ProcessCreateTaskEvent;
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
import org.dromara.common.core.domain.event.ProcessEvent;
-import org.dromara.common.core.domain.event.ProcessTaskEvent;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.service.WorkflowService;
import org.dromara.common.core.utils.MapstructUtils;
@@ -123,7 +123,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
}
/**
- * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成等)
+ * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
* 正常使用只需#processEvent.flowCode=='leave1'
* 示例为了方便则使用startsWith匹配了全部示例key
*
@@ -151,19 +151,19 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
}
/**
- * 执行办理任务监听
- * 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
+ * 执行任务创建监听
+ * 示例:也可通过 @EventListener(condition = "#processCreateTaskEvent.flowCode=='leave1'")进行判断
* 在方法中判断流程节点key
- * if ("xxx".equals(processTaskEvent.getNodeCode())) {
+ * if ("xxx".equals(processCreateTaskEvent.getNodeCode())) {
* //执行业务逻辑
* }
*
- * @param processTaskEvent 参数
+ * @param processCreateTaskEvent 参数
*/
- @EventListener(condition = "#processTaskEvent.flowCode.startsWith('leave')")
- public void processTaskHandler(ProcessTaskEvent processTaskEvent) {
- log.info("当前任务执行了{}", processTaskEvent.toString());
- TestLeave testLeave = baseMapper.selectById(Long.valueOf(processTaskEvent.getBusinessId()));
+ @EventListener(condition = "#processCreateTaskEvent.flowCode.startsWith('leave')")
+ public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) {
+ log.info("当前任务创建了{}", processCreateTaskEvent.toString());
+ TestLeave testLeave = baseMapper.selectById(Long.valueOf(processCreateTaskEvent.getBusinessId()));
testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus());
baseMapper.updateById(testLeave);
}
From 381be5a1a1a6fe4c3d28f4bad323aaef307c9e48 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: Wed, 19 Feb 2025 13:27:46 +0800
Subject: [PATCH 08/21] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20oracle=20?=
=?UTF-8?q?=E8=A1=A8=E5=88=AB=E5=90=8D=E4=B8=8D=E8=83=BD=E5=86=99as?=
=?UTF-8?q?=E5=85=B3=E9=94=AE=E5=AD=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/mapper/workflow/FlwTaskMapper.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml b/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml
index 73e4ec789..f539030b4 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml
+++ b/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml
@@ -31,7 +31,7 @@
d.version,
uu.processed_by,
uu.type
- from flow_task as t
+ from flow_task t
left join flow_user uu on uu.associated = t.id
left join flow_definition d on t.definition_id = d.id
left join flow_instance i on t.instance_id = i.id
From d80f6ab69561201bd93e9aa67949f38b77c6f312 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, 20 Feb 2025 17:46:04 +0800
Subject: [PATCH 09/21] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20oracle=20?=
=?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=A7=9F=E6=88=B7=E6=8A=A5=E9=94=99=E9=97=AE?=
=?UTF-8?q?=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../system/service/impl/SysTenantServiceImpl.java | 15 +++++++++++++++
.../service/impl/FlwDefinitionServiceImpl.java | 5 +++++
2 files changed, 20 insertions(+)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
index f31bd3027..b2f4872be 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
@@ -179,10 +179,20 @@ public class SysTenantServiceImpl implements ISysTenantService {
for (SysDictType dictType : dictTypeList) {
dictType.setDictId(null);
dictType.setTenantId(tenantId);
+ dictType.setCreateDept(null);
+ dictType.setCreateBy(null);
+ dictType.setCreateTime(null);
+ dictType.setUpdateBy(null);
+ dictType.setUpdateTime(null);
}
for (SysDictData dictData : dictDataList) {
dictData.setDictCode(null);
dictData.setTenantId(tenantId);
+ dictData.setCreateDept(null);
+ dictData.setCreateBy(null);
+ dictData.setCreateTime(null);
+ dictData.setUpdateBy(null);
+ dictData.setUpdateTime(null);
}
dictTypeMapper.insertBatch(dictTypeList);
dictDataMapper.insertBatch(dictDataList);
@@ -192,6 +202,11 @@ public class SysTenantServiceImpl implements ISysTenantService {
for (SysConfig config : sysConfigList) {
config.setConfigId(null);
config.setTenantId(tenantId);
+ config.setCreateDept(null);
+ config.setCreateBy(null);
+ config.setCreateTime(null);
+ config.setUpdateBy(null);
+ config.setUpdateTime(null);
}
configMapper.insertBatch(sysConfigList);
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java
index 591339b3e..b4ebcdf08 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java
@@ -219,6 +219,11 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
.eq(FlowCategory::getTenantId, DEFAULT_TENANT_ID).eq(FlowCategory::getCategoryId, FlowConstant.FLOW_CATEGORY_ID));
flowCategory.setCategoryId(null);
flowCategory.setTenantId(tenantId);
+ flowCategory.setCreateDept(null);
+ flowCategory.setCreateBy(null);
+ flowCategory.setCreateTime(null);
+ flowCategory.setUpdateBy(null);
+ flowCategory.setUpdateTime(null);
flwCategoryMapper.insert(flowCategory);
List defIds = StreamUtils.toList(flowDefinitions, FlowDefinition::getId);
List flowNodes = flowNodeMapper.selectList(new LambdaQueryWrapper().in(FlowNode::getDefinitionId, defIds));
From e8700ac44ba40961e55fda81a180db569f450ca6 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: Fri, 21 Feb 2025 09:37:24 +0800
Subject: [PATCH 10/21] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E5=88=A0?=
=?UTF-8?q?=E9=99=A4=E5=A4=9A=E4=BD=99=E5=93=8D=E5=BA=94=E5=A4=B4=E8=AE=BE?=
=?UTF-8?q?=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../common/encrypt/filter/EncryptResponseBodyWrapper.java | 3 ---
1 file changed, 3 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java
index c0af232ee..7bbca49d0 100644
--- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java
+++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java
@@ -76,10 +76,7 @@ public class EncryptResponseBodyWrapper extends HttpServletResponseWrapper {
String encryptPassword = EncryptUtils.encryptByRsa(encryptAes, publicKey);
// 设置响应头
- servletResponse.addHeader("Access-Control-Expose-Headers", headerFlag);
servletResponse.setHeader(headerFlag, encryptPassword);
- servletResponse.setHeader("Access-Control-Allow-Origin", "*");
- servletResponse.setHeader("Access-Control-Allow-Methods", "*");
servletResponse.setCharacterEncoding(StandardCharsets.UTF_8.toString());
// 获取原始内容
From bdb86e2b3add8f23807fabe66138637d4785932d 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: Fri, 21 Feb 2025 10:10:09 +0800
Subject: [PATCH 11/21] update springboot 3.4.2 => 3.4.3 update springdoc 2.8.4
=> 2.8.5
---
pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index 2856eefc2..cc86e9b83 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,12 +14,12 @@
5.3.0
- 3.4.2
+ 3.4.3
UTF-8
UTF-8
17
3.5.16
- 2.8.4
+ 2.8.5
0.15.0
4.0.3
2.3
From a217c495d1ea6abc4c3594f53a988f004429ce58 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: Fri, 21 Feb 2025 15:40:31 +0800
Subject: [PATCH 12/21] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E7=A7=9F?=
=?UTF-8?q?=E6=88=B7=E8=A1=A8=E4=BC=81=E4=B8=9A=E5=90=8D=E4=B8=8E=E9=83=A8?=
=?UTF-8?q?=E9=97=A8=E8=A1=A8=E9=95=BF=E5=BA=A6=E4=BF=9D=E6=8C=81=E4=B8=80?=
=?UTF-8?q?=E8=87=B4=20=E9=98=B2=E6=AD=A2=E9=95=BF=E5=BA=A6=E4=B8=8D?=
=?UTF-8?q?=E4=B8=80=E8=87=B4=E6=8A=A5=E9=94=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
script/sql/oracle/oracle_ry_vue_5.X.sql | 2 +-
script/sql/postgres/postgres_ry_vue_5.X.sql | 2 +-
script/sql/ry_vue_5.X.sql | 2 +-
script/sql/sqlserver/sqlserver_ry_vue_5.X.sql | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/script/sql/oracle/oracle_ry_vue_5.X.sql b/script/sql/oracle/oracle_ry_vue_5.X.sql
index 94024c999..8390bceef 100644
--- a/script/sql/oracle/oracle_ry_vue_5.X.sql
+++ b/script/sql/oracle/oracle_ry_vue_5.X.sql
@@ -75,7 +75,7 @@ create table sys_tenant (
tenant_id varchar2(20) not null,
contact_user_name varchar2(20) default '',
contact_phone varchar2(20) default '',
- company_name varchar2(50) default '',
+ company_name varchar2(30) default '',
license_number varchar2(30) default '',
address varchar2(200) default '',
intro varchar2(200) default '',
diff --git a/script/sql/postgres/postgres_ry_vue_5.X.sql b/script/sql/postgres/postgres_ry_vue_5.X.sql
index d18cfebd4..463896625 100644
--- a/script/sql/postgres/postgres_ry_vue_5.X.sql
+++ b/script/sql/postgres/postgres_ry_vue_5.X.sql
@@ -75,7 +75,7 @@ create table if not exists sys_tenant
tenant_id varchar(20) not null,
contact_user_name varchar(20) default null::varchar,
contact_phone varchar(20) default null::varchar,
- company_name varchar(50) default null::varchar,
+ company_name varchar(30) default null::varchar,
license_number varchar(30) default null::varchar,
address varchar(200) default null::varchar,
intro varchar(200) default null::varchar,
diff --git a/script/sql/ry_vue_5.X.sql b/script/sql/ry_vue_5.X.sql
index 48e5f35b5..95cb04cea 100644
--- a/script/sql/ry_vue_5.X.sql
+++ b/script/sql/ry_vue_5.X.sql
@@ -45,7 +45,7 @@ create table sys_tenant
tenant_id varchar(20) not null comment '租户编号',
contact_user_name varchar(20) comment '联系人',
contact_phone varchar(20) comment '联系电话',
- company_name varchar(50) comment '企业名称',
+ company_name varchar(30) comment '企业名称',
license_number varchar(30) comment '统一社会信用代码',
address varchar(200) comment '地址',
intro varchar(200) comment '企业简介',
diff --git a/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql b/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
index 9f8481a22..6fdba1e0d 100644
--- a/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
+++ b/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
@@ -222,7 +222,7 @@ CREATE TABLE sys_tenant
tenant_id nvarchar(20) NOT NULL,
contact_user_name nvarchar(20) NULL,
contact_phone nvarchar(20) NULL,
- company_name nvarchar(50) NULL,
+ company_name nvarchar(30) NULL,
license_number nvarchar(30) NULL,
address nvarchar(200) NULL,
intro nvarchar(200) NULL,
From bb475a6088fa83d9e62efdd1b40f44fe697f30f4 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: Fri, 21 Feb 2025 20:31:58 +0800
Subject: [PATCH 13/21] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E5=88=A0?=
=?UTF-8?q?=E9=99=A4=E6=97=A0=E7=94=A8=E9=85=8D=E7=BD=AE=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/controller/IndexController.java | 12 ++----
.../src/main/resources/application-dev.yml | 4 +-
.../src/main/resources/application-prod.yml | 4 +-
.../src/main/resources/application.yml | 37 +++++++------------
.../java/org/dromara/test/DemoUnitTest.java | 10 ++---
.../common/core/config/RuoYiConfig.java | 33 -----------------
...ot.autoconfigure.AutoConfiguration.imports | 1 -
7 files changed, 27 insertions(+), 74 deletions(-)
delete mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/RuoYiConfig.java
diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/IndexController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/IndexController.java
index c444f28c9..cdcfed62a 100644
--- a/ruoyi-admin/src/main/java/org/dromara/web/controller/IndexController.java
+++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/IndexController.java
@@ -1,9 +1,9 @@
package org.dromara.web.controller;
import cn.dev33.satoken.annotation.SaIgnore;
-import org.dromara.common.core.config.RuoYiConfig;
-import org.dromara.common.core.utils.StringUtils;
import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.SpringUtils;
+import org.dromara.common.core.utils.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -17,16 +17,12 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
public class IndexController {
- /**
- * 系统基础配置
- */
- private final RuoYiConfig ruoyiConfig;
-
/**
* 访问首页,提示语
*/
@GetMapping("/")
public String index() {
- return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion());
+ return StringUtils.format("欢迎使用{}后台管理框架,请通过前端地址访问。", SpringUtils.getApplicationName());
}
+
}
diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index 5465921cb..d2c45eae1 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -120,8 +120,8 @@ redisson:
nettyThreads: 8
# 单节点配置
singleServerConfig:
- # 客户端名称
- clientName: ${ruoyi.name}
+ # 客户端名称 不能用中文
+ clientName: RuoYi-Vue-Plus
# 最小空闲连接数
connectionMinimumIdleSize: 8
# 连接池大小
diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml
index 80c1f969c..1c7eae428 100644
--- a/ruoyi-admin/src/main/resources/application-prod.yml
+++ b/ruoyi-admin/src/main/resources/application-prod.yml
@@ -123,8 +123,8 @@ redisson:
nettyThreads: 32
# 单节点配置
singleServerConfig:
- # 客户端名称
- clientName: ${ruoyi.name}
+ # 客户端名称 不能用中文
+ clientName: RuoYi-Vue-Plus
# 最小空闲连接数
connectionMinimumIdleSize: 32
# 连接池大小
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index dbe16888d..2a134a977 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -1,24 +1,3 @@
-# 项目相关配置
-ruoyi:
- # 名称
- name: RuoYi-Vue-Plus
- # 版本
- version: ${revision}
- # 版权年份
- copyrightYear: 2024
-
-captcha:
- enable: true
- # 页面 <参数设置> 可开启关闭 验证码校验
- # 验证码类型 math 数组计算 char 字符验证
- type: MATH
- # line 线段干扰 circle 圆圈干扰 shear 扭曲干扰
- category: CIRCLE
- # 数字验证码位数
- numberLength: 1
- # 字符验证码长度
- charLength: 4
-
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
@@ -41,6 +20,18 @@ server:
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
worker: 256
+captcha:
+ enable: true
+ # 页面 <参数设置> 可开启关闭 验证码校验
+ # 验证码类型 math 数组计算 char 字符验证
+ type: MATH
+ # line 线段干扰 circle 圆圈干扰 shear 扭曲干扰
+ category: CIRCLE
+ # 数字验证码位数
+ numberLength: 1
+ # 字符验证码长度
+ charLength: 4
+
# 日志配置
logging:
level:
@@ -61,7 +52,7 @@ user:
# Spring配置
spring:
application:
- name: ${ruoyi.name}
+ name: RuoYi-Vue-Plus
threads:
# 开启虚拟线程 仅jdk21可用
virtual:
@@ -191,7 +182,7 @@ springdoc:
# persistAuthorization: true
info:
# 标题
- title: '标题:${ruoyi.name}多租户管理系统_接口文档'
+ title: '标题:RuoYi-Vue-Plus多租户管理系统_接口文档'
# 描述
description: '描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...'
# 版本
diff --git a/ruoyi-admin/src/test/java/org/dromara/test/DemoUnitTest.java b/ruoyi-admin/src/test/java/org/dromara/test/DemoUnitTest.java
index 5b3dfdc91..2d11a10f0 100644
--- a/ruoyi-admin/src/test/java/org/dromara/test/DemoUnitTest.java
+++ b/ruoyi-admin/src/test/java/org/dromara/test/DemoUnitTest.java
@@ -1,6 +1,6 @@
package org.dromara.test;
-import org.dromara.common.core.config.RuoYiConfig;
+import org.dromara.common.web.config.properties.CaptchaProperties;
import org.junit.jupiter.api.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@@ -17,19 +17,19 @@ import java.util.concurrent.TimeUnit;
public class DemoUnitTest {
@Autowired
- private RuoYiConfig ruoYiConfig;
+ private CaptchaProperties captchaProperties;
@DisplayName("测试 @SpringBootTest @Test @DisplayName 注解")
@Test
public void testTest() {
- System.out.println(ruoYiConfig);
+ System.out.println(captchaProperties);
}
@Disabled
@DisplayName("测试 @Disabled 注解")
@Test
public void testDisabled() {
- System.out.println(ruoYiConfig);
+ System.out.println(captchaProperties);
}
@Timeout(value = 2L, unit = TimeUnit.SECONDS)
@@ -37,7 +37,7 @@ public class DemoUnitTest {
@Test
public void testTimeout() throws InterruptedException {
Thread.sleep(3000);
- System.out.println(ruoYiConfig);
+ System.out.println(captchaProperties);
}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/RuoYiConfig.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/RuoYiConfig.java
deleted file mode 100644
index cc0d2dfce..000000000
--- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/RuoYiConfig.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.dromara.common.core.config;
-
-import lombok.Data;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-/**
- * 读取项目相关配置
- *
- * @author Lion Li
- */
-
-@Data
-@Component
-@ConfigurationProperties(prefix = "ruoyi")
-public class RuoYiConfig {
-
- /**
- * 项目名称
- */
- private String name;
-
- /**
- * 版本
- */
- private String version;
-
- /**
- * 版权年份
- */
- private String copyrightYear;
-
-}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 3395e73bd..43c7fcfe0 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/ruoyi-common/ruoyi-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1,6 +1,5 @@
org.dromara.common.core.config.ApplicationConfig
org.dromara.common.core.config.AsyncConfig
-org.dromara.common.core.config.RuoYiConfig
org.dromara.common.core.config.ThreadPoolConfig
org.dromara.common.core.config.ValidatorConfig
org.dromara.common.core.utils.SpringUtils
From 7b679e60e07490eb87e41f3e8a7a14c472111950 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Tue, 25 Feb 2025 17:55:54 +0800
Subject: [PATCH 14/21] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E5=B7=A5?=
=?UTF-8?q?=E4=BD=9C=E6=B5=81=E8=AE=BE=E8=AE=A1=E5=99=A8=E8=8E=B7=E5=8F=96?=
=?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=89=A7=E8=A1=8C=E4=BA=BA=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?=E6=AD=A3=E5=B8=B8=E7=8A=B6=E6=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../system/service/impl/SysTaskAssigneeServiceImpl.java | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java
index 23dd0520c..2fbf2408b 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java
@@ -53,6 +53,7 @@ public class SysTaskAssigneeServiceImpl implements TaskAssigneeService {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
QueryWrapper wrapper = Wrappers.query();
wrapper.eq("r.del_flag", SystemConstants.NORMAL)
+ .eq("r.status", SystemConstants.NORMAL)
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), "r.role_name", taskQuery.getHandlerCode())
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), "r.role_key", taskQuery.getHandlerName())
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()),
@@ -75,6 +76,7 @@ public class SysTaskAssigneeServiceImpl implements TaskAssigneeService {
public TaskAssigneeDTO selectPostsByTaskAssigneeList(TaskAssigneeBody taskQuery) {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery()
+ .eq(SysPost::getStatus, SystemConstants.NORMAL)
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysPost::getPostCategory, taskQuery.getHandlerCode())
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysPost::getPostName, taskQuery.getHandlerName())
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()),
@@ -106,6 +108,7 @@ public class SysTaskAssigneeServiceImpl implements TaskAssigneeService {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery()
.eq(SysDept::getDelFlag, SystemConstants.NORMAL)
+ .eq(SysDept::getStatus, SystemConstants.NORMAL)
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysDept::getDeptCategory, taskQuery.getHandlerCode())
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysDept::getDeptName, taskQuery.getHandlerName())
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()),
@@ -143,6 +146,7 @@ public class SysTaskAssigneeServiceImpl implements TaskAssigneeService {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
QueryWrapper wrapper = Wrappers.query();
wrapper.eq("u.del_flag", SystemConstants.NORMAL)
+ .eq("u.status", SystemConstants.NORMAL)
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), "u.user_name", taskQuery.getHandlerCode())
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), "u.nick_name", taskQuery.getHandlerName())
.between(taskQuery.getBeginTime() != null && taskQuery.getEndTime() != null,
From b537899e62f35de3a35fec86f878ac477a4e40b6 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Tue, 25 Feb 2025 22:18:58 +0800
Subject: [PATCH 15/21] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0warm-flow?=
=?UTF-8?q?=E7=89=88=E6=9C=AC=E5=88=B01.6.7-M1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
.../src/main/resources/application.yml | 8 ++
.../common/core/domain/dto/DeptDTO.java | 1 -
.../common/core/domain/dto/DictDataDTO.java | 41 ++++++
.../common/core/domain/dto/DictTypeDTO.java | 41 ++++++
.../common/core/service/DictService.java | 20 +++
.../service/impl/SysDictTypeServiceImpl.java | 35 ++++-
.../service/impl/FlwNodeExtServiceImpl.java | 125 ++++++++++++++++++
script/sql/ry_workflow.sql | 4 +-
script/sql/update/update_5.3.0-5.3.1.sql | 6 +
10 files changed, 278 insertions(+), 5 deletions(-)
create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DictDataDTO.java
create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DictTypeDTO.java
create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
create mode 100644 script/sql/update/update_5.3.0-5.3.1.sql
diff --git a/pom.xml b/pom.xml
index cc86e9b83..3d8a5c7e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,7 +50,7 @@
8.7.2-20250101
- 1.6.6
+ 1.6.7-M1
3.2.2
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 2a134a977..86deca2b2 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -272,3 +272,11 @@ warm-flow:
ui: true
# 默认Authorization,如果有多个token,用逗号分隔
token-name: ${sa-token.token-name},clientid
+ # 流程状态对应的三元色
+ chart-status-color:
+ ## 未办理
+ - 157,255,0
+ ## 待办理
+ - 0,0,0
+ ## 已办理
+ - 255,200,0
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DeptDTO.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DeptDTO.java
index 65c012faf..7b748b0b5 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DeptDTO.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DeptDTO.java
@@ -11,7 +11,6 @@ import java.io.Serializable;
*
* @author AprilWind
*/
-
@Data
@NoArgsConstructor
public class DeptDTO implements Serializable {
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DictDataDTO.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DictDataDTO.java
new file mode 100644
index 000000000..dff1a75dd
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DictDataDTO.java
@@ -0,0 +1,41 @@
+package org.dromara.common.core.domain.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 字典数据DTO
+ *
+ * @author AprilWind
+ */
+@Data
+@NoArgsConstructor
+public class DictDataDTO implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 字典标签
+ */
+ private String dictLabel;
+
+ /**
+ * 字典键值
+ */
+ private String dictValue;
+
+ /**
+ * 是否默认(Y是 N否)
+ */
+ private String isDefault;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DictTypeDTO.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DictTypeDTO.java
new file mode 100644
index 000000000..43ab142c2
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/DictTypeDTO.java
@@ -0,0 +1,41 @@
+package org.dromara.common.core.domain.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 字典类型DTO
+ *
+ * @author AprilWind
+ */
+@Data
+@NoArgsConstructor
+public class DictTypeDTO implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 字典主键
+ */
+ private Long dictId;
+
+ /**
+ * 字典名称
+ */
+ private String dictName;
+
+ /**
+ * 字典类型
+ */
+ private String dictType;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/DictService.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/DictService.java
index b78a7f257..7c5097764 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/DictService.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/DictService.java
@@ -1,5 +1,9 @@
package org.dromara.common.core.service;
+import org.dromara.common.core.domain.dto.DictDataDTO;
+import org.dromara.common.core.domain.dto.DictTypeDTO;
+
+import java.util.List;
import java.util.Map;
/**
@@ -64,4 +68,20 @@ public interface DictService {
*/
Map getAllDictByDictType(String dictType);
+ /**
+ * 根据字典类型查询详细信息
+ *
+ * @param dictType 字典类型
+ * @return 字典类型详细信息
+ */
+ DictTypeDTO getDictTypeDto(String dictType);
+
+ /**
+ * 根据字典类型查询字典数据列表
+ *
+ * @param dictType 字典类型
+ * @return 字典数据列表
+ */
+ List getDictDataDto(String dictType);
+
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java
index 1be0b7f40..acf2816e8 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java
@@ -1,5 +1,6 @@
package org.dromara.system.service.impl;
+import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -8,6 +9,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames;
+import org.dromara.common.core.domain.dto.DictDataDTO;
+import org.dromara.common.core.domain.dto.DictTypeDTO;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.DictService;
import org.dromara.common.core.utils.MapstructUtils;
@@ -249,10 +252,40 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
}
}
+ /**
+ * 获取字典下所有的字典值与标签
+ *
+ * @param dictType 字典类型
+ * @return dictValue为key,dictLabel为值组成的Map
+ */
@Override
public Map getAllDictByDictType(String dictType) {
- List list = selectDictDataByType(dictType);
+ List list = SpringUtils.getAopProxy(this).selectDictDataByType(dictType);
return StreamUtils.toMap(list, SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel);
}
+ /**
+ * 根据字典类型查询详细信息
+ *
+ * @param dictType 字典类型
+ * @return 字典类型详细信息
+ */
+ @Override
+ public DictTypeDTO getDictTypeDto(String dictType) {
+ SysDictTypeVo vo = SpringUtils.getAopProxy(this).selectDictTypeByType(dictType);
+ return BeanUtil.toBean(vo, DictTypeDTO.class);
+ }
+
+ /**
+ * 根据字典类型查询字典数据列表
+ *
+ * @param dictType 字典类型
+ * @return 字典数据列表
+ */
+ @Override
+ public List getDictDataDto(String dictType) {
+ List list = SpringUtils.getAopProxy(this).selectDictDataByType(dictType);
+ return BeanUtil.copyToList(list, DictDataDTO.class);
+ }
+
}
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
new file mode 100644
index 000000000..fe25268fc
--- /dev/null
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
@@ -0,0 +1,125 @@
+package org.dromara.workflow.service.impl;
+
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.ObjectUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.dto.DictTypeDTO;
+import org.dromara.common.core.service.DictService;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.warm.flow.ui.service.NodeExtService;
+import org.dromara.warm.flow.ui.vo.NodeExt;
+import org.dromara.workflow.common.ConditionalOnEnable;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 流程设计器-节点扩展属性
+ *
+ * @author AprilWind
+ */
+@ConditionalOnEnable
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class FlwNodeExtServiceImpl implements NodeExtService {
+
+ /**
+ * 权限页
+ */
+ private static final String BUTTON_PERMISSION_TAB = "wf_button_tab";
+
+ /**
+ * 权限页页签名称
+ */
+ private static final String LIMITS_OF_AUTHORITY = "权限";
+
+ /**
+ * 字典类型逗号分隔
+ */
+ private static final String DICT_TYPES = "wf_button_permission";
+
+ /**
+ * 基础设置
+ */
+ private static final int TYPE_BASE_SETTING = 1;
+
+ /**
+ * 新页签
+ */
+ private static final int TYPE_NEW_TAB = 2;
+ private final DictService dictService;
+
+ /**
+ * 获取节点扩展属性
+ *
+ * @return 结果
+ */
+ @Override
+ public List getNodeExt() {
+ List nodeExtList = new ArrayList<>();
+ // 构建按钮权限页面
+ nodeExtList.add(buildNodeExt(BUTTON_PERMISSION_TAB, TYPE_NEW_TAB, DICT_TYPES));
+ return nodeExtList;
+ }
+
+ /**
+ * 构建一个 NodeExt 对象
+ *
+ * @param code 编码,此json中唯一
+ * @param type 节点类型,1:基础设置,2:新页签
+ * @return 返回构建好的 NodeExt 对象
+ */
+ private NodeExt buildNodeExt(String code, int type, String dictTypes) {
+ NodeExt nodeExt = new NodeExt();
+ // 从系统参数配置里面获取信息构建新页面或者基础设置
+ // 编码,此json中唯一
+ nodeExt.setCode(code);
+ // 1:基础设置 2:新页签
+ nodeExt.setType(type);
+ // 名称,如果type为新页签时,作为页签名称
+ nodeExt.setName(LIMITS_OF_AUTHORITY);
+ nodeExt.setChilds(StringUtils.splitList(dictTypes)
+ .stream().map(this::buildChildNode).toList()
+ );
+ return nodeExt;
+ }
+
+ /**
+ * 构建一个 ChildNode 对象
+ *
+ * @param dictType 字典类型
+ * @return 返回构建好的 ChildNode 对象
+ */
+ private NodeExt.ChildNode buildChildNode(String dictType) {
+ NodeExt.ChildNode childNode = new NodeExt.ChildNode();
+ if (StringUtils.isBlank(dictType)) {
+ return childNode;
+ }
+ DictTypeDTO dictTypeDTO = dictService.getDictTypeDto(dictType);
+ if (ObjectUtil.isNull(dictTypeDTO)) {
+ return childNode;
+ }
+ // 编码,此json中唯一
+ childNode.setCode(dictType);
+ // label名称
+ childNode.setLabel(dictTypeDTO.getDictName());
+ // 描述
+ childNode.setDesc(dictTypeDTO.getRemark());
+ // 1:输入框 2:输入框 3:下拉框 4:选择框
+ childNode.setType(4);
+ // 是否必填
+ childNode.setMust(false);
+ // 是否多选
+ childNode.setMultiple(true);
+ // 字典,下拉框和复选框时用到
+ childNode.setDict(dictService.getDictDataDto(dictType)
+ .stream().map(x ->
+ new NodeExt.DictItem(x.getDictLabel(), x.getDictValue(), Convert.toBool(x.getIsDefault(), false))
+ ).toList());
+ return childNode;
+ }
+
+}
diff --git a/script/sql/ry_workflow.sql b/script/sql/ry_workflow.sql
index 9455636a0..652f4c084 100644
--- a/script/sql/ry_workflow.sql
+++ b/script/sql/ry_workflow.sql
@@ -24,7 +24,7 @@ CREATE TABLE `flow_definition`
CREATE TABLE `flow_node`
(
- `id` bigint unsigned NOT NULL COMMENT '主键id',
+ `id` bigint NOT NULL COMMENT '主键id',
`node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
`definition_id` bigint NOT NULL COMMENT '流程定义id',
`node_code` varchar(100) NOT NULL COMMENT '流程节点编码',
@@ -32,7 +32,6 @@ CREATE TABLE `flow_node`
`permission_flag` varchar(200) DEFAULT NULL COMMENT '权限标识(权限类型:权限标识,可以多个,用逗号隔开)',
`node_ratio` decimal(6, 3) DEFAULT NULL COMMENT '流程签署比例值',
`coordinate` varchar(100) DEFAULT NULL COMMENT '坐标',
- `skip_any_node` varchar(100) DEFAULT 'N' COMMENT '是否可以退回任意节点(Y是 N否)即将删除',
`any_node_skip` varchar(100) DEFAULT NULL COMMENT '任意结点跳转',
`listener_type` varchar(100) DEFAULT NULL COMMENT '监听器类型',
`listener_path` varchar(400) DEFAULT NULL COMMENT '监听器路径',
@@ -43,6 +42,7 @@ CREATE TABLE `flow_node`
`version` varchar(20) NOT NULL COMMENT '版本',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ `ext` text COMMENT '扩展属性',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
`tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
diff --git a/script/sql/update/update_5.3.0-5.3.1.sql b/script/sql/update/update_5.3.0-5.3.1.sql
new file mode 100644
index 000000000..8c313b25b
--- /dev/null
+++ b/script/sql/update/update_5.3.0-5.3.1.sql
@@ -0,0 +1,6 @@
+ALTER TABLE `flow_node` DROP COLUMN `skip_any_node`;
+ALTER TABLE `flow_node`
+ ADD COLUMN `ext` text NULL COMMENT '扩展属性' AFTER `update_time`;
+
+INSERT INTO sys_dict_type VALUES (16, '000000', '按钮权限', 'wf_button_permission', 103, 1, sysdate(), NULL, NULL, '按钮权限列表');
+INSERT INTO sys_dict_data VALUES (60, '000000', 1, '是否弹窗选人', '1', 'wf_button_permission', '', 'default', 'N', 103, 1, sysdate(), NULL, NULL,'是否弹窗选人');
From 0673cf88491ce394810e2176b035a1b62a7270cf Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Tue, 25 Feb 2025 22:56:27 +0800
Subject: [PATCH 16/21] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E6=B5=81?=
=?UTF-8?q?=E7=A8=8B=E8=AE=BE=E8=AE=A1=E5=99=A8-=E8=8A=82=E7=82=B9?=
=?UTF-8?q?=E6=89=A9=E5=B1=95=E5=B1=9E=E6=80=A7=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../service/impl/FlwNodeExtServiceImpl.java | 43 ++++++++++++-------
1 file changed, 27 insertions(+), 16 deletions(-)
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
index fe25268fc..f7e58ed70 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
@@ -13,7 +13,9 @@ import org.dromara.workflow.common.ConditionalOnEnable;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* 流程设计器-节点扩展属性
@@ -27,14 +29,14 @@ import java.util.List;
public class FlwNodeExtServiceImpl implements NodeExtService {
/**
- * 权限页
+ * 权限页code
*/
- private static final String BUTTON_PERMISSION_TAB = "wf_button_tab";
+ private static final String PERMISSION_TAB = "wf_button_tab";
/**
- * 权限页页签名称
+ * 权限页名称
*/
- private static final String LIMITS_OF_AUTHORITY = "权限";
+ private static final String PERMISSION_TAB_NAME = "权限";
/**
* 字典类型逗号分隔
@@ -50,6 +52,16 @@ public class FlwNodeExtServiceImpl implements NodeExtService {
* 新页签
*/
private static final int TYPE_NEW_TAB = 2;
+
+ /**
+ * 存储不同 dictType 对应的配置信息
+ */
+ private static final Map> CHILD_NODE_MAP = new HashMap<>();
+
+ static {
+ CHILD_NODE_MAP.put("wf_button_permission", Map.of("type", 4, "must", false, "multiple", true));
+ }
+
private final DictService dictService;
/**
@@ -61,26 +73,24 @@ public class FlwNodeExtServiceImpl implements NodeExtService {
public List getNodeExt() {
List nodeExtList = new ArrayList<>();
// 构建按钮权限页面
- nodeExtList.add(buildNodeExt(BUTTON_PERMISSION_TAB, TYPE_NEW_TAB, DICT_TYPES));
+ nodeExtList.add(buildNodeExt(PERMISSION_TAB, PERMISSION_TAB_NAME, TYPE_NEW_TAB, DICT_TYPES));
return nodeExtList;
}
/**
* 构建一个 NodeExt 对象
*
- * @param code 编码,此json中唯一
- * @param type 节点类型,1:基础设置,2:新页签
+ * @param code 编码,此json中唯一
+ * @param name 名称,如果type为新页签时,作为页签名称
+ * @param type 节点类型,1:基础设置,2:新页签
+ * @param dictTypes 字典类型逗号分隔
* @return 返回构建好的 NodeExt 对象
*/
- private NodeExt buildNodeExt(String code, int type, String dictTypes) {
+ private NodeExt buildNodeExt(String code, String name, int type, String dictTypes) {
NodeExt nodeExt = new NodeExt();
- // 从系统参数配置里面获取信息构建新页面或者基础设置
- // 编码,此json中唯一
nodeExt.setCode(code);
- // 1:基础设置 2:新页签
nodeExt.setType(type);
- // 名称,如果type为新页签时,作为页签名称
- nodeExt.setName(LIMITS_OF_AUTHORITY);
+ nodeExt.setName(name);
nodeExt.setChilds(StringUtils.splitList(dictTypes)
.stream().map(this::buildChildNode).toList()
);
@@ -108,12 +118,13 @@ public class FlwNodeExtServiceImpl implements NodeExtService {
childNode.setLabel(dictTypeDTO.getDictName());
// 描述
childNode.setDesc(dictTypeDTO.getRemark());
+ Map map = CHILD_NODE_MAP.get(dictType);
// 1:输入框 2:输入框 3:下拉框 4:选择框
- childNode.setType(4);
+ childNode.setType(Convert.toInt(map.get("type"), 1));
// 是否必填
- childNode.setMust(false);
+ childNode.setMust(Convert.toBool(map.get("must"), false));
// 是否多选
- childNode.setMultiple(true);
+ childNode.setMultiple(Convert.toBool(map.get("multiple"), true));
// 字典,下拉框和复选框时用到
childNode.setDict(dictService.getDictDataDto(dictType)
.stream().map(x ->
From 319a89e3205f7a49a810c3ac8efb021884cf55ab 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: Tue, 25 Feb 2025 23:39:02 +0800
Subject: [PATCH 17/21] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20oracle=20?=
=?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=AD=97=E5=85=B8=E6=8A=A5=E9=94=99=E9=97=AE?=
=?UTF-8?q?=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dromara/system/service/impl/SysTenantServiceImpl.java | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
index b2f4872be..a73415c64 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
@@ -448,6 +448,9 @@ public class SysTenantServiceImpl implements ISysTenantService {
data.setTenantId(tenantId);
data.setCreateTime(null);
data.setUpdateTime(null);
+ data.setCreateDept(null);
+ data.setCreateBy(null);
+ data.setUpdateBy(null);
set.add(tenantId);
saveDataList.add(data);
}
@@ -469,6 +472,9 @@ public class SysTenantServiceImpl implements ISysTenantService {
data.setTenantId(tenantId);
data.setCreateTime(null);
data.setUpdateTime(null);
+ data.setCreateDept(null);
+ data.setCreateBy(null);
+ data.setUpdateBy(null);
set.add(tenantId);
saveDataList.add(data);
}
From 71180584dab104c40351f87ef4cf8070d4201535 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Wed, 26 Feb 2025 09:54:20 +0800
Subject: [PATCH 18/21] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E6=A0=B9?=
=?UTF-8?q?=E6=8D=AE=E5=AD=97=E5=85=B8=E7=B1=BB=E5=9E=8B=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=A2=9E=E5=8A=A0=E4=B8=80=E7=BA=A7=E7=BC=93?=
=?UTF-8?q?=E5=AD=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/org/dromara/common/core/constant/CacheNames.java | 5 +++++
.../dromara/system/service/impl/SysDictTypeServiceImpl.java | 4 ++++
2 files changed, 9 insertions(+)
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java
index bf8efc550..519034cf2 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java
@@ -30,6 +30,11 @@ public interface CacheNames {
*/
String SYS_DICT = "sys_dict";
+ /**
+ * 数据字典类型
+ */
+ String SYS_DICT_TYPE = "sys_dict_type";
+
/**
* 租户
*/
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java
index acf2816e8..9d80d50e4 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java
@@ -124,6 +124,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
* @param dictType 字典类型
* @return 字典类型
*/
+ @Cacheable(cacheNames = CacheNames.SYS_DICT_TYPE, key = "#dictType")
@Override
public SysDictTypeVo selectDictTypeByType(String dictType) {
return baseMapper.selectVoOne(new LambdaQueryWrapper().eq(SysDictType::getDictType, dictType));
@@ -143,6 +144,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
throw new ServiceException(String.format("%1$s已分配,不能删除", dictType.getDictName()));
}
CacheUtils.evict(CacheNames.SYS_DICT, dictType.getDictType());
+ CacheUtils.evict(CacheNames.SYS_DICT_TYPE, dictType.getDictType());
}
baseMapper.deleteByIds(Arrays.asList(dictIds));
}
@@ -153,6 +155,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
@Override
public void resetDictCache() {
CacheUtils.clear(CacheNames.SYS_DICT);
+ CacheUtils.clear(CacheNames.SYS_DICT_TYPE);
}
/**
@@ -191,6 +194,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
int row = baseMapper.updateById(dict);
if (row > 0) {
CacheUtils.evict(CacheNames.SYS_DICT, oldDict.getDictType());
+ CacheUtils.evict(CacheNames.SYS_DICT_TYPE, oldDict.getDictType());
return dictDataMapper.selectDictDataByType(dict.getDictType());
}
throw new ServiceException("操作失败");
From 8763bfa3d32b91ca24d9c572ad5a9a5ee46bd6a2 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Thu, 27 Feb 2025 17:31:08 +0800
Subject: [PATCH 19/21] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E5=88=A0?=
=?UTF-8?q?=E9=99=A4=E6=97=A0=E7=94=A8=E6=8E=92=E9=99=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-admin/src/main/resources/application.yml | 1 -
1 file changed, 1 deletion(-)
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 86deca2b2..76ed0d695 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -219,7 +219,6 @@ xss:
# 排除链接(多个用逗号分隔)
excludeUrls:
- /system/notice
- - /warm-flow/save-xml
# 全局线程池相关配置
# 如使用JDK21请直接使用虚拟线程 不要开启此配置
From c0e0b41d13a4d2cc95c697ac3dfc90447f74ac38 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Fri, 28 Feb 2025 12:05:35 +0800
Subject: [PATCH 20/21] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0warm-flow?=
=?UTF-8?q?=E7=89=88=E6=9C=AC=E5=88=B01.6.7-M2,=E6=9D=83=E9=99=90=E6=8C=89?=
=?UTF-8?q?=E9=92=AE=E6=94=B9=E4=B8=BA=E6=9E=9A=E4=B8=BE=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
.../common/enums/ButtonPermissionEnum.java | 30 +++++
.../workflow/common/enums/NodeExtEnum.java | 26 +++++
.../service/impl/FlwNodeExtServiceImpl.java | 110 +++++++++++++-----
4 files changed, 139 insertions(+), 29 deletions(-)
create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java
create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/NodeExtEnum.java
diff --git a/pom.xml b/pom.xml
index 3d8a5c7e3..8bde7d395 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,7 +50,7 @@
8.7.2-20250101
- 1.6.7-M1
+ 1.6.7-M2
3.2.2
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java
new file mode 100644
index 000000000..6bc818c4c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java
@@ -0,0 +1,30 @@
+package org.dromara.workflow.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 按钮权限枚举
+ *
+ * @author AprilWind
+ */
+@Getter
+@AllArgsConstructor
+public enum ButtonPermissionEnum implements NodeExtEnum {
+
+ /**
+ * 是否弹窗选人
+ */
+ APPROVE("是否弹窗选人", "1", false),
+
+ /**
+ * 是否能委托
+ */
+ REJECT("是否能委托", "2", false);
+
+ private final String label;
+ private final String value;
+ private final boolean selected;
+
+}
+
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/NodeExtEnum.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/NodeExtEnum.java
new file mode 100644
index 000000000..dfa9e9a99
--- /dev/null
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/NodeExtEnum.java
@@ -0,0 +1,26 @@
+package org.dromara.workflow.common.enums;
+
+/**
+ * 节点扩展属性枚举
+ *
+ * @author AprilWind
+ */
+public interface NodeExtEnum {
+
+ /**
+ * 选项label
+ */
+ String getLabel();
+
+ /**
+ * 选项值
+ */
+ String getValue();
+
+ /**
+ * 是否默认选中
+ */
+ boolean isSelected();
+
+}
+
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
index f7e58ed70..0b4d4b790 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
@@ -10,12 +10,11 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.warm.flow.ui.service.NodeExtService;
import org.dromara.warm.flow.ui.vo.NodeExt;
import org.dromara.workflow.common.ConditionalOnEnable;
+import org.dromara.workflow.common.enums.ButtonPermissionEnum;
+import org.dromara.workflow.common.enums.NodeExtEnum;
import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* 流程设计器-节点扩展属性
@@ -39,9 +38,9 @@ public class FlwNodeExtServiceImpl implements NodeExtService {
private static final String PERMISSION_TAB_NAME = "权限";
/**
- * 字典类型逗号分隔
+ * 枚举类型标识
*/
- private static final String DICT_TYPES = "wf_button_permission";
+ private static final String ENUM_TYPE_PREFIX = "enum:";
/**
* 基础设置
@@ -59,7 +58,8 @@ public class FlwNodeExtServiceImpl implements NodeExtService {
private static final Map> CHILD_NODE_MAP = new HashMap<>();
static {
- CHILD_NODE_MAP.put("wf_button_permission", Map.of("type", 4, "must", false, "multiple", true));
+ CHILD_NODE_MAP.put(ButtonPermissionEnum.class.getName(),
+ Map.of("label", "权限按钮", "type", 4, "must", false, "multiple", true));
}
private final DictService dictService;
@@ -73,26 +73,29 @@ public class FlwNodeExtServiceImpl implements NodeExtService {
public List getNodeExt() {
List nodeExtList = new ArrayList<>();
// 构建按钮权限页面
- nodeExtList.add(buildNodeExt(PERMISSION_TAB, PERMISSION_TAB_NAME, TYPE_NEW_TAB, DICT_TYPES));
+ nodeExtList.add(buildNodeExt(PERMISSION_TAB, PERMISSION_TAB_NAME, TYPE_NEW_TAB,
+ ENUM_TYPE_PREFIX + ButtonPermissionEnum.class.getName()));
return nodeExtList;
}
/**
* 构建一个 NodeExt 对象
*
- * @param code 编码,此json中唯一
- * @param name 名称,如果type为新页签时,作为页签名称
- * @param type 节点类型,1:基础设置,2:新页签
- * @param dictTypes 字典类型逗号分隔
+ * @param code 编码,此json中唯一
+ * @param name 名称,如果type为新页签时,作为页签名称
+ * @param type 节点类型,1:基础设置,2:新页签
+ * @param sourceTypes 字典/枚举类型来源(逗号分隔)
* @return 返回构建好的 NodeExt 对象
*/
- private NodeExt buildNodeExt(String code, String name, int type, String dictTypes) {
+ private NodeExt buildNodeExt(String code, String name, int type, String sourceTypes) {
NodeExt nodeExt = new NodeExt();
nodeExt.setCode(code);
nodeExt.setType(type);
nodeExt.setName(name);
- nodeExt.setChilds(StringUtils.splitList(dictTypes)
- .stream().map(this::buildChildNode).toList()
+ nodeExt.setChilds(StringUtils.splitList(sourceTypes)
+ .stream().map(this::buildChildNode)
+ .filter(ObjectUtil::isNotNull)
+ .toList()
);
return nodeExt;
}
@@ -100,31 +103,61 @@ public class FlwNodeExtServiceImpl implements NodeExtService {
/**
* 构建一个 ChildNode 对象
*
+ * @param sourceType 字典类型
+ * @return 返回构建好的 ChildNode 对象
+ */
+ private NodeExt.ChildNode buildChildNode(String sourceType) {
+ return sourceType.startsWith(ENUM_TYPE_PREFIX) ?
+ buildChildNodeFromEnum(sourceType.substring(ENUM_TYPE_PREFIX.length())) : buildChildNodeFromDict(sourceType);
+ }
+
+ /**
+ * 根据枚举构建一个 ChildNode 对象
+ *
+ * @param enumClassName 枚举名称
+ * @return 返回构建好的 ChildNode 对象
+ */
+ private NodeExt.ChildNode buildChildNodeFromEnum(String enumClassName) {
+ try {
+ Class> enumClass = Class.forName(enumClassName);
+ if (!enumClass.isEnum()) {
+ return null;
+ }
+ NodeExt.ChildNode childNode = buildChildNodeMap(enumClassName);
+ // 编码,此json中唯
+ childNode.setCode(ENUM_TYPE_PREFIX + enumClassName);
+ // 字典,下拉框和复选框时用到
+ childNode.setDict(Arrays.stream(enumClass.getEnumConstants())
+ .filter(NodeExtEnum.class::isInstance)
+ .map(NodeExtEnum.class::cast)
+ .map(x ->
+ new NodeExt.DictItem(x.getLabel(), x.getValue(), x.isSelected())
+ ).toList());
+ return childNode;
+ } catch (ClassNotFoundException e) {
+ log.error("Enum class not found: {}", enumClassName, e);
+ }
+ return null;
+ }
+
+ /**
+ * 根据字典构建一个 ChildNode 对象
+ *
* @param dictType 字典类型
* @return 返回构建好的 ChildNode 对象
*/
- private NodeExt.ChildNode buildChildNode(String dictType) {
- NodeExt.ChildNode childNode = new NodeExt.ChildNode();
- if (StringUtils.isBlank(dictType)) {
- return childNode;
- }
+ private NodeExt.ChildNode buildChildNodeFromDict(String dictType) {
DictTypeDTO dictTypeDTO = dictService.getDictTypeDto(dictType);
if (ObjectUtil.isNull(dictTypeDTO)) {
- return childNode;
+ return null;
}
+ NodeExt.ChildNode childNode = buildChildNodeMap(dictType);
// 编码,此json中唯一
childNode.setCode(dictType);
// label名称
childNode.setLabel(dictTypeDTO.getDictName());
// 描述
childNode.setDesc(dictTypeDTO.getRemark());
- Map map = CHILD_NODE_MAP.get(dictType);
- // 1:输入框 2:输入框 3:下拉框 4:选择框
- childNode.setType(Convert.toInt(map.get("type"), 1));
- // 是否必填
- childNode.setMust(Convert.toBool(map.get("must"), false));
- // 是否多选
- childNode.setMultiple(Convert.toBool(map.get("multiple"), true));
// 字典,下拉框和复选框时用到
childNode.setDict(dictService.getDictDataDto(dictType)
.stream().map(x ->
@@ -133,4 +166,25 @@ public class FlwNodeExtServiceImpl implements NodeExtService {
return childNode;
}
+ /**
+ * 根据 CHILD_NODE_MAP 中的配置信息,构建一个基本的 ChildNode 对象
+ * 该方法用于设置 ChildNode 的常规属性,例如 label、type、是否必填、是否多选等
+ *
+ * @param key CHILD_NODE_MAP 的 key
+ * @return 返回构建好的 ChildNode 对象
+ */
+ private NodeExt.ChildNode buildChildNodeMap(String key) {
+ NodeExt.ChildNode childNode = new NodeExt.ChildNode();
+ Map map = CHILD_NODE_MAP.get(key);
+ // label名称
+ childNode.setLabel((String) map.get("label"));
+ // 1:输入框 2:输入框 3:下拉框 4:选择框
+ childNode.setType(Convert.toInt(map.get("type"), 1));
+ // 是否必填
+ childNode.setMust(Convert.toBool(map.get("must"), false));
+ // 是否多选
+ childNode.setMultiple(Convert.toBool(map.get("multiple"), true));
+ return childNode;
+ }
+
}
From 2623d0b3438f247b0c3c68bfcd26d387215da9ec Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Fri, 28 Feb 2025 14:46:59 +0800
Subject: [PATCH 21/21] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E6=B3=A8?=
=?UTF-8?q?=E9=87=8A=E9=94=99=E8=AF=AF=EF=BC=8C=E8=A1=A5=E5=85=85=E6=B3=A8?=
=?UTF-8?q?=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../main/java/org/dromara/common/core/domain/dto/RoleDTO.java | 2 +-
.../src/main/java/org/dromara/system/domain/SysRole.java | 2 +-
.../src/main/java/org/dromara/system/domain/bo/SysRoleBo.java | 2 +-
.../src/main/java/org/dromara/system/domain/vo/SysRoleVo.java | 4 ++--
script/sql/oracle/oracle_ry_vue_5.X.sql | 2 +-
script/sql/postgres/postgres_ry_vue_5.X.sql | 2 +-
script/sql/ry_vue_5.X.sql | 2 +-
script/sql/sqlserver/sqlserver_ry_vue_5.X.sql | 2 +-
8 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/RoleDTO.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/RoleDTO.java
index aea8e7a9d..d14ffbb0f 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/RoleDTO.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/RoleDTO.java
@@ -35,7 +35,7 @@ public class RoleDTO implements Serializable {
private String roleKey;
/**
- * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)
+ * 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:部门及以下或本人数据权限)
*/
private String dataScope;
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java
index a7c0ad5a0..aa1b19a4f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java
@@ -42,7 +42,7 @@ public class SysRole extends TenantEntity {
private Integer roleSort;
/**
- * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)
+ * 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:部门及以下或本人数据权限)
*/
private String dataScope;
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java
index 3207bad1e..5e3e60260 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java
@@ -49,7 +49,7 @@ public class SysRoleBo extends BaseEntity {
private Integer roleSort;
/**
- * 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)
+ * 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:部门及以下或本人数据权限)
*/
private String dataScope;
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java
index ffb2c6d5a..1913170ed 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java
@@ -51,10 +51,10 @@ public class SysRoleVo implements Serializable {
private Integer roleSort;
/**
- * 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)
+ * 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:部门及以下或本人数据权限)
*/
@ExcelProperty(value = "数据范围", converter = ExcelDictConvert.class)
- @ExcelDictFormat(readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
+ @ExcelDictFormat(readConverterExp = "1=全部数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限,6=部门及以下或本人数据权限")
private String dataScope;
/**
diff --git a/script/sql/oracle/oracle_ry_vue_5.X.sql b/script/sql/oracle/oracle_ry_vue_5.X.sql
index 8390bceef..a1c1d99e1 100644
--- a/script/sql/oracle/oracle_ry_vue_5.X.sql
+++ b/script/sql/oracle/oracle_ry_vue_5.X.sql
@@ -352,7 +352,7 @@ comment on column sys_role.tenant_id is '租户编号';
comment on column sys_role.role_name is '角色名称';
comment on column sys_role.role_key is '角色权限字符串';
comment on column sys_role.role_sort is '显示顺序';
-comment on column sys_role.data_scope is '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)';
+comment on column sys_role.data_scope is '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:部门及以下或本人数据权限)';
comment on column sys_role.menu_check_strictly is '菜单树选择项是否关联显示';
comment on column sys_role.dept_check_strictly is '部门树选择项是否关联显示';
comment on column sys_role.status is '角色状态(0正常 1停用)';
diff --git a/script/sql/postgres/postgres_ry_vue_5.X.sql b/script/sql/postgres/postgres_ry_vue_5.X.sql
index 463896625..22c60650b 100644
--- a/script/sql/postgres/postgres_ry_vue_5.X.sql
+++ b/script/sql/postgres/postgres_ry_vue_5.X.sql
@@ -353,7 +353,7 @@ comment on column sys_role.tenant_id is '租户编号';
comment on column sys_role.role_name is '角色名称';
comment on column sys_role.role_key is '角色权限字符串';
comment on column sys_role.role_sort is '显示顺序';
-comment on column sys_role.data_scope is '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)';
+comment on column sys_role.data_scope is '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:部门及以下或本人数据权限)';
comment on column sys_role.menu_check_strictly is '菜单树选择项是否关联显示';
comment on column sys_role.dept_check_strictly is '部门树选择项是否关联显示';
comment on column sys_role.status is '角色状态(0正常 1停用)';
diff --git a/script/sql/ry_vue_5.X.sql b/script/sql/ry_vue_5.X.sql
index 95cb04cea..f2167fa30 100644
--- a/script/sql/ry_vue_5.X.sql
+++ b/script/sql/ry_vue_5.X.sql
@@ -208,7 +208,7 @@ create table sys_role (
role_name varchar(30) not null comment '角色名称',
role_key varchar(100) not null comment '角色权限字符串',
role_sort int(4) not null comment '显示顺序',
- data_scope char(1) default '1' comment '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)',
+ data_scope char(1) default '1' comment '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:部门及以下或本人数据权限)',
menu_check_strictly tinyint(1) default 1 comment '菜单树选择项是否关联显示',
dept_check_strictly tinyint(1) default 1 comment '部门树选择项是否关联显示',
status char(1) not null comment '角色状态(0正常 1停用)',
diff --git a/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql b/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
index 6fdba1e0d..c6d2960d5 100644
--- a/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
+++ b/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
@@ -2318,7 +2318,7 @@ EXEC sys.sp_addextendedproperty
'COLUMN', N'role_sort'
GO
EXEC sys.sp_addextendedproperty
- 'MS_Description', N'数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)' ,
+ 'MS_Description', N'数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:部门及以下或本人数据权限)' ,
'SCHEMA', N'dbo',
'TABLE', N'sys_role',
'COLUMN', N'data_scope'