From 2999ed8e3a1faa8a622156e649f50c50df2dc558 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= <2270033969@qq.com> Date: Sun, 1 Dec 2024 15:01:56 +0800 Subject: [PATCH] =?UTF-8?q?refactor(flowable):=20=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E5=A2=9E=E5=8A=A0=E4=BB=BB=E5=8A=A1=E8=BD=AC?= =?UTF-8?q?=E5=8A=9E=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EngineTaskController.java | 24 ++++++ .../api/feign/RemoteFlowEngineService.java | 4 +- .../pigx/flow/task/dto/TaskParamDto.java | 73 ++++++++++--------- 3 files changed, 64 insertions(+), 37 deletions(-) diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineTaskController.java b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineTaskController.java index 470ba04df..46ba0cb5f 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineTaskController.java +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineTaskController.java @@ -154,4 +154,28 @@ public class EngineTaskController { return R.ok(); } + /** + * 设置执行人 (转办) + * + * @param taskParamDto 任务参数DTO + * @return 操作结果 + */ + @PostMapping("/transferTask") + public R transferTask(@RequestBody TaskParamDto taskParamDto) { + Map taskLocalParamMap = taskParamDto.getTaskLocalParamMap(); + if (CollUtil.isNotEmpty(taskLocalParamMap)) { + taskService.setVariablesLocal(taskParamDto.getTaskId(), taskLocalParamMap); + } + + // 设置任务的 owner 为当前任务的 assignee + Task task = taskService.createTaskQuery().taskId(taskParamDto.getTaskId()).includeTaskLocalVariables().singleResult(); + taskService.setOwner(taskParamDto.getTaskId(), task.getAssignee()); + + // 设置任务的 assignee 为目标用户 (转办用户) + for (Long targetUserId : taskParamDto.getTargetUserIdList()) { + taskService.setAssignee(taskParamDto.getTaskId(), targetUserId.toString()); + } + return R.ok(); + } + } diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/api/feign/RemoteFlowEngineService.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/api/feign/RemoteFlowEngineService.java index 670bcf3ef..2f7404977 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/api/feign/RemoteFlowEngineService.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/api/feign/RemoteFlowEngineService.java @@ -82,8 +82,8 @@ public interface RemoteFlowEngineService { * @param taskParamDto 任务参数 * @return 设置负责人结果 */ - @PostMapping("/task/setAssignee") - R setAssignee(@RequestBody TaskParamDto taskParamDto); + @PostMapping("/task/transferTask") + R transferTask(@RequestBody TaskParamDto taskParamDto); /** * 停止流程实例 diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/dto/TaskParamDto.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/dto/TaskParamDto.java index 36689eeae..7b7448196 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/dto/TaskParamDto.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/dto/TaskParamDto.java @@ -7,53 +7,56 @@ import java.util.Map; /** * 任务完成参数对象 - * */ @Data public class TaskParamDto { - private String processInstanceId; + private String processInstanceId; - private List processInstanceIdList; + private List processInstanceIdList; - /** - * 节点id - */ - private String nodeId; + /** + * 节点id + */ + private String nodeId; - /** - * 添加子流程发起人 - */ - private Boolean appendChildProcessRootId; + /** + * 添加子流程发起人 + */ + private Boolean appendChildProcessRootId; - /** - * 任务id - */ - private String taskId; + /** + * 任务id + */ + private String taskId; - /** - * 用户id - */ - private String userId; + /** + * 用户id + */ + private String userId; - /** - * 模板用户id - */ - private String targetUserId; + /** + * 模板用户id + */ + private String targetUserId; - /** - * 参数 - */ - private Map paramMap; + /** + * 参数 + */ + private Map paramMap; - /** - * 任务本地变量 - */ - private Map taskLocalParamMap; + /** + * 任务本地变量 + */ + private Map taskLocalParamMap; - /** - * 模板节点 - */ - private String targetNodeId; + /** + * 模板节点 + */ + private String targetNodeId; + /** + * 转办目标用户 ID 列表 + */ + private List targetUserIdList; }