From 4b2d55f339f4a8a91e6f08cc2318fbb9427943d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= <2270033969@qq.com> Date: Wed, 10 Jul 2024 22:04:37 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20#5779=20=E3=80=90=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E3=80=91=E5=AE=A1=E6=89=B9=E9=83=A8=E9=97=A8=E8=B4=9F=E8=B4=A3?= =?UTF-8?q?=E4=BA=BA=EF=BC=8C=E8=87=AA=E5=8A=A8=E6=A0=B9=E6=8D=AE=E5=8F=91?= =?UTF-8?q?=E8=B5=B7=E4=BA=BA=E5=85=B3=E8=81=94=EF=BC=8C=E4=B8=8D=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E6=89=8B=E5=8A=A8=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit cc9e157f387cf183ecd6ca2d11a7d901a20f8bed) --- .../impl/AssignUserLeaderStrategyImpl.java | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/impl/AssignUserLeaderStrategyImpl.java b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/impl/AssignUserLeaderStrategyImpl.java index 8c6b7e822..c74536d60 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/impl/AssignUserLeaderStrategyImpl.java +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/impl/AssignUserLeaderStrategyImpl.java @@ -1,7 +1,9 @@ package com.pig4cloud.pigx.flow.engine.node.impl; +import cn.hutool.core.collection.CollUtil; import com.pig4cloud.pigx.admin.api.feign.RemoteDeptService; import com.pig4cloud.pigx.common.core.util.R; +import com.pig4cloud.pigx.common.security.util.SecurityUtils; import com.pig4cloud.pigx.flow.engine.node.AssignUserStrategy; import com.pig4cloud.pigx.flow.task.constant.ProcessInstanceConstant; import com.pig4cloud.pigx.flow.task.dto.Node; @@ -9,6 +11,7 @@ import com.pig4cloud.pigx.flow.task.dto.NodeUser; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.function.Function; @@ -26,17 +29,23 @@ import java.util.stream.Stream; @Component(ProcessInstanceConstant.AssignedTypeClass.LEADER + "AssignUserStrategy") public class AssignUserLeaderStrategyImpl implements AssignUserStrategy { - private final RemoteDeptService deptService; + private final RemoteDeptService deptService; - @Override - public List handle(Node node, NodeUser rootUser, Map variables) { - // 获取部门ID - return node.getNodeUserList() - .stream() - .map(nodeUser -> deptService.getAllDeptLeader(nodeUser.getId())) - .flatMap((Function>, Stream>) listR -> listR.getData() == null ? null - : listR.getData().stream()) - .collect(Collectors.toList()); - } + @Override + public List handle(Node node, NodeUser rootUser, Map variables) { + // 如果节点没有设置部门主管,则默认为当前用户的部门主管 + if (CollUtil.isEmpty(node.getNodeUserList())) { + List nodeUserList = new ArrayList<>(); + nodeUserList.add(NodeUser.builder().id(SecurityUtils.getUser().getDeptId()).build()); + node.setNodeUserList(nodeUserList); + } + + return node.getNodeUserList() + .stream() + .map(nodeUser -> deptService.getAllDeptLeader(nodeUser.getId())) + .flatMap((Function>, Stream>) listR -> listR.getData() == null ? null + : listR.getData().stream()) + .collect(Collectors.toList()); + } }