From 8b3d84585889a31f59b28896a6354d6a665545d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E7=84=95=E8=B6=85?= <14155701+wu-huanchao@user.noreply.gitee.com> Date: Fri, 23 May 2025 08:41:08 +0800 Subject: [PATCH] =?UTF-8?q?fix(bpm):=E8=A7=A3=E5=86=B3=E5=A4=9A=E5=AE=9E?= =?UTF-8?q?=E4=BE=8B=E4=BB=BB=E5=8A=A1=E6=A0=B9=E6=8D=AE'=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E4=BA=BA=E8=87=AA=E9=80=89'=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E5=A4=9A=E6=AC=A1=E9=80=89=E6=8B=A9=E6=97=B6=EF=BC=8C=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E4=BA=BA=E8=A2=AB=E5=90=8E=E4=B8=80=E6=AC=A1=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E8=A6=86=E7=9B=96=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/module/bpm/service/task/BpmTaskServiceImpl.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java index a09f48e49c..a02c945fcc 100644 --- a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java +++ b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java @@ -647,6 +647,13 @@ public class BpmTaskServiceImpl implements BpmTaskService { if (approveUserSelectAssignees == null) { approveUserSelectAssignees = new HashMap<>(); } + // 当多实例任务根据'审批人自选'策略多次选择时,避免审批人被后一次选择覆盖 + List nodeHadAssignees = approveUserSelectAssignees.get(nextFlowNode.getId()); + if (nodeHadAssignees != null){ + assignees = Stream.concat(nodeHadAssignees.stream(), assignees.stream()) + .distinct() + .toList(); + } approveUserSelectAssignees.put(nextFlowNode.getId(), assignees); Map> existingApproveUserSelectAssignees = (Map>) variables.get( BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_APPROVE_USER_SELECT_ASSIGNEES);