From 468dd38e3fe507c4bb91e75546c14dc4617c3507 Mon Sep 17 00:00:00 2001 From: wangli Date: Wed, 16 Jul 2025 15:35:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-4586)=20-=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=86=97=E4=BD=99=E4=BF=A1=E6=81=AF=E4=B8=AD=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/common/model/dto/NodeInfo.java | 34 +++++++++++++++++++ .../common/model/dto/OrgSnapshotInfo.java | 7 ++-- .../ext/listener/TaskEntityEventHandle.java | 11 ++++-- 3 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/dto/NodeInfo.java diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/dto/NodeInfo.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/dto/NodeInfo.java new file mode 100644 index 000000000..6f0b430f3 --- /dev/null +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/dto/NodeInfo.java @@ -0,0 +1,34 @@ +package cn.axzo.workflow.common.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 岗位信息 + * + * @author wangli + * @since 2025-06-23 19:35 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = true) +public class NodeInfo implements Serializable { + + private static final long serialVersionUID = -6092011348559752255L; + /** + * 岗位名称 + */ + private Long nodeId; + + /** + * 岗位编码 + */ + private String nodeName; +} diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/dto/OrgSnapshotInfo.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/dto/OrgSnapshotInfo.java index 3a176e6f8..dae9af37b 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/dto/OrgSnapshotInfo.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/dto/OrgSnapshotInfo.java @@ -58,9 +58,10 @@ public class OrgSnapshotInfo implements Serializable { */ private String topNodeId; - private Long nodeId; - - private String nodeName; + /** + * 部门快照信息集合 + */ + private List nodeInfos; /** * 岗位快照信息集合 diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/engine/ext/listener/TaskEntityEventHandle.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/engine/ext/listener/TaskEntityEventHandle.java index 12fde774c..8795f6425 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/engine/ext/listener/TaskEntityEventHandle.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/engine/ext/listener/TaskEntityEventHandle.java @@ -13,6 +13,7 @@ import cn.axzo.workflow.common.enums.BpmnFlowNodeMode; import cn.axzo.workflow.common.enums.BpmnFlowNodeType; import cn.axzo.workflow.common.enums.SignApproverOrgLimitEnum; import cn.axzo.workflow.common.model.dto.JobInfo; +import cn.axzo.workflow.common.model.dto.NodeInfo; import cn.axzo.workflow.common.model.dto.OrgSnapshotInfo; import cn.axzo.workflow.common.model.dto.OrgStructureSnapshotInfo; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; @@ -185,8 +186,14 @@ public class TaskEntityEventHandle implements EntityEventHandle { .ouName(firstNodeUser.getCooperateShip().getOrganizationalUnitName()) .ouId(String.valueOf(firstNodeUser.getCooperateShip().getOrganizationalUnitId())) .topNodeId(String.valueOf(firstNodeUser.getTopNodeId())) - .nodeId(Objects.nonNull(firstNodeUser.getNode()) ? firstNodeUser.getNode().getId() : 0) - .nodeName(Objects.nonNull(firstNodeUser.getNode()) ? firstNodeUser.getNode().getNodeName() : "") + .nodeInfos(ListUtils.emptyIfNull(nodeUsers).stream() + .filter(i -> Objects.nonNull(i.getNode())) + .map(i -> NodeInfo.builder() + .nodeId(i.getNode().getId()) + .nodeName(i.getNode().getNodeName()) + .build()) + .collect(Collectors.toList()) + ) .jobInfos(ListUtils.emptyIfNull(nodeUsers).stream() .filter(i -> Objects.nonNull(i.getJob())) .map(i -> JobInfo.builder()