diff --git a/healthlink-his-server/core-flowable/src/main/java/com/core/flowable/service/impl/FlowTaskServiceImpl.java b/healthlink-his-server/core-flowable/src/main/java/com/core/flowable/service/impl/FlowTaskServiceImpl.java index a5408ac95..1ffb2de6c 100755 --- a/healthlink-his-server/core-flowable/src/main/java/com/core/flowable/service/impl/FlowTaskServiceImpl.java +++ b/healthlink-his-server/core-flowable/src/main/java/com/core/flowable/service/impl/FlowTaskServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.entity.SysRole; import com.core.common.core.domain.entity.SysUser; +import com.core.common.core.domain.model.LoginUser; import com.core.common.exception.CustomException; import com.core.common.utils.SecurityUtils; import com.core.flowable.common.constant.ProcessConstants; @@ -629,11 +630,20 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask public AjaxResult todoList(FlowQueryVo queryVo) { Page page = new Page<>(); // 只查看自己的数据 - SysUser sysUser = SecurityUtils.getLoginUser().getUser(); + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser == null) { + return AjaxResult.success(page); + } + SysUser sysUser = loginUser.getUser(); + List roleIds = sysUser.getRoles() != null + ? sysUser.getRoles().stream().map(role -> role.getRoleId().toString()).collect(Collectors.toList()) + : Collections.emptyList(); TaskQuery taskQuery = taskService.createTaskQuery().active().includeProcessVariables() - .taskCandidateGroupIn( - sysUser.getRoles().stream().map(role -> role.getRoleId().toString()).collect(Collectors.toList())) - .taskCandidateOrAssigned(sysUser.getUserId().toString()).orderByTaskCreateTime().desc(); + .taskCandidateOrAssigned(sysUser.getUserId().toString()); + if (!roleIds.isEmpty()) { + taskQuery.taskCandidateGroupIn(roleIds); + } + taskQuery.orderByTaskCreateTime().desc(); // TODO 传入名称查询不到数据? if (StringUtils.isNotBlank(queryVo.getName())) {