Commit 1f08a2725e337233d2c9719f8c04deea622a92de

Authored by jason
1 parent e01acfb1

工作流 Flowable 分配leader 审批脚本 数据权限问题

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 }
... ...