Commit 1f08a2725e337233d2c9719f8c04deea622a92de
1 parent
e01acfb1
工作流 Flowable 分配leader 审批脚本 数据权限问题
Showing
4 changed files
with
15 additions
and
0 deletions
yudao-module-bpm/yudao-module-bpm-impl-flowable/pom.xml
| @@ -27,6 +27,10 @@ | @@ -27,6 +27,10 @@ | ||
| 27 | <artifactId>yudao-spring-boot-starter-flowable</artifactId> | 27 | <artifactId>yudao-spring-boot-starter-flowable</artifactId> |
| 28 | </dependency> | 28 | </dependency> |
| 29 | <dependency> | 29 | <dependency> |
| 30 | + <groupId>cn.iocoder.boot</groupId> | ||
| 31 | + <artifactId>yudao-spring-boot-starter-biz-data-permission</artifactId> | ||
| 32 | + </dependency> | ||
| 33 | + <dependency> | ||
| 30 | <groupId>org.flowable</groupId> | 34 | <groupId>org.flowable</groupId> |
| 31 | <artifactId>flowable-spring-boot-starter-actuator</artifactId> | 35 | <artifactId>flowable-spring-boot-starter-actuator</artifactId> |
| 32 | </dependency> | 36 | </dependency> |
yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmUserTaskActivityBehavior.java
| @@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil; | @@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil; | ||
| 4 | import cn.hutool.core.util.RandomUtil; | 4 | import cn.hutool.core.util.RandomUtil; |
| 5 | import cn.hutool.core.util.StrUtil; | 5 | import cn.hutool.core.util.StrUtil; |
| 6 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 6 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 7 | +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; | ||
| 8 | +import cn.iocoder.yudao.framework.datapermission.core.dept.rule.DeptDataPermissionRule; | ||
| 7 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO; | 9 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO; |
| 8 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; | 10 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; |
| 9 | import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; | 11 | import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; |
| @@ -183,6 +185,7 @@ public class BpmUserTaskActivityBehavior extends UserTaskActivityBehavior { | @@ -183,6 +185,7 @@ public class BpmUserTaskActivityBehavior extends UserTaskActivityBehavior { | ||
| 183 | if (CollUtil.isEmpty(assigneeUserIds)) { | 185 | if (CollUtil.isEmpty(assigneeUserIds)) { |
| 184 | return; | 186 | return; |
| 185 | } | 187 | } |
| 188 | + //TODO 芋艿 这里有数据权限的问题。默认会加上数据权限 dept_id IN (deptId). 导致查询不到数据 | ||
| 186 | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(assigneeUserIds); | 189 | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(assigneeUserIds); |
| 187 | assigneeUserIds.removeIf(id -> { | 190 | assigneeUserIds.removeIf(id -> { |
| 188 | AdminUserRespDTO user = userMap.get(id); | 191 | AdminUserRespDTO user = userMap.get(id); |
yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderX1Script.java
| 1 | package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.impl; | 1 | package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.impl; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; | ||
| 4 | +import cn.iocoder.yudao.framework.datapermission.core.dept.rule.DeptDataPermissionRule; | ||
| 3 | import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; | 5 | import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; |
| 4 | import org.flowable.task.service.impl.persistence.entity.TaskEntity; | 6 | import org.flowable.task.service.impl.persistence.entity.TaskEntity; |
| 5 | import org.springframework.stereotype.Component; | 7 | import org.springframework.stereotype.Component; |
| @@ -15,6 +17,7 @@ import java.util.Set; | @@ -15,6 +17,7 @@ import java.util.Set; | ||
| 15 | public class BpmTaskAssignLeaderX1Script extends BpmTaskAssignLeaderAbstractScript { | 17 | public class BpmTaskAssignLeaderX1Script extends BpmTaskAssignLeaderAbstractScript { |
| 16 | 18 | ||
| 17 | @Override | 19 | @Override |
| 20 | + @DataPermission(excludeRules = DeptDataPermissionRule.class) | ||
| 18 | public Set<Long> calculateTaskCandidateUsers(TaskEntity task) { | 21 | public Set<Long> calculateTaskCandidateUsers(TaskEntity task) { |
| 19 | return calculateTaskCandidateUsers(task, 1); | 22 | return calculateTaskCandidateUsers(task, 1); |
| 20 | } | 23 | } |
yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderX2Script.java
| 1 | package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.impl; | 1 | package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.impl; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; | ||
| 4 | +import cn.iocoder.yudao.framework.datapermission.core.dept.rule.DeptDataPermissionRule; | ||
| 3 | import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; | 5 | import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; |
| 4 | import org.flowable.task.service.impl.persistence.entity.TaskEntity; | 6 | import org.flowable.task.service.impl.persistence.entity.TaskEntity; |
| 5 | import org.springframework.stereotype.Component; | 7 | import org.springframework.stereotype.Component; |
| @@ -14,7 +16,10 @@ import java.util.Set; | @@ -14,7 +16,10 @@ import java.util.Set; | ||
| 14 | @Component | 16 | @Component |
| 15 | public class BpmTaskAssignLeaderX2Script extends BpmTaskAssignLeaderAbstractScript { | 17 | public class BpmTaskAssignLeaderX2Script extends BpmTaskAssignLeaderAbstractScript { |
| 16 | 18 | ||
| 19 | + | ||
| 17 | @Override | 20 | @Override |
| 21 | + //不需要处理数据权限, 不然会有问题,查询不到数据 | ||
| 22 | + @DataPermission(excludeRules = DeptDataPermissionRule.class) | ||
| 18 | public Set<Long> calculateTaskCandidateUsers(TaskEntity task) { | 23 | public Set<Long> calculateTaskCandidateUsers(TaskEntity task) { |
| 19 | return calculateTaskCandidateUsers(task, 2); | 24 | return calculateTaskCandidateUsers(task, 2); |
| 20 | } | 25 | } |