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 | 27 | <artifactId>yudao-spring-boot-starter-flowable</artifactId> |
| 28 | 28 | </dependency> |
| 29 | 29 | <dependency> |
| 30 | + <groupId>cn.iocoder.boot</groupId> | |
| 31 | + <artifactId>yudao-spring-boot-starter-biz-data-permission</artifactId> | |
| 32 | + </dependency> | |
| 33 | + <dependency> | |
| 30 | 34 | <groupId>org.flowable</groupId> |
| 31 | 35 | <artifactId>flowable-spring-boot-starter-actuator</artifactId> |
| 32 | 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 | 4 | import cn.hutool.core.util.RandomUtil; |
| 5 | 5 | import cn.hutool.core.util.StrUtil; |
| 6 | 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 | 9 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO; |
| 8 | 10 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; |
| 9 | 11 | import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; |
| ... | ... | @@ -183,6 +185,7 @@ public class BpmUserTaskActivityBehavior extends UserTaskActivityBehavior { |
| 183 | 185 | if (CollUtil.isEmpty(assigneeUserIds)) { |
| 184 | 186 | return; |
| 185 | 187 | } |
| 188 | + //TODO 芋艿 这里有数据权限的问题。默认会加上数据权限 dept_id IN (deptId). 导致查询不到数据 | |
| 186 | 189 | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(assigneeUserIds); |
| 187 | 190 | assigneeUserIds.removeIf(id -> { |
| 188 | 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 | 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 | 5 | import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; |
| 4 | 6 | import org.flowable.task.service.impl.persistence.entity.TaskEntity; |
| 5 | 7 | import org.springframework.stereotype.Component; |
| ... | ... | @@ -15,6 +17,7 @@ import java.util.Set; |
| 15 | 17 | public class BpmTaskAssignLeaderX1Script extends BpmTaskAssignLeaderAbstractScript { |
| 16 | 18 | |
| 17 | 19 | @Override |
| 20 | + @DataPermission(excludeRules = DeptDataPermissionRule.class) | |
| 18 | 21 | public Set<Long> calculateTaskCandidateUsers(TaskEntity task) { |
| 19 | 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 | 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 | 5 | import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; |
| 4 | 6 | import org.flowable.task.service.impl.persistence.entity.TaskEntity; |
| 5 | 7 | import org.springframework.stereotype.Component; |
| ... | ... | @@ -14,7 +16,10 @@ import java.util.Set; |
| 14 | 16 | @Component |
| 15 | 17 | public class BpmTaskAssignLeaderX2Script extends BpmTaskAssignLeaderAbstractScript { |
| 16 | 18 | |
| 19 | + | |
| 17 | 20 | @Override |
| 21 | + //不需要处理数据权限, 不然会有问题,查询不到数据 | |
| 22 | + @DataPermission(excludeRules = DeptDataPermissionRule.class) | |
| 18 | 23 | public Set<Long> calculateTaskCandidateUsers(TaskEntity task) { |
| 19 | 24 | return calculateTaskCandidateUsers(task, 2); |
| 20 | 25 | } | ... | ... |