From 1700648c2ed805b7bbceb33858bbd187d8e42403 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= <2270033969@qq.com> Date: Sun, 13 Apr 2025 12:01:29 +0800 Subject: [PATCH] =?UTF-8?q?feat(flow):=20=E6=96=B0=E5=A2=9E=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=AE=9E=E4=BE=8B=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加查询流程实例记录的远程接口 - 统一和优化部分代码缩进与注释描述 - 修正“查询挖矿任务”为“查询我的任务”中文注释 --- .../task/api/feign/RemoteFlowTaskService.java | 169 ++++++++++-------- .../task/entity/ProcessInstanceRecord.java | 2 + .../controller/ProcessInstanceController.java | 2 +- .../impl/ProcessInstanceServiceImpl.java | 78 ++++---- 4 files changed, 138 insertions(+), 113 deletions(-) diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/api/feign/RemoteFlowTaskService.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/api/feign/RemoteFlowTaskService.java index caf7aadfc..7f89b55d3 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/api/feign/RemoteFlowTaskService.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/api/feign/RemoteFlowTaskService.java @@ -18,90 +18,111 @@ import java.util.List; @FeignClient(contextId = "remoteFlowTaskService", value = ServiceNameConstants.FLOW_TASK_SERVER) public interface RemoteFlowTaskService { - /** - * 节点开始事件 - * @param nodeRecordParamDto - */ - @PostMapping("/remote/startNodeEvent") - void startNodeEvent(@RequestBody ProcessNodeRecordParamDto nodeRecordParamDto); + /** + * 节点开始事件 + * + * @param nodeRecordParamDto + */ + @PostMapping("/remote/startNodeEvent") + void startNodeEvent(@RequestBody ProcessNodeRecordParamDto nodeRecordParamDto); - /** - * 节点结束事件 - * @param nodeRecordParamDto - */ - @PostMapping("/remote/endNodeEvent") - void endNodeEvent(@RequestBody ProcessNodeRecordParamDto nodeRecordParamDto); + /** + * 节点结束事件 + * + * @param nodeRecordParamDto + */ + @PostMapping("/remote/endNodeEvent") + void endNodeEvent(@RequestBody ProcessNodeRecordParamDto nodeRecordParamDto); - /** - * 流程结束事件 - * @param processInstanceParamDto - */ - @PostMapping("/remote/endProcess") - void endProcessEvent(@RequestBody ProcessInstanceParamDto processInstanceParamDto); + /** + * 流程结束事件 + * + * @param processInstanceParamDto + */ + @PostMapping("/remote/endProcess") + void endProcessEvent(@RequestBody ProcessInstanceParamDto processInstanceParamDto); - /** - * 创建流程事件 - * @param processInstanceRecordParamDto - */ - @PostMapping("/remote/createProcessEvent") - void createProcessEvent(@RequestBody ProcessInstanceRecordParamDto processInstanceRecordParamDto); + /** + * 创建流程事件 + * + * @param processInstanceRecordParamDto + */ + @PostMapping("/remote/createProcessEvent") + void createProcessEvent(@RequestBody ProcessInstanceRecordParamDto processInstanceRecordParamDto); - /** - * 根据角色id集合查询用户id集合 - * @param roleIdList - */ - @PostMapping("/remote/queryUserIdListByRoleIdList") - R> queryUserIdListByRoleIdList(@RequestBody List roleIdList); + /** + * 根据角色id集合查询用户id集合 + * + * @param roleIdList + */ + @PostMapping("/remote/queryUserIdListByRoleIdList") + R> queryUserIdListByRoleIdList(@RequestBody List roleIdList); - /** - * 根据部门id集合查询所有的用户id集合 - * @param deptIdList - */ - @PostMapping("/remote/queryUserIdListByDepIdList") - R> queryUserIdListByDepIdList(@RequestBody List deptIdList); + /** + * 根据部门id集合查询所有的用户id集合 + * + * @param deptIdList + */ + @PostMapping("/remote/queryUserIdListByDepIdList") + R> queryUserIdListByDepIdList(@RequestBody List deptIdList); - /** - * 查询流程管理员 - * @param flowId 流程id - */ - @GetMapping("/remote/queryProcessAdmin") - R queryProcessAdmin(@RequestParam("flowId") String flowId); + /** + * 查询流程管理员 + * + * @param flowId 流程id + */ + @GetMapping("/remote/queryProcessAdmin") + R queryProcessAdmin(@RequestParam("flowId") String flowId); - /** - * 查询节点数据 - * @param flowId 流程id - * @param nodeId 节点id - * @return - */ - @GetMapping("/processNodeData/getNodeData") - R queryNodeOriData(@RequestParam("flowId") String flowId, @RequestParam("nodeId") String nodeId); + /** + * 查询节点数据 + * + * @param flowId 流程id + * @param nodeId 节点id + * @return + */ + @GetMapping("/processNodeData/getNodeData") + R queryNodeOriData(@RequestParam("flowId") String flowId, @RequestParam("nodeId") String nodeId); - /** - * 节点开始指派用户了 - * @param processNodeRecordAssignUserParamDto - */ - @PostMapping("/remote/startAssignUser") - R startAssignUser(@RequestBody ProcessNodeRecordAssignUserParamDto processNodeRecordAssignUserParamDto); + /** + * 节点开始指派用户了 + * + * @param processNodeRecordAssignUserParamDto + */ + @PostMapping("/remote/startAssignUser") + R startAssignUser(@RequestBody ProcessNodeRecordAssignUserParamDto processNodeRecordAssignUserParamDto); - /** - * 任务结束事件 - * @param processNodeRecordAssignUserParamDto - */ - @PostMapping("/remote/taskEndEvent") - R taskEndEvent(@RequestBody ProcessNodeRecordAssignUserParamDto processNodeRecordAssignUserParamDto); + /** + * 任务结束事件 + * + * @param processNodeRecordAssignUserParamDto + */ + @PostMapping("/remote/taskEndEvent") + R taskEndEvent(@RequestBody ProcessNodeRecordAssignUserParamDto processNodeRecordAssignUserParamDto); - /** - * 保存抄送数据 - * @param processCopyDto - */ - @PostMapping("/remote/savecc") - R saveCC(@RequestBody ProcessCopyDto processCopyDto); + /** + * 保存抄送数据 + * + * @param processCopyDto + */ + @PostMapping("/remote/savecc") + R saveCC(@RequestBody ProcessCopyDto processCopyDto); - /** - * 保存节点原始数据 - * @param processNodeDataDto - */ - @PostMapping("/processNodeData/saveNodeData") - R saveNodeOriData(@RequestBody ProcessNodeDataDto processNodeDataDto); + /** + * 保存节点原始数据 + * + * @param processNodeDataDto + */ + @PostMapping("/processNodeData/saveNodeData") + R saveNodeOriData(@RequestBody ProcessNodeDataDto processNodeDataDto); + + /** + * 查询流程实例记录 + * + * @param processInstanceId 过程实例id + * @return {@link R } + */ + @GetMapping("/process-instance/detail") + R queryProcessInstanceRecord(@RequestParam String processInstanceId); } diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessInstanceRecord.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessInstanceRecord.java index 23b9fa788..7aa3fb935 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessInstanceRecord.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessInstanceRecord.java @@ -5,6 +5,7 @@ import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import lombok.experimental.FieldNameConstants; import java.time.LocalDateTime; import java.util.Date; @@ -21,6 +22,7 @@ import java.util.Date; @Setter @TenantTable @Accessors(chain = true) +@FieldNameConstants @TableName("process_instance_record") public class ProcessInstanceRecord { diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/controller/ProcessInstanceController.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/controller/ProcessInstanceController.java index 0509022c0..a9cf63a5a 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/controller/ProcessInstanceController.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/controller/ProcessInstanceController.java @@ -31,7 +31,7 @@ public class ProcessInstanceController { } /** - * 查询挖矿任务 + * 查询我的任务 * * @param queryParamDto Query param DTO * @return {@link R } diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java index 209c8f8dc..821a6cea1 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java @@ -86,52 +86,52 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService { @Override public R queryMineTask(TaskQueryParamDto taskQueryParamDto) { taskQueryParamDto.setAssign(SecurityUtils.getUser().getId().toString()); - R> r = flowEngineService.queryAssignTask(taskQueryParamDto); + R> r = flowEngineService.queryAssignTask(taskQueryParamDto); - if (CollUtil.isEmpty(r.getData().getRecords())) { - return r; - } + if (CollUtil.isEmpty(r.getData().getRecords())) { + return r; + } - Set processInstanceIdSet = r.getData() - .getRecords() - .stream() - .map(TaskDto::getProcessInstanceId) - .collect(Collectors.toSet()); + Set processInstanceIdSet = r.getData() + .getRecords() + .stream() + .map(TaskDto::getProcessInstanceId) + .collect(Collectors.toSet()); // 流程实例记录 List processInstanceRecordList = processInstanceRecordService.lambdaQuery() .in(ProcessInstanceRecord::getProcessInstanceId, processInstanceIdSet) .list(); - // 发起人 + // 发起人 // 发起人 List collect = processInstanceRecordList.stream().map(ProcessInstanceRecord::getUserId).collect(Collectors.toList()); List startUserList = userService.getUserById(collect).getData(); - Page pageResultDto = r.getData(); - List taskDtoList = new ArrayList<>(); - for (TaskDto record : r.getData().getRecords()) { - ProcessInstanceRecord processInstanceRecord = processInstanceRecordList.stream() - .filter(w -> StrUtil.equals(w.getProcessInstanceId(), record.getProcessInstanceId())) - .findAny() - .orElse(null); + Page pageResultDto = r.getData(); + List taskDtoList = new ArrayList<>(); + for (TaskDto record : r.getData().getRecords()) { + ProcessInstanceRecord processInstanceRecord = processInstanceRecordList.stream() + .filter(w -> StrUtil.equals(w.getProcessInstanceId(), record.getProcessInstanceId())) + .findAny() + .orElse(null); - if (processInstanceRecord != null) { - record.setProcessName(processInstanceRecord.getName()); - SysUser startUser = startUserList.stream() - .filter(w -> w.getUserId().longValue() == processInstanceRecord.getUserId()) - .findAny() - .orElse(null); + if (processInstanceRecord != null) { + record.setProcessName(processInstanceRecord.getName()); + SysUser startUser = startUserList.stream() + .filter(w -> w.getUserId().longValue() == processInstanceRecord.getUserId()) + .findAny() + .orElse(null); - record.setRootUserId(processInstanceRecord.getUserId()); - record.setGroupName(processInstanceRecord.getGroupName()); - record.setRootUserName(startUser.getUsername()); - record.setRootUserAvatarUrl(startUser.getAvatar()); - record.setStartTime(processInstanceRecord.getCreateTime()); + record.setRootUserId(processInstanceRecord.getUserId()); + record.setGroupName(processInstanceRecord.getGroupName()); + record.setRootUserName(startUser.getUsername()); + record.setRootUserAvatarUrl(startUser.getAvatar()); + record.setStartTime(processInstanceRecord.getCreateTime()); - taskDtoList.add(record); - } - } + taskDtoList.add(record); + } + } pageResultDto.setRecords(taskDtoList); @@ -160,10 +160,10 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService { .map(TaskDto::getProcessInstanceId) .collect(Collectors.toSet()); - // 流程实例记录 - List processInstanceRecordList = processInstanceRecordService.lambdaQuery() - .in(ProcessInstanceRecord::getProcessInstanceId, processInstanceIdSet) - .list(); + // 流程实例记录 + List processInstanceRecordList = processInstanceRecordService.lambdaQuery() + .in(ProcessInstanceRecord::getProcessInstanceId, processInstanceIdSet) + .list(); // 发起人 List collect = processInstanceRecordList.stream().map(ProcessInstanceRecord::getUserId).collect(Collectors.toList()); @@ -196,9 +196,9 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService { } } - pageResultDto.setRecords(taskDtoList); + pageResultDto.setRecords(taskDtoList); - return R.ok(pageResultDto); + return R.ok(pageResultDto); } /** @@ -385,10 +385,12 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService { Dict set = Dict.create() - .set("processInstanceId", processInstanceId) + .set(ProcessInstanceRecord.Fields.processInstanceId, processInstanceId) + .set(ProcessInstanceRecord.Fields.status, processInstanceRecord.getStatus()) .set("process", oaForms.getProcess()) .set("formItems", oaForms.getFormItems()) .set("formData", formData) + .set("formData", formData) .set("formPerms", formPerms1); return R.ok(set);